2013-03-28 133 views
0

我正在Symfony2中建立一個國際網站。我的URL看起來喜歡這樣的:在Symfony2的URL中使用語言環境(語言+國家)

www.test.com/en_HK

這應該顯示在港幣英文文本和價格。英文文本部分已經在工作。是否有Symfony函數可用於從語言環境獲取國家/地區代碼?

語言環境包含「languagecode_COUNTRYCODE」。或者我應該寫一些代碼行來分散區域設置中的countrycode?

回答

1

沒有,有沒有功能直接做到這一點,因爲語言環境可以是2個字母:

前。英語,法語,德

SonataIntlBundle提供了一些ISO代碼擴張,但你要找沒有什麼

http://sonata-project.org/bundles/intl/master/doc/reference/locale.html

Locale成分接近,與你可以這樣做:

$countryCodes = Locale::getCountries('en_HK'); 

寫這樣一個服務應該是相當簡單的:

class CountryCodeExtractor 
{ 
    function fromLocale($locale) 
    { 
     if(strlen($locale) == 4){ 
      return substr($locale, -2); 
     } 
     else throw new \Exception("Invalid locale passed"); 
    } 

類似的東西。顯然你會想要更好地驗證輸入語言環境。

+0

好的,謝謝你的回答! – Rick