Heim Backend-Entwicklung PHP-Tutorial 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就行了。

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So nutzen Sie vue und Element-plus, um mehrsprachige und internationale Unterstützung zu erreichen So nutzen Sie vue und Element-plus, um mehrsprachige und internationale Unterstützung zu erreichen Jul 17, 2023 pm 04:03 PM

So nutzen Sie Vue und Element-Plus, um mehrsprachige und internationale Unterstützung zu erreichen. Einführung: Um auf die Bedürfnisse von Benutzern mit unterschiedlichen Sprachen und Kulturen zu reagieren, sind im heutigen globalisierten Zeitalter mehrsprachige und internationale Unterstützung zu wesentlichen Merkmalen geworden für viele Frontend-Projekte. In diesem Artikel wird erläutert, wie Sie mithilfe von Vue und Element-Plus mehrsprachige und internationale Unterstützung erreichen, sodass sich das Projekt flexibel an die Anforderungen verschiedener Sprachumgebungen anpassen kann. 1. Installieren Sie Element-plusElement-plus ist offiziell von Vue

So implementieren Sie eine mehrsprachige Website in PHP So implementieren Sie eine mehrsprachige Website in PHP May 22, 2023 am 11:31 AM

Mit der zunehmenden Beliebtheit des Internets müssen immer mehr Websites mehrere Sprachen unterstützen. Dies liegt daran, dass das Publikum der Website möglicherweise aus unterschiedlichen Regionen und mit unterschiedlichem kulturellen Hintergrund stammt. Wenn die Website nur in einer einzigen Sprache verfügbar ist, kann dies die Anzahl und das Erlebnis der Besucher einschränken. In diesem Artikel erfahren Sie, wie Sie eine mehrsprachige Website in PHP implementieren. 1. Erstellung und Design von Sprachdateien Sprachdateien sind Dateien, die alle Textzeichenfolgen und die entsprechenden Übersetzungen speichern und in einem bestimmten Format erstellt werden müssen. Beim Erstellen einer Sprachdatei müssen Sie folgende Aspekte berücksichtigen: 1. Benennung und Speicherort Der Dateiname sollte lauten

Tipps zur Verwendung von i18n zur Implementierung der Mehrsprachenumschaltung in Vue Tipps zur Verwendung von i18n zur Implementierung der Mehrsprachenumschaltung in Vue Jun 25, 2023 am 09:33 AM

Mit der kontinuierlichen Weiterentwicklung der Internationalisierung müssen immer mehr Websites und Anwendungen mehrsprachige Umschaltfunktionen unterstützen. Als beliebtes Front-End-Framework bietet Vue ein Plug-In namens i18n, das uns bei der Umschaltung mehrerer Sprachen helfen kann. In diesem Artikel werden gängige Techniken zur Verwendung von i18n zur Implementierung der Mehrsprachenumschaltung in Vue vorgestellt. Schritt 1: Installieren Sie das i18n-Plugin. Zuerst müssen wir das i18n-Plugin mit npm oder Yarn installieren. Geben Sie in der Befehlszeile den folgenden Befehl ein: npminst

Wie geht CakePHP mit mehreren Sprachen um? Wie geht CakePHP mit mehreren Sprachen um? Jun 06, 2023 am 08:03 AM

CakePHP ist ein beliebtes PHP-Entwicklungsframework, das Entwicklern hilft, schnell hochwertige Webanwendungen zu erstellen. Mit der Entwicklung der Globalisierung müssen immer mehr Anwendungen mehrere Sprachen unterstützen, und CakePHP bietet auch entsprechende Unterstützung. In diesem Artikel wird erläutert, wie CakePHP mit mehreren Sprachen umgeht. 1. Mehrsprachige Unterstützung Die Unterstützung mehrerer Sprachen ist ein wichtiges Merkmal von CakePHP. Ab Version 2.0 unterstützt CakePHP das gettext-Dateiformat, das

