Blockly は、ユーザーの言語にローカライズできるブロック定義をサポートしています。 文字列テーブルを使用することで、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
文字列テーブルの文字列への参照です。Google
ブロックがインスタンス化されると、Blockly は文字列をその値に置き換えようとします。
たとえば、%{BKY_LISTS_REPEAT_TITLE}
は、次の値に置き換えられます。
Blockly.Msg['LISTS_REPEAT_TITLE']
(存在する場合)。値が存在しない場合は
%{BKY_...}
表記はそのまま残され、Blockly は警告を出力します。
表示されます
例に示されているように、この表記はいくつかの場所で機能します。メッセージ
ツールチップを使用して、ユーザーに表示される文字列を置き換えることができます。同様に
フィールドでは、アイテムのテキストの表記を使用することもできます。ヘルプ URL のローカライズが可能な言語:
同様にローカライズされたページにユーザーを誘導します。最後に、
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
の 2 つの補間マーカーで、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번 넣어, 리스트 생성";
右から左に表記する言語に翻訳する場合、メッセージ文字列は Unicode の方向コマンドは含めないでください。
// 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:詳しくは、 メモ 翻訳 をご覧ください。