अनुवाद

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

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

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

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

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

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

Blockly की भाषाएं इंपोर्ट करना

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

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

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

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

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

Blockly.setLocale(Fr);

फ़ाइल फ़ोल्डर के लोड होने से पहले इसे कॉल करना ज़रूरी है.

npm के बिना स्थानीय भाषा कॉन्फ़िगर करना

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

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

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

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

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

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

// 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'] का इस्तेमाल करें. इसमें, कॉन्फ़िगर की गई स्थानीय भाषा की स्ट्रिंग होनी चाहिए.