Heim > Backend-Entwicklung > PHP-Tutorial > phpmaster | Lokalisierung von PHP -Anwendungen Teil 1: Okt. 2011 - SitePoint

phpmaster | Lokalisierung von PHP -Anwendungen Teil 1: Okt. 2011 - SitePoint

Lisa Kudrow
Freigeben: 2025-03-02 08:37:09
Original
438 Leute haben es durchsucht

Internationalisieren Sie Ihre PHP -Anwendung: Implementieren Sie einfach mehrsprachige Unterstützung mit GetText

Die globalen Internetnutzer wachsen weiter und viele Benutzer möchten Ihre Inhalte in ihrer Muttersprache durchsuchen. Sie denken vielleicht, dass nur eine hervorragende Übersetzung erforderlich ist, um die Übersetzung der Benutzeroberfläche einer Website zu vervollständigen, aber die größere Herausforderung besteht darin, Hintergrundcode zu schreiben. Der herkömmliche Software-Lokalisierungsprozess ist umständlich und fehleranfällig, was zu Verwirrung im Code führt. Einige Entwickler verwenden sogar verschiedene Codeversionen für verschiedene Regionen, was das Codebasismanagement nahezu unmöglich macht.

getText ist ein ausgezeichnetes Open -Source -Tool, das den Prozess vereinfacht und sich auf das Schreiben von Code konzentrieren kann, während der Übersetzer für die Behandlung einzeln übersetzter Dateien in der Zielsprache verantwortlich ist. Mastering PHP GetText und Erweiterung des globalen Einflusses von Anwendungen wird zum Kinderspiel! In dieser Artikelreihe wird Ihnen beigebracht, wie Sie Ihre PHP -Anwendung mit GetText lokalisieren. Der erste Teil wird GetText schnell einführen. Auf dieser Basis erklären die nachfolgenden Teile, wie sie mit mehreren Übersetzungsdomänen, Pluralformen und sogar mit dem automatisierenden Teil des Lokalisierungsprozesses umgehen können.

Vorbereitungsumgebung

Stellen Sie vor Beginn des Lernens sicher, dass die Umgebung korrekt eingerichtet ist, um den Lerninhalt Schritt für Schritt zu testen. Hier ist die Installationsliste:

  • php 5.x auf Apache (oder einem beliebigen Webserver) aktivieren Sie die GetText -Erweiterung. Sie können die neueste Version von PHP unter www.php.net erhalten.
  • Poedit, ein plattformübergreifender GetText-Verzeichnis-Editor. Dies ist ein großartiges Tool, mit dem Sie die Übersetzung von Ihrem Anwendungscode trennen können. Sie können eine Kopie unter www.poedit.net erhalten.

Unabhängig von Ihrer Plattform müssen Sie die GetText -Bibliothek und die mit der Bibliothek verbundene PHP -Erweiterung von PHP verwenden. Ubuntu/Debian-Benutzer können APT-Get verwenden, und Fedora/Centos/Redhat-Benutzer können YUM verwenden, um die GetText-Bibliothek zu installieren. Wenn Sie ein anderes Unix-ähnliches System verwenden, besuchen Sie bitte www.gnu.org/s/getText, um eine Kopie des GetText zu erhalten, der mit Ihrer Plattform kompatibel ist. Windows -Benutzer können die neueste ausführbare Datei von gnuwin32.sourceforge.net/packages/getText.htm herunterladen und installieren. Nach der Installation der Bibliothek müssen Sie die PHP -Erweiterung von GetText aktivieren, indem Sie php.ini bearbeiten und eine Zeile hinzufügen:

<code># Windows用户
extension=php_gettext.dll
# *nix用户
extension=gettext.so</code>
Nach dem Login kopieren
Nach dem Login kopieren

Installieren Sie dann den Poedit, der später verwendet wird. Sie können eine Kopie unter www.poedit.net herunterladen.

"Hallo Welt" von GetText

Erstellen Sie in Ihrem Web -Root -Verzeichnis ein Sandbox -Verzeichnis namens Testi18N für GetText -Übungen (i18n steht für Internationalisierung). Erstellen Sie im Verzeichnis Testi18N die folgende Hierarchie:

phpmaster | Localizing PHP Applications Part 1: Oct 2011 - Sitepoint

In zukünftigen Projekten können Sie die übergeordneten Verzeichnisse und Gebietsschema -Verzeichnisse so benennen, aber en_us und lc_messages sind die von GetText verwendeten Standardnamen. en_us repräsentiert den Namen des Gebietsschemas und besteht aus zwei Teilen. Der erste Teil ist die zwei Kleinbuchstaben der Sprache gemäß der ISO 639-1-Spezifikation. Der zweite Teil nach dem Unterstrich ist nach Angaben der ISO 3166-1 ALPHA-2-Spezifikation ein zweistelliger Kapitalkodex. Daher bedeutet das En_us, dass die Sprache amerikanisches Englisch ist.

