Maison >développement back-end >tutoriel php >phpmaster | Localisation des applications PHP Partie 1: octobre 2011 - SitePoint

phpmaster | Localisation des applications PHP Partie 1: octobre 2011 - SitePoint

Lisa Kudrow
Lisa Kudroworiginal
2025-03-02 08:37:09439parcourir

Internationaliser votre application PHP: implémentez facilement le support multilingue à l'aide de getText

Les internautes mondiaux continuent de croître et de nombreux utilisateurs souhaitent parcourir votre contenu dans leur langue maternelle. Vous pouvez penser que seule une excellente traduction est nécessaire pour terminer la traduction de l'interface utilisateur d'un site Web, mais le plus grand défi réside dans l'écriture du code d'arrière-plan. Le processus traditionnel de localisation du logiciel est lourd et sujet aux erreurs, entraînant une confusion dans le code. Certains développeurs utilisent même différentes versions de code pour différentes régions, ce qui rend la gestion de la base de code presque impossible.

GetText est un excellent outil open source qui simplifie le processus et vous permet de vous concentrer sur l'écriture de code, tandis que le traducteur est responsable de la gestion des fichiers traduits individuellement dans la langue cible. La maîtrise de PHP GetText, l'élargissement de l'influence globale des applications deviendra un jeu d'enfant! Cette série d'articles vous apprendra à localiser votre application PHP à l'aide de GetText. La première partie introduira rapidement GetText. Sur cette base, les parties suivantes expliquent comment gérer plusieurs domaines de traduction, des formulaires pluriels et même comment automatiser une partie du processus de localisation.

Environnement de préparation

Avant de commencer à apprendre, assurez-vous que l'environnement est correctement configuré, ce qui aide à tester le contenu d'apprentissage étape par étape. Voici la liste d'installation:

  • php 5.x sur Apache (ou tout serveur Web que vous aimez), activez l'extension GetText. Vous pouvez obtenir la dernière version de PHP sur www.php.net.
  • Poedit, un éditeur de répertoire GetText multiplateforme. Il s'agit d'un excellent outil qui vous permet de séparer la traduction de votre code d'application. Vous pouvez obtenir une copie sur www.poedit.net.

Quelle que soit votre plate-forme, pour utiliser GetText à partir de PHP, vous devez installer la bibliothèque GetText et l'extension PHP connectée à la bibliothèque. Les utilisateurs d'Ubuntu / Debian peuvent utiliser APT-GET, et les utilisateurs de Fedora / CentOS / RedHat peuvent utiliser YUM pour installer la bibliothèque GetText. Si vous utilisez un autre système de type Unix, veuillez visiter www.gnu.org/s/gettext pour obtenir une copie du GetText compatible avec votre plate-forme. Les utilisateurs de Windows peuvent télécharger le dernier fichier exécutable à partir de gnuwin32.sourceforge.net/packages/gettext.htm et l'installer. Après avoir installé la bibliothèque, vous devez activer l'extension PHP de GetText en modifiant PHP.ini et en ajoutant une ligne:

<code># Windows用户
extension=php_gettext.dll
# *nix用户
extension=gettext.so</code>

Ensuite, installez la poedit qui sera utilisée plus tard. Vous pouvez télécharger une copie sur www.poedit.net.

"Hello World" de GetText

Dans votre répertoire de racine Web, créez un répertoire de bac à sable appelé Testi18n pour les exercices GetText (I18N signifie internationalisation). Dans le répertoire Testi18n, créez la hiérarchie suivante:

phpmaster | Localizing PHP Applications Part 1: Oct 2011 - Sitepoint

Dans les projets futurs, vous pouvez nommer les répertoires des parents et des paramètres régionaux comme vous le souhaitez, mais EN_US et LC_MESSAGES sont les noms standard utilisés par GetText. EN_US représente le nom du lieu et se compose de deux parties. La première partie est l'abréviation des deux minuscules de la langue selon la spécification ISO 639-1. La deuxième partie après le soulignement est un code de capital-pays à deux chiffres selon la spécification ISO 3166-1 Alpha-2. Par conséquent, l'EN_US signifie que la langue est l'anglais américain.

Ensuite, assurez-vous que Poedit fonctionne correctement sur votre plateforme. Démarrez le programme et sélectionnez "Fichier"> "Nouveau répertoire" dans la barre de menu supérieure. Dans la fenêtre des paramètres, remplissez les informations suivantes et sautez temporairement les champs de formulaire pluriel:

phpmaster | Localizing PHP Applications Part 1: Oct 2011 - Sitepoint

Cliquez sur "OK" et enregistrez le fichier en tant que messages.po créé dans le répertoire LC_MESSAGES. Maintenant, fermez Poedit et ouvrez messages.po avec votre éditeur de texte préféré ... oui, c'est un fichier texte normal! Vous pouvez le modifier manuellement, mais pour économiser des ennuis, nous laissons Poedit créer la définition principale pour nous. Laissez une ligne vide après la ligne existante dans le fichier et ajoutez ce qui suit:

<code># Windows用户
extension=php_gettext.dll
# *nix用户
extension=gettext.so</code>

Enregistrez les messages.po et fermez-le, puis rouvrez-le dans Poedit. Dans PoEdit, sélectionnez Fichier> Enregistrer ou cliquer sur l'entrée "Enregistrer le répertoire" dans la barre d'icônes. La raison pour laquelle nous enregistrons des fichiers PO dans Poedit est qu'ils doivent être compilés dans un format spécial disponible pour GetText. Après avoir enregistré dans Poedit, vous verrez qu'un nouveau fichier avec le même nom a été créé dans le même répertoire, mais avec l'extension .mo. Si vous souhaitez continuer à modifier et à enregistrer les fichiers PO à l'aide d'un éditeur de texte régulier, vous devez compiler avec la commande Pocompile. Si vous utilisez PoEdit, aucune étape de compilation supplémentaire n'est requise car elle compilera automatiquement le fichier lorsque vous l'enregistrerez.

Retournez au répertoire Testi18N et créez un fichier nommé test-locale.php avec le code suivant:

<code># 测试标记1
msgid "HELLO_WORLD"
msgstr "Hello World!"

# 测试标记2
msgid "TEST_TRANSLATION"
msgstr "Testing translation..."</code>

Ouvrez Testi18n / Test-locale.php dans votre navigateur. Si tout est installé correctement et fonctionne bien, vous verrez "Hello World" sur la page.

Résumé

Vous avez de nombreuses options lors de la localisation de votre application PHP. Nous avons choisi d'utiliser la bibliothèque GNU GetText et son extension PHP, un moyen puissant et simple de localiser "correctement" votre application! Dans cette section, vous voyez ce dont vous avez besoin pour installer des extensions GetText et PHP, utiliser brièvement Poedit et susciter votre intérêt avec un simple script Hello World. La deuxième partie sera basée sur cela pour en savoir plus sur GetText; je vais expliquer chaque fonction introduite dans le script Hello World et le fonctionnement de la bibliothèque GetText.

Images de Sgame / Shutterstock

