3

PHP/Symfony2 で実行されている多言語 Web サイトがあります。

ユーザーが言語を切り替える (= ロケールを切り替える) ときに、html lang 属性を変更したいと考えています。

これを達成するための最良の方法は何ですか?

PS: 私の最終的な目標は、さまざまな言語のフォントを切り替えることができるようにすることです (中国語は、私が英語用に選択したフォントではあまりにも悪いように見えます)。CSS :lang() 疑似セレクターの使用を考えています:html:lang(zh)

4

2 に答える 2

9

テンプレートエンジンとしてhtml5とtwigを使用していると仮定します。

<!doctype html>

<html lang="{{ app.request.locale }}">

...
于 2013-01-31T04:50:07.910 に答える
1

ロケールを格納する推奨される方法は、言語コードの下線の国コード (en_GB など) です。

ロケールという用語は、ユーザーの言語と国を大まかに指します。アプリケーションが翻訳やその他の形式の違い (通貨形式など) を管理するために使用する任意の文字列を指定できます。ISO 639-1 言語コード、アンダースコア (_)、ISO 3166-1 alpha-2 国コード (たとえば、フランス語/フランスの場合は fr_FR) を使用することをお勧めします。 http://symfony.com/doc/current/book/translation.html

したがって、lang 属性でロケールを安全に使用するには、次のようにします。

<html lang="{{ app.request.locale|split('_')[0] }}">

これは、en_GBロケールとenロケールの両方で機能します。

于 2015-05-29T20:29:43.040 に答える