2012-11-18 54 views
3

我對本地化文件進行了一些搜索,看到我們可以使用.po文件或gettext,但是,是否有任何教程或獨特解決方案的示例,這些解決方案可以在JavaScript和PHP中使用。JS和PHP的本地化文件

我想只維護一種本地化文件,每種語言都可以使用JS和PHP語言。

會讚賞如果有人可以點我一些鏈接或樣本...

感謝

回答

3

我發現它通常是一個可疑的設計的標誌,當可翻譯的文本編碼JS功能內。 JS是爲了實現邏輯,而不是內容。內容應該由PHP提供(通常通過使用模板引擎)並且應該由JS使用。這樣你只需要一個PHP本地化解決方案。

如果(總是出現異常),您確實需要在JS例程中翻譯一個短語,然後使用ajax調用來獲取翻譯。這也簡化了對持有翻譯令牌的字典的訪問,因爲它再次由PHP完成。字典可以保存在一個地方。

+1

你能否詳細說明*除了AJAX調用之外,你還可以從PHP獲取語言字符串到js嗎? – untill

+0

沒關係,我在http://www.pontikis.net/blog/php-javascript-internationalization-gettext-poedit上找到了一個可能的選項描述。 – untill

3

是的,有。前段時間,我已成功使用gettext.js,該操作使用.json或.po文件。這樣,你只需要維護一個翻譯源。我用過的這個網頁是located here,所以你可以看看我是如何做到的。祝你好運!

3

首先,儘可能避免gettext。它很流行且穩定,但是它會給翻譯維護帶來一些負擔:您需要更改源字符串更改,並且發生此情況時,gettext需要更新所有消息鍵,這可能會混淆現有翻譯。使用常量消息密鑰的方法從長遠來看更容易維護 - 您需要記住刪除不再使用的密鑰,但這是一個非常小的負擔。

您可以對PHP和JavaScript使用相同的翻譯存儲格式。如果您使用基於密鑰的方法,就像我建議的那樣,它可能會是一些基於JSON的格式。 JSON可以通過PHP和JavaScript輕鬆訪問。

有幾個現成的JavaScript庫用於基於JSON的國際化。我碰巧是一個這樣的庫的開發者:https://github.com/wikimedia/jquery.i18n。它適應PHP應該是相當容易的。