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.
Kostenloser Versand bei jeder Bestellung
Änderungen speichern⟦Äñðéŕúñĝéñ šþéíçĥéŕñ················⟧Die Preise verstehen sich inklusive Steuer.⟦Đíé Þŕéíšé ṽéŕšţéĥéñ šíçĥ íñķļúšíṽé Šţéúéŕ.··················⟧
Kostenloser Versand bei jeder Bestellung
Änderungen speichernÄnderungen speichernDie Preise verstehen sich inklusive Steuer.Die Preise verstehen sich inklusive Steuer.
- Text, der nicht aus dem Katalog stammt/{locale}/ · p#promo · “Kostenloser Versand bei jeder Bestellung” · runtime_text (de-DE, ar-SA)
- Text, der beim Vergrößern abgeschnitten wird/{locale}/ · button#save · “⟦Äñðéŕúñĝéñ šþéíçĥéŕñ················⟧” · clipped_text (de-DE)
- 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:
- Er schreibt die Pseudo-Übersetzung sowohl für eine Links-zu-Rechts- als auch für eine Rechts-zu-Links-Sprache des Projekts.
- Er installiert die Abhängigkeiten und startet die App.
- Er öffnet jede Seite in beiden Sprachen in einem Browser, der auf diese Sprache eingestellt ist, und liest den Inhalt auf dem Bildschirm ab.
- Er stoppt die App und löscht die Kopie.
Was er feststellt, wird zu den Ergebnissen der Prüfung:
| Code | Was er feststellt |
|---|---|
runtime_text | Sichtbarer Text ohne Pseudo-Markierungen |
clipped_text | Pseudo-Text, der durch sein Feld abgeschnitten wird, zusammen mit overflow ausgeblendet oder durch ein Auslassungszeichen ersetzt |
unmirrored_layout | Auf 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"]
}
}
}| Feld | Bedeutung |
|---|---|
start | Startet die App. Sie muss auf dem Port in $PORT; HOST ist 127.0.0.1 |
pages | Bis 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 |
directory | Das App-Verzeichnis im Repository, falls es nicht das Wurzelverzeichnis ist |
install | Der Befehl zur Installation der Abhängigkeiten. Ohne ihn führt Coroid aus, wenn ein package.json irgendwelche angibt |
locales | Bis zu drei Zielsprachen zum Rendern. Fehlt dieser Eintrag, werden die erste Links-zu-Rechts- und die erste Rechts-zu-Links-Sprache verwendet. |
readyTimeoutMs | Die 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 yourselfStarten 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.