ब्लॉक की ऐसी परिभाषाओं को ब्लॉक करें जिन्हें उपयोगकर्ता की भाषा में स्थानीय भाषा में बदला जा सकता है. स्ट्रिंग टेबल का इस्तेमाल करके, JSON ब्लॉक की परिभाषा में मैसेज स्ट्रिंग इनपुट, फ़ील्ड, और लेबल को भाषा के शब्द के हिसाब से बदल सके, शब्द क्रम, और दिशा.
इन सभी मामलों में, 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
स्ट्रिंग टेबल में किसी स्ट्रिंग का रेफ़रंस है. जब
ब्लॉक इंस्टैंशिएट किया जाता है, और Blockly, स्ट्रिंग को वैल्यू से बदलने की कोशिश करता है.
उदाहरण के लिए, %{BKY_LISTS_REPEAT_TITLE}
को
Blockly.Msg['LISTS_REPEAT_TITLE']
, अगर यह मौजूद है. अगर वैल्यू मौजूद नहीं है, तो
%{BKY_...}
नोटेशन सही जगह पर रहता है. इसके बाद, ब्लॉकली से एक चेतावनी मिलती है
किया जा सकता है.
जैसा कि उदाहरण में दिखाया गया है, नोटेशन कई जगहों पर काम करता है. मैसेज
और टूलटिप के ज़रिए, उपयोगकर्ता को दिखने वाली स्ट्रिंग बदली जा सकती हैं. इसी तरह, ड्रॉपडाउन
फ़ील्ड, आइटम टेक्स्ट के लिए नोटेशन का इस्तेमाल भी कर सकते हैं. सहायता यूआरएल का स्थानीय भाषा में अनुवाद किया जा सकता है
पक्का करें कि उपयोगकर्ता को उसी तरह स्थानीय भाषा में लिखे गए पेज पर भेजा जाए. और आख़िर में,
ब्लॉक के पैलेट को एक ही जगह पर लाने के लिए, colour
वैल्यू नोटेशन का इस्तेमाल कर सकती है.
अगर आप JavaScript लागू करने के तरीके का इस्तेमाल कर रहे हैं और आपको
उपयोगकर्ता भाषा के आधार पर सेट करते हैं, तो आपको प्रत्यक्ष संदर्भ का उपयोग करना ज़्यादा आसान लग सकता है. इसके लिए
उदाहरण के लिए, Blockly.Msg['LISTS_REPEAT_TITLE']
या
Blockly.Msg.LISTS_REPEAT_TITLE'
.
स्ट्रिंग टेबल, भाषा के हिसाब से बनी .js
फ़ाइलों में से किसी एक के ज़रिए लोड की जाती हैं
msg/js
. लोड करें
सही फ़ाइल ब्लॉक करें, ताकि अनुवाद को ब्लॉक किया जा सके.
JSON मैसेज इंटरपोलेशन
message0
एट्रिब्यूट (और message1
, message2
वगैरह) इनपुट के हिसाब से,
फ़ील्ड, और आस-पास के लेबल टेक्स्ट. LISTS_REPEAT_TITLE
के लिए,
lists_repeat
ब्लॉक, अंग्रेज़ी की वैल्यू यह है:
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
स्क्रिप्ट का हिस्सा है. कॉन्टेंट बनाने
स्क्रिप्ट, आइडेंटिफ़ायर कुंजियों और अंग्रेज़ी अनुवाद को
msg/messages.js
नया en.json
बनाने के लिए.
इसके बाद, उन भाषाओं और सभी अनुवादों के साथ
अन्य JSON फ़ाइलें,
यह फिर से अपडेट हो जाएगा
JavaScript स्ट्रिंग टेबल
सभी भाषाओं के लिए, जिनमें नई भाषा भी शामिल है
en.js
.
अंग्रेज़ी के अलावा अन्य भाषाओं में जनरेट की गई JSON फ़ाइलें, पार्टनर से यहां मिलती हैं: TranslateWiki. ज़्यादा जानकारी के लिए, नोट चालू है अनुवाद किया जा रहा है देखें.