Dokumentation

Pseudo-Lokalisierung

Rendern Sie Ihre Seiten mit einer falschen Übersetzung – mit Akzenten, länger und umgekehrt für rechtsnachlinks-Sprachen. So erkennen Sie Texte, die der Katalog übersehen hat, abgeschnittene Beschriftungen und Layouts, die nicht gespiegelt sind, noch bevor jemand übersetzt.

Eine Pseudo-Übersetzung ersetzt jeden Text durch einen erkennbaren Platzhalter. In einer Links-zu-Rechts-Sprache wird jeder Buchstabe akzentuiert und der Text wächst innerhalb von Klammern: Änderungen speichern wird zu ⟦Šáṽé çĥáñĝéš··········⟧. In einer Rechts-zu-Links-Sprache wird jeder Text umgekehrt dargestellt, sodass die Seite bereits vor dem Vorhandensein von Arabisch oder Hebräisch von rechts nach links gelesen werden kann.

Auf einer so dargestellten Seite werden drei Probleme sichtbar:

  • Einfacher Text stammt nicht aus dem Katalog: Er wird direkt im Code geschrieben oder zur Laufzeit generiert.
  • Abgeschnittener Text lässt keinen Platz für längere Sprachen.
  • Layout, das stabil bleibt verwendet auf einer Rechts-zu-Links-Seite links und rechts statt beginnend und endend.
Deutsch · Pseudo-Übersetzung/de-DE/
Ihr Warenkorb⟦Íĥŕ Ŵáŕéñķóŕƀ···········⟧

Kostenloser Versand bei jeder Bestellung

Änderungen speichern⟦Äñðéŕúñĝéñ šþéíçĥéŕñ················⟧

Die Preise verstehen sich inklusive Steuer.⟦Đíé Þŕéíšé ṽéŕšţéĥéñ šíçĥ íñķļúšíṽé Šţéúéŕ.··················⟧

Arabisch · Pseudo-Übersetzung/ar-SA/
Ihr Warenkorb‮Ihr Warenkorb‬

Kostenloser Versand bei jeder Bestellung

Änderungen speichern‮Änderungen speichern‬

Die Preise verstehen sich inklusive Steuer.‮Die Preise verstehen sich inklusive Steuer.‬

Vom Prüfwerkzeug festgestellte Ergebnisse
  1. Text, der nicht aus dem Katalog stammt/{locale}/ · p#promo · “Kostenloser Versand bei jeder Bestellung” · runtime_text (de-DE, ar-SA)
  2. Text, der beim Vergrößern abgeschnitten wird/{locale}/ · button#save · “⟦Äñðéŕúñĝéñ šþéíçĥéŕñ················⟧” · clipped_text (de-DE)
  3. Layout, das nicht spiegelverkehrt dargestellt wird/{locale}/ · p#note · “padding-left: 12px” · unmirrored_layout (ar-SA)

Was die pseudolokalisierten Seiten zeigen: Die gleiche Seite auf Deutsch – mit akzentuierten und längeren Zeichenfolgen – sowie auf Arabisch, von rechts nach links gelesen. Der Probe markiert Text, der in den Code geschrieben wurde; ein Button, der den Text kürzt, und eine Regel, die auf der linken Seite bleibt. Illustrative Daten.

Bei der Globalisierungsprüfung

Wenn die Konfigurationsdatei angibt, wie die App gestartet werden soll, dann Globalisierungsprüfung rendert seine Seiten bei jeder Änderung und prüft sie. Dabei arbeitet er mit einer Kopie der Änderung in seiner eigenen Sandbox – somit gelangt die Pseudo-Übersetzung niemals in Ihr Repository oder zu anderen Prüfungen:

  1. Er schreibt die Pseudo-Übersetzung sowohl für eine Links-zu-Rechts- als auch für eine Rechts-zu-Links-Sprache des Projekts.
  2. Er installiert die Abhängigkeiten und startet die App.
  3. Er öffnet jede Seite in beiden Sprachen in einem Browser, der auf diese Sprache eingestellt ist, und liest den Inhalt auf dem Bildschirm ab.
  4. Er stoppt die App und löscht die Kopie.

Was er feststellt, wird zu den Ergebnissen der Prüfung:

