In diesem Beitrag zeige ich dir wie du das offizielle Localization Package von Unity in dein Spiel integrierst und für mehrere Sprachen anpasst.
Inhaltsverzeichnis
Was kann das Localization Package alles?
- String lokalisierung
- Gebe verschiedene Strings als Text aus je nach dem welche Sprache eingestellt ist
- Füge Platzhalter wie den Spielernamen mit Hilfe von Smart String ein
- Asset lokalisierung
- Sprache im Editor umschalten zum testen
- Import und export von Lokalisierungsdaten als XLIFF, CSV oder Google Sheets
- Gebe verschiedene Assets wie Texturen oder Audiodateien je nach Sprache aus
Localization Package installieren
Je nach dem welche Unity Version du verwendest ist der Installationsprozess unterschiedlich.
In diesem Beispiel ist die Version 1.1.1 vom Localization Package aktuell.
Unity Version 2020.3+
Öffne den Package Manager unter „Window > Package Manager„.
Klicke deshalb auf „+“ Symbol und wähle „Add package from git URL…„.
Trage com.unity.localization
ein und klicke auf „Add„. Jetzt wird das Package installiert und ist im Package Manager aufgelistet.
Unity Version 2021.2+
Mit der Version 2021.2 und neuer wird das Localization Package direkt im Package Manager angezeigt und du kannst es wie gewohnt installieren.
Localization Settings erstellen
Als erstes musst du eine Einstellungsdatei erstellen.
Gehe auf „Edit > Project Settings > Localization“ und klicke auf „Create„.
Ich erstelle einen Ordner in „Assets“ namens „Localization“ und speichere die Datei hier ab.
„Locales“ erstellen
„Locales“ repräsentieren eine Sprache und eine optionale Region, diese können auch zusätzliche Informationen wie Währung, Kalender und vom Benutzer definierte Daten enthalten.
Klicke dazu auf „Locale Generator„.
Jetzt öffnet sich ein neues Fenster mit einer Liste von Sprachen und Regionen.
Mit einem Häkchen auf der linken Seite wählst du die jeweiligen Sprachen aus und mit einem Klick auf „Generate Locales“ werden diese gespeichert. Ich erstelle im Ordner „Localization“ einen neuen Ordner namens „Locales“ in dem alle Sprachdateien gespeichert werden.
Jetzt siehst du in der Übersicht deine ausgewählten Sprachen.
Sprachen Auswahl festlegen
Im Bereich „Locale Selectors“ gibt man an in welcher Reihenfolge die Sprachauswahl erfolgen soll.
Du siehst hier drei Zeilen, standardmäßig ist dieser Zustand wie im Bild darunter zu sehen.
- Als erstes wird geprüft ob es eine Befehlszeilen Anweisung gibt, schlägt das fehl kommt die nächste Zeile zur Anwendung
- Bei „System Locale Selector“ wird geprüft was das System, entweder das Smartphone oder der PC auf dem das Spiel läuft für eine Sprache eingestellt hat, wenn das nicht funktioniert kommt die nächste Zeile zum Einsatz
- Hier kannst du selbst einstellen welche Sprache standardmäßig verwendet werden soll.
Diese drei Zeilen lassen sich auch in ihrer Reihenfolge verschieben, so kannst du zum Beispiel die unterste Zeile ganz nach oben schieben sodass standardmäßig immer deine definierte Standardsprache ausgewählt ist.
Mit dem „+“ Symbol rechts unten lassen sich noch weitere Zeilen hinzufügen.
Wenn du die unterste Zeile aufklappst, kannst du hier bei „Locale Id“ mit einem Klick auf das Kreis-Symbol rechts eine Sprache auswählen.
Übersetzungen verwalten
Die einzelnen Übersetzungen werden in Tabellen Sammlungen (Strings Table Collection) gruppiert.
Gehe zu „Window > Asset Manager > Localization Tables„, hier musst du den linken Tab wie im Bild (Punkt 1) öffnen.
Bei Punkt 2 gibst du den Namen der Sammlung ein und klickst auf „Create“ (Punk 3).
Ich benenne die Sammlung „UI“ und speichere diese in „Localizations/Table Collections/UI“, so habe ich alles in Unterordnern sortiert. Das muss man nicht machen, aber für mich ist es aufgeräumter.
Übersetzungen hinzufügen
Im Tab „Edit Table Collection“ kannst du die Collection auswählen, in meinem Fall gibt es nur eine namens „UI“.
Im unteren Bereich kannst du jetzt einen „Key“ angeben, dieser Key wird später dazu verwendet um einen Text einzufügen.
Rechts siehst du die einzelnen Sprachen die du hinzugefügt hast. Du kannst die Liste der Sprachen jederzeit aktualisieren.
Wenn du später den Key „settings“ für einen Text verwendest wird im englischen „Settings“ und wenn die Sprache auf deutsch gestellt ist „Einstellungen“ ausgegeben.
Übersetzten Text ausgeben
In diesem Beispiel verwende ich TextMeshPro (Punt 1) als Beispiel Textausgabe.
Als Text kannst du verwenden was du willst oder ganz frei lassen.
Dann musst du die „Localize String Event“ Komponente hinzufügen (Punkt 2).
Bei der „Localize String Event“ Komponente stellst du bei „String Reference“ die Sammlung und den String Key ein und die darunterliegenden Felder werden automatisch ausgefüllt mit „UI“ bei „Table Collection“ und „settings“ bei „Entry Name“.
Damit das die „Localize String Event“ Komponente weiß wo der Text ausgegeben wird musst du unten bei „Update String (String)“ mit dem Plus-Symbol einen Eintrag hinzufügen und die TextMeshPro Komponente auf der linken Seite rein ziehen und rechts unter „TextMeshPro > text“ auswählen.
Wenn du jetzt in Unity auf Play klickst wird der Text „Platzhalter“ mit der Übersetzung ersetzt.
Rechts oben findest du jetzt auch ein Auswahlmenü mit allen Sprachen die du verwendest und kannst hier die Sprache ganz einfach umschalten.