Wie bereite ich ein Spiel für die Lokalisierung vor?

48

Viele Projekte denken nicht über Lokalisierung nach, bis das Spiel fertig ist. Dann wird die Lokalisierung als Hack durchgeführt, und es ist offensichtlich, dass sie später hinzugefügt wurde. Einige spezifische Problembereiche:

  • Textzeichenfolgen (offensichtlich)
  • Audioclips wie Musik und / oder Erzählungen
  • Text auf Texturen gerendert (zB ein Etikett auf einer Kiste)
  • In vorgerenderten Filmen in Frames gerenderter Text
  • Schriftarten / Zeichensätze für verschiedene Sprachen
  • Usw.

Wie können Sie sich in der Anfangsphase der Entwicklung auf diese Herausforderungen vorbereiten, damit Sie es einfacher machen können, ohne dass im Voraus zu hohe Kosten anfallen?

kevin42
quelle
8
Ich habe in letzter Zeit Dawn of Discovery - Venice gespielt, lokalisiert auf Englisch von Deutsch. Es ist zu 99% richtig. . . und hin und wieder spricht einer der Charaktere aus unerklärlichen Gründen für eine Zeile Deutsch, oder einer der Gebäudestatusberichte enthält Umlaute, oder (ab und zu) ich werde informiert, dass ich einen Debug-Artikel im örtlichen Geschäft kaufen kann. Egal, welche Methode Sie verwenden, stellen Sie sicher, dass es einfach ist, nicht übersetzte Zeilen zu erkennen. Wenn Sie sie visuell lesen müssen oder das Spiel spielen und hoffen, dass sie angezeigt werden, machen Sie es falsch.
ZorbaTHut
@ZorbaTHut Ist das Debug-Element eine Möglichkeit, Übersetzungsfehler zu melden, oder verwendeten die DoD-Entwickler eine DLC, um Lokalisierungsprobleme zu beheben?
Dan Neely
Das Erstellen einer gefälschten Sprache, die Ihre Programmierer lesen und schreiben können, kann von Vorteil sein. Google hat eine "Hacker" -Sprache und Facebook hat Pirate. Es macht den Entwicklern Spaß und sie können es selbst testen, ohne eine neue Sprache zu lernen.
John McDonald
Um die obigen Antworten zu ergänzen, schlage ich vor, dass Sie eine Runde der Pseudolokalisierung durchlaufen (im Wesentlichen der formale Name und der Prozess des Punkts "Fehlenden lokalisierten Text offensichtlich machen" in der oberen Antwort). Sie können potenzielle Implementierungsprobleme beseitigen, noch bevor die Übersetzung beginnt.
Anthony

Antworten:

49

Ich bin kein Experte, aber hier sind einige grundlegende Dinge:

Stellen Sie sicher, dass Ihre Zeichenfolgen mehr als nur ASCII verarbeiten können

Sie benötigen einige Sonderzeichen, die nicht in ASCII passen, und Ihre Zeichenfolgenklasse sollte besser nicht mit diesen Zeichen versehen werden. UTF-8 ist eine gängige Codierung, da sie platzsparend ist. Was auch immer Sie tun, testen Sie frühzeitig und bügeln Sie die Knicke aus.

Es ist eine wirklich gute Idee, eine echte Saitenklasse zu verwenden und nicht nur char *überall oder in einer Welt voller Schmerzen.

Vergiss deine Schriften nicht. Stellen Sie sicher, dass alle verwendeten Schriftarten die von Ihnen benötigten Zeichen enthalten.

Zieh deine Fäden aus dem Code

Dies ist das wichtigste. Stellen Sie sicher, dass alle Ihre Textzeichenfolgen außerhalb des Codes in einer Datendatei gespeichert sind, die Sie auslagern können. Eine Pipeline dafür einzurichten, kann eine lästige Aufgabe sein, spart Ihnen aber später eine Menge Zeit. Sie benötigen eine einfache API, damit Sie jedes Mal, wenn Sie eine Zeichenfolge im Code benötigen, so einfach wie folgt vorgehen können:

String text = Locale::getString("some unique identifier");

Verketten oder erstellen Sie keine Zeichenfolgen im Code

Es ist wichtig, keine Annahmen darüber zu treffen, wie ein Text aus kleineren Wörtern aufgebaut ist. Sogar etwas so harmloses wie:

String currency = Locale::getCurrencyString() + money.toString();
// creates $123

ist ein Problem, da andere Sprachen das Währungszeichen möglicherweise nach der Zahl platzieren. Verwenden Sie stattdessen Formatzeichenfolgen, die selbst wie folgt lokalisiert sind:

String format = Locale::get("currency format"); // returns "${0}" in English
String currency = String::Format(format, money.toString());

Auf diese Weise können Lokalisierer Wörter innerhalb der Formatzeichenfolge neu anordnen.

Minimieren Sie die Textmenge, die in der Grafik angezeigt wird, insbesondere in Videos

Das Forken von Kunstgegenständen ist mühsam. Bei einigen UI-Elementen müssen Sie dies wahrscheinlich zumindest ein wenig tun, aber es ist mühsam. Forking FMV ist ein großer Schmerz, weil Sie jetzt doppelte Kopien Ihres FMV rendern und speichern müssen.

Testen Sie in verschiedenen Sprachen gründlich

In den meisten Codebasen ist es allzu einfach zu sagen printf("Hi there");oder zu loadTexture("someTexture");vergessen, dass diese Ihre Lokalisierungs-API durchlaufen müssen. Jemand wird es vergessen und Sie werden am Ende etwas finden, das in Ihrer Primärsprache korrekt ist, in anderen jedoch falsch. Die einzige Möglichkeit, diese zu finden, besteht darin, Ihre Tester in nicht-primären Sprachen testen zu lassen.

Stellen Sie fehlenden lokalisierten Text klar

In der Regel übersetzen Sie Ihren Text spät im Zyklus, sodass für einige Sprachen meistens nur keine Daten vorliegen. Das ist in Ordnung, weil Sie so Ihre Inhalte durchlaufen können, ohne sie ständig neu übersetzen zu müssen. Der Nachteil ist, dass es leicht für Sie ist, Dinge zu verpassen und zu vergessen, einige Dinge zu übersetzen.

Eine billige Sache, die Sie tun können, ist, den fehlenden Text ganz offensichtlich erscheinen zu lassen wie "!!! ÜBERSETZUNG FÜR ID #blah blah !!!" im Spiel, wenn es fehlt.

Gestalten Sie Ihre Benutzeroberfläche nach der Worst-Case-Methode

Verschiedene Sprachen haben in der Regel längere oder kürzere Wörter. Eine Benutzeroberfläche, die auf Englisch schön aussieht, enthält möglicherweise Text, der über die Grenzen hinausläuft, beschnitten wird oder in einer längeren Sprache falsch umbrochen wird. Sie müssen Änderungen an der Benutzeroberfläche vornehmen, um die Sprache für den schlimmsten Fall zu berücksichtigen (oder die Benutzeroberfläche aufteilen, aber das ist wahrscheinlich nicht das, was Sie tun möchten.)

Ärgerlicherweise ist Englisch oft die kürzeste Sprache der normalerweise lokalisierten Sprachen, sodass Ihre Designer wahrscheinlich versehentlich für den besten Fall entwerfen. Lassen Sie sie beim Entwerfen besonders langen Text für ihre Platzhalter verwenden. Angenommen, ein Textabschnitt kann etwa 30% länger sein als auf Englisch. Google Translate kann hilfreich sein, um einen ungefähren Text für den Platzhalter zu erhalten.

Budget Zeit für die Übersetzung

Das Übersetzen von Texten erfolgt normalerweise zu spät, wenn das Team müde ist und sich nicht wirklich darum kümmert. Dennoch werden Sie eine Menge Fehler bekommen, wenn es passiert. Wörter überschreiten Grenzen, Übersetzer machen Fehler usw. Um die Sache noch schlimmer zu machen, kann die Bearbeitungszeit für das Wiederholen von Texten lang sein, wenn Sie Text an Personen in Übersee senden und auf deren Änderungen warten müssen. Planen Sie Zeit für diese Arbeit ein.

herrlich
quelle
4
Ah, verkettete Zeichenfolgen. Was für ein Schmerz im Arsch. Funktioniert hervorragend in der Muttersprache, um schnell und einfach Abwechslung zu schaffen. Aber dann kommt man in eine Sprache mit einer anderen Grammatik und es ist ein völliger Misserfolg. Alle anderen Punkte sind auch gut. "Einstellungen" in Deutsch war "Einstellungen", was eine Menge zusätzlichen Bildschirmplatz verschlingt, wenn Sie ihn brauchen.
Casey Wagner
13

Neben anderen Vorschlägen habe ich in der Vergangenheit auch einen speziellen Sprachmodus für Ihr Spiel entwickelt, der bei der Anzeige von Zeichenfolgen alle Sprachen und Sprachen berücksichtigt wählt die längste Version dieser Zeichenfolge. Auf diese Weise wissen Sie, dass Sie alle Beschneidungen in jeder Sprache korrigiert haben, sobald Sie alle Zeichenfolgen für diesen Modus angepasst haben.

James Sutherland
quelle
9

Ein Spiel richtig zu lokalisieren ist verdammt schwer .

Sie können im Internet surfen, Blog-Beiträge lesen oder auf StackOverflow antworten. Sie können die traditionellen i18n-Frameworks wie gettext lernen . Lesen Sie die Wikipedia-Seiten zur Internationalisierung und Spielelokalisierung . Konsultieren Sie den exzellenten Microsoft-Sprachführer - aber das Lokalisieren von Spielen ist tatsächlich schwieriger. In der Tat ist es bei Spielen wahrscheinlich schwieriger als bei jeder anderen Anwendung oder Webschnittstelle. Das liegt daran, dass die Spiele so viel dynamischer, lebendiger und lebendiger sind (zumindest gute Spiele).

Um es auf den Punkt zu bringen, müssen wahrscheinlich die folgenden Schritte unternommen werden:

Grenzen setzen.

Sie möchten eine wichtige Entscheidung treffen, für welche Sprachen Sie frühzeitig Unterstützung wünschen. Je größer Ihre Auswahl, desto mehr Annahmen darüber, wie sich eine Sprache verhalten kann, werden gebrochen. Oft sind diese Annahmen so tief in unserem Gehirn verankert, dass wir uns nicht einmal vorstellen können, dass sie falsch sind, ohne dass jemand darauf hinweist. Was uns zum nächsten Punkt bringt:

Finden Sie die Experten für jede Sprache, die Sie unterstützen möchten.

Experte bedeutet, dass jemand, der über ausreichende analytische Fähigkeiten und Sprachkenntnisse verfügt, Sie darauf hinweisen kann, welche Annahmen ein englischer Muttersprachler nicht in seiner eigenen Sprache hält. Dann müssen Sie eine Strategie entwickeln, wie Sie diese Annahmen umgehen können.

Als Beispiel: In westlichen Sprachen wird Text in einem Absatz durch Einfügen eines zusätzlichen Leerzeichens zwischen Wörtern ausgerichtet. In arabischer Sprache wird der Text durch Einfügen von Kashida-Zeichen in die Wörter gerechtfertigt . Es könnte so aussehen .

Ein weiteres Beispiel: Auf Russisch gibt es für die Mehrzahl der Wörter zwei Pluralformen. So würden Sie beispielsweise "1 Münze" / "3 Münzen" / "5 Münzen" als "1 Monat", "3 Monat", aber "5 Monat" übersetzen. Das eigentliche Verfahren zum Entscheiden der richtigen Pluralform sieht folgendermaßen aus:

function LocalRU::GetPlural(n, form0, form1, form2) {
    return (n%10) == 0 || (n%100) >= 5 && (n%100) <= 20? form0 : 
           (n%10) == 1? form1 : 
           (n%10) <= 4? form2 : form0;
}

Erstellen Sie ein kontextsensitives Übersetzungsmodul.

Sie wissen wahrscheinlich, dass die Übersetzung immer vom Kontext abhängt. Und Sie wissen, dass sich der Kontext innerhalb eines Spiels ständig ändert. Was passiert, wenn wir diese beiden Aussagen zusammenfassen? Im Allgemeinen sollten Ihre Übersetzungen so dynamisch sein wie Ihr Spiel.

Ein einfacher Ausdruck "Ich stimme zu" wird beispielsweise auf Russisch übersetzt als "Я согласен" / "Я согласна" / "Я согласно", abhängig vom Geschlecht des Sprechers (männlich / weiblich / transgender | queer | fragend). Wenn dies eine Ihrer Dialogzeilen ist, muss das Sprachmodul abhängig vom Geschlecht Ihres Charakters zur Laufzeit eine der möglichen Übersetzungen auswählen (vorausgesetzt, Sie bieten Ihren Spielern eine solche Auswahl).

Wenn derselbe Satz ins Japanische übersetzt wird, hat er je nach dem Grad der Formalität der Beziehung zwischen Sprecher und Hörer wieder unterschiedliche Übersetzungen. Wenn Sie also in Ihr Spiel die Idee des Ansehens, der Freundschaft oder der unterschiedlichen Überlegenheit einbringen (beispielsweise kann sich Ihr Charakter vom Anfänger zum General entwickeln), müssen Sie dies bei der Erstellung der Übersetzung berücksichtigen. (Eigentlich ist dies nicht japanisch. Selbst auf Englisch sagt man in der Armee niemals "Sir, jawohl, Sir!" Zu jemandem unter Ihnen im Rang.)

Haben Sie eine Möglichkeit, in den Kontext zu springen.

Ihre Übersetzer sollten in der Lage sein, den Kontext zu sehen, in dem eine bestimmte Phrase erscheint. Manchmal ist der Kontext offensichtlich, manchmal muss man ihn selbst sehen / hören / erleben, um etwas richtig zu übersetzen.

Sogar ein einfacher Satz wie "Dieses Buch ist blau." kann nicht eindeutig übersetzt werden, ohne dass ich auf das Buch schaue und sehe , um welchen bestimmten Blauton es sich handelt.

Vermeiden Sie Wortspiele, Wortspiele und andere sprachspezifische Elemente.

Oder vermeiden Sie es vielleicht nicht, aber überlegen Sie sich zumindest, was zu tun ist, wenn das Wortspiel nicht übersetzt werden kann. Weil es wahrscheinlich nicht wird.

Zumindest sollten Sie keine Quests / Rätsel / Spielobjekte erstellen, die darauf beruhen, dass bestimmte Wörter eine doppelte Bedeutung haben oder mit anderen Wörtern vergleichbar sind. Denn wenn du einmal übersetzt hast, wirst du dein eigenes Spiel zerbrechen. (In einem alten Spiel, Fallout2, bestand die Hauptaufgabe darin, das Objekt GECK zu finden. Es gab auch zahlreiche "Gecko" -Monster (mutierte Eidechsen) im Spiel. Natürlich erstellten sie mehrere Referenzen und Quests zu dieser Ähnlichkeit von Namen, die gute übersetzungen extrem schwer gemacht).

Kopf hoch!

Ein Spiel zu lokalisieren ist schwierig. Aber es ist schwer für alle. Wenn Sie sich anstrengen und es richtig machen, wird es von den Spielekritikern in Ihrem Zielland nicht unbemerkt bleiben. Ein Spiel mit guter Übersetzung wird auffallen und höhere Gewinne erzielen. Schließlich ist Text genauso wichtig für die Atmosphäre im Spiel wie die Grafik (aus diesem Grund waren alte textbasierte RPGs so beeindruckend).

Pascha
quelle
Eine Alternative zum "Vermeiden des Wortspiels" besteht darin, einen kreativen Schreiber in ein Sprachübersetzungsteam aufzunehmen und ihm zu ermöglichen, die wörtlichen Bedeutungen zu ändern. FFXIV macht das außerordentlich gut für ihre englische Version, als ein gutes Beispiel.
Patrick Hughes
3

Wil Shipley hat mit Abstand den besten Leitfaden zur Lokalisierung, den ich je gelesen habe. Leider ist es iPhone-spezifisch, aber man kann immer noch nützliche Informationen ableiten. Außerdem befasst er sich mit der Lokalisierung von Assets und der Benutzeroberfläche - zwei der größten Herausforderungen bei der Lokalisierung von Spielen, die ich mir vorstellen kann.

Dave O.
quelle
1

Immer, immer behandelt die Quellsprache als eine lokalisierte Sprache.

Wenn Ihre Ausgangssprache also EN ist, bewahren Sie alle EN-Elemente und -Strings in einem separaten EN-Ordner auf und ziehen Sie von dort.

Ziehen Sie EN-Assets durch Ihre vorgesehene Lokalisierungs-Pipeline.

Wenn Sie dies einfach tun, werden Sie möglicherweise 80% der Lokalisierungsprobleme beheben und sich auf einen viel einfacheren Lokalisierungsprozess einstellen .

Ich habe viele Spiele lokalisiert und immer mit diesem Nugget geführt.

user79563
quelle
1

Ich sehe hier einige wirklich tolle Tipps!

Ich werde versuchen, eine Liste der häufigsten Fehler zu erstellen , die von der Schwierigkeit der Lokalisierung bis zur vollständigen Zerstörung des Spiels reichen können:

  • Lokalisierung ist der letzte Schritt der Spieleentwicklung
  • Nicht isolieren Sie Ihre Textzeichenfolgen aus dem Quellcode
  • Verkettung / Zeilenumbrüche in der Mitte eines Satzes.
  • Vorausgesetzt, Zeiten, Daten und Einheiten müssen nicht lokalisiert werden
  • Nicht genügend Nachschlagewerke für Übersetzer / Beantwortung ihrer Fragen
  • Angenommen, der gesamte Text Ihres Spiels wird in ASCII geschrieben
  • Text in Bildern haben
  • Mit starren Text / UI-Boxen
  • Angenommen, alle Sprachen haben die gleiche Länge wie Englisch
  • Verwendung von Google Translate / maschineller Übersetzung
  • Kulturelle Faktoren ignorieren
  • Nicht genügend Budget für die Lokalisierung

Die Lokalisierung sollte so früh wie möglich in die Entwicklung integriert werden, und Sie sollten dies immer berücksichtigen, wenn Sie ein Spiel entwerfen.

Mit der richtigen Planung und sorgfältigen Marktforschung sparen Sie sich später eine Menge Ärger und Kosten.

Ich bin zufällig der Gründer einer Spielelokalisierungsfirma und wir haben vor ein paar Monaten in unserem Blog über die Vorbereitung eines Spiels für die Lokalisierung berichtet.

Hier ist die Infografik, die diesen Beitrag zusammenfasst: https://magic.piktochart.com/output/18317297-9-stepss-to-cheaper-game-development-with-localization

Der Link zum vollständigen Beitrag, der diese Tipps ausführlicher behandelt, befindet sich unten.

Damien Yoccoz
quelle