5.5

View in English

5.5 আন্তর্জাতিকীকরণ ও স্থানীয়করণ

পরিচিতি ও প্রেরণা

আন্তর্জাতিকীকরণ (i18n) হলো এমনভাবে সফটওয়্যার গড়ার প্রকৌশল কাজ যাতে কোড না বদলে তা যেকোনো ভাষা, অঞ্চল ও সংস্কৃতিতে খাপ খাওয়ানো যায়। স্থানীয়করণ (l10n) হলো তার পরের কাজ: পাঠ্য অনুবাদ, তারিখ ও সংখ্যা বিন্যাস, বিন্যাস সমন্বয় এবং সাংস্কৃতিক প্রত্যাশার হিসাব করে একটি নির্দিষ্ট লোকেলের জন্য একটি পণ্য প্রকৃতপক্ষে অভিযোজিত করা। দুটি আলাদা। আন্তর্জাতিকীকরণ একবার করা হয়, স্থাপত্যে। স্থানীয়করণ বহুবার করা হয়, কনটেন্টে। শুরুতে স্থাপত্য ঠিক করুন এবং প্রতিটি স্থানীয়করণ সস্তা। ভুল করুন এবং প্রতিটি একটি যন্ত্রণাদায়ক, ত্রুটিপ্রবণ পুনঃসংযোজন হয়।

বড় দলের জন্য i18n একটি মৌলিক স্থাপত্য সিদ্ধান্ত। এটি প্রতিটি স্তর ছোঁয়: ডেটা সংরক্ষণ, স্ট্রিং পরিচালনা, বিন্যাস ও কনটেন্ট পাইপলাইন। আপনি যদি এটি আগে স্থাপন না করেন এবং ভাগ করা লাইব্রেরি ও লিন্ট নিয়মের মাধ্যমে প্রয়োগ না করেন, দলগুলো ইংরেজি স্ট্রিং হার্ড-কোড করে, অনূদিত খণ্ড জোড়া দেয় এবং ল্যাটিন লিপি ধরে নেয়। পণ্য কোনো নতুন বাজারে ঢোকার আগে সেই ঋণ খুলতে হবে। একটি ভাগ করা i18n কাঠামো ও স্থানীয়করণ কর্মপ্রবাহ ডজন ডজন দলকে প্রত্যেকে নল পুনরাবিষ্কার না করে অনেক ভাষায় একটি পণ্য পাঠাতে দেয়।

এন্টারপ্রাইজ ও সরকারের প্রাসঙ্গিকতা সরাসরি। বহুজাতিক এন্টারপ্রাইজকে দেশ, ভাষা ও নিয়ন্ত্রক ব্যবস্থা জুড়ে গ্রাহক ও কর্মচারীদের সেবা দিতে হয়। সরকারকে ভাষাগতভাবে বৈচিত্র্যময় জনগোষ্ঠীর সেবা দিতে হয়। অনেক দেশ সরকারিভাবে বহুভাষী, এবং অনেককে আইনত ডান-থেকে-বামে লিপি এবং আদিবাসী বা সংখ্যালঘু ভাষাসহ একাধিক ভাষায় সেবা দিতে হয়। সরকারি সেবার জন্য ভাষা-অ্যাক্সেস সমতা ও আইনি বিষয়: একমাত্র উপলব্ধ ভাষা পড়তে না পারা একজন নাগরিক কার্যত সেবা থেকে বঞ্চিত।

মূল নীতিসমূহ

  • স্থাপত্য একবার আন্তর্জাতিকীকরণ করুন; কনটেন্ট বহুবার স্থানীয়করণ করুন।
  • ব্যবহারকারী-মুখী পাঠ্য কখনো হার্ড-কোড করবেন না; সব স্ট্রিং পরিচালিত সম্পদে বাইরে রাখুন।
  • সর্বত্র ইউনিকোড (UTF-8) ব্যবহার করুন; ধরে নিন পাঠ্য যেকোনো লিপিতে হতে পারে।
  • অনূদিত খণ্ড কখনো জোড়া দেবেন না; ব্যাকরণ ও শব্দক্রম ভাষা অনুযায়ী ভিন্ন।
  • পাঠ্য প্রসারণ, ডান-থেকে-বামে লিপি, এবং জটিল বহুবচন ও লিঙ্গ নিয়মের জন্য পরিকল্পনা করুন।
  • তারিখ, সংখ্যা, মুদ্রা ও নাম কোড নয়, লোকেল অনুযায়ী বিন্যস্ত করুন।
  • অনুবাদযোগ্য কনটেন্ট কোড থেকে আলাদা করুন যাতে অনুবাদকরা কখনো সোর্স ছোঁয় না।
  • স্থানীয়করণ কেবল ভাষাগত নয়, সাংস্কৃতিক: রং, ছবি ও উদাহরণ গুরুত্বপূর্ণ।

সুপারিশ

একটি সুস্থ আন্তর্জাতিকীকরণ স্থাপত্য গড়ুন

