我想用我的PHP網站國際化,使用Twig和gettext。我成功設置了它,但過程很枯燥:必須使用PoEdit(例如)編輯PO文件,以便將其轉換爲MO,然後服務器必須重新啓動或緩存清空。用於PHP國際化的YAML到PO/MO
我想要更容易一些,比如在Symfony中:編輯一個YAML文件,然後一個庫會自動翻譯它並清空緩存。我想這就是Symfony所做的,因爲它也是基於Twig的。
然而,我找不到任何現有的解決方案,任何想法?
我想用我的PHP網站國際化,使用Twig和gettext。我成功設置了它,但過程很枯燥:必須使用PoEdit(例如)編輯PO文件,以便將其轉換爲MO,然後服務器必須重新啓動或緩存清空。用於PHP國際化的YAML到PO/MO
我想要更容易一些,比如在Symfony中:編輯一個YAML文件,然後一個庫會自動翻譯它並清空緩存。我想這就是Symfony所做的,因爲它也是基於Twig的。
然而,我找不到任何現有的解決方案,任何想法?
所有Simfony2的組件都與框架分離,並且可以在任何地方實現。所以如果你喜歡Symfony2翻譯系統,你可以在你的php項目中實現Translator component(與你想要的任何其他symfony組件)。
這比重新發明輪子更好嗎?
使用Symfony翻譯組件,本地化/國際化是微不足道的。這是一個標準組件,因此您不必添加任何內容,只需瞭解如何配置和使用它。
簡而言之,您可以爲您想要支持的任何語言創建翻譯文件,然後簡單地將文本包裹在樹枝翻譯塊{% trans %}Text To Translate{% endtrans %}
中,或通過翻譯器過濾器{{ myVar|trans }}
運行變量。然後Symfony將文本翻譯爲客戶端瀏覽器指定的任何_locale
。
閱讀Using the Symfony Translator瞭解更多信息。
這太棒了!但我不確定它是否也能與Twig一起工作,Twig需要明確的MO文件? – Rolintocour 2014-09-06 15:16:39
絕對不是。在symfony中,twig與Translator組件很好,你可以決定是使用文件(yaml,xml,other)還是數據庫。 – 2014-09-06 17:01:10