2010-11-12 8 views
0

Je voudrais poser des questions sur les meilleures pratiques ou la manière la plus simple de traduire du contenu statique. Par exemple. traduire, "rechercher" ou "enregistrer les modifications".Localisation du site Web

Mon idée actuelle est:

selon les utilisateurs du navigateur locale (géolocalisation peut-être de l'adresse IP, mais je préfère locale du navigateur) choisir un sous-domaine, par exemple "fr.myweb.com". Définir un cookie, variable de session, en fonction des paramètres avec la langue. Cette partie est assez simple.

Maintenant vient la partie de traduction. Changer les images en fonction de la langue ne posera pas de problème, car un préfixe "_fr" suffit. Mais traduire des chaînes comme enregistrer des modifications, rechercher, commander des articles, etc. Eh bien, je ne suis pas sûr ici.

Depuis son tout basé sur PHP et MySQL, je pensais à quelque chose comme:

Deux tables:

  1. premier a la liste de tous les mots en langue par défaut
  2. deuxième a trois colonnes (excluant l'incrémentation automatique) - language_id, translation, word_id

Obtenez tous les mots, cachez la requête ou quoi que ce soit et appelez maintenant trans ('fr', 'search') wou ld traduit le mot. Cela devrait fonctionner, même si je ne sais pas si c'est la bonne approche ou s'il y a une meilleure façon. Remarque: Aucune traduction google.

Aussi, puisque j'utilise js/ajax, je ne suis pas sûr de cette partie non plus. Obtenez la langue de cookie et faites une carte d'alertes, etc. et puis appelez simplement "message ['fr']", je ne suis pas sûr de cette partie non plus.

Des idées ce qui serait idéal pour les deux langues? J'ai essayé google, mais n'était pas satisfait des résultats. Tout conseil/lien est apprécié.

Cordialement

+1

Évitez la base de données pour stocker les chaînes de traduction. Utilisez des fichiers gettext .po ou des tableaux php. Évitez les API difficiles. Utilisez quelque chose comme '_ (" english ")' ou '__ (" .. ")' et transportez la langue cible elsewhise. N'utilisez pas de constantes ou d'identifiants de texte, utilisez l'anglais brut comme entrée. - Expliquez pourquoi vous voulez apparemment faire des traductions côté client (AJAX?) Et pas à la génération de la page (PHP). – mario

+0

Je ne voulais pas dire ajax, mais JS. Disons que vous devez remplir certaines conditions pour faire une action, si vous ne les rencontrez pas - vous obtenez une erreur JS. Qu'en est-il de traduire ceux-ci? – realshadow

+0

Toujours ne pas connaître la situation exacte, mais vous pouvez essayer cela http://plugins.jquery.com/project/gettext – mario

Répondre

1

Levez les yeux vers Gettext pour PHP: http://php.net/manual/en/book.gettext.php. C'est la norme de facto pour fournir des traductions de contenu Web. Fondamentalement, vous construisez des fichiers de traduction (vous pouvez utiliser par exemple Poedit), pointez PHP vers eux, réglez les paramètres régionaux sur ce qui est nécessaire et utilisez _('string to translate') pour récupérer les traductions.