अनुवाद

ब्लॉकली में डिफ़ॉल्ट मैसेज (जैसे कि संदर्भ मेन्यू में मौजूद टेक्स्ट) का कई अलग-अलग भाषाओं में अनुवाद किया गया है. en स्थान-भाषा डिफ़ॉल्ट रूप से लोड होती है, लेकिन इसमें अन्य उपलब्ध स्थान-भाषाएं भी शामिल की जा सकती हैं.

एनपीएम के साथ स्थान-भाषा को कॉन्फ़िगर करना

import * as Blockly from 'blockly'; के साथ ब्लॉकली को इंपोर्ट करने पर, आपको डिफ़ॉल्ट मॉड्यूल मिलेंगे: ब्लॉकली कोर, ब्लॉकली बिल्ट-इन ब्लॉक, JavaScript जनरेटर, और अंग्रेज़ी भाषा की फ़ाइलें.

दूसरी स्थान-भाषाओं का इस्तेमाल करने के लिए, आपको इंपोर्ट के बारे में ज़्यादा ध्यान से बताना होगा:

ब्लॉकली डिफ़ॉल्ट मॉड्यूल इंपोर्ट करें

import * as Blockly from 'blockly/core';
import 'blockly/blocks';
import 'blockly/javascript'; // Or the generator of your choice

ब्लॉकली भाषाएं इंपोर्ट करें

उदाहरण के लिए, फ़्रेंच मैसेज सेट इंपोर्ट करने के लिए:

import * as Fr from 'blockly/msg/fr';

Blockly में इस्तेमाल की जा सकने वाली भाषाओं की पूरी सूची देखने के लिए, यह लिंक देखें: https://github.com/google/blockly/tree/master/msg/js

स्थान-भाषा कॉन्फ़िगर करें

अपनी पसंद के मैसेज सेट को इंपोर्ट करने के बाद, आपको ब्लॉकली में स्थान-भाषा को सेट करना होगा. फ़िलहाल, यह फ़ंक्शन सिर्फ़ Blockly की एनपीएम रिलीज़ में शामिल है.

Blockly.setLocale(Fr);

फ़ाइल फ़ोल्डर के लोड होने से पहले, इसे कॉल करना होगा.

एनपीएम के बिना स्थान-भाषा कॉन्फ़िगर करना

Blockly मैसेज डायरेक्ट्री से सही स्क्रिप्ट src शामिल करें और अनुवाद अपने-आप शामिल हो जाएंगे.

<script src="../../blockly_compressed.js"></script>
<script src="../../blocks_compressed.js"></script>
<script src="../../msg/js/ar.js"></script>

पसंद के मुताबिक अनुवाद

ब्लॉक रूप से, इसकी सभी डिफ़ॉल्ट स्ट्रिंग के लिए अनुवाद शामिल होते हैं. हालांकि, अगर आपके पास टेक्स्ट वाले कस्टम ब्लॉक हैं, तो उन स्ट्रिंग के लिए अपने अनुवाद शामिल किए जा सकते हैं. उदाहरण के लिए, blockly/msg/es का स्ट्रक्चर यहां बताया गया है:

Blockly.Msg["COLOUR_RGB_RED"] = "rojo";

अपने कस्टम अनुवाद के साथ किसी ऑब्जेक्ट के साथ setLocale को कॉल करके, Blockly.Msg ऑब्जेक्ट पर नई प्रॉपर्टी के तौर पर अतिरिक्त कस्टम मैसेज जोड़े जा सकते हैं. हो सकता है कि आप अपने अनुवादों के आगे एक कस्टम प्रीफ़िक्स जोड़ना चाहें, ताकि आने वाले समय में जोड़े जाने वाले किसी भी डिफ़ॉल्ट अनुवाद से होने वाली टकराव से बचा जा सके.

// In custom_es.js
export const CustomEs = {
  HELLO: "Hola",
}

// In your setup code
import * as Es from blockly/msg/Es;
import { CustomEs } from ../custom_es;
Blockly.setLocale(Es);
Blockly.setLocale(CustomEs);

setLocale, इनपुट ऑब्जेक्ट की हर कुंजी को Blockly.Msg में रखता है. इसे अलग-अलग कुंजियों के साथ कई बार कॉल किया जा सकता है, लेकिन डुप्लीकेट कुंजी से इसे दूसरी बार कॉल करने पर, पहली कुंजी की जगह यह कोड लागू होगा.

अपने ब्लॉक में अनुवाद की गई स्ट्रिंग का रेफ़रंस देने के लिए, Blockly.Msg['HELLO'] का इस्तेमाल करें. इसमें आपकी कॉन्फ़िगर की गई स्थान-भाषा के लिए स्ट्रिंग शामिल होनी चाहिए.