Übersetzungen

Die Standardnachrichten in Blockly (z. B. der Text im Kontextmenü) wurden in viele verschiedene Sprachen übersetzt. Die Sprache en wird standardmäßig geladen, aber die anderen verfügbaren Sprachen können ebenfalls aufgenommen werden.

Sprache mit npm konfigurieren

Wenn du Blockly mit import * as Blockly from 'blockly'; importierst, erhältst du die Standardmodule: Blockly Core, integrierte Blockly-Blöcke, den JavaScript-Generator und die englischen Lang-Dateien.

Wenn Sie andere Gebietsschemas verwenden möchten, müssen Sie Ihre Importe sorgfältiger definieren:

Blockly-Standardmodule importieren

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

Blockly-Sprachen importieren

So importieren Sie beispielsweise die französische Nachrichtengruppe:

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

Eine vollständige Liste der unterstützten Blockly-Gebietsschemata finden Sie unter https://github.com/google/blockly/tree/master/msg/js.

Sprache konfigurieren

Nachdem Sie die gewünschte Nachrichtengruppe importiert haben, sollten Sie das Gebietsschema in Blockly festlegen. Diese Funktion ist derzeit nur im npm-Release von Blockly enthalten.

Blockly.setLocale(Fr);

Dies muss aufgerufen werden, bevor der Arbeitsbereich geladen wird.

Sprache ohne npm konfigurieren

Wenn Sie die entsprechende Skript-Quelle aus dem Blockly-Nachrichtenverzeichnis einfügen, werden die Übersetzungen automatisch eingefügt.

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

Benutzerdefinierte Übersetzungen

Blockly fügt Übersetzungen für alle seine Standardstrings hinzu. Wenn Sie jedoch benutzerdefinierte Blöcke mit Text haben, können Sie Ihre eigenen Übersetzungen für diese Strings einbeziehen. Die Struktur von blockly/msg/es sieht beispielsweise so aus:

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

Sie können zusätzliche benutzerdefinierte Nachrichten als neue Attribute zum Blockly.Msg-Objekt hinzufügen, indem Sie setLocale mit einem Objekt mit Ihren benutzerdefinierten Übersetzungen aufrufen. Sie können Ihren Übersetzungen ein benutzerdefiniertes Präfix voranstellen, um Konflikte mit Standardübersetzungen zu vermeiden, die in Zukunft hinzugefügt werden.

// 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 setzt jeden Schlüssel aus dem Eingabeobjekt in Blockly.Msg. Sie können sie mehrmals mit unterschiedlichen Schlüsseln aufrufen. Wenn Sie sie jedoch ein zweites Mal mit einem doppelten Schlüssel aufrufen, wird der erste überschrieben.

Um auf den übersetzten String in Ihrem Block zu verweisen, verwenden Sie Blockly.Msg['HELLO']. Dieser sollte den String für die von Ihnen konfigurierte Sprache enthalten.