首頁 >後端開發 >php教程 >phpmaster |本地化PHP應用程序第3部分:2011年11月-SitePoint

phpmaster |本地化PHP應用程序第3部分:2011年11月-SitePoint

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌原創
2025-03-02 08:35:10880瀏覽

>本文深入研究用於使用PHP中的GetText庫的高級技術,重點介紹了後備地區,語言環境切換和覆蓋消息域。

密鑰概念:

  • >默認場所:在開發初期建立應用程序的默認語言。 在其他域中,使用默認場所的字符串作為,可以簡化翻譯並改善性能。 避免將默認語言翻譯成本身。 msgids 通過指示getText使用其他域,可以輕鬆切換位置。 這通常是在應用程序的啟動或隨附的文件中處理的。
  • >
  • >>域覆蓋:使用
  • 在多個翻譯域之間切換。請記住,
  • 僅使用一個默認域,通過設置,而>則需要使用dgettext()>。 gettext()>。 textdomain() dgettext() PHP本地化優勢: php本地化對於全球範圍,增強用戶體驗和市場可訪問性至關重要。 bindtextdomain()
  • >目錄結構和後備場地:>
  • >最佳目錄結構避免了默認場所的不必要翻譯(例如,en_us)。 而不是使用“ Hello_world”之類的標識符,而是將實際的默認語言字符串直接用作
>。 這種方法最大程度地減少了處理開銷。

下圖說明了示例目錄結構:

msgid

>示例翻譯文件(

和編譯

):

> phpmaster | Localizing PHP Applications Part 3: Nov 2011 - Sitepoint>法語(

):

.po .mo>西班牙語(

):

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

es_ES

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

#Test token 2
msgid "Testing Translation..."
msgstr "Prueba de traducción..."</code>
切換語言位置:

ar_EG

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

#Test token 2
msgid "Testing Translation..."
msgstr "...اختبار الترجمة"</code>
>文件使用獲取參數或會話管理語言環境選擇:

中的示例用法:

locale.php

>訪問
<?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);
?>
將輸出法語翻譯。

test-locale.php

覆蓋當前域:
<?php
require_once "locale.php";

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

> test-locale.php?lang=fr_FR>使用

>從其他域(例如,“錯誤”)訪問翻譯。 至關重要的是,請記住使用

> 綁定該域的綁定

indgettext()bindtextdomain() locale.php

如果所選語言環境的“錯誤”域中的翻譯存在。
<?php
// ... (locale.php code) ...
bindtextdomain("errors", "Locale");
bind_textdomain_codeset("errors", "UTF-8");
// ... (rest of locale.php code) ...
?>

摘要和常見問題: test-locale.php

>本節總結了關鍵的學習,並為有關PHP本地化的常見問題提供了答案,涵蓋了諸如最佳實踐,處理複數,左右語言和管理翻譯等主題。 FAQ部分是廣泛的,並提供了有關PHP本地化各個方面的深入信息。 原始的常見問題解答部分已保留。

以上是phpmaster |本地化PHP應用程序第3部分:2011年11月-SitePoint的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn