Сообщения по умолчанию в Blockly (например, текст в контекстном меню) переведены на множество разных языков. Язык en
загружается по умолчанию, но можно включить и другие доступные языки.
Настройка локали с помощью npm
Когда вы импортируете Blockly с помощью import * as Blockly from 'blockly';
вы получите модули по умолчанию: ядро Blockly, встроенные блоки Blockly, генератор JavaScript и файлы английского языка.
Чтобы использовать другие локали, вам нужно более тщательно определить импорт:
Импорт модулей Blockly по умолчанию
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. Эта функция в настоящее время включена только в npm-версию Blockly.
Blockly.setLocale(Fr);
Это необходимо вызвать до загрузки рабочей области.
Настройка локали без npm
Включите соответствующий скрипт src из каталога Blockly msg, и переводы будут включены автоматически.
<script src="../../blockly_compressed.js"></script>
<script src="../../blocks_compressed.js"></script>
<script src="../../msg/js/ar.js"></script>
Индивидуальные переводы
Blockly включает переводы для всех строк по умолчанию, но если у вас есть собственные блоки с текстом, вы можете включить свои собственные переводы для этих строк. Например, структура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']
который должен содержать строку для настроенного вами языкового стандарта.
Связанные темы
- Языки с письмом справа налево: см. демонстрацию RTL.
- Локализация блоков