ব্লক স্থানীয়করণ

ব্লকলি ব্লক সংজ্ঞা সমর্থন করে যা ব্যবহারকারীর ভাষায় স্থানীয়করণ করা যেতে পারে। স্ট্রিং টেবিল ব্যবহারের মাধ্যমে, JSON ব্লক সংজ্ঞায় বার্তা স্ট্রিংগুলি ইনপুট, ক্ষেত্র এবং লেবেলগুলিকে ভাষার শব্দভাণ্ডার, শব্দ ক্রম এবং দিকনির্দেশ প্রতিফলিত করতে মানিয়ে নিতে পারে।

ইংরেজিতে lists_repeat ব্লকস্প্যানিশ ভাষায় lists_repeat ব্লককোরিয়ান ভাষায় lists_repeat ব্লকডান-থেকে-বাম আরবিতে lists_repeat ব্লক

এই সমস্ত ক্ষেত্রে একই JSON ব্লক সংজ্ঞা ভাগ করে:

// Block for creating a list with one element repeated.
{
  "type": "lists_repeat",
  "message0": "%{BKY_LISTS_REPEAT_TITLE}",
  "args0": [
    {
      "type": "input_value",
      "name": "ITEM"
    },
    {
      "type": "input_value",
      "name": "NUM",
      "check": "Number"
    }
  ],
  "output": "Array",
  "colour": "%{BKY_LISTS_HUE}",
  "tooltip": "%{BKY_LISTS_REPEAT_TOOLTIP}",
  "helpUrl": "%{BKY_LISTS_REPEAT_HELPURL}"
}

স্ট্রিং টেবিল

lists_repeat উদাহরণে বেশ কিছু "%{BKY_...}" স্ট্রিং রয়েছে। এগুলোর প্রত্যেকটি Blockly.Msg স্ট্রিং টেবিলের একটি স্ট্রিং এর রেফারেন্স। যখন ব্লকটি ইনস্ট্যান্ট করা হয়, ব্লকলি স্ট্রিংটিকে মান দিয়ে প্রতিস্থাপন করার চেষ্টা করে।

উদাহরণস্বরূপ, %{BKY_LISTS_REPEAT_TITLE} Blockly.Msg['LISTS_REPEAT_TITLE'] এর মান দিয়ে প্রতিস্থাপিত হয়, যদি এটি বিদ্যমান থাকে। মানটি বিদ্যমান না থাকলে, %{BKY_...} স্বরলিপিটি জায়গায় রেখে দেওয়া হয়, এবং ব্লকলি অনুপস্থিত অনুবাদের জন্য একটি সতর্কতা প্রকাশ করে।

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

আপনি যদি জাভাস্ক্রিপ্ট বাস্তবায়ন ব্যবহার করেন এবং রানটাইমে ব্যবহারকারীর ভাষা পরিবর্তন করার আশা না করেন, তাহলে সরাসরি রেফারেন্স ব্যবহার করা আপনার কাছে সহজ হতে পারে। উদাহরণস্বরূপ, হয় Blockly.Msg['LISTS_REPEAT_TITLE'] অথবা Blockly.Msg.LISTS_REPEAT_TITLE'

স্ট্রিং টেবিলগুলি msg/js এ ভাষার নির্দিষ্ট .js ফাইলগুলির যেকোনো একটির মাধ্যমে লোড করা হয়। সঠিক ব্লক অনুবাদ লোড করতে আপনার ওয়েব পৃষ্ঠায় উপযুক্ত ফাইল লোড করুন।

JSON মেসেজ ইন্টারপোলেশন

message0 অ্যাট্রিবিউট (এবং message1 , message2 , ইত্যাদি) ইনপুট, ক্ষেত্র এবং পার্শ্ববর্তী লেবেল পাঠ্য নির্দেশ করে। lists_repeat ব্লকে LISTS_REPEAT_TITLE এর জন্য ইংরেজি মান হল:

Blockly.Msg.LISTS_REPEAT_TITLE = 'create list with item %1 repeated %2 times';

দুটি ইন্টারপোলেশন মার্কার, %1 এবং %2 , দুটি ইনপুটের অবস্থান চিহ্নিত করে। আরো বিস্তারিত args0 অ্যারে প্রদান করা হয়. args1 message1 স্ট্রিং এর সাথে মিল থাকবে। ব্লক ইনপুট এবং ক্ষেত্র নির্দিষ্ট করার বিষয়ে আরও বিস্তারিত জানার জন্য কাস্টম ব্লক তৈরি করুন নির্দেশিকা দেখুন।

ইন্টারপোলেশন মার্কারগুলির মধ্যে পাঠ্যটি নামহীন লেবেল ক্ষেত্রে রূপান্তরিত হয়। এটি ব্লকের শব্দ ক্রম তৈরি করে এবং এটি কীভাবে পড়ে:

// In Spanish
Blockly.Msg.LISTS_REPEAT_TITLE = "crear lista con el elemento %1 repetido %2 veces";
// In Korean
Blockly.Msg.LISTS_REPEAT_TITLE = "%1을 %2번 넣어, 리스트 생성";

ডান-থেকে-বাম ভাষাতে অনুবাদ করার সময়, বার্তা স্ট্রিংটি ভিজ্যুয়াল ক্রমে লেখা হয় এবং ইউনিকোড দিক নির্দেশনা অন্তর্ভুক্ত করা উচিত নয়:

// In Arabic. Note how %2 is left of %1, since it read right to left.
Blockly.Msg.LISTS_REPEAT_TITLE = "إنشئ قائمة مع العنصر  %1 %2 مرات";

স্ট্রিং টেবিল পুনর্নির্মাণ

স্ট্রিং টেবিল .js ফাইল তৈরি করা হল build:langfiles স্ক্রিপ্টের অংশ। একটি নতুন en.json তৈরি করতে স্ক্রিপ্টটি msg/messages.js থেকে শনাক্তকারী কী এবং ইংরেজি অনুবাদ নেয়। তারপরে, অন্য JSON ফাইলগুলির সাথে এবং যে কোনো অনুবাদ পাওয়া গেলে, এটি একটি নতুন en.js সহ সমস্ত ভাষার জন্য আপডেট করা জাভাস্ক্রিপ্ট স্ট্রিং টেবিলগুলি পুনরায় তৈরি করবে।

অ-ইংরেজি JSON ফাইলগুলি TranslateWiki- এর অংশীদারদের কাছ থেকে আসে। আপনি কীভাবে সাহায্য করতে পারেন সে সম্পর্কে বিশদ বিবরণের জন্য অনুবাদের নোটগুলি দেখুন।