Maison développement back-end tutoriel php PHP中使用gettext来支持多语言的方法_PHP

PHP中使用gettext来支持多语言的方法_PHP

Jun 01, 2016 pm 12:16 PM
gettext 多语言

我们今天用一个简单的实例说明一下在PHP中的getText的用法(getText是一系列的工具和库函数,帮助程序员和翻译人员开发多语言软件的), 从而实现PHP的i18n.
现在, 我们假设要显示一个返回主页的link:
复制代码 代码如下:
//home.php:
$str = 'home';
print {$str}
HTML;

下面开启我们多语言的开发之旅:
创建pot文件,pot是Portable Object Template的首字母缩写,与po对应的是mo,mo是Machine Object的首字母缩写。前者意指原始的字符串文件,一般用于给翻译人员去修改的,后者则是与机器相关的,一般是供程序读取。可以手工创建pot文件,也可以通过xgettext从代码中抽取字符串来产生。这里是用xgettext来产生的:
xgettext -a home.php -o home.pot
运行该命令后,我们发现,在当前目录下,产生了一个名home.pot的文件,打开该文件,可以看到:
复制代码 代码如下:
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR , YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-07-23 20:56+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: home.php:2
msgid "home"
msgstr "

根据pot产生不同语言的po文件,这里我们先产生一个简体中文的po文件:
export LANG=zh_CN.gb2312
msginit -l zh_CN.gb2312 -i home.pot
运行该命令后,我们发现,在当前目录下,产生了一个名zh_CN.po的文件,打开该文件,可以看到:
复制代码 代码如下:
# Chinese translations for PACKAGE package
# PACKAGE 软件包的简体中文翻译.
# Copyright (C) 2009 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# , 2009.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-07-23 20:56+0800\n"
"PO-Revision-Date: 2009-07-23 21:00+0800\n"
"Last-Translator: FULL NAME \n"
"Language-Team: Chinese\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=GB2312\n"
"Content-Transfer-Encoding: 8bit\n"
#: test.php:2
msgid "home"
msgstr "

翻译zh_CN.po里对应的字符串为中文:
复制代码 代码如下:
# Chinese translations for PACKAGE package
# PACKAGE 软件包的简体中文翻译.
# Copyright (C) 2009 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# , 2009.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-07-23 20:56+0800\n"
"PO-Revision-Date: 2009-07-23 21:00+0800\n"
"Last-Translator: \n"
"Language-Team: Chinese\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=GB2312\n"
"Content-Transfer-Encoding: 8bit\n"
#: test.php:2
msgid "home"
msgstr "主页

根据po文件生成mo文件。
msgfmt zh_CN.po -o zh_CN.mo
运行该命令后,我们发现,在当前目录下,产生了一个名zh_CN.mo的文件。它是二进制的,不能用文本编辑器打开。
安装mo文件到特定目录中:
cp -f zh_CN.mo .local/LC_MESSAGES/home.mo
修改程序。
复制代码 代码如下:
setlocale(LC_ALL, 'zh_CN');
// Specify location of translation tables
bindtextdomain("home", ".");
// Choose domain
textdomain("home");
// Translation is looking for in ./locale/zh_CN/LC_MESSAGES/home.mo now
$str = gettext('home'); //也可以使用_('home')
print {$str}
HTML;

运行这个脚本, 看看, 是不是输出正确的中文了呢?
添加其它语言也很容易,不需要修改程序,只需要像对待中文一样,生成一个mo文件,并安装到系统中对应的目录即可。切换不同的语言仅仅是修改当前的locale就行了。

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser vue et Element-plus pour obtenir un support multilingue et international Comment utiliser vue et Element-plus pour obtenir un support multilingue et international Jul 17, 2023 pm 04:03 PM

Comment utiliser vue et Element-plus pour obtenir un support multilingue et international Introduction : À l'ère de la mondialisation actuelle, afin de répondre aux besoins des utilisateurs de différentes langues et cultures, le support multilingue et international est devenu des fonctionnalités essentielles pour de nombreux projets front-end. Cet article expliquera comment utiliser vue et Element-plus pour obtenir un support multilingue et international afin que le projet puisse s'adapter de manière flexible aux besoins de différents environnements linguistiques. 1. Installer Element-plusElement-plus est vue officielle

Comment mettre en œuvre un site Web multilingue en PHP Comment mettre en œuvre un site Web multilingue en PHP May 22, 2023 am 11:31 AM

Avec la popularité croissante d’Internet, de plus en plus de sites Web doivent prendre en charge plusieurs langues. En effet, le public du site Web peut provenir de différentes régions et origines culturelles, et si le site Web n'est disponible que dans une seule langue, cela peut limiter le nombre et l'expérience des visiteurs. Cet article présentera comment implémenter un site Web multilingue en PHP. 1. Création et conception de fichiers de langue Les fichiers de langue sont des fichiers qui stockent toutes les chaînes de texte et leurs traductions correspondantes et doivent être créés dans un format spécifique. Lors de la création d'un fichier de langue, vous devez prendre en compte les aspects suivants : 1. Dénomination et emplacement de stockage Le nom du fichier doit être

