Tłumaczenia

Domyślne komunikaty w Blockly (np. tekst w menu kontekstowym) zostały przetłumaczone na wiele różnych języków. Język en jest wczytywany domyślnie, ale można uwzględnić też inne dostępne języki.

Konfigurowanie ustawień regionalnych przy użyciu npm

Gdy zaimportujesz Blockly za pomocą import * as Blockly from 'blockly';, otrzymasz domyślne moduły: Blockly core, wbudowane bloki Blockly, generator JavaScriptu i pliki języka angielskiego.

Jeśli chcesz używać innych języków, musisz dokładniej zdefiniować importy:

Importuj domyślne moduły Blockly

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

Importuj języki Blockly

Aby na przykład zaimportować zestaw wiadomości w języku francuskim:

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

Pełną listę obsługiwanych języków znajdziesz na stronie https://github.com/google/blockly/tree/master/msg/js.

Skonfiguruj język

Po zaimportowaniu wybranego zestawu wiadomości ustaw język w Blockly. Ta funkcja jest obecnie uwzględniona tylko w wersji npm w Blockly.

Blockly.setLocale(Fr);

Należy to wywołać przed wczytaniem obszaru roboczego.

Konfigurowanie ustawień regionalnych bez npm

Dodaj odpowiednie źródło skryptu z katalogu Blockly msg, a tłumaczenia zostaną dołączone automatycznie.

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

Tłumaczenia na zamówienie

Blockly uwzględnia tłumaczenia wszystkich swoich ciągów domyślnych, ale jeśli masz niestandardowe bloki z tekstem, możesz użyć własnych tłumaczeń. Na przykład struktura obiektu blockly/msg/es jest podobna do tej:

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

Możesz dodać kolejne komunikaty niestandardowe jako nowe właściwości w obiekcie Blockly.Msg, wywołując setLocale z obiektem z własnymi tłumaczeniami. Do swoich tłumaczeń możesz dodawać prefiksy niestandardowe, aby uniknąć kolizji z jakimikolwiek domyślnymi tłumaczeniami, które mogą pojawić się w przyszłości.

// 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 umieszcza każdy klucz z obiektu wejściowego w obiekcie Blockly.Msg. Możesz wywołać ją wielokrotnie za pomocą różnych kluczy, ale wywołanie go po raz drugi z użyciem duplikatu spowoduje zastąpienie pierwszego.

Aby odwołać się do przetłumaczonego ciągu znaków w bloku, użyj parametru Blockly.Msg['HELLO'], który powinien zawierać ciąg znaków odpowiadający skonfigurowanego języka.