সব পাঠ্য শুরু থেকে শেষ পর্যন্ত (ডেটাবেস, API ও UI) ইউনিকোড (UTF-8) হিসেবে সংরক্ষণ ও প্রক্রিয়া করুন যাতে যেকোনো লিপি প্রতিনিধিত্বযোগ্য। প্রতিটি ব্যবহারকারী-মুখী স্ট্রিং শনাক্তকারী দিয়ে চাবিযুক্ত রিসোর্স ফাইল বা বার্তা ক্যাটালগে বাইরে রাখুন, কোড বা মার্কআপে কখনো এমবেড করবেন না। একটি লোকেলকে ভাষা এবং অঞ্চল (এবং দরকারে লিপি) হিসেবে উপস্থাপন করুন যাতে আপনি উদাহরণস্বরূপ, দেশ জুড়ে একটি ভাষার রূপভেদ আলাদা করতে পারেন। তারিখ, সংখ্যা ও মুদ্রা বিন্যাস হাতে না বানিয়ে একটি সুপরীক্ষিত আন্তর্জাতিকীকরণ লাইব্রেরিতে বিন্যাস যুক্তি রাখুন। ডেটা নিরপেক্ষ, দ্ব্যর্থহীন রূপে সংরক্ষণ করুন (UTC টাইমস্ট্যাম্প, ISO দেশ ও মুদ্রা কোড, মূল একক) এবং কেবল উপস্থাপনা স্তরে বিন্যস্ত করুন।

ভাষার জটিলতা সঠিকভাবে সামলান

পাঠ্য দৈর্ঘ্য ধরে নেবেন না; উদার জায়গা দিন কারণ অনুবাদ সাধারণত ইংরেজির চেয়ে অনেক দীর্ঘ হয়, এবং ছেঁটে বা ওভারল্যাপ করার বদলে পুনঃপ্রবাহিত হয় এমন বিন্যাস নকশা করুন। ভৌত নয়, যৌক্তিক বিন্যাস বৈশিষ্ট্য ব্যবহার করে এবং যেখানে উপযুক্ত সেখানে ইন্টারফেস আয়না করে দ্বিমুখী (ডান-থেকে-বামে) লিপি সমর্থন করুন। সাধারণ একবচন/বহুবচন যুক্তির বদলে আপনার i18n লাইব্রেরির মাধ্যমে লোকেলের বহুবচন নিয়ম ব্যবহার করুন (ভাষাভেদে এক থেকে ছয়টি বহুবচন রূপ আছে)। ভাষা যেখানে দাবি করে সেখানে লিঙ্গ ও ব্যাকরণগত সামঞ্জস্য সামলান। কখনো জোড়া দিয়ে বাক্য গড়বেন না; পূর্ণ, প্যারামিটারাইজড বার্তা টেমপ্লেট ব্যবহার করুন যাতে অনুবাদকরা শব্দক্রম নিয়ন্ত্রণ করেন।

একটি স্থানীয়করণ কর্মপ্রবাহ ও অনুবাদ ব্যবস্থাপনা স্থাপন করুন

স্থানীয়করণকে প্রি-লঞ্চ ব্যাচ নয়, নিরন্তর পাইপলাইন গণ্য করুন। স্বয়ংক্রিয়ভাবে স্ট্রিং বের করুন, একটি অনুবাদ ব্যবস্থাপনা সিস্টেমে ঠেলুন, এবং সম্পূর্ণ অনুবাদ ফিরিয়ে আনুন, আদর্শভাবে CI-র সঙ্গে একীভূত যাতে নতুন স্ট্রিং চিহ্নিত হয় এবং স্থানীয়কৃত সংস্করণ সমন্বিত থাকে। অনুবাদকদের প্রসঙ্গ দিন: স্ক্রিনশট, বর্ণনা, অক্ষর সীমা, এবং পরিভাষা ও সুর সামঞ্জস্যপূর্ণ রাখতে প্রতি ভাষার জন্য একটি শব্দকোষ ও স্টাইল গাইড। আগের কাজ পুনর্ব্যবহার ও খরচ কমাতে অনুবাদ স্মৃতি ব্যবহার করুন। সুচিন্তিতভাবে ঠিক করুন কোথায় যন্ত্র অনুবাদ গ্রহণযোগ্য (কম-ঝুঁকি, উচ্চ-পরিমাণ কনটেন্ট) এবং কোথায় মানব অনুবাদ ও পর্যালোচনা প্রয়োজন (আইনি, চিকিৎসা, নিরাপত্তা, ব্র্যান্ড-জটিল)। প্রকৃত অনুবাদ শুরুর আগে হার্ড-কোড করা স্ট্রিং, ছাঁটা ও এনকোডিং বাগ ধরতে স্ট্রিংকে দীর্ঘায়িত, উচ্চারণ-চিহ্নিত প্লেসহোল্ডারে প্রতিস্থাপন করে আগে ছদ্ম-স্থানীয়করণ করুন।

কেবল শব্দ নয়, বিন্যাস, সংস্কৃতি ও কনটেন্ট স্থানীয়করণ করুন

তারিখ, সময়, সংখ্যা, মুদ্রা, ঠিকানা, ফোন নম্বর ও নাম প্রতি লোকেলে বিন্যস্ত করুন, স্থানীয় রীতি সম্মান করে (তারিখ ক্রম, দশমিক ও গ্রুপিং বিভাজক, মুদ্রা স্থান, নামের ক্রম)। ছবি, আইকন, রং, উদাহরণ ও রূপক স্থানীয় সাংস্কৃতিক অর্থে খাপ খাওয়ান, কারণ প্রতীক ও রং সংস্কৃতি জুড়ে ভিন্ন ব্যঞ্জনা বহন করে। স্থানীয় আইনি ও নিয়ন্ত্রক কনটেন্ট পার্থক্যের হিসাব রাখুন। বৈশ্বিক সামঞ্জস্য (ব্র্যান্ড, মূল কার্যকারিতা) আঞ্চলিক অভিযোজন (কনটেন্ট, উদাহরণ, সম্মতি) থেকে আলাদা করুন এবং সুস্পষ্টভাবে ঠিক করুন কোন উপাদান স্থির আর কোনটি নমনীয়।

i18n-কে ভাগ করা অবকাঠামো হিসেবে শাসন করুন

একটি ভাগ করা i18n লাইব্রেরি, স্ট্রিং-বাইরে-রাখার লিন্ট নিয়ম এবং একটি প্রমিত লোকেল-সমাধান ব্যবস্থা দিন যাতে দলগুলো দুর্ঘটনাবশত পাঠ্য হার্ড-কোড করতে না পারে। স্থানীয়করণ পাইপলাইন ও শব্দকোষের মালিকানা স্থাপন করুন। স্বয়ংক্রিয়ভাবে রিগ্রেশন ধরতে CI-তে একটি ডান-থেকে-বামে লোকেল ও একটি দীর্ঘ-পাঠ্য ছদ্ম-লোকেলসহ একাধিক লোকেলে পরীক্ষা করুন।

ট্রেড-অফ: সুবিধা ও অসুবিধা

সিদ্ধান্তসুবিধাঅসুবিধা
প্রথম দিন থেকে আন্তর্জাতিকীকরণপরে সস্তা বাজার প্রবেশ, পুনঃসংযোজন নেইদ্বিতীয় লোকেল দরকার হওয়ার আগেই অগ্রিম খরচ
পরে i18n পুনঃসংযোজনবৈশ্বিক প্রয়োজন অনিশ্চিত হলে খরচ পিছিয়ে দেয়হার্ড-কোড করা অনুমান খুলতে অত্যন্ত ব্যয়বহুল ও ঝুঁকিপূর্ণ
মানব অনুবাদউচ্চ মান, সাংস্কৃতিকভাবে নির্ভুলধীরতর ও বেশি ব্যয়বহুল
যন্ত্র অনুবাদদ্রুত, সস্তা, বিশাল পরিমাণে স্কেল করেমান ও নির্ভুলতার ঝুঁকি; উচ্চ-ঝুঁকির কনটেন্টের জন্য অনুপযুক্ত
নিরন্তর স্থানীয়করণ পাইপলাইনলোকেল সমন্বিত থাকে, লঞ্চ হুড়োহুড়ি নেইটুলিং ও প্রক্রিয়া বিনিয়োগ
প্রতি অঞ্চলে গভীর সাংস্কৃতিক অভিযোজনভালো স্থানীয় মানানসই ও আস্থাগড়তে ও রক্ষণাবেক্ষণ করতে আরও কনটেন্ট রূপ

মূল বিনিময় কখন আন্তর্জাতিকীকরণে বিনিয়োগ করবেন। হার্ড-কোড করা, জোড়া দেওয়া, ল্যাটিন-ধরে-নেওয়া কোডে ভরা পণ্যে i18n পুনঃসংযোজন শোধ করার সবচেয়ে ব্যয়বহুল প্রযুক্তিগত ঋণের একটি। সম্ভাব্য আন্তর্জাতিক বা বহুভাষী উচ্চাকাঙ্ক্ষা আছে এমন যেকোনো প্রতিষ্ঠানের জন্য, যার মধ্যে মূলত সব বড় এন্টারপ্রাইজ ও বহুভাষী সরকার পড়ে, স্থাপত্য আগে আন্তর্জাতিকীকরণ করা পরে পুনঃসংযোজনের চেয়ে অনেক সস্তা, যদিও প্রতিদান বিলম্বিত।

আপনার দলের সঙ্গে আলোচনার প্রশ্ন

  1. আমরা কি লিন্ট নিয়ম দিয়ে স্ট্রিং বাইরে রাখা প্রয়োগ করি, এবং প্রকৃত অনুবাদের আগে কি CI-তে ছদ্ম-স্থানীয়করণ চলে? যে ঋণ আন্তর্জাতিকীকরণ ব্যয়বহুল করে (হার্ড-কোড করা ইংরেজি স্ট্রিং, জোড়া দেওয়া বাক্য খণ্ড, ল্যাটিন-লিপি অনুমান) তা নিঃশব্দে জমে যদি টুলিং কমিটে তা না থামায়। হার্ড-কোড করা ব্যবহারকারী পাঠ্য চিহ্নিত করা লিন্ট নিয়ম, এবং CI-তে চালানো একটি দীর্ঘ-পাঠ্য উচ্চারণ-চিহ্নিত ছদ্ম-লোকেল, ছাঁটা, ওভারল্যাপ ও এনকোডিং বাগ ধরে যখন সারানো সস্তা। এটিই ডজন ডজন দলকে প্রত্যেকে নল পুনরাবিষ্কার না করে বা পরে সময়সীমায় অনুমান না খুলে অনেক ভাষায় একটি পণ্য পাঠাতে দেয়। হার্ড-কোড করা স্ট্রিংয়ের একটি অনুসন্ধান আনুন এবং জিজ্ঞেস করুন কোনো দল আজ দুর্ঘটনাবশত একটি পাঠাতে পারে কি না। পাইপলাইনে কিছুই তা না ধরলে সেই ফাঁকই আগে বন্ধ করার।

  2. আমরা কোথায় আদর্শ ডেটা সংরক্ষণ করি, এবং বিন্যাস কি উপস্থাপনা স্তরে সীমাবদ্ধ? টাইমস্ট্যাম্প UTC হিসেবে, দেশ ও মুদ্রা ISO কোড হিসেবে এবং পরিমাণ মূল এককে সংরক্ষণ করার মানে যেকোনো লোকেল প্রান্তে তা সঠিকভাবে বিন্যস্ত করতে পারে, যেখানে ডেটা স্তরে গাঁথা বিন্যাস যুক্তি খুলতে যন্ত্রণাদায়ক বাগ তৈরি করে। একমত হোন যে তারিখ, সংখ্যা, মুদ্রা, ঠিকানা ও নাম কেবল উপস্থাপনায়, হাতে-বানানো কোডের বদলে একটি সুপরীক্ষিত লাইব্রেরির মাধ্যমে বিন্যস্ত হয়। এটি বহুজাতিক এন্টারপ্রাইজ ও বহুভাষী সরকারের জন্য গুরুত্বপূর্ণ যেখানে একজন নাগরিককে তাদের নিজস্ব রীতিতে সঠিক তারিখ ক্রম, দশমিক বিভাজক ও নামের ক্রম দেখতে হবে। আপনার সিস্টেম ইতিমধ্যে বিন্যস্ত অবস্থায় সংরক্ষণ করে এমন একটি মানের উদাহরণ আনুন এবং অনুসরণ করুন একটি নতুন লোকেল ভিন্নভাবে চাইলে কী ভাঙে। ডেটা ও উপস্থাপনা জট পাকিয়ে থাকলে লোকেল যোগ করার আগে কীভাবে জট খুলবেন তা ঠিক করুন।

  3. যন্ত্র অনুবাদ ঠিক কোথায় গ্রহণযোগ্য, এবং আমাদের স্থানীয়করণ পাইপলাইন ব্যাচের বদলে নিরন্তর কীভাবে রাখা হয়? যন্ত্র অনুবাদ কম-ঝুঁকি, উচ্চ-পরিমাণ কনটেন্টের জন্য দ্রুত ও সস্তা কিন্তু আইনি, চিকিৎসা, নিরাপত্তা বা ব্র্যান্ড-জটিল পাঠ্যের জন্য অনুপযুক্ত যেখানে একটি ভুল অনুবাদ প্রকৃত ক্ষতি করে, তাই সীমানা একটি সুস্পষ্ট নীতি হওয়া দরকার, প্রতি-দলের অনুমান নয়। একইভাবে, স্থানীয়করণকে প্রি-লঞ্চ ব্যাচ গণ্য করা অনুবাদ হুড়োহুড়ি নিশ্চিত করে, যেখানে স্বয়ংক্রিয়ভাবে স্ট্রিং বের করা এবং একটি অনুবাদ ব্যবস্থাপনা সিস্টেমের মাধ্যমে সিঙ্ক করা প্রতিটি লোকেল হালনাগাদ রাখে। ঠিক করুন পাইপলাইন, শব্দকোষ এবং উচ্চ-ঝুঁকির স্ট্রিংয়ের জন্য মানব-পর্যালোচনা গেটের মালিক কে। একটি সাম্প্রতিক রিলিজ আনুন এবং জিজ্ঞেস করুন এর নতুন স্ট্রিং প্রতিটি ভাষায় দেখা দিতে কত সময় নিয়েছে। রিলিজের মধ্যে লোকেল অসমন্বিত হলে আপনার পাইপলাইন ছদ্মবেশে ব্যাচ।

  4. আমরা কি স্বয়ংক্রিয়ভাবে একটি ডান-থেকে-বামে লোকেল ও একটি দীর্ঘ-পাঠ্য ছদ্ম-লোকেল পরীক্ষা করি, নাকি নিঃশব্দে ল্যাটিন লিপি ও ইংরেজি-দৈর্ঘ্যের বিন্যাস ধরে নিচ্ছি? দ্বিমুখী (ডান-থেকে-বামে) সমর্থন ও পাঠ্য প্রসারণ হলো সেই অনুমান যা নতুন বাজারে সবচেয়ে দৃশ্যমানভাবে ভাঙে: আয়না করা হয়নি এমন আয়না-যোগ্য ইন্টারফেস, এবং জার্মান বা ফিনিশ ইংরেজির চেয়ে চল্লিশ শতাংশ দীর্ঘ চললে বোতাম ছাঁটা। প্রতিদ্বন্দ্বী টান গতি, কারণ ভৌতের বদলে যৌক্তিক বিন্যাস বৈশিষ্ট্যে গড়া এবং একটি উচ্চারণ-চিহ্নিত ছদ্ম-লোকেল নিরন্তর ইন্টিগ্রেশনে (CI) জোড়ার জন্য কোনো প্রকৃত গ্রাহকের দরকারের আগেই পরিশ্রম লাগে। আপনার সবচেয়ে ব্যস্ত পর্দার একটি ডান-থেকে-বামে লোকেলে ও একটি দীর্ঘায়িত ছদ্ম-লোকেলে রেন্ডার করা স্ক্রিনশট আনুন, এবং ওভারল্যাপ, ছাঁটা লেবেল ও আটকে যাওয়া তীর গুনুন। একটি ডান-থেকে-বামে বা সংখ্যালঘু ভাষা সেবা দিতে আইনত বাধ্য একটি বহুজাতিক এন্টারপ্রাইজ বা সরকারের জন্য, আয়না করতে না পারা বিন্যাস প্রসাধনী ত্রুটি নয়, এটি একটি বাজার বা বিধিবদ্ধ বাধ্যবাধকতা যা পুনর্নির্মাণ ছাড়া আপনি পূরণ করতে পারেন না।

  5. পণ্যের কোন অংশ বৈশ্বিকভাবে স্থির আর কোনটি অঞ্চল অনুযায়ী নমনীয়, এবং কে তা ঠিক করার কর্তৃত্ব রাখে? স্থানীয়করণ কেবল ভাষাগত নয়, সাংস্কৃতিক, তাই রং, ছবি, উদাহরণ, সম্মানসূচক শব্দ এমনকি কোন ফিচার দেওয়া হয় তাও বাজার অনুযায়ী ভিন্ন হতে পারে, তবু আপনি যে প্রতিটি আঞ্চলিক রূপ অনুমতি দেন তা চিরকাল গড়ার, অনুবাদ করার, পর্যালোচনা করার ও রক্ষণাবেক্ষণ করার আরেকটি নিদর্শন। টানাপোড়েন স্থানীয় মানানসইয়ের মধ্যে, যা আস্থা ও রূপান্তর গড়ে, এবং সামঞ্জস্যের মধ্যে, যা ব্র্যান্ড সুসংগত ও রক্ষণাবেক্ষণ বোঝা সীমিত রাখে। অনুবাদিত স্ট্রিংয়ের বাইরে একটি প্রস্তাবিত নতুন লোকেল কী বদলাবে তার একটি সুনির্দিষ্ট তালিকা আনুন, এবং প্রতিটি রূপের কেবল প্রথম গড়া নয়, চলমান রক্ষণাবেক্ষণের দাম ঠিক করুন। একটি বড় এন্টারপ্রাইজে এই সিদ্ধান্তের একজন নামকরা মালিক দরকার যাতে আঞ্চলিক দলগুলো অ্যাড হক পণ্য ফর্ক করতে না পারে, এবং সরকারে এটি এখতিয়ার অনুযায়ী ভিন্ন আইনি ও অ্যাক্সেসিবিলিটি কনটেন্ট নিয়ম সম্মান করতে হবে যা ঐচ্ছিক নয়।

  6. আমরা আসলে কোন লোকেলে প্রতিশ্রুতিবদ্ধ, সেগুলো জুড়ে পরিভাষা সামঞ্জস্যপূর্ণ কীভাবে রাখি, এবং কোন প্রমাণ সেই তালিকা চালায়? একটি ভাষা যোগ করার প্রতিশ্রুতি দেওয়া সহজ এবং টিকিয়ে রাখা ব্যয়বহুল, কারণ প্রতিটির জন্য একটি শব্দকোষ, একটি স্টাইল গাইড, উচ্চ-ঝুঁকির স্ট্রিংয়ের জন্য মানব পর্যালোচনা, এবং সঠিক বহুবচন ও লিঙ্গ পরিচালনা দরকার যা সাধারণ একবচন-বা-বহুবচন যুক্তি বেশিরভাগ ভাষায় ভুল করে। প্রতিদ্বন্দ্বী বিবেচনা নাগাল বনাম খরচ: খারাপভাবে সেবা পাওয়া একটি বাজার বা জনগোষ্ঠী একেবারে সেবা না পাওয়ার চেয়ে খারাপ হতে পারে। প্রতিটি প্রার্থী লোকেলের পেছনের জনসংখ্যা বা রাজস্ব, আপনার লাইব্রেরি তার জন্য যে বহুবচন-নিয়ম ও বিন্যাস কভারেজ দেয়, এবং তার শব্দকোষের মালিক কে আনুন। একটি বহুজাতিক এন্টারপ্রাইজের জন্য চালক হলো ঠিকানাযোগ্য বাজার ও প্রতি ভাষায় সহায়তা খরচ, যেখানে সরকারের জন্য এটি আইনি ভাষা-অ্যাক্সেস বাধ্যবাধকতা ও সমতা, সেই ভাষায় কেবল লেনদেন করতে পারা বাসিন্দার সংখ্যা দিয়ে পরিমিত।