Conseils pour utiliser i18n pour implémenter la commutation multilingue dans Vue Conseils pour utiliser i18n pour implémenter la commutation multilingue dans Vue Jun 25, 2023 am 09:33 AM

Avec le développement continu de l’internationalisation, de plus en plus de sites Web et d’applications doivent prendre en charge des fonctions de commutation multilingue. En tant que framework frontal populaire, Vue fournit un plug-in appelé i18n qui peut nous aider à réaliser une commutation multilingue. Cet article présentera les techniques courantes d'utilisation d'i18n pour réaliser une commutation multilingue dans Vue. Étape 1 : Installer le plug-in i18n Tout d'abord, nous devons utiliser npm ou Yarn pour installer le plug-in i18n. Entrez la commande suivante sur la ligne de commande : npminst

Comment CakePHP gère-t-il plusieurs langues ? Comment CakePHP gère-t-il plusieurs langues ? Jun 06, 2023 am 08:03 AM

CakePHP est un framework de développement PHP populaire qui aide les développeurs à créer rapidement des applications Web de haute qualité. Avec le développement de la mondialisation, de plus en plus d'applications doivent prendre en charge plusieurs langues, et CakePHP fournit également le support correspondant. Cet article présentera comment CakePHP gère plusieurs langues. 1. Prise en charge multilingue La prise en charge multilingue est une fonctionnalité importante de CakePHP. À partir de la version 2.0, CakePHP prend en charge le format de fichier gettext, qui

Comment utiliser PHP pour le développement d'un framework multilingue ? Comment utiliser PHP pour le développement d'un framework multilingue ? May 13, 2023 am 08:09 AM

Avec l’approfondissement de la mondialisation, de plus en plus de sites Web et d’applications doivent prendre en charge plusieurs langues. En tant que langage de programmation largement utilisé dans le développement Web, PHP doit également prendre en charge le développement de frameworks multilingues. Cet article explique comment utiliser PHP pour le développement d'un framework multilingue. 1. Qu'est-ce qu'un cadre multilingue ? Tout d'abord, comprenons d'abord ce qu'est un cadre multilingue. Le framework multilingue, comme son nom l'indique, est un framework qui peut prendre en charge plusieurs langues. Dans la conception d’internationalisation et de localisation, un cadre multilingue est essentiel. Il peut prendre en charge une variété de

Comment utiliser PHP et Typecho pour créer un site Web avec prise en charge multilingue Comment utiliser PHP et Typecho pour créer un site Web avec prise en charge multilingue Jul 21, 2023 pm 11:21 PM

Comment utiliser PHP et Typecho pour créer un site Web avec support multilingue Introduction : Avec le développement de la mondialisation, la création d'un site Web avec support multilingue est progressivement devenue un objectif poursuivi par les entreprises et les particuliers. En tant que langage de programmation populaire, PHP, associé à Typecho, un excellent programme de blog open source PHP, peut facilement créer des sites Web multilingues. Cet article expliquera comment utiliser PHP et Typecho pour créer un site Web avec prise en charge multilingue et fournira des exemples de code pertinents. 1. Installez et configurez d'abord Typecho

Comment utiliser Flask-Babel pour implémenter la prise en charge multilingue Comment utiliser Flask-Babel pour implémenter la prise en charge multilingue Aug 02, 2023 am 08:55 AM

Comment utiliser Flask-Babel pour obtenir une prise en charge multilingue Introduction : Avec le développement continu d'Internet, la prise en charge multilingue est devenue une fonctionnalité nécessaire pour la plupart des sites Web et des applications. Flask-Babel est une extension Flask pratique et facile à utiliser qui fournit une prise en charge multilingue basée sur la bibliothèque Babel. Cet article expliquera comment utiliser Flask-Babel pour obtenir une prise en charge multilingue et joindra des exemples de code. 1. Installez Flask-Babel Avant de commencer, nous devons d'abord installer Flask-Bab.

Comment utiliser Layui pour développer un site Web prenant en charge la commutation multilingue Comment utiliser Layui pour développer un site Web prenant en charge la commutation multilingue Oct 25, 2023 am 10:55 AM

Comment utiliser Layui pour développer un site Web prenant en charge la commutation multilingue Avec le développement de la mondialisation, de plus en plus de sites Web doivent prendre en charge la commutation multilingue pour répondre aux besoins des différents utilisateurs. Layui est un framework frontal très populaire qui fournit une série de composants et d'outils faciles à utiliser qui peuvent nous aider à développer rapidement de beaux sites Web. Cet article explique comment utiliser Layui pour développer un site Web prenant en charge la commutation multilingue et fournit des exemples de code spécifiques. Tout d’abord, nous devons introduire les fichiers liés à Layui dans la page Web. Peut

See all articles