Übersetzungen

Die Standardmeldungen 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 auch eingeschlossen werden.

Gebietsschema mit npm konfigurieren

Wenn Sie Blockly mit import * as Blockly from 'blockly'; importieren, erhalten Sie die Standardmodule: Blockly Core, Blockly integrierte Blöcke, den JavaScript-Generator und die englischen lang-Dateien.

Wenn Sie andere Sprachen verwenden möchten, müssen Sie Ihre Importe genauer 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 das französische Nachrichtenset:

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

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

Sprache konfigurieren

Nachdem Sie den gewünschten Nachrichtensatz importiert haben, müssen Sie die Sprache in Blockly festlegen. Diese Funktion ist derzeit nur in der npm-Version von Blockly enthalten.

Blockly.setLocale(Fr);

Diese Funktion muss aufgerufen werden, bevor der Arbeitsbereich geladen wird.

Sprache ohne npm konfigurieren

Fügen Sie die entsprechende Script-Src aus dem Blockly-msg-Verzeichnis ein. Die Übersetzungen werden dann 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 schließt Übersetzungen für alle Standardstrings ein. Wenn Sie jedoch benutzerdefinierte Blöcke mit Text haben, können Sie auch eigene Übersetzungen für diese Strings hinzufügen. Die Struktur von blockly/msg/es sieht beispielsweise so aus:

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

Sie können dem Blockly.Msg-Objekt zusätzliche benutzerdefinierte Nachrichten als neue Properties hinzufügen. Rufen Sie dazu setLocale mit einem Objekt mit Ihren benutzerdefinierten Übersetzungen auf. Sie können Ihren Übersetzungen ein benutzerdefiniertes Präfix vorangestellt, um Konflikte mit Standardübersetzungen zu vermeiden, die in Zukunft hinzugefügt werden könnten.

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

Verwende Blockly.Msg['HELLO'], um in deinem Block auf den übersetzten String zu verweisen. Dieser String sollte den String für die von dir konfigurierte Sprache enthalten.