Documentation

Pseudo-Localisation

Affichez vos pages avec une traduction factice accentuée, plus longue et inversée pour les langues écrites de droite à gauche. Vous verrez ainsi les textes manquants dans le catalogue, les étiquettes tronquées et la mise en page qui ne s'inverse pas avant même toute traduction.

Une traduction pseudo remplace chaque chaîne par un faux texte reconnaissable. Dans une langue de gauche à droite, chaque lettre est accentuée et la chaîne s'allonge à l'intérieur de crochets : Enregistrer les modifications devient ⟦Šáṽé çĥáñĝéš··········⟧. Dans une langue de droite à gauche, chaque chaîne est inversée avec une surcharge de direction, afin que la page s'affichage de droite à gauche même avant l'existence de l'arabe ou de l'hébreu.

Sur une page affichée de cette manière, trois problèmes deviennent visibles :

  • Texte brut n'est pas issu du catalogue : il est écrit dans le code ou généré à l'exécution.
  • Texte tronqué ne prévoit pas d'espace pour les langues plus longues.
  • Mise en page qui reste fixe sur une page de droite à gauche utilise gauche et droite au lieu de début et fin.
allemand · Traduction pseudo-locale/de-DE/
Votre panier⟦Ṽóţŕé þáñíéŕ··········⟧

Livraison gratuite sur toute commande

Enregistrer les modifications⟦Éñŕéĝíšţŕéŕ ļéš ɱóðíƒíçáţíóñš··················⟧

Les prix incluent la taxe.⟦Ļéš þŕíẋ íñçļúéñţ ļá ţáẋé.················⟧

arabe · Traduction pseudo-locale/ar-SA/
Votre panier‮Votre panier‬

Livraison gratuite sur toute commande

Enregistrer les modifications‮Enregistrer les modifications‬

Les prix incluent la taxe.‮Les prix incluent la taxe.‬

Ce que la sonde a détecté
  1. Texte non issu du catalogue/{locale}/ · p#promo · “Livraison gratuite sur toute commande” · runtime_text (de-DE, ar-SA)
  2. Texte tronqué lors de son agrandissement/{locale}/ · button#save · “⟦Éñŕéĝíšţŕéŕ ļéš ɱóðíƒíçáţíóñš··················⟧” · clipped_text (de-DE)
  3. Mise en page ne se reflétant pas correctement en écriture de droite à gauche/{locale}/ · p#note · “padding-left: 12px” · unmirrored_layout (ar-SA)

Ce que montrent les pages pseudo-localisées : la même page en allemand, avec toutes les chaînes de caractères accentuées et allongées, et en arabe, écrite de droite à gauche. La sonde marque le texte inséré dans le code, un bouton qui coupe son texte et une règle qui reste à gauche. Données illustratives.

Dans la vérification de la globalisation

Lorsque le fichier de configuration indique comment démarrer l'application, le Vérification de la globalisation rend ses pages à chaque modification qu'il vérifie. Il fonctionne sur une copie de la modification dans son propre bac à sable, afin que la traduction pseudo n'atteigne jamais votre dépôt ni les autres vérifications :

  1. Il écrit la traduction pseudo dans une version de langue de gauche à droite et une de langue de droite à gauche du projet.
  2. Il installe les dépendances et démarre l'application.
  3. Il ouvre chaque page dans les deux langues dans un navigateur réglé sur cette langue, et lit ce qui s'affiche à l'écran.
  4. Il arrête l'application et supprime la copie.

Ce qu'il trouve devient les résultats de la vérification :

CodeCe qu'il trouve
runtime_textTexte visible sans les marques pseudo
clipped_textTexte pseudo tronqué par sa boîte, avec overflow masqué ou un points de suspension
unmirrored_layoutSur une page de droite à gauche : une page qui n'est pas de droite à gauche, un texte aligné ou flottant à gauche ou à droite, ou un élément placé, margé ou rempli par gauche ou droite

Le même texte trouvé dans les deux langues constitue un résultat. Les résultats apparaissent dans la tâche Problèmes détectés en indiquant la page, l'élément, le texte et les langues, comme /{locale}/ · p#promo · “Free shipping on every order” · runtime_text (de-DE, ar-SA).

Ils sont signalés et ne bloquent rien tant que vous ne le choisissez pas. Sous Contrôle qualité → Globalisation, Afficher les pages désactive l'étape, et Problèmes de page qui renvoient une modification pour correction choisit quels codes bloquent.

Une application qui n'installe pas ou ne démarre pas est signalée comme non rendue, avec sa sortie, jamais comme un rendu propre. Elle conserve la modification uniquement lorsque vous bloquez les problèmes de page.

Le configurer

Ajouter world.render à .coroid/i18n.json:

{
  "world": {
    "render": {
      "start": "npm run dev",
      "pages": ["/{locale}/", "/{locale}/pricing", "/{locale}/checkout"]
    }
  }
}
ChampSignification
startDémarre l'application. Elle doit écouter sur le port défini dans $PORT; HOST est 127.0.0.1
pagesJusqu'à dix chemins, depuis la racine de l'application. {locale} devient l'étiquette de la langue, donc /{locale}/pricing ouvre /de-DE/pricing; utiliser /?lang={locale} si la langue est un paramètre de requête
directoryLe dossier de l'application dans le dépôt, lorsqu'il n'est pas la racine
installLa commande qui installe les dépendances. Sans elle, Coroid exécute npm lorsqu'un package.json déclare l'une quelconque
localesJusqu'à trois langues cibles à rendre. Sans elle, la première langue de gauche à droite et la première langue de droite à gauche cible
readyTimeoutMsDurée maximale pendant laquelle l'application peut répondre, 120 000 par défaut

Le navigateur envoie également chaque langue comme langue préférée, donc une application qui sélectionne sa langue à partir du navigateur fonctionne sans {locale}.

Le champ nécessite CLI 1.16.0 ou ultérieur dans la configuration cli pin ; un moteur plus ancien rejette la configuration.

Ce qui est omis

La vérification lit uniquement ce qu'une personne voit. Elle ignore les éléments cachés, le code (code, pre, kbd, samp), les valeurs propres aux champs de formulaire et les éléments marqués translate="no", aria-hidden="true", data-i18n-ignore ou avec la classe notranslate. Les mots dans la liste de configuration world.allow , comme les noms de produits, ne sont jamais signalés comme texte brut.

Le texte provenant de vos propres données, comme les noms de produits ou le contenu utilisateur, n'est pas non plus traduit par le catalogue. Marquez son conteneur translate="no" ou data-i18n-ignore, ce qui indique également aux outils de traduction du navigateur de le laisser tel quel.

Essayez-le vous-même

La traduction pseudo fait partie de l'outil en ligne de commande. Exécutez-le dans une copie temporaire, car il remplace les traductions de la langue :

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

Ensuite, démarrez l'application et ouvrez ses pages dans cette langue. Les espaces réservés, les formes pluriels et le balisage restent intacts, donc l'application fonctionne normalement. Les pages Markdown et MDX restent telles quelles.