Heim  >  Artikel  >  Backend-Entwicklung  >  Mehrsprachige Unterstützung in PHP: So verwenden Sie Gettext

Mehrsprachige Unterstützung in PHP: So verwenden Sie Gettext

王林
王林Original
2023-06-20 09:13:071403Durchsuche

PHP ist eine weit verbreitete Programmiersprache, mit der dynamische und interaktive Webanwendungen einfach erstellt werden können. Bei der Entwicklung von Webanwendungen ist die Unterstützung mehrerer Sprachen ein wichtiger Faktor. Gettext ist ein Open-Source-Software-Internationalisierungstool, das zur Unterstützung mehrerer Sprachen verwendet wird und in PHP integriert werden kann. In diesem Artikel wird erläutert, wie Sie mit Gettext die Mehrsprachenunterstützung in PHP implementieren.

Was ist Gettext?

Gettext ist ein Software-Internationalisierungstool, das die Standardbibliothek zur Unterstützung mehrerer Sprachen auf modernen Linux- und Unix-Systemen darstellt. Es funktioniert mit fast allen Programmiersprachen und kann mit einer Vielzahl von Textdateiformaten umgehen. Das Grundprinzip von Gettext besteht darin, Software in nur einer Basissprache (normalerweise Englisch) zu schreiben und alle Sprachzeichenfolgen in eine Übersetzungsdatei einzufügen. Übersetzungsdateien können mit den von Gettext bereitgestellten Tools erstellt und verwaltet werden. Zur Laufzeit lädt Gettext die Übersetzungsdateien in die Anwendung und ersetzt die Sprachzeichenfolgen durch die korrekten Übersetzungen.

Wie verwende ich Gettext?

Zunächst müssen Sie sicherstellen, dass die Gettext-Erweiterung auf Ihrem Webserver installiert ist. Auf gängigen Linux-Servern kann die Gettext-Erweiterung mit dem folgenden Befehl installiert werden:

sudo apt-get install php-gettext
  1. Gettext in PHP konfigurieren

Die Aktivierung von Gettext in PHP erfordert eine Konfiguration in der Datei php.ini. Öffnen Sie die Datei php.ini und finden Sie die folgende Zeile:

;extension=php_gettext.dll

Ändern Sie sie in:

extension=php_gettext.dll
  1. Erstellen Sie eine Übersetzungsdatei

Als Nächstes müssen Sie eine Übersetzungsdatei erstellen. Die Übersetzungsdatei sollte alle Textzeichenfolgen enthalten, die Sie übersetzen möchten.

Das Übersetzungsdateiformat von Gettext ist eine Binärdatei mit einer bestimmten Dateierweiterung (normalerweise .po). Wenn Ihre Anwendung mehrere Sprachen unterstützen muss, müssen Sie für jede Sprache separate Übersetzungsdateien erstellen.

Beim Erstellen von Übersetzungsdateien müssen Sie die von gettext bereitgestellten Tools verwenden. In Betriebssystemen wie Ubuntu und Debian kann gettext mit dem folgenden Befehl installiert werden:

sudo apt-get install gettext

Als nächstes erstellen Sie eine neue Übersetzungsdatei mit dem folgenden Befehl:

msginit --input=file.pot --locale=en_US.utf8

Wobei die Option --input die PO-Datei für die Anwendung angibt Basissprache: Die Option --locale gibt die Lokalisierungseinstellungen für die Übersetzungsdatei an, die Sie erstellen möchten. Wenn Sie diesen Befehl ausführen, erstellt Gettext automatisch eine Übersetzungsdatei mit Übersetzungseinträgen für alle Zeichenfolgen.

  1. Übersetzungsdateien aktualisieren

Wenn es in Ihrer Anwendung neue Textzeichenfolgen gibt, die übersetzt werden müssen, oder vorhandene Zeichenfolgen, die geändert werden müssen, müssen Sie die Übersetzungsdateien entsprechend aktualisieren. Um eine Übersetzungsdatei zu aktualisieren, verwenden Sie den folgenden Befehl:

msgmerge --update po-file.po translation-file.po

wobei po-file.po die PO-Datei Ihrer Anwendung und translation-file.po die Übersetzungsdatei ist, die Sie aktualisieren möchten.

  1. Laden von Übersetzungsdateien

Das Laden von Übersetzungsdateien in PHP erfordert die Verwendung der Funktion gettext() in der Erweiterung gettext. Wenn Sie die Funktion gettext() verwenden, müssen Sie die zu übersetzende Textzeichenfolge und die aktuelle Sprache angeben.

Das Folgende ist ein Beispiel für die Verwendung der Funktion gettext() zum Laden einer Übersetzungsdatei:

// 加载翻译文件
$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!');

Der obige Code verwendet zunächst die Funktion bindtextdomain(), um das Verzeichnis der Übersetzungsdatei zu binden, und verwendet dann die Funktion textdomain(), um Legen Sie die Domäne der aktuellen Übersetzung fest. Als nächstes verwenden Sie die Funktion gettext(), um die Zeichenfolge „Hello, world!“ in die aktuelle Sprache zu konvertieren. Wenn die Sprache nicht Englisch ist, findet die Funktion gettext() die entsprechende Übersetzung in der Übersetzungsdatei und ersetzt sie durch Chinesisch oder andere Übersetzungen.

Fazit

Mit Gettext können Sie die weltweite Nutzung Ihrer Webanwendungen vereinfachen und gleichzeitig die Verfügbarkeit und Zuverlässigkeit Ihrer Anwendungen verbessern. In diesem Artikel wird beschrieben, wie Sie Gettext in PHP verwenden, um mehrsprachige Unterstützung zu erreichen. Sobald Sie diese Funktionen verstanden haben, können Sie sicher mit dem Schreiben von Webanwendungen beginnen, die mehrere Sprachen unterstützen.

Das obige ist der detaillierte Inhalt vonMehrsprachige Unterstützung in PHP: So verwenden Sie Gettext. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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
Vorheriger Artikel:Volltextsuche mit Solr in PHPNächster Artikel:Volltextsuche mit Solr in PHP