So verwenden Sie PHP und Typecho, um eine Website mit Mehrsprachenunterstützung zu erstellen So verwenden Sie PHP und Typecho, um eine Website mit Mehrsprachenunterstützung zu erstellen Jul 21, 2023 pm 11:21 PM

So erstellen Sie mit PHP und Typecho eine Website mit Unterstützung für mehrere Sprachen. Einführung: Mit der Entwicklung der Globalisierung ist der Aufbau einer Website mit Unterstützung für mehrere Sprachen nach und nach zu einem Ziel geworden, das von Unternehmen und Einzelpersonen verfolgt wird. Als beliebte Programmiersprache kann PHP in Kombination mit Typecho, einem hervorragenden PHP-Open-Source-Blogprogramm, problemlos mehrsprachige Websites erstellen. In diesem Artikel wird erläutert, wie Sie mit PHP und Typecho eine Website mit mehrsprachiger Unterstützung erstellen, und relevante Codebeispiele bereitstellen. 1. Installieren und konfigurieren Sie zuerst Typecho

Wie verwende ich PHP für die Entwicklung mehrsprachiger Frameworks? Wie verwende ich PHP für die Entwicklung mehrsprachiger Frameworks? May 13, 2023 am 08:09 AM

Mit der zunehmenden Globalisierung müssen immer mehr Websites und Anwendungen mehrere Sprachen unterstützen. Als in der Webentwicklung weit verbreitete Programmiersprache muss PHP auch die Entwicklung mehrsprachiger Frameworks unterstützen. In diesem Artikel wird erläutert, wie Sie PHP für die Entwicklung mehrsprachiger Frameworks verwenden. 1. Was ist ein mehrsprachiges Framework? Lassen Sie uns zunächst verstehen, was ein mehrsprachiges Framework ist. Ein mehrsprachiges Framework ist, wie der Name schon sagt, ein Framework, das mehrere Sprachen unterstützen kann. Beim Internationalisierungs- und Lokalisierungsdesign ist ein mehrsprachiges Framework unerlässlich. Es kann eine Vielzahl von unterstützen

So verwenden Sie Flask-Babel zur Implementierung der Mehrsprachenunterstützung So verwenden Sie Flask-Babel zur Implementierung der Mehrsprachenunterstützung Aug 02, 2023 am 08:55 AM

So implementieren Sie mit Flask-Babel die Unterstützung mehrerer Sprachen. Einführung: Mit der kontinuierlichen Entwicklung des Internets ist die Unterstützung mehrerer Sprachen für die meisten Websites und Anwendungen zu einer notwendigen Funktion geworden. Flask-Babel ist eine praktische und benutzerfreundliche Flask-Erweiterung, die mehrsprachige Unterstützung basierend auf der Babel-Bibliothek bietet. In diesem Artikel wird erläutert, wie Sie mit Flask-Babel mehrsprachige Unterstützung erreichen, und es werden Codebeispiele angehängt. 1. Flask-Babel installieren Bevor wir beginnen, müssen wir zuerst Flask-Bab installieren.

Wie verwende ich gettext in PHP für die Unterstützung mehrerer Sprachen? Wie verwende ich gettext in PHP für die Unterstützung mehrerer Sprachen? Jun 01, 2023 pm 05:00 PM

PHP ist eine sehr beliebte serverseitige Programmiersprache, die zum Erstellen dynamischer Websites und Webanwendungen verwendet wird. Normalerweise müssen wir bei der Entwicklung von Webanwendungen mehrere Sprachen unterstützen, um den Anforderungen verschiedener Benutzer gerecht zu werden. Aus diesem Grund müssen wir gettext für die Unterstützung mehrerer Sprachen verwenden. gettext ist eine Bibliothek, die Zeichenfolgen aus Programmen extrahieren und in andere Sprachen übersetzen kann und Entwicklern eine einfache, aber leistungsstarke Möglichkeit bietet, nahtlos zwischen verschiedenen Sprachen zu wechseln. In diesem Artikel wird die Verwendung von ge vorgestellt

See all articles