2009-10-18 15 views
1

Récemment, je travaille sur la possibilité de traduire une application web PHP d'une langue à l'autre. Eh bien, la plupart de ceux que je lis implique d'avoir des fichiers de langue, puis afficher le sélectionné comme ceci:algorithme de traduction

en.lang.php:

<?php 

$_TEXT = array(); 
$_TEXT['welcome'] = 'Welcome to My Application'; 

?> 

fr.lang.php: // français (i traduis que avec Google = x)

<?php 

$_TEXT = array(); 
$_TEXT['welcome'] = 'Bienvenue sur mon application Web'; 

?> 

Je voudrais demander s'il y a une meilleur flux de travail ou d'un algorithme que cela? Parce que la valeur peut être insérée dans le texte et ainsi de suite - situation assez poilue. Toute aide merci!

également à noter que: cette application doit travailler multiplateformes (ou devrais-je dire indépendant de la plateforme) en tant que tel aucune extension supplémentaire requis, d'après de PHP 4.4.2

Répondre

3

Je conseillerais à l'aide gettext, ce ll vous rendre la vie tellement plus simple ...

Les fonctions gettext mettre en œuvre une API SNA (native Language support) qui peut être utilisé pour internationaliser vos applications PHP. Veuillez consulter la documentation gettext pour votre système pour une explication complète de ces fonctions ou voir les documents à » http://www.gnu.org/software/gettext/manual/gettext.html.

0

de gettext Commander PHP: http://www.php.net/manual/en/intro.gettext.php

Si vous voulez rouler votre propre solution simple, je définir une fonction, __ ($ native, var1 $, $ var2, ...), qui prend le natif chaîne et effectue la traduction + substitution de variable pour vous. L'implémentation réelle de __ (deux caractères de soulignement) dépendra de vous, mais typiquement $ native est la clé de votre tableau ci-dessus et elle utilise sprintf pour la remplacer.

+0

capable de produire quelques exemples? Je suis un peu confus au manuel. – mauris

0

Ceci s'appelle en fait Internationalisation ou localisation.

Si vous utilisez php, je vous recommande d'utiliser smarty. Vous pouvez faire la même chose que Java. et smarty a gettext plugin. En fait, vous n'avez même pas à gâcher avec gettext, vous pouvez le faire de manière plus facile que cela.
http://www.smarty.net/

ou peut-être vous pouvez consulter les bibliothèques de poires j'ai vu des paquets pour la localisation.

http://pear.php.net/packages.php?catpid=28

0

gettext, comme le suggère plusieurs autres Soers est une excellente solution. C'est not php specific, c'est très populaire et en tant que tel several tools to simplify translation sont disponibles. Et last but not least, garder le texte dans votre langue par défaut dans la source est beaucoup plus facile à travailler que de devoir se souvenir des valeurs constantes pour les textes.