খাতভেদে দৃষ্টিভঙ্গি

স্টার্টআপ। প্রথম দিনে সস্তা স্থাপত্য পছন্দ করুন এবং সেখানেই থামুন: শুরু থেকে শেষ পর্যন্ত UTF-8, প্রতিটি ব্যবহারকারী-মুখী স্ট্রিং একটি বার্তা ক্যাটালগে, এবং তারিখ, সংখ্যা ও মুদ্রা একটি লোকেল-সচেতন লাইব্রেরির মাধ্যমে বিন্যস্ত। আপনি এক ভাষায় পাঠানোর সময় এগুলো প্রায় কিছুই খরচ করে না এবং আপনার প্রথম বড় গ্রাহক দ্বিতীয় ভাষা চাইলে পুনর্লিখন বাঁচায়। এখনো কেউ অর্থ দিচ্ছে না এমন লোকেল সমর্থন বা অনুবাদ পাইপলাইন দাঁড় করাবেন না; দরজা খোলা রাখুন, পুরো বাড়ি সাজাবেন না।

ছোট ব্যবসা। কোনো আন্তর্জাতিকীকরণ বিশেষজ্ঞ নেই আর বাজেট কম, তাই নিজে পাইপলাইন গড়ার বদলে আপনার ফ্রেমওয়ার্কে ইতিমধ্যে থাকা i18n ফিচার এবং একটি হোস্টেড অনুবাদ ব্যবস্থাপনা সেবার ওপর ভর করুন। কম-ঝুঁকি, উচ্চ-পরিমাণ কনটেন্টের জন্য যন্ত্র অনুবাদ ব্যবহার করুন এবং একটি ভুল যেখানে আপনাকে একজন গ্রাহক খরচ করাবে বা বিধি ভাঙবে, যেমন আইনি, নিরাপত্তা বা বিলিং পাঠ্য, সেখানে কেবল মানব অনুবাদের জন্য অর্থ দিন। কোনো নির্দিষ্ট বাজার চলমান অনুবাদ ও পর্যালোচনা খরচ স্পষ্টভাবে যথার্থ করলেই কেবল একটি লোকেলে প্রতিশ্রুতিবদ্ধ হোন।