CodeWas er feststellt
runtime_textSichtbarer Text ohne Pseudo-Markierungen
clipped_textPseudo-Text, der durch sein Feld abgeschnitten wird, zusammen mit overflow ausgeblendet oder durch ein Auslassungszeichen ersetzt
unmirrored_layoutAuf einer Rechts-zu-Links-Seite: eine Seite, die nicht von rechts nach links orientiert ist, Text, der links oder rechts ausgerichtet oder flottiert ist, oder ein Element, das mit links oder rechts positioniert, abgesetzt oder gepuffert wurde

Derselbe Text, der in beiden Sprachen gefunden wird, ist ein Ergebnis. Die Ergebnisse werden im Gefundene Probleme angezeigt, einschließlich der Seite, des Elements, des Texts und der Sprachen, wie zum Beispiel /{locale}/ · p#promo · “Free shipping on every order” · runtime_text (de-DE, ar-SA).

Sie werden gemeldet und blockieren nichts, bis Sie eine Entscheidung treffen. Unter Qualitätskontrolle → Globalisierung, Seiten rendern deaktiviert diesen Schritt, und Seitenprobleme, die eine Änderung zur Reparatur zurücksenden bestimmt, welche Codes blockiert werden sollen.

Eine App, die sich nicht installieren oder starten lässt, wird als nicht gerendert gemeldet – samt ihrem Ausgabeinhalt, niemals als sauberes Rendering. Die Änderung wird nur dann beibehalten, wenn Sie Seitenprobleme blockieren.

Einrichten

Fügen Sie world.render zu .coroid/i18n.json:

{
  "world": {
    "render": {
      "start": "npm run dev",
      "pages": ["/{locale}/", "/{locale}/pricing", "/{locale}/checkout"]
    }
  }
}
FeldBedeutung
startStartet die App. Sie muss auf dem Port in $PORT; HOST ist 127.0.0.1
pagesBis zu zehn Pfade, relativ zum Wurzelverzeichnis der App. {locale} wird zum Sprachtag, somit /{locale}/pricing öffnet /de-DE/pricing; verwenden Sie /?lang={locale} , falls die Sprache ein Abfrageparameter ist
directoryDas App-Verzeichnis im Repository, falls es nicht das Wurzelverzeichnis ist
installDer Befehl zur Installation der Abhängigkeiten. Ohne ihn führt Coroid aus, wenn ein package.json irgendwelche angibt
localesBis zu drei Zielsprachen zum Rendern. Fehlt dieser Eintrag, werden die erste Links-zu-Rechts- und die erste Rechts-zu-Links-Sprache verwendet.
readyTimeoutMsDie maximale Antwortzeit der App in Millisekunden; standardmäßig 120.000.

Der Browser sendet außerdem jede Sprache als bevorzugte Sprache – daher funktioniert eine App, die ihre Sprache aus dem Browser übernimmt, ohne {locale}.

Das Feld erfordert in der Konfiguration CLI 1.16.0 oder neuer in der cli Pin-Version; eine ältere Engine lehnt die Konfiguration ab.

Was ausgelassen wird

Die Prüfung liest nur das, was eine Person sieht. Versteckte Elemente, Code (code, pre, kbd, samp), die eigenen Werte von Formularfeldern sowie Elemente, die mit translate="no", aria-hidden="true", data-i18n-ignore oder mit der Klasse notranslate. Wörter in der world.allow Liste, wie zum Beispiel Produktnamen, werden niemals als einfacher Text gemeldet.

Text, der aus Ihren eigenen Daten stammt – etwa Produktnamen oder Nutzerinhalte – wird ebenfalls nicht vom Katalog übersetzt. Markieren Sie seinen Container translate="no" oder data-i18n-ignore, wodurch auch Übersetzungswerkzeuge des Browsers den Text unverändert lassen.

Probieren Sie es selbst aus

Die Pseudo-Übersetzung ist Teil des Befehlszeilen-Tools. Führen Sie es in einem temporären Arbeitsverzeichnis aus, da es die Sprachübersetzungen ersetzt:

coroid-i18n pseudo --locale de-DE                # accented and longer
coroid-i18n pseudo --locale ar-SA                # reversed, right to left
coroid-i18n pseudo --locale de-DE --style rtl    # choose the style yourself

Starten Sie anschließend die App und öffnen Sie ihre Seiten in dieser Sprache. Platzhalter, Pluralformen und Markup bleiben unverändert – die App funktioniert wie gewohnt. Markdown- und MDX-Seiten bleiben unberührt.