Traduções

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

Como configurar a localidade com o npm

Ao importar o Blockly com import * as Blockly from 'blockly';, você recebe os módulos padrão: Blockly core, Blockly built-in blocos, o gerador de JavaScript e os arquivos lang 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 conferir uma lista completa de localidades com suporte do Blockly, consulte: https://github.com/google/blockly/tree/master/msg/js

Configurar a localidade

Depois de importar o conjunto de mensagens desejado, defina a localidade no Blockly. No momento, essa função está incluída apenas 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 apropriado do diretório de msg do Blockly, e as traduções serão 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, é possível 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";

É possível adicionar outras mensagens personalizadas como novas propriedades no objeto Blockly.Msg chamando setLocale com um objeto com suas traduções personalizadas. Você pode prefixar suas 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);

setLocale coloca cada chave do objeto de entrada em Blockly.Msg. É possível chamá-lo várias vezes com chaves distintas, mas chamar pela segunda vez com uma chave duplicada substitui a primeira.

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