Als nächstes stellen Sie sicher, dass Poedit auf Ihrer Plattform ordnungsgemäß funktioniert. Starten Sie das Programm und wählen Sie "Datei"> "Neues Verzeichnis" in der oberen Menüleiste. Füllen Sie im Fenster Einstellungen die folgenden Informationen ein und überspringen Sie die Pluralformfelder vorübergehend:

phpmaster | Localizing PHP Applications Part 1: Oct 2011 - Sitepoint

Klicken Sie auf "OK" und speichern Sie die Datei als messus.po im Verzeichnis lc_messages. Jetzt schließen Sie Poedit und öffnen Sie Messages.PO mit Ihrem bevorzugten Texteditor ... Ja, es ist eine normale Textdatei! Sie können es manuell bearbeiten, aber um Ärger zu sparen, lassen wir Poedit die Hauptdefinition für uns erstellen. Hinterlassen Sie eine leere Zeile nach der vorhandenen Zeile in der Datei und fügen Sie Folgendes hinzu:

<code># Windows用户
extension=php_gettext.dll
# *nix用户
extension=gettext.so</code>
Nach dem Login kopieren
Nach dem Login kopieren

speichern Sie Nachrichten.po und schließen Sie sie und öffnen Sie es dann in Poedit. Wählen Sie in Poedit Datei> Speichern oder klicken Sie in der Symbolleiste "Verzeichnis speichern". Der Grund, warum wir PO -Dateien in Poedit speichern, ist, dass sie in ein spezielles Format zusammengestellt werden müssen, das für GetText verfügbar ist. Nach dem Speichern von Poedit sehen Sie, dass eine neue Datei mit demselben Namen im selben Verzeichnis erstellt wurde, jedoch mit der Erweiterung. Wenn Sie weiterhin PO -Dateien mit einem regulären Texteditor ändern und speichern möchten, müssen Sie mit dem Befehl pocompile kompilieren. Wenn Sie Poedit verwenden, sind keine zusätzlichen Kompilierungsschritte erforderlich, da die Datei beim Speichern automatisch kompiliert wird.

Gehen Sie zurück zum Testi18N-Verzeichnis und erstellen Sie eine Datei mit dem Namen test-locale.php mit dem folgenden Code:

<code># 测试标记1
msgid "HELLO_WORLD"
msgstr "Hello World!"

# 测试标记2
msgid "TEST_TRANSLATION"
msgstr "Testing translation..."</code>
Nach dem Login kopieren

Öffnen Sie Testi18n/Test-Locale.php in Ihrem Browser. Wenn alles richtig installiert ist und gut funktioniert, sehen Sie "Hallo Welt" auf der Seite.

Zusammenfassung

Sie haben viele Möglichkeiten, wenn Sie Ihre PHP -Anwendung lokalisieren. Wir haben uns für die GNU GetText -Bibliothek und ihre PHP -Erweiterung entschieden, eine leistungsstarke und einfache Möglichkeit, Ihre Anwendung "richtig zu lokalisieren"! In diesem Abschnitt sehen Sie, was Sie für die Installation von GetText- und PHP -Erweiterungen benötigen, kurz Poedit verwenden und Ihr Interesse an einem einfachen Hello World -Skript wecken. Der zweite Teil wird darauf basieren, um mehr über GetText zu erfahren.

Bilder aus Sgame / Shutterstock

