Maison > développement back-end > tutoriel php > Prise en charge multilingue en PHP : Comment utiliser Gettext

Prise en charge multilingue en PHP : Comment utiliser Gettext

王林
Libérer: 2023-06-20 09:28:02
original
1465 Les gens l'ont consulté

PHP est un langage de programmation largement utilisé grâce auquel des applications Web dynamiques et interactives peuvent être facilement créées. La prise en charge multilingue est un facteur important lors du développement d'applications Web. Gettext est un outil d'internationalisation de logiciels open source utilisé pour obtenir une prise en charge multilingue et peut être intégré à PHP. Cet article explique comment utiliser Gettext pour implémenter la prise en charge multilingue en PHP.

Qu'est-ce que Gettext ?

Gettext est un outil d'internationalisation de logiciels qui constitue la bibliothèque de support multilingue standard sur les systèmes Linux et Unix modernes. Il fonctionne avec presque tous les langages de programmation et peut gérer une variété de formats de fichiers texte. Le principe de base de Gettext est d'écrire un logiciel dans une seule langue de base (généralement l'anglais) et de placer toutes les chaînes de langue dans un fichier de traduction. Les fichiers de traduction peuvent être créés et conservés à l'aide des outils fournis par Gettext. Au moment de l'exécution, Gettext charge les fichiers de traduction dans l'application et remplace les chaînes de langue par les traductions correctes.

Comment utiliser Gettext ?

Tout d'abord, vous devez vous assurer que l'extension Gettext est installée sur votre serveur Web. Sur les serveurs Linux courants, l'extension Gettext peut être installée à l'aide de la commande suivante :

sudo apt-get install php-gettext
Copier après la connexion
  1. Configuration de Gettext en PHP

L'activation de Gettext en PHP nécessite une configuration dans le fichier php.ini. Ouvrez le fichier php.ini et recherchez la ligne suivante :

;extension=php_gettext.dll
Copier après la connexion

Remplacez-la par :

extension=php_gettext.dll
Copier après la connexion
  1. Créez un fichier de traduction

Ensuite, vous devez créer un fichier de traduction. Le fichier de traduction doit contenir toutes les chaînes de texte que vous souhaitez traduire.

Le format de fichier de traduction de Gettext est un fichier binaire avec une extension de fichier spécifique (généralement .po). Si votre application doit prendre en charge plusieurs langues, vous devrez créer des fichiers de traduction distincts pour chaque langue.

Lors de la création de fichiers de traduction, vous devez utiliser les outils fournis par gettext. Dans les systèmes d'exploitation tels qu'Ubuntu et Debian, gettext peut être installé à l'aide de la commande suivante :

sudo apt-get install gettext
Copier après la connexion

Ensuite, créez un nouveau fichier de traduction à l'aide de la commande suivante :

msginit --input=file.pot --locale=en_US.utf8
Copier après la connexion

Où, l'option --input spécifie le fichier PO pour le fichier PO de l'application. langue de base , l'option --locale spécifie les paramètres de localisation du fichier de traduction que vous souhaitez créer. Lorsque vous exécutez cette commande, Gettext crée automatiquement un fichier de traduction contenant les entrées de traduction pour toutes les chaînes.

  1. Mettre à jour les fichiers de traduction

S'il y a de nouvelles chaînes de texte dans votre application qui doivent être traduites, ou des chaînes existantes qui doivent être modifiées, vous devez mettre à jour les fichiers de traduction en conséquence. Pour mettre à jour un fichier de traduction, utilisez la commande suivante :

msgmerge --update po-file.po translation-file.po
Copier après la connexion

où po-file.po est le fichier PO de votre application et translation-file.po est le fichier de traduction que vous souhaitez mettre à jour.

  1. Chargement des fichiers de traduction

Le chargement des fichiers de traduction en PHP nécessite l'utilisation de la fonction gettext() dans l'extension gettext. Lorsque vous utilisez la fonction gettext(), vous devez spécifier la chaîne de texte que vous souhaitez traduire et la langue actuelle.

Ce qui suit est un exemple d'utilisation de la fonction gettext() pour charger un fichier de traduction :

// 加载翻译文件
$locale = 'zh_CN';
$language_domain = 'messages';
putenv("LC_ALL=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain($language_domain, '/path/to/translations/');
textdomain($language_domain);

// 翻译文本字符串
echo gettext('Hello, world!');
Copier après la connexion

Le code ci-dessus utilise d'abord la fonction bindtextdomain() pour lier le répertoire du fichier de traduction, et utilise la fonction textdomain() pour définir le domaine de la traduction actuelle. Ensuite, utilisez la fonction gettext() pour convertir la chaîne « Hello, world ! » dans la langue actuelle. Si la langue n'est pas l'anglais, la fonction gettext() trouvera la traduction correspondante dans le fichier de traduction et la remplacera par des traductions chinoises ou autres.

Conclusion

L'utilisation de Gettext peut rendre vos applications Web plus faciles à utiliser à l'échelle mondiale tout en vous aidant à améliorer la disponibilité et la fiabilité de vos applications. Cet article décrit comment utiliser Gettext en PHP pour obtenir une prise en charge multilingue. Une fois que vous aurez compris ces fonctionnalités, vous pourrez commencer en toute confiance à écrire des applications Web prenant en charge plusieurs langues.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal