Heim >Backend-Entwicklung >PHP-Tutorial >phpmaster | Lokalisierung von PHP -Anwendungen Teil 3: Nov 2011 - SitePoint

phpmaster | Lokalisierung von PHP -Anwendungen Teil 3: Nov 2011 - SitePoint

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌Original
2025-03-02 08:35:10876Durchsuche

Dieser Artikel befasst sich mit erweiterten Techniken für die Verwendung der GetText -Bibliothek in PHP und konzentriert

Schlüsselkonzepte:

  • Standardgebiet: Erstellen Sie die Standardsprache Ihrer Anwendung frühzeitig in der Entwicklung. Die Verwendung der Zeichenfolgen des Standard -Gebietsschale als in anderen Domänen optimiert die Übersetzung und verbessert die Leistung. Vermeiden Sie es, die Standardsprache in sich selbst zu übersetzen. msgids
  • Gebietsschema umschaltet: Umschaltungsorientierter, indem Sie GetText anweisen, eine andere Domäne zu verwenden. Dies wird normalerweise zu Beginn der Anwendung oder in einer enthaltenen Datei behandelt.
  • Domäne Überschreiben: Verwenden Sie , um zwischen mehreren Translationsdomänen zu wechseln. Denken Sie daran, dass dgettext() nur eine Standarddomäne verwendet, die über gettext() festgelegt ist, während textdomain() die Domänen mit dgettext() vorgebunden sind. bindtextdomain()
  • PHP -Lokalisierungsvorteile: PHP -Lokalisierung ist für die globale Reichweite, die Verbesserung der Benutzererfahrung und die Markteinführung von Market. .

Verzeichnisstruktur und Fallback -Orte:

Eine optimale Verzeichnisstruktur vermeidet unnötige Übersetzung des Standardgebiets (z. B. en_us). Verwenden Sie anstatt Identifikatoren wie "Hello_World" zu verwenden, die tatsächliche Standardsprachenzeichenfolge direkt als msgid. Dieser Ansatz minimiert den Verarbeitungsaufwand.

Das folgende Bild zeigt eine Beispielverzeichnisstruktur:

phpmaster | Localizing PHP Applications Part 3: Nov 2011 - Sitepoint

Beispielübersetzungsdateien (.po und kompiliert .mo):

französisch (fr_FR):

<code>#Test token 1
msgid "Hello World!"
msgstr "Bonjour tout le monde!"

#Test token 2
msgid "Testing Translation..."
msgstr "Test de traduction..."</code>

spanisch (es_ES):

<code>#Test token 1
msgid "Hello World!"
msgstr "¡Hola mundo!"

#Test token 2
msgid "Testing Translation..."
msgstr "Prueba de traducción..."</code>

arabisch (ar_EG):

<code>#Test token 1
msgid "Hello World!"
msgstr "!أهلا بالعالم"

#Test token 2
msgid "Testing Translation..."
msgstr "...اختبار الترجمة"</code>

Umschaltungsorte:

Die locale.php Datei verwaltet die Auswahl des Gebietsschemas mithilfe von GET -Parametern oder -sitzungen:

<?php
session_start();

$language = isset($_GET["lang"]) ? $_GET["lang"] : (isset($_SESSION["lang"]) ? $_SESSION["lang"] : "en_US");
$_SESSION["Language"] = $language;

$folder = "Locale";
$domain = "messages";
$encoding = "UTF-8";

putenv("LANG=" . $language);
setlocale(LC_ALL, $language);

bindtextdomain($domain, $folder);
bind_textdomain_codeset($domain, $encoding);

textdomain($domain);
?>

Eine Stichprobenverbrauch in test-locale.php:

<?php
require_once "locale.php";

echo _("Hello World!"), "<br></br>";
echo _("Testing Translation...");
?>

Zugriff auf test-locale.php?lang=fr_FR gibt die französische Übersetzung aus.

Überschreibung der aktuellen Domäne:

Verwenden Sie dgettext(), um auf Übersetzungen aus einer anderen Domäne zuzugreifen (z. B. "Fehler"). Beachten Sie, dass diese Domäne mit bindtextdomain() in locale.php:

gebunden wird
<?php
// ... (locale.php code) ...
bindtextdomain("errors", "Locale");
bind_textdomain_codeset("errors", "UTF-8");
// ... (rest of locale.php code) ...
?>

in test-locale.php:

<?php
// ... (include locale.php) ...
echo "<br></br>";
echo dgettext("errors", "Error getting content"), "<br></br>";
echo dgettext("errors", "Error saving data");
?>

Dies übersetzt korrekt "Fehler beim Erhalten von Inhalten" und "Fehler speichern Daten", wenn in der Domäne "Fehler" für das ausgewählte Gebietsschema Übersetzungen vorhanden sind.

Zusammenfassung und FAQ:

Dieser Abschnitt fasst die wichtigsten Erkenntnisse zusammen und enthält Antworten auf häufig gestellte Fragen zur PHP-Lokalisierung, die Abdeckung von Themen wie Best Practices, Handhabung von Pluralen, Sprachen von Recht nach links und Verwaltung von Übersetzungen. Der FAQ-Abschnitt ist umfangreich und bietet ausführliche Informationen zu verschiedenen Aspekten der PHP-Lokalisierung. Der ursprüngliche FAQ -Abschnitt wurde in seiner Gesamtheit beibehalten.

Das obige ist der detaillierte Inhalt vonphpmaster | Lokalisierung von PHP -Anwendungen Teil 3: Nov 2011 - SitePoint. 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:Senden von E -Mails mit PHPNächster Artikel:Senden von E -Mails mit PHP