Tłumaczenia

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.