PHP中使用gettext来支持多语言的方法_PHP
我们今天用一个简单的实例说明一下在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
#
#, 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
"Language-Team: LANGUAGE
"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.
#
#
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
"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.
#
#
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:
"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就行了。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

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

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

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

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 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

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 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.

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
