Domyślne komunikaty w Blockly (np. tekst w menu kontekstowym) zostały przetłumaczone na wiele języków. Domyślnie wczytywane jest środowisko językowe en
, ale można też uwzględnić inne dostępne środowiska językowe.
Konfigurowanie języka za pomocą npm
Gdy importujesz Blockly za pomocą import * as Blockly from 'blockly';
, otrzymasz moduły domyślne: Blockly core, wbudowane bloki Blockly, generator JavaScripta i pliki językowe angielskie.
Aby użyć innych języków, dokładniej zdefiniuj 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
Importowanie języków Blockly
Aby na przykład zaimportować zestaw wiadomości w języku francuskim:
import * as Fr from 'blockly/msg/fr';
Pełna lista obsługiwanych języków w Blockly: https://github.com/google/blockly/tree/master/msg/js
Konfigurowanie języka
Po zaimportowaniu odpowiedniego zestawu wiadomości ustaw język w Blockly. Ta funkcja jest obecnie dostępna tylko w wersji npm Blockly.
Blockly.setLocale(Fr);
Należy go wywołać przed załadowaniem obszaru roboczego.
Konfigurowanie języka bez npm
Uwzględnij odpowiedni plik skryptu src z katalogu msg w Blockly, a tłumaczenia zostaną uwzględnione automatycznie.
<script src="../../blockly_compressed.js"></script>
<script src="../../blocks_compressed.js"></script>
<script src="../../msg/js/ar.js"></script>
Tłumaczenia niestandardowe
Blockly zawiera tłumaczenia wszystkich domyślnych ciągów tekstowych, ale jeśli masz bloki niestandardowe z tekstem, możesz dodać własne tłumaczenia tych ciągów. Na przykład struktura blockly/msg/es
wygląda tak:
Blockly.Msg["COLOUR_RGB_RED"] = "rojo";
Możesz dodać kolejne komunikaty niestandardowe jako nowe właściwości obiektu Blockly.Msg
, wywołując funkcję setLocale
za pomocą obiektu z własnymi tłumaczeniami. Możesz dodać do tłumaczeń prefiks niestandardowy, aby uniknąć konfliktów z tłumaczeniami domyślnymi, które mogą zostać dodane 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);
Funkcja setLocale
umieszcza każdy klucz z obiektu wejściowego w obiekcie Blockly.Msg
. Możesz wywoływać go wielokrotnie, podając różne klucze, ale wywołanie go po raz drugi z duplikatem klucza spowoduje zastąpienie pierwszego.
Aby w bloku odwoływać się do przetłumaczonego ciągu znaków, użyj elementu Blockly.Msg['HELLO']
, który powinien zawierać ciąg znaków dla skonfigurowanej lokalizacji.
Powiązane artykuły
- Języki z zapisem od prawej do lewej: obejrzyj prezentację języków z zapisem od prawej do lewej.
- Lokalizowanie bloków