如何在kostache模板中使用kohana i18n __('translation')
?Kostache和kohana翻譯系統
1
A
回答
3
爲Kostache製作一個自定義的擴展方法並使用它。
我在模塊/ kostache /班/ Kohana的/ kostache.php文件中使用服用點是這樣的:
public function i18n(){
return array('I18n', 'get');
}
你也許可以做到這一點用PHP 5.3更好一點,但是這一切都在工作PHP版本
而且在模板中,你會做這樣的事情:
{{#i18n}}Some translatable text{{/i18n}}
關於鬍子的好處是,喲你幾乎可以在任何語言中使用它(包括js,所以你可以在客戶端和服務器端使用相同的模板)。使用自定義方法擴展會增加一點複雜性,因此您必須在使用鬍子的所有語言中實現它們。幸運的是,在js中執行它非常簡單,因爲一切都是對象。 例如,像這樣的工作:
var i18n= function(s){
var someText = ""; // GET THE TRANSLATE TEXT (HOWEVER YOU LIKE)
return someText;
}
現在你可以使用你的擴展方法在客戶端以及服務器。
不錯,是不是:)
0
接受的解決方案不適合我(也許一些版本兼容性問題),所以我在這裏寫我的解決方案,也許它會幫助某人。
我的問題是,鬍鬚傳遞Mustache_LambdaHelper對象作爲第二個參數,其中I18n :: get()期待該語言,並且它引發異常。
解決辦法:
public function i18n() {
return function($value, $helper) {
return I18n::get($value);
};
}
您也可以使用數組的方法,如果匿名函數是一個問題,但你必須創建一個額外的類或函數來處理這個問題,像這樣:
class i18nFilter {
public function get($value, $helper) {
return I18n::get($value);
}
}
在這種情況下,該功能將成爲:
public function i18n() {
return array('I18nFilter', 'get');
}
而且,你不必修改Kohana_Kostache類爲了得到這個工作。您也可以在視圖類中創建該函數。
相關問題
- 1. JSON翻譯系統
- 2. xsl翻譯系統
- 3. Kohana翻譯文件
- 4. 在Kohana中翻譯URI
- 5. Kohana - 在手柄上使用kostache
- 6. Kohana管理系統
- 7. symfony上的實體翻譯系統
- 8. 基於社區的翻譯系統
- 9. Erlang的Kohana事件系統?
- 10. UIView的座標系 - 抵消和翻譯
- 11. R:google翻譯API(包'翻譯'和''translateR')
- 12. Javascript和翻譯
- 13. Json和翻譯
- 14. ListPreference和翻譯
- 15. Kohana數據庫配置系統
- 16. Drupal:翻譯聯繫表
- 17. 使用預先存在的/系統翻譯與gettext?
- 18. 翻譯GetVersionEx號到操作系統名稱
- 19. 如何翻譯Joomla! 3.x系統消息?
- 20. 如何在gettext系統中清空翻譯?
- 21. gettext翻譯在生產系統上不起作用
- 22. 你的衆包翻譯管理系統建議是什麼?
- 23. 從拉美唯一的系統翻譯的非拉丁字符
- 24. Kostache - before()方法
- 25. Kohana ORM關係
- 26. 翻譯頁面和聯繫表使用JavaScript和CSS
- 27. GNU編譯系統,闕
- 28. 用C編譯系統
- 29. 將ER圖翻譯爲關係模型
- 30. 翻譯WP與__()和sprintf()
你好,你可以請檢查了這一點http://stackoverflow.com/questions/21204333/kohana-i18n-and-kostache-i-dont-understand – Karem 2014-01-18 19:34:43