(Folgendes ist der FAQ

Häufig gestellte Fragen zur Lokalisierung der PHP -Anwendung

Welche Bedeutung hat die Lokalisierung von PHP -Anwendungen?

lokalisierte PHP -Anwendungen sind für Unternehmen, die Benutzer auf der ganzen Welt erreichen möchten, unerlässlich. Es umfasst die Übersetzung der Benutzeroberfläche und anderer sichtbarer Elemente einer Softwareanwendung in verschiedene Sprachen. Dieser Prozess verbessert nicht nur die Benutzererfahrung, sondern erweitert auch die Marktabdeckung der Anwendung. Durch die Lokalisierung Ihrer PHP -Anwendung können Sie die Anforderungen verschiedener Benutzer erfüllen und so Ihre Benutzerbasis und potenzielle Einnahmen erhöhen.

Wie funktioniert PHP -Lokalisierung?

PHP -Lokalisierung beinhaltet die Verwendung spezifischer Funktionen und Bibliotheken, um Text in einer Anwendung zu übersetzen. Die häufigste Methode ist die Verwendung von GetText, einer leistungsstarken Bibliothek, mit der Sie Zeichenfolgen in eine Funktion einwickeln können, die sie entsprechend den Gebietsschemaseinstellungen des Benutzers übersetzt. Dies beinhaltet das Erstellen einer .PO -Datei für jede Sprache, die alle Übersetzungen enthält.

Was sind die Schritte zur Implementierung der PHP -Lokalisierung?

Implementierung der PHP -Lokalisierung umfasst mehrere Schritte. Zunächst müssen Sie die GetText -Bibliothek in Ihrer PHP -Umgebung installieren und konfigurieren. Als nächstes müssen Sie alle Zeichenfolgen in die Anwendung einwickeln, die Sie mit der GetText -Funktion übersetzen möchten. Anschließend müssen Sie .PO -Dateien für jede Sprache erstellen, die Sie unterstützen und alle Zeichenfolgen in diesen Dateien übersetzen möchten. Schließlich müssen Sie diese .PO -Dateien in .mo -Dateien zusammenstellen, die Binärdateien sind, und GetText kann sie lesen.

Was sind die Herausforderungen bei der Lokalisierung von PHP -Anwendungen?

Lokalisierung von PHP -Anwendungen kann aus mehreren Gründen eine Herausforderung sein. Erstens kann das Übersetzen aller Zeichenfolgen in einer Anwendung zeitaufwändig sein, insbesondere wenn die Anwendung riesig und komplex ist. Zweitens kann die Aufrechterhaltung der Übersetzung schwierig sein, insbesondere beim Aktualisieren oder Hinzufügen neuer Funktionen Ihrer Anwendung. Drittens kann es schwierig sein, mit Plural-, Geschlecht und anderen grammatikalischen Feinheiten in verschiedenen Sprachen umzugehen.

Wie kann ich mit Pluralzahlen in der PHP -Lokalisierung umgehen?

Die NGETTE -Funktion kann verwendet werden, um Pluralzahlen in der PHP -Lokalisierung zu verarbeiten. Diese Funktion akzeptiert drei Parameter: die einzigartige Form, die Pluralform und die Anzahl der Zeichenfolge. Anschließend gibt es das richtige Formular basierend auf der Nummer zurück. Beispielsweise gibt NgettExt ("One Apple", "viele Äpfel", $ number) "One apples" zurück, wenn $ nummer 1 ist, ansonsten "viele Äpfel".

Wie testet ich meine lokalisierte PHP -Anwendung?

Sie können Ihre lokalisierte PHP -Anwendung testen, indem Sie das Gebietsschema auf dem Server oder im PHP -Code ändern und dann überprüfen, ob die Zeichenfolge korrekt übersetzt wird. Sie sollten auch das Layout und Design von Anwendungen in verschiedenen Sprachen testen, da einige Sprachen möglicherweise mehr Platz benötigen oder unterschiedliche Leserichtungen haben.

Kann ich eine maschinelle Übersetzung für die PHP -Lokalisierung verwenden?

Während die maschinelle Übersetzung Ihre Zeichenfolgen schnell und einfach übersetzen kann, wird sie nicht für die PHP -Lokalisierung empfohlen. Die maschinelle Übersetzung fehlt häufig die Genauigkeit und Kontextbewusstsein, die für die Softwarelokalisierung erforderlich ist. Es ist am besten, einen professionellen Übersetzer oder einen lokalisierten Service zu nutzen, um die Qualität der Übersetzung zu gewährleisten.

Wie kann ich die Übersetzung meiner PHP -Anwendung verwalten?

Sie können ein lokalisiertes Plattform oder ein Übersetzungsmanagementsystem verwenden, um die Übersetzung von PHP -Anwendungen zu verwalten. Mit diesen Tools können Sie Übersetzungen an einem zentralen Ort speichern, verwalten und aktualisieren. Sie bieten auch Funktionen wie Übersetzungsgedächtnis-, Glossar- und Kollaborations -Tools, mit denen Sie den Lokalisierungsprozess vereinfachen können.

Welche Rolle spielt die. PO- und .mo -Dateien in der PHP -Lokalisierung?

.PO- und .mo -Dateien spielen eine entscheidende Rolle bei der PHP -Lokalisierung. Eine .PO -Datei ist eine Textdatei, die die ursprüngliche Zeichenfolge und ihre Übersetzung enthält. Sie sind menschlich lesbar und können mit einem Texteditor oder einem .PO -Datei -Editor bearbeitet werden. Andererseits ist die .mo-Datei eine maschinenlesbare Binärdatei. Sie werden von .PO -Dateien generiert und von GetText verwendet, um Zeichenfolgen in der Anwendung zu übersetzen.

Kann ich meine PHP -Anwendung in einer Sprache lokalisieren?

Ja, Sie können Ihre PHP -Anwendung in jeder Sprache, die GetText unterstützt, lokalisieren. Sie müssen jedoch die Übersetzung dieser Sprache für alle Zeichenfolgen in der Anwendung haben. Darüber hinaus müssen Sie die kulturellen und sprachlichen Nuancen jeder Sprache berücksichtigen, um die Qualität der Lokalisierung zu gewährleisten.

Das obige ist der detaillierte Inhalt vonphpmaster | Lokalisierung von PHP -Anwendungen Teil 1: Okt. 2011 - SitePoint. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage