Question

Disons que je suis la conception d'un site Web où nous avons l'anglais, le français, l'espagnol, l'allemand et la Corée (je ne suis pas, mais je suis fais semblant LETS).

Je ne peux pas compter sur des services tels que Google traduction, comme la nature du site ne sont pas pour le divertissement, mais les affaires. Disons que j'ai accès à des traducteurs professionnels qui peuvent se traduire par quelque chose dans le contexte d'une autre langue et me donner ce texte.

Quels sont les moyens connus et simples pour servir du contenu sur plusieurs langues avec un site Web?

Il y a beaucoup d'options, telles que des pages distinctes, en utilisant une base de données, et ainsi de suite ... mais je ne peux pas vraiment décider ce qui est mieux, comment le concept serait l'échelle, ce qui doit être pris en considération, et la façon de traiter traductions manquantes?

Y a-t-il des pratiques bien établies pour cela?

Était-ce utile?

La solution

Le vaste sujet que vous demandez est au sujet appelé « Internationalisation et localisation » (ou I18N et L10N pour faire court). La chose importante à retenir est qu'il est pas à peu près la traduction des messages. Il y a beaucoup d'autres choses qui vont dans internationalisant un site Web.

Les choses les plus évidentes que vous aurez besoin sont:

D'autres choses que vous devez considérer:

  • correctement le tri des chaînes basées sur des paramètres régionaux
  • Date mise en forme en fonction des paramètres régionaux
  • affiche toujours fois dans le fuseau horaire de l'utilisateur
  • Afficher les mesures de distance pour les paramètres régionaux de l'utilisateur (par exemple: Miles contre Kilomètres)
  • Pose du site en droit à gauche pour les langues comme l'hébreu
  • Pensez à la façon dont vous pluralize vos messages. String message = "Please fix the following error" + (errors.size() > 1 ? "s" : ""); ne fonctionne tout simplement pas dans un programme internationalisé.
  • Pensez à la façon de poser vos pages Web lorsque la longueur du texte peut varier énormément .. et ne présumez jamais qu'un personnage est plus ou moins une certaine largeur (un seul caractère Kanji est peut-être 8 fois plus large qu'une minuscule 'i')

La meilleure ressource que je peux trouver pour cela est Guide de l'utilisateur de la bibliothèque de soins intensifs . Si vous utilisez Java, c'est la bibliothèque à utiliser.

Espérons que cette réponse est un début utile!

Autres conseils

Jetez un coup d'oeil aux recommandations de Google pour Sites multirégionaux et multilingues . Espérons que cette information est très pratique. Bonne chance.

Totalement d'accord avec D @ Michael et d'autres développeurs qui ont posté leurs réponses. Bien que la question de cette est déjà acceptée, mais je pense une petite option telle que la: lang () la pseudo-classe peut être helpfull pour createing sites multilingues ainsi. La: classe pseudo lang () permet de déterminer la langue dans divers documents.

code CSS:

    q:lang(fr) {     /* Quotations for French */ 
     quotes: "\00AB" "\00BB"; 
    }

    q:lang(en) {
     quotes: "\201C" "\201D";    /* Quotations for English */ 
    }


Code HTML:

 <html>
 <body>
 <pre>
     <p>Quote in French: <q lang="fr">То être ou ne pas être</q>.</p>
     <p>Quote in English: <q lang="en">То be or not to be</q>.</p>
 </pre>
 </body>
 </html>

Et la sortie sera comme ceci:

Quote in French language: << То être ou ne pas être >>.

Quote in English language: "То be or not to be".

S'il vous plaît noter que nous parlons de documents, pas un morceau de texte, car ils effectuent des formatages complexes.

Nous avons un ensemble de fichiers sur le disque qui contient toutes les chaînes dans un widget de donnée / modules / whatever, et des fichiers séparés par la langue, i.e.:.

foo.strings == generic (happens to be US english)
foo.fr.strings == french
foo.fr-CA.strings == canadian french 
foo.en-CA.strings == canadian english

Basé sur le client est en-tête Accept-Language, nous déterminons la langue qu'il veut.

Quand une langue donnée est d'abord demandé, nous avons touché le système de fichiers pour construire la grande chaîne pour la cartographie de cette langue, cache ensuite dans la mémoire. Si une chaîne donnée n'est pas définie en fr-CA, nous sautons la pile fr, puis finalement au générique

Les pages sont générées dynamiquement et la version produite de chaque URL est mise en mémoire cache en fonction des en-têtes de la langue de l'utilisateur (entre autres).

L'espoir qui aide

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top