Traduções

As mensagens padrão no Blockly (como o texto no menu de contexto) foram traduzidas para vários idiomas diferentes. A localidade en é carregada por padrão, mas as outras localidades disponíveis também podem ser incluídas.

Como configurar a localidade com npm

Ao importar o Blockly com import * as Blockly from 'blockly';, você recebe os módulos padrão: núcleo Blockly, blocos integrados Blockly, o gerador de JavaScript e os arquivos de idioma em inglês.

Para usar outras localidades, defina suas importações com mais cuidado:

Importar módulos padrão do Blockly

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

Importar idiomas do Blockly

Por exemplo, para importar o conjunto de mensagens em francês:

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

Para uma lista completa de localidades compatíveis do Blockly, consulte: https://github.com/google/blockly/tree/master/msg/js

Configurar localidade

Depois de importar o conjunto de mensagens desejado, defina a localidade no Blockly. No momento, essa função só está incluída na versão npm do Blockly.

Blockly.setLocale(Fr);

Ele precisa ser chamado antes que o espaço de trabalho seja carregado.

Como configurar a localidade sem npm

Inclua o script src adequado do diretório de mensagens do Blockly para que as traduções sejam incluídas automaticamente.

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

Traduções personalizadas

O Blockly inclui traduções para todas as strings padrão, mas se você tiver blocos personalizados com texto, poderá incluir suas próprias traduções para essas strings. Por exemplo, a estrutura de blockly/msg/es é semelhante a esta:

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

Você pode adicionar outras mensagens personalizadas como novas propriedades no objeto Blockly.Msg chamando setLocale com um objeto com suas traduções personalizadas. É possível prefixar as traduções com um prefixo personalizado para evitar conflitos com traduções padrão que possam ser adicionadas no futuro.

// 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);

O setLocale coloca cada chave do objeto de entrada em Blockly.Msg. Você pode chamá-lo várias vezes com chaves diferentes, mas chamá-lo uma segunda vez com uma chave duplicada substituirá a primeira.

Para fazer referência à string traduzida no seu bloco, use Blockly.Msg['HELLO'], que precisa conter a string da localidade configurada.