এন্টারপ্রাইজ। সমস্যা অনেক দল জুড়ে শাসন: একটি ভাগ করা i18n লাইব্রেরি, হার্ড-কোড করা স্ট্রিং প্রত্যাখ্যান করা লিন্ট নিয়ম, অনুবাদ স্মৃতি ও প্রতি-ভাষা শব্দকোষসহ একটি নিরন্তর স্থানীয়করণ পাইপলাইন, এবং একটি ডান-থেকে-বামে ও একটি দীর্ঘ-পাঠ্য ছদ্ম-লোকেল সহ বহু-লোকেল CI। স্থানীয়করণকে একজন স্পষ্ট মালিকসহ ভাগ করা অবকাঠামো হিসেবে চালান যাতে গোষ্ঠীগুলো নল পুনরাবিষ্কার বা অসমন্বিত হওয়া বন্ধ করে। ভাষা কভারেজ, স্থানীয়করণ মান এবং একটি নতুন লোকেল চালু করার সময় মাপুন, এবং অ্যাড হক বাজার চালু করার বদলে সেই সংখ্যার বিপরীতে লোকেল পোর্টফোলিও পরিচালনা করুন।

সরকার। ভাষা-অ্যাক্সেস প্রায়ই একটি আইনি বাধ্যবাধকতা, সরকারি ভাষা, ডান-থেকে-বামে লিপি এবং আদিবাসী বা সংখ্যালঘু ভাষা ঢেকে, তাই স্বচ্ছতা ও সমতা প্রতিটি পছন্দ আকার দেয়। সংস্থা জুড়ে একটি ভাগ করা i18n কাঠামো ও অনুবাদ কর্মপ্রবাহ গড়ুন, আইনি ও নিরাপত্তা পরিভাষার জন্য মানব পর্যালোচনা দাবি করুন, এবং শব্দকোষ প্রকাশ করুন যাতে সেবার মধ্যে পরিভাষা সামঞ্জস্যপূর্ণ থাকে। ক্রয়ে চুক্তিতে লোকেল, ডান-থেকে-বামে ও অ্যাক্সেসিবিলিটি সমর্থন দাবি করা উচিত, এবং প্রতিটি ভাষায় সেবা পাওয়া জনগোষ্ঠীই জনগণের কাছে ব্যয় যথার্থ করার মেট্রিক।

উদাহরণ

স্টার্টআপ। কেবল ইংরেজিতে পাঠানো একটি ছোট স্টার্টআপ প্রথম দিনে কয়েকটি সস্তা স্থাপত্য পছন্দ করে: সর্বত্র UTF-8, প্রতিটি ব্যবহারকারী-মুখী স্ট্রিং হার্ড-কোডের বদলে একটি বার্তা ক্যাটালগে টেনে আনা, এবং তারিখ ও মুদ্রা একটি লোকেল-সচেতন লাইব্রেরির মাধ্যমে বিন্যস্ত। তাদের একটি ভাষা থাকার সময় এটি প্রায় কিছুই খরচ করেনি। এক বছর পরে, তাদের সবচেয়ে বড় সম্ভাব্য গ্রাহক ফরাসি ও জার্মান সংস্করণ চাইলে সেই লোকেল যোগ করা মূলত একজন ঠিকাদারকে দেওয়া একটি অনুবাদ অনুশীলন ছিল, পুনর্লিখন নয়, এবং তারা প্রকৌশল কাজের এক ত্রৈমাসিক পিছিয়ে দেওয়ার বদলে সপ্তাহে চুক্তি বন্ধ করে।

এন্টারপ্রাইজ। একটি বৈশ্বিক ই-কমার্স কোম্পানি তার প্ল্যাটফর্ম আগে আন্তর্জাতিকীকরণ করে: সর্বত্র UTF-8, বাইরে রাখা স্ট্রিং, একটি লোকেল-সচেতন বিন্যাস লাইব্রেরি, এবং অনুবাদ স্মৃতি ও প্রতি-ভাষা শব্দকোষসহ একটি নিরন্তর স্থানীয়করণ পাইপলাইন। একটি নতুন বাজারে প্রবেশ প্রকৌশল প্রকল্পের বদলে মূলত একটি কনটেন্ট অনুশীলন হয়ে ওঠে (অনুবাদ, পর্যালোচনা, ছবি সমন্বয়), কোম্পানিকে সপ্তাহে নতুন লোকেল চালু করতে দিয়ে। যৌক্তিক বিন্যাস বৈশিষ্ট্যে গড়া ডান-থেকে-বামে সমর্থন মানে আরবি ও হিব্রু বাজারে সামান্য নতুন UI কাজ লেগেছে।

সরকার। একটি ডান-থেকে-বামে লিপি ও সংখ্যালঘু ভাষাসহ কয়েকটি সরকারি ভাষায় সেবা দিতে আইনত বাধ্য একটি জাতীয় সরকার সংস্থা জুড়ে ব্যবহৃত একটি ভাগ করা i18n কাঠামো ও অনুবাদ কর্মপ্রবাহ গড়ে। CI-তে ছদ্ম-স্থানীয়করণ লঞ্চের আগে হার্ড-কোড করা স্ট্রিং ও ছাঁটা ধরে; একটি ভাগ করা শব্দকোষ সেবা ও ভাষা জুড়ে আইনি পরিভাষা সামঞ্জস্যপূর্ণ রাখে। নাগরিকরা তাদের নিজস্ব ভাষায় সঠিক তারিখ, সংখ্যা ও নামের বিন্যাসসহ কর, স্বাস্থ্য ও সুবিধা লেনদেন সম্পূর্ণ করতে পারে, ভাষা-অ্যাক্সেস আইন সন্তুষ্ট করে এবং অ-সংখ্যাগরিষ্ঠ-ভাষার বক্তাদের জন্য সমতা উন্নত করে।

ব্যবসায়িক যুক্তি: প্রেরণা, ROI ও TCO

আন্তর্জাতিকীকরণের ROI হলো বাজার প্রবেশ ও গতি। একটি সুআন্তর্জাতিকীকৃত পণ্য দ্রুত ও সস্তায় নতুন দেশ ও ভাষা বাজারে ঢুকতে পারে, প্রতিটি নতুন লোকেলকে একটি বড় প্রকল্পের বদলে ক্রমবর্ধমান রাজস্ব বা নাগরিক নাগালে পরিণত করে। স্থানীয়করণ মান প্রতিটি বাজারে রূপান্তর, আস্থা ও সহায়তা খরচ চালায়: পণ্য তাদের ভাষা সঠিকভাবে বললে এবং তাদের রীতি সম্মান করলে ব্যবহারকারীরা বেশি লেনদেন করে এবং কম সহায়তায় যোগাযোগ করে।

TCO-তে গ্রহণ খরচ আন্তর্জাতিকীকরণের অগ্রিম প্রকৌশল, এবং চলমান অনুবাদ ও পাইপলাইন খরচ। গ্রহণ না করার খরচ ব্যয়বহুল পুনঃসংযোজন: পুরো কোডবেস জুড়ে হার্ড-কোড করা স্ট্রিং, জোড়া দেওয়া, এনকোডিং বাগ ও বিন্যাস অনুমান খোলা, প্রায়ই একটি বাজার বা আইনি প্রয়োজনে চালিত সময়সীমায়। খারাপ স্থানীয়করণেরও লুকানো খরচ আছে: খারাপভাবে সেবা পাওয়া বাজারে হারানো বিক্রয়, বিভ্রান্তিকর বিন্যাস থেকে সহায়তা বোঝা, এবং ভুল অনূদিত উচ্চ-ঝুঁকির কনটেন্ট থেকে আইনি বা সুনামের ক্ষতি। নিরন্তর স্থানীয়করণ ব্যয়বহুল প্রি-লঞ্চ অনুবাদ হুড়োহুড়ি এড়ায়।

নেতৃত্বের কাছে যুক্তি দিতে আন্তর্জাতিকীকরণকে ভবিষ্যৎ বাজারে একটি বিকল্প হিসেবে ফ্রেম করুন। এটি একটি মাঝারি অগ্রিম বিনিয়োগ যা প্রতিটি ভবিষ্যৎ বাজার প্রবেশের খরচ ও সময় নাটকীয়ভাবে কমায়। সরকারের জন্য চালক হলো আইনি ভাষা-অ্যাক্সেস বাধ্যবাধকতা ও সমতা, প্রতিটি ভাষায় সেবা পাওয়া জনগোষ্ঠী দিয়ে পরিমাণ করা।

অ্যান্টি-প্যাটার্ন ও ফাঁদ

  • হার্ড-কোড করা স্ট্রিং: কোডে গেঁথে থাকা ব্যবহারকারী পাঠ্য, প্রতি লোকেলে কোড পরিবর্তন বাধ্য করে।
  • স্ট্রিং জোড়া দেওয়া: খণ্ড থেকে বাক্য গড়া, যা ব্যাকরণ ও শব্দক্রম ভাঙে।
  • অ-ইউনিকোড অনুমান: এনকোডিং বাগ, মোজিবেক (অমিল অক্ষর এনকোডিং থেকে এলোমেলো পাঠ্য), এবং লিপি প্রতিনিধিত্ব করতে অক্ষমতা।
  • ইংরেজি পাঠ্য দৈর্ঘ্য ধরে নেওয়া: অনূদিত হলে ছাঁটা বা ওভারল্যাপ হওয়া বিন্যাস।
  • ডান-থেকে-বামে উপেক্ষা: আয়না করতে না পারা ভৌত বাম/ডান বিন্যাস ব্যবহার।
  • সাধারণ বহুবচনীকরণ: বেশিরভাগ ভাষায় ভুল একবচন/বহুবচন যুক্তি।
  • লোকেল-অন্ধ বিন্যাস: হার্ড-কোড করা তারিখ, সংখ্যা ও মুদ্রা বিন্যাস।
  • প্রসঙ্গ ছাড়া অনুবাদ: অনুবাদকরা অর্থ অনুমান করে ভুল তৈরি করেন।
  • ব্যাচ, শেষ-মুহূর্তের স্থানীয়করণ: নিরন্তর পাইপলাইনের বদলে প্রি-লঞ্চ হুড়োহুড়ি।
  • সাংস্কৃতিক বধিরতা: স্থানীয়ভাবে অপমানজনক বা বিভ্রান্তিকর ছবি, রং বা উদাহরণ।

পরিপক্বতা মডেল

স্তর ১: সূচনা। একক ভাষা, হার্ড-কোড করা স্ট্রিং, অ-ইউনিকোড অনুমান এবং জোড়া দিয়ে গড়া পাঠ্য। আন্তর্জাতিকীকরণ প্রতিক্রিয়াশীল: যেকোনো নতুন লোকেল মানে কোড বদলানো, এবং এনকোডিং ও বিন্যাস বাগ প্রোডাকশনে দুর্ঘটনাবশত পাওয়া যায়।

স্তর ২: বিকাশ। কিছু স্ট্রিং বাইরে রাখা এবং কিছু জায়গায় ইউনিকোড ব্যবহৃত, কিন্তু চর্চা দল জুড়ে অসঙ্গত। স্থানীয়করণ একটি ম্যানুয়াল, ব্যাচ, প্রি-লঞ্চ পরিশ্রম, এবং বিন্যাস, বহুবচন পরিচালনা ও ডান-থেকে-বামে সমর্থন এক দল থেকে অন্য দলে ভিন্নভাবে (বা আদৌ নয়) সামলানো হয়।

স্তর ৩: মানসম্মতকরণ। একটি ভাগ করা i18n স্থাপত্য ও লোকেল-সচেতন বিন্যাস লাইব্রেরি প্রতিষ্ঠান-ব্যাপী নথিবদ্ধ, প্রয়োগ করা মান। লিন্ট নিয়ম দিয়ে স্ট্রিং বাইরে রাখা পরীক্ষিত, শব্দকোষ ও অনুবাদ স্মৃতিসহ একটি অনুবাদ ব্যবস্থাপনা সিস্টেম ও নিরন্তর পাইপলাইন আছে, এবং ছদ্ম-স্থানীয়করণ সহ বহু-লোকেল পরীক্ষা (একটি ডান-থেকে-বামে ও একটি দীর্ঘ-পাঠ্য লোকেলসহ) CI-তে চলে।

স্তর ৪: ব্যবস্থাপনা। স্থানীয়করণ কর্মসূচি ভিত্তিরেখার বিপরীতে মাপা ও নিয়ন্ত্রিত। দলগুলো ভাষা কভারেজ, স্থানীয়করণ মান ও ত্রুটি হার, কমিট থেকে অনূদিত রিলিজ পর্যন্ত স্ট্রিং-সিঙ্ক বিলম্ব, প্রতি রিলিজে ধরা ছাঁটা ও ডান-থেকে-বামে রেন্ডারিং ত্রুটি, প্রতি লোকেলে অনুবাদ খরচ, এবং একটি নতুন লোকেল চালুর সময় অনুসরণ করে, এবং এই মেট্রিক রিলিজ গেট করে ও মানব পর্যালোচনা বনাম যন্ত্র অনুবাদে কোথায় বিনিয়োগ করবে তা চালায়।

স্তর ৫: সমন্বয়। আন্তর্জাতিকীকরণ ও স্থানীয়করণ নিরন্তর উন্নত ও প্রতিষ্ঠান জুড়ে একীভূত। স্থানীয়করণ নিরন্তর, যন্ত্র ও মানব অনুবাদ প্রতি কনটেন্ট শ্রেণির জন্য সুচিন্তিতভাবে বাছা, এবং সাংস্কৃতিক অভিযোজন পদ্ধতিগত। প্রতিষ্ঠান বাজার ও সমতার প্রমাণে সাড়া দিয়ে লোকেল যোগ, অবসর ও পুনর্নির্ধারণ করে, এবং নতুন লোকেল পুনঃসংযোজন ছাড়াই উচ্চ মানে দ্রুত চালু হয়।

আলোচনার ভাবনা

  • আন্তর্জাতিক চাহিদা অনিশ্চিত হলে একটি পণ্য কত আগে আন্তর্জাতিকীকরণ করা উচিত?
  • যন্ত্র অনুবাদ কোথায় গ্রহণযোগ্য, এবং কোথায় মানুষকে পর্যালোচনা করতে হবে?
  • অনেক ভাষা ও দল জুড়ে আপনি কীভাবে পরিভাষা সামঞ্জস্যপূর্ণ রাখেন?
  • বাড়তি রূপ রক্ষণাবেক্ষণের বিপরীতে কতটা আঞ্চলিক সাংস্কৃতিক অভিযোজন মূল্যবান?
  • ডান-থেকে-বামে ও সংখ্যালঘু-ভাষা সমর্থন কীভাবে অগ্রাধিকার ও পরীক্ষা করা উচিত?
  • পাইপলাইন ধীর না করে আপনি অনুবাদকদের যথেষ্ট প্রসঙ্গ কীভাবে দেন?

প্রধান শিক্ষা

  • স্থাপত্য একবার আন্তর্জাতিকীকরণ করুন; কনটেন্ট বহুবার স্থানীয়করণ করুন।
  • সর্বত্র ইউনিকোড ব্যবহার করুন, সব স্ট্রিং বাইরে রাখুন, এবং অনুবাদ কখনো জোড়া দেবেন না।
  • পাঠ্য প্রসারণ, ডান-থেকে-বামে লিপি এবং লোকেল-নির্দিষ্ট বহুবচন ও বিন্যাস নিয়মের জন্য পরিকল্পনা করুন।
  • অনুবাদ স্মৃতি, শব্দকোষ ও প্রসঙ্গসহ একটি নিরন্তর স্থানীয়করণ পাইপলাইন চালান।
  • প্রকৃত অনুবাদের আগে i18n বাগ ধরতে CI-তে আগে ছদ্ম-স্থানীয়করণ করুন।
  • স্থানীয়করণ কেবল ভাষাগত নয়, সাংস্কৃতিক।
  • আগে আন্তর্জাতিকীকরণ পুনঃসংযোজনের চেয়ে অনেক সস্তা; সরকারের জন্য এটি একটি আইনি সমতা প্রয়োজন।

তথ্যসূত্র ও আরও পড়ার জন্য

  • The Unicode Consortium, The Unicode Standard and Common Locale Data Repository (CLDR)
  • W3C Internationalisation (i18n) Activity, techniques and best practices
  • Richard Ishida, W3C internationalisation articles and tutorials
  • Bert Esselink, A Practical Guide to Localisation
  • John Yunker, Beyond Borders: Web Globalisation Strategies
  • Unicode Technical Standard #35 (locale data markup) and ICU library documentation
  • IETF BCP 47 language tags
  • Government multilingual service and language-access guidance
  • Nielsen Norman Group and W3C articles on RTL, text expansion, and localisation UX