0

Symfony2 で国際的なウェブサイトを構築しています。私の URL は次のようになります。

www.test.com/en_HK

これにより、英語のテキストと価格が香港ドルで表示されます。英文部分はすでに動いています。ロケールから国コードを取得するために利用できる Symfony 関数はありますか?

ロケールには「languagecode_COUNTRYCODE」が含まれています。または、国コードをロケールからそらすコードを何行か書く必要がありますか?

4

1 に答える 1

1

いいえ、ロケールは 2 文字になる可能性があるため、これを直接行う機能はありません。

元。en、fr、de

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");
    }

それに似たもの。明らかに、入力ロケールのより良い検証が必要になります。

于 2013-03-28T17:38:19.737 に答える