Symfony2 で国際的なウェブサイトを構築しています。私の URL は次のようになります。
www.test.com/en_HK
これにより、英語のテキストと価格が香港ドルで表示されます。英文部分はすでに動いています。ロケールから国コードを取得するために利用できる Symfony 関数はありますか?
ロケールには「languagecode_COUNTRYCODE」が含まれています。または、国コードをロケールからそらすコードを何行か書く必要がありますか?
Symfony2 で国際的なウェブサイトを構築しています。私の URL は次のようになります。
www.test.com/en_HK
これにより、英語のテキストと価格が香港ドルで表示されます。英文部分はすでに動いています。ロケールから国コードを取得するために利用できる Symfony 関数はありますか?
ロケールには「languagecode_COUNTRYCODE」が含まれています。または、国コードをロケールからそらすコードを何行か書く必要がありますか?
いいえ、ロケールは 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");
}
それに似たもの。明らかに、入力ロケールのより良い検証が必要になります。