(Ce qui suit est la partie FAQ, ajustée en fonction du contenu d'origine, et des créations pseudo-originales ont été faites)

Des questions fréquemment posées sur la localisation des applications PHP

Quelle est l'importance de localiser les applications PHP?

Les applications PHP localisées sont essentielles pour les entreprises qui souhaitent atteindre les utilisateurs du monde entier. Il s'agit de traduire l'interface utilisateur et d'autres éléments visibles d'une application logicielle dans différentes langues. Ce processus améliore non seulement l'expérience utilisateur, mais élargit également la couverture du marché de l'application. En localisant votre application PHP, vous pouvez répondre aux besoins des différents utilisateurs, augmentant ainsi votre base d'utilisateurs et vos revenus potentiels.

Comment fonctionne la localisation de PHP?

La localisation PHP consiste à utiliser des fonctions et des bibliothèques spécifiques pour traduire le texte dans une application. La méthode la plus courante consiste à utiliser GetText, une bibliothèque puissante qui vous permet d'envelopper des chaînes dans une fonction qui les tradèdera en fonction des paramètres des paramètres de l'utilisateur. Cela implique la création d'un fichier .po pour chaque langue qui contient toutes les traductions.

Quelles sont les étapes pour implémenter la localisation PHP?

La mise en œuvre de la localisation de PHP implique plusieurs étapes. Tout d'abord, vous devez installer et configurer la bibliothèque GetText dans votre environnement PHP. Ensuite, vous devez envelopper toutes les chaînes de l'application que vous souhaitez traduire à l'aide de la fonction GetText. Ensuite, vous devez créer des fichiers .po pour chaque langue que vous souhaitez prendre en charge et traduire toutes les chaînes de ces fichiers. Enfin, vous devez compiler ces fichiers .po en fichiers .mo, qui sont des fichiers binaires et GetText peut les lire.

Quels sont les défis de la localisation des applications PHP?

La localisation des applications PHP peut être difficile pour plusieurs raisons. Premièrement, la traduction de toutes les chaînes dans une application peut prendre du temps, surtout lorsque l'application est énorme et complexe. Deuxièmement, le maintien de la traduction peut être difficile, en particulier lors de la mise à jour ou de l'ajout de nouvelles fonctionnalités à votre application. Troisièmement, le traitement des subtilités pluriel, de genre et d'autres subtilités grammaticales dans différentes langues peut être délicat.

Comment gérer les nombres pluriels dans la localisation de PHP?

La fonction Ngette peut être utilisée pour traiter les nombres pluriels dans la localisation de PHP. Cette fonction accepte trois paramètres: la forme singulière, la forme plurielle et le nombre de la chaîne. Il renvoie ensuite le formulaire correct en fonction du numéro. Par exemple, nGetteText ("One Apple", "Beaucoup de pommes", Numéro $) renvoie "une pommes" si le numéro $ est 1, sinon "beaucoup de pommes".

Comment tester mon application PHP localisée?

Vous pouvez tester votre application PHP localisée en modifiant le lieu du serveur ou dans le code PHP, puis en vérifiant si la chaîne est traduite correctement. Vous devez également tester la disposition et la conception des applications dans différentes langues, car certaines langues peuvent nécessiter plus d'espace ou avoir des directions de lecture différentes.

Puis-je utiliser la traduction machine pour la localisation PHP?

Bien que la traduction machine peut traduire vos chaînes rapidement et facilement, elle n'est pas recommandée pour la localisation de PHP. La traduction automatique n'a souvent pas la précision et la conscience du contexte requises pour la localisation des logiciels. Il est préférable d'utiliser un traducteur professionnel ou un service localisé pour assurer la qualité de la traduction.

Comment gérer la traduction de mon application PHP?

Vous pouvez utiliser une plate-forme localisée ou un système de gestion de la traduction pour gérer la traduction des applications PHP. Ces outils vous permettent de stocker, de gérer et de mettre à jour les traductions dans un emplacement central. Ils fournissent également des fonctionnalités telles que la mémoire de traduction, le glossaire et les outils de collaboration pour vous aider à simplifier le processus de localisation.

Quel est le rôle des fichiers.po et .mo dans la localisation PHP?

.po et .mo Les fichiers jouent un rôle crucial dans la localisation de PHP. Un fichier .po est un fichier texte contenant la chaîne d'origine et sa traduction. Ils sont lisibles par l'homme et peuvent être modifiés à l'aide d'un éditeur de texte ou d'un éditeur de fichiers .po. D'un autre côté, le fichier .mo est un fichier binaire lisible par machine. Ils sont générés par des fichiers .po et sont utilisés par GetText pour traduire les chaînes dans l'application.

Puis-je localiser mon application PHP sur n'importe quelle langue?

Oui, vous pouvez localiser votre application PHP sur n'importe quelle langue que GetText prend en charge. Cependant, vous devez avoir la traduction de cette langue pour toutes les chaînes de l'application. De plus, vous devez considérer les nuances culturelles et linguistiques de chaque langue pour assurer la qualité de la localisation.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn