Blockly のデフォルト メッセージ(コンテキスト メニューのテキストなど)は、さまざまな言語に翻訳されています。en
ロケールはデフォルトで読み込まれますが、他の使用可能なロケールも含めることができます。
npm によるロケールの構成
import * as Blockly from 'blockly';
を使用して Blockly をインポートすると、Blockly コア、Blockly 組み込みブロック、JavaScript ジェネレータ、英語の lang ファイルのデフォルト モジュールが取得されます。
他の言語 / 地域を使用する場合は、インポートをより慎重に定義する必要があります。
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 の npm リリースにのみ含まれています。
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";
カスタム翻訳を含むオブジェクトを指定して 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
に配置します。異なるキーで複数回呼び出すことはできますが、重複するキーで 2 回目に呼び出すと、最初のキーが上書きされます。
ブロック内の翻訳された文字列を参照するには、Blockly.Msg['HELLO']
を使用します。これには、構成したロケールの文字列が含まれている必要があります。
関連トピック
- 右から左に書く言語: RTL デモをご覧ください。
- ブロックのローカライズ