簡體   English   中英

Symfony2:如何設置默認語言環境和不區分大小寫的翻譯

[英]Symfony2: How to set default locale and case insensitive translation

我剛剛開始使用symfony2,面臨一些困難,需要像你這樣的專家的幫助。

問題1:如何設置默認的區域設置和后備區域設置,以便人們嘗試點擊類似www.example.com/home或www.example.com/fr/home(不支持的區域設置)的內容將重定向到www.example.com / CN /家?

我從symfony2文檔( http://symfony.com/doc/current/book/translation.html )上閱讀了很多內容,並在谷歌搜索但我仍然無法使其工作。 不僅默認語言環境不起作用,后備語言環境也無效。 例如,當用戶嘗試輸入我的應用程序不支持的www.example.com/fr/home時,它會將用戶重定向到www.example.com/cn/home,但它無法執行此操作。

我也嘗試清除緩存,但似乎無法正常工作。

問題2:如何在不區分大小寫的情況下匹配翻譯密鑰?

例如,在我的翻譯文件(“message.cn.yml”)中包含

Welcome: 歡迎

所以在我的twig模板中,我使用{{' Welcome '| 它會幫助我轉換為歡迎但是當我使用{{' welcome '| 它不會轉換。 有沒有辦法讓它不區分大小寫,所以我不需要故意在message.cn.yml文件中加入“ welcome :歡迎”鍵。

非常感謝您的幫助和建議。 謝謝。

以下是我的應用文件供您參考:

翻譯文件:

在此輸入圖像描述

參數文件:

在此輸入圖像描述

配置文件:

在此輸入圖像描述

特定包中的路由文件(“Acme / DemoBundle”):

在此輸入圖像描述

樹枝文件:

在此輸入圖像描述

這是我擊中時的結果

  1. 本地主機/現場/網絡/ app_dev.php /

在此輸入圖像描述

  1. 本地主機/現場/網絡/ app_dev.php / EN

在此輸入圖像描述

  1. 本地主機/現場/網絡/ app_dev.php / CN

在此輸入圖像描述

  1. 本地主機/現場/網絡/ app_dev.php / FR

在此輸入圖像描述

您可以為請求設置區域設置:

 $this->container->get('request_stack')->getCurrentRequest()->setLocale($locale);

並且您可以使用請求偵聽器為每個請求設置區域設置: http//symfony.com/doc/current/cookbook/service_container/event_listener.html#request-events-checking-types

對於第二個問題,您可以將轉換添加到小寫:

   {{ 'WELCOME'|lower | translate}}

或者你可以創建自己的自定義枝條擴展,正在進行翻譯和其他內容: http//symfony.com/doc/current/cookbook/templating/twig_extension.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM