問題描述

我有幾個 gettext()問題,在 WordPress Codex 的任何地方都沒有涵蓋,但我認為它們很重要。

  1. 主題中的__('string')應用於可能還存在於主 WordPress 翻譯文件中的字符串。沒有必要的文本域。示例:一,二,提交,取消,刪除等常用單詞。正確?

  2. 主題中的__('string', 'textdomain')應用於 theme-specific 的字符串。示例:’ 此選項啓用 X 功能’ 。正確?

  3. 我認為最好為主題 front-end 設一個文本域,另一個為 back-end 。像__('string', 'textdomain')__('string', 'textdomain-admin')。不是每個人都想花上幾個小時來翻譯 100 個額外的管理面板字符串。正確還是壞習慣?

  4. 每個 PLUGIN 應該有自己的文本域:__('string', 'plugin-name')。正確?

  5. 我認為為 THEME 字符串設置 CONTEXT 非常非常有用,但沒有人這樣做。為什麼?如:_x('add item', 'add slide text', 'textdomain')_x('add item', 'shopping cart', 'textdomain')

  6. 如何翻譯評論,日期,貨幣,小時,數字?

    1. 例如:一個評論,兩個評論,但在某些語言中可能是:一個評論,兩個評論,三個評論 X,四個評論 XY,五個評論 XYZ,六個評論 ABXY(複雜的形式與複雜的模式) 。

    2. 示例:幾乎所有主題都使用 the_time(get_option('date_format')); – 不應該是 echo date_i18n(get_option('date_format'), strtotime($post->post_date)); 還是 echo date_i18n('F jS, Y'), strtotime($post->post_date));

    3. 示例:英語使用 12,345.12,但一些語言可能使用 12.345,12 。

最佳解決思路

有趣的問題,我會盡力而為,但我希望其他人也可以提供意見。

通常我使用主題的文本域也可能存在於主 WordPress 翻譯文件中的字符串

re 2. 正確

我認為這是一個好主意,但我不知道這是不好的做法還是這樣的事情

正確

我也認為這是非常有用的。

再 6.1 幾個月前,奧託對 a post 做了正確的國際化字符串方式。對於與數字相關的任何內容,他給出以下內容:

$string = sprintf( __('You have %d tacos', 'plugin-domain'), $number );

re 6.2 。正確

re 6.3 。我不得不看這個,並在 WordPress forum 的線程上找到答案:

if (0 < $numtags) $numcats= number_format_i18n($numtags);

請記住,主題和插件的國際化還沒有廣泛傳播,WordPress 是非常美國 (或英語) 的導向,只有今年才有更多的人關注。我今年早些時候寫了一篇 article on WPCandy 關於這個主題。

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。