PHP Conference Japan 2024

bindtextdomain

(PHP 4, PHP 5, PHP 7, PHP 8)

bindtextdomain設定或取得網域的路徑

說明

bindtextdomain(字串 $domain, ?字串 $directory = null): 字串|false

函數 bindtextdomain() 可設定或取得網域的路徑。

參數

domain

網域名稱。

directory

目錄路徑。空字串表示目前的目錄。如果是 null,則會回傳目前設定的目錄。

回傳值

目前正在設定的 domain 之完整路徑名稱,失敗時則回傳 false

更新日誌

版本 說明
8.4.0 directory 現在是可選的。以前,這個參數必須要指定。
8.0.3 directory 現在可以是 null。以前,無法取得目前設定的目錄。

範例

範例 #1 bindtextdomain() 範例

<?php

$domain
= 'myapp';
echo
bindtextdomain($domain, '/usr/share/myapp/locale');

?>

上述範例將輸出

/usr/share/myapp/locale

注意事項

注意:

bindtextdomain() 的資訊是依程序維護,而不是依執行緒。

新增註解

使用者貢獻的註解 2 則註解

6
n8klatt
10 年前
你的 .mo 檔案名稱必須與 $domain 相符,例如,將檔案命名為 messages.mo 並呼叫 bindtextdomain("messages", $directory)。
4
roel dot vermeulen at gmail dot com
8 年前
我建議在 $directory 參數中使用絕對路徑。這讓我花了幾個小時除錯,因為對我的本地化函數的 Ajax 呼叫弄亂了路徑。而且由於如果在 $directory 中找不到路徑,則不會拋出任何錯誤,因此應該始終檢查結果

<?php
// 假設此檔案的路徑是 "/localization",而您的語系設定檔位於 "/locale" 目錄中。
$pathToDomain = __DIR__ . "/../locale";
if (
$pathToDomain != bindtextdomain($domain, $pathToDomain)) {
// 錯誤處理。
}
?>
To Top