কীভাবে জাভাস্ক্রিপ্টে আন্তর্জাতিকীকরণ কাজ করবে?


143

আমি ভাবছি কীভাবে জাভাস্ক্রিপ্টে আন্তর্জাতিকীকরণ মোকাবেলা করা যায়। আমি গুগল করেছিলাম তবে এর জন্য দৃ conv়প্রত্যয়ী উত্তর পাচ্ছি না:

  • জাভাস্ক্রিপ্টের আন্তর্জাতিকীকরণের জন্য স্থানীয় সমর্থন আছে?
  • জাভাস্ক্রিপ্টে আই 18 এন কী?
  • ক্যালেন্ডার, মুদ্রা, তারিখ ইত্যাদি কীভাবে মোকাবেলা করবেন?

আমি ইতিমধ্যে জাভাস্ক্রিপ্টের ভিতরে আন্তর্জাতিকীকরণটি পড়েছি ।


মাইক্রোসফ্ট সম্প্রতি একটি জ্যাকুরি বিশ্বায়ন প্লাগইন প্রকাশ করেছে। বিশদগুলি এখানে
অ্যাডিল

উত্তর:


161

উত্তরাধিকারী ব্রাউজারগুলিতে স্থানীয়করণের সমর্থন দুর্বল। মূলত, এটি ECMAScriptভাষা বর্ণের বাক্যাংশগুলির কারণে যা দেখতে এরকম দেখায়:

সংখ্যা.প্রোটোটাইপ.টোলোক্যালস্ট্রিং ()
একটি স্ট্রিং মান তৈরি করে যা হোস্ট পরিবেশের বর্তমান লোকেলের কনভেনশন অনুসারে বিন্যাসিত সংখ্যার মান উপস্থাপন করে। এই ফাংশনটি বাস্তবায়ন-নির্ভর, এবং এটি অনুমোদিত, তবে উত্সাহিত নয়, যাতে এটি স্ট্রাস্টিংয়ের মতো একই জিনিস ফেরত দেয় ।

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

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

  • ক্রোম 24
  • ফায়ারফক্স 29
  • ইন্টারনেট এক্সপ্লোরার 11
  • অপেরা 15

এছাড়াও একটি সামঞ্জস্য বাস্তবায়ন রয়েছে, Intl.js , যা এমন পরিবেশে যেখানে এটি ইতিমধ্যে বিদ্যমান নেই সেখানে API সরবরাহ করবে।

ব্যবহারকারীর পছন্দসই ভাষা নির্ধারণ করা একটি সমস্যা হিসাবে রয়ে গেছে যেহেতু বর্তমান ভাষা প্রাপ্তির জন্য কোনও নির্দিষ্টকরণ নেই। প্রতিটি ব্রাউজার একটি ভাষার স্ট্রিং প্রাপ্ত করার জন্য একটি পদ্ধতি প্রয়োগ করে তবে এটি ব্যবহারকারীর অপারেটিং সিস্টেমের ভাষা বা ব্রাউজারের ভাষার উপর ভিত্তি করে হতে পারে:

// navigator.userLanguage for IE, navigator.language for others
var lang = navigator.language || navigator.userLanguage;

এটির জন্য একটি ভাল কাজ হ'ল গ্রাহককে সার্ভার থেকে গ্রহণ-ভাষা শিরোনাম ডাম্প করা। যদি একটি জাভাস্ক্রিপ্ট হিসাবে ফর্ম্যাট করা হয় তবে এটি আন্তর্জাতিকীকরণ এপিআই কনস্ট্রাক্টরগুলির কাছে যেতে পারে, যা স্বয়ংক্রিয়ভাবে সেরা (বা প্রথম সমর্থিত) লোকেলটি বেছে নেবে।

সংক্ষেপে, আপনাকে প্রচুর কাজ নিজেই করতে হবে, বা একটি ফ্রেমওয়ার্ক / লাইব্রেরি ব্যবহার করতে হবে, কারণ আপনার পক্ষে এটি করার জন্য আপনি ব্রাউজারের উপর নির্ভর করতে পারবেন না।

স্থানীয়করণের জন্য বিভিন্ন গ্রন্থাগার এবং প্লাগইন:

  • অন্যান্য:

সংযোজন / সম্পাদনা নির্দ্বিধায়।


13
অবদানকারী সকল লোককে ধন্যবাদ; আমি কখনই ভাবিনি যে আমি আমার পুরানো উত্তরগুলি পড়ে কিছু শিখতে পারি। আমি সেখানে আন্তর্জাতিকীকরণ এপিআই স্পেসের আপডেট দেখতে পেরে আনন্দিত, এটি সত্যিই দুর্দান্ত এবং আমি ক্রোমে এটি ড্রাইভ পরীক্ষা করতে পেরেছি।
অ্যান্ডি ই

1
চমৎকার সংকলনের জন্য ধন্যবাদ। একটি ইতিবাচক নোট উপর, এটা দেখে মনে হচ্ছে মজিলা) শীঘ্রই একটি আধুনিক toLocaleString (অর্ণবপোত পারে - সম্ভবত FF28: bugzilla.mozilla.org/show_bug.cgi?id=769871
ক্রিস অ্যাডামস

1
i18next.com এখন শীর্ষ স্থানীয় লোকাইজ২৪.কম-এ নির্মিত একটি অনুবাদ ব্যবস্থাপনার সাথে আসে - আপনার যদি পুরো অনুবাদ প্রক্রিয়াটি সমাধান করতে হয় তবে এটি আপনার পক্ষে বড় জয় হতে পারে - কেবল আইডেনের জন্য আপনার কোডটি নয়। প্লাসটিতে একটি দুর্দান্ত ইনকন্টেক্সট এডিটর বৈশিষ্ট্য রয়েছে ...
জামুহল

12

মজিলা সম্প্রতি দুর্দান্ত দুর্দান্ত2020 বা স্থানীয়করণ 2.0 প্রকাশ করেছে। তাদের নিজস্ব কথায় L20n হয়

একটি উন্মুক্ত উত্স, স্থানীয়করণ-নির্দিষ্ট স্ক্রিপ্টিং ভাষা লিঙ্গ, বহুবচন, বিবাহ এবং প্রাকৃতিক ভাষার বেশিরভাগ অন্যান্য উদ্দীপনা উপাদানগুলির প্রক্রিয়া করতে ব্যবহৃত হয়।

তাদের জেএস বাস্তবায়ন গিথুব এল 20 এন সংগ্রহস্থলে রয়েছে।


আমি একটি প্রকল্প শুরু করেছি যার স্থানীয়করণ প্রয়োজন এবং আমরা L20nও ব্যবহার করার সিদ্ধান্ত নিয়েছি;)। সুতরাং আমি প্রয়োজনীয় জেএস ( github.com/fernandogmar/L20n-RequireJS ) এর জন্য একটি L20n প্লাগিনের প্রথম সংস্করণটি কব্জি করেছি আমি আশা করি এটি আপনার পক্ষেও কার্যকর হবে। কোন পরামর্শ স্বাগত জানানো হবে।
ফার্নান্দো জিএম

0

এর কয়েকটি দেশীয়, বাকিগুলি গ্রন্থাগারের মাধ্যমে পাওয়া যায়।

উদাহরণস্বরূপ ডেটজস একটি ভাল আন্তর্জাতিক তারিখের পাঠাগার।

বাকিগুলির জন্য, এটি কেবল ভাষা অনুবাদ সম্পর্কে এবং জাভাস্ক্রিপ্টটি মূলত ইউনিকোডের সাথে সামঞ্জস্যপূর্ণ (পাশাপাশি সমস্ত বড় ব্রাউজারগুলি)।


0

আপনি অন্য একটি গ্রন্থাগারও চেষ্টা করতে পারেন - https://github.com/wikimedia/jquery.i18n

প্যারামিটার প্রতিস্থাপন এবং একাধিক বহুবচন ফর্ম ছাড়াও, এটি লিঙ্গের পক্ষে কাস্টম ব্যাকরণ নিয়মের একটি অনন্য বৈশিষ্ট্য রয়েছে যা কিছু ভাষার প্রয়োজন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.