আপনি যদি Blockly কোরে একটি বৈশিষ্ট্য যোগ করেন যার জন্য নতুন ব্যবহারকারী-দৃশ্যমান স্ট্রিং প্রয়োজন, তাহলে আপনাকে অবশ্যই সেই স্ট্রিংগুলি Blockly.Msg
এ যোগ করতে হবে যাতে সেগুলি Translatewiki দ্বারা অনুবাদ করা যায়। (আপনার নিজের অ্যাপ্লিকেশনের জন্য স্থানীয়করণ টোকেন যোগ করার বিষয়ে তথ্যের জন্য, স্থানীয়করণ দেখুন।)
-
msg/messages.js
ফাইলে একটি উপযুক্ত নাম এবং বিবরণ সহ আপনার নতুন স্ট্রিং যোগ করুন। -
msg/json/qqq.json
এবংmsg/json/en.js
ফাইলগুলিতে স্বয়ংক্রিয়ভাবে আপনার অনুবাদ যোগ করতেnpm run messages
চালান। এই ধাপটি কিছু ক্ষেত্রেmsg/json/constants.js
বাmsg/json/synonyms.js
পরিবর্তন করতে পারে। - সঠিকতার জন্য স্বয়ংক্রিয়ভাবে তৈরি হওয়া ফাইলগুলি পরিদর্শন করুন। মনে রাখবেন যে স্ক্রিপ্টটি
qqq.json
এর শুরুতে@metadata
বিভাগটি সরিয়ে দিতে পারে। যদি এটি ঘটে, তাহলে আপনাকে সাবধানে সেই পরিবর্তনটি প্রত্যাবর্তন করা উচিত যাতে আপনার নতুন স্ট্রিং যোগ করা হয় কিন্তু@metadata
সরানো না হয়। - আপনার বৈশিষ্ট্য কোডে,
Blockly.Msg['MY_NEW_MESSAGE']
দিয়ে নতুন স্ট্রিং উল্লেখ করুন। - আপনার বৈশিষ্ট্য কোডের পাশাপাশি
msg
ফাইলগুলিতে সমস্ত পরিবর্তন করুন।
উদাহরণস্বরূপ, যদি আপনি এই কোডটি msg/messages.js
এ যোগ করেন:
/** @type {string} */
/// This is a hint to translators about the context for the message.
Blockly.Msg.MY_NEW_MESSAGE = 'This is a string that users will see!';
তারপর npm run messages
চালান, আপনি msg/en.json
এ নিম্নলিখিত পরিবর্তনগুলি দেখতে পাবেন:
// ...
"MY_NEW_MESSAGE": "This is a message that users will see!",
// ...
এবং msg/qqq.json
এ:
// ...
"MY_NEW_MESSAGE": "This is a hint to translators about the context for the message.",
// ...
তারপর আপনি Blockly.Msg['MY_NEW_MESSAGE']
দিয়ে কোডে এই স্ট্রিংটি উল্লেখ করতে পারেন।
অনুবাদ ইঙ্গিত
msg/messages.js
এ ট্রিপল-স্ল্যাশ মন্তব্য অনুবাদ করার সময় পরিপূরক তথ্য হিসেবে TranslateWiki ব্যবহারকারীদের দেখানো হয়। ব্যবহারকারীদের যেখানে বার্তাটি দেখানো হবে তার প্রসঙ্গ প্রদান করুন। যদি বার্তাটিতে প্যারামিটার থাকে (যেমন, %1
), তাহলে প্যারামিটারের অর্থ কী তা ব্যাখ্যা করুন।
এখানে একটি ভাল অনুবাদ ইঙ্গিতের একটি উদাহরণ যা প্যারামিটারগুলি ব্যাখ্যা করে এবং আরও তথ্যের জন্য একটি লিঙ্ক প্রদান করে।
/** @type {string} */
/// block text - Repeatedly counts a variable (%1)
/// starting with a (usually lower) number in a range (%2),
/// ending with a (usually higher) number in a range (%3), and counting the
/// iterations by a number of steps (%4). As in
/// [https://github.com/google/blockly/wiki/Loops#count-with
/// https://github.com/google/blockly/wiki/Loops#count-with].
Blockly.Msg.CONTROLS_FOR_TITLE = 'count with %1 from %2 to %3 by %4';
প্রসঙ্গ প্রকার
অনেক ইঙ্গিত একটি বার্তার প্রসঙ্গ ব্যাখ্যা করার জন্য একটি উপসর্গ ব্যবহার করে। সাধারণ উপসর্গগুলির মধ্যে রয়েছে:
- পাঠ্য ব্লক করুন
- বোতাম পাঠ্য
- প্রসঙ্গ মেনু
- ড্রপডাউন
- গণিত
- টোস্ট বিজ্ঞপ্তি
- টুলটিপ
যদি আপনার বার্তাটি এই প্রেক্ষাপটগুলির মধ্যে একটিতে উপস্থিত হয় তবে উপযুক্ত উপসর্গ ব্যবহার করুন।
সমার্থক শব্দ
কখনও কখনও একটি বার্তা কী পরিবর্তন করা প্রয়োজন, কিন্তু অনুবাদগুলি হয় না৷ সেই ক্ষেত্রে, আপনি পুরানো বার্তাটিকে নতুন বার্তার প্রতিশব্দ হিসাবে সেট করতে পারেন, যেমন:
/** @type {string} */
Blockly.Msg.CONTROLS_FOR_INPUT_DO = Blockly.Msg.CONTROLS_REPEAT_INPUT_DO;
ঐচ্ছিক বার্তা
কিছু বার্তার স্ট্রিংগুলির কিছু নির্দিষ্ট পরিস্থিতিতে, উদাহরণস্বরূপ, যথাযথ বিশেষ্য বা চিহ্ন ছাড়া অনুবাদের প্রয়োজন হয় না। ব্লকলিতে, সাহায্যের ইউআরএলগুলি প্রায়ই ঐচ্ছিক হিসেবে চিহ্নিত করা হয়।
ভাষাগুলি শুধুমাত্র ব্লকলি রিপোজিটরিতে প্রতিশ্রুতিবদ্ধ যদি সেগুলি কমপক্ষে 25% সম্পূর্ণ হয়। এইভাবে, ঐচ্ছিক হিসাবে অনুবাদ করার প্রয়োজন নেই এমন বার্তাগুলি চিহ্নিত করা সেই ভাষাগুলিকে ঐচ্ছিক অনুবাদ সম্পূর্ণ করার প্রয়োজন ছাড়াই থ্রেশহোল্ড পূরণ করতে সহায়তা করবে।
/** @type {string} */
/// {{Optional}} math - The symbol for the binary operation addition.
Blockly.Msg.MATH_ADDITION_SYMBOL = '+';
আইটেম অনুবাদ না
ডিফল্ট ব্লক বিভাগের জন্য ব্যবহৃত রং চিহ্নিত করা হয়েছে {% verbatim %} {% endverbatim %}। এই রঙগুলি স্থানীয়করণের উদ্দেশ্যে নয়, তবে স্থানীয়করণ পদ্ধতিতে রয়েছে যাতে বিকাশকারীরা সহজেই ডিফল্ট বিভাগে ব্লকের রঙ পরিবর্তন করতে পারে। আপনি যদি নতুন ব্লক বিভাগ যোগ করেন, তাহলে {% verbatim %} ব্যবহার করুন
{% endverbatim %} নির্দেশিকা। যদি আপনি একটি ভিন্ন ধরনের বার্তা যোগ করেন যা আপনি মনে করেন কখনই অনুবাদ করা উচিত নয়, বিবেচনা করুন স্থানীয়করণ সিস্টেমটি স্ট্রিংয়ের জন্য সঠিক জায়গা কিনা।
/** @type {string} */
/// {{Notranslate}} Hue value for all logic blocks.
Blockly.Msg.LOGIC_HUE = '210';