2011-07-07 11 views
0

多言語で表示されるウェブサイトを構築していますが、言語に基づいて静的フォルダからさまざまなイメージを実装する方法はどうですか?djangoはレイアウトの画像を国際化

たとえば、メインサイトにアクセスすると、レイアウトは英語で読み込まれますが、フランス語に変更すると、レイアウトに添付されたロゴや画像は、要求された言語に基づいて変更されます。

について、テンプレートで

+0

CSSファイルの一部を同じ方法で切り替えることができます。右から左に表示される言語は、逆のレイアウト(例えば、 'float:left;'の代わりに 'float:right;')で見た目がよくなるかもしれません。 –

答えて

2

LANGUAGE_CODEは、あなたが正しい画像に代替画像パスまたは何を提供することができ、あなたを助けるかもしれません。私はよりエレガントな方法を知らないと申し訳ありません。

私はその情報をDjango Bookから得ました。リンクは正確にどこから得たかを示しています。

2

私はよく分かりませんが、組み込みi18nコンポーネントを利用しようとするとどうなりますか?
ですから、のような差分言語の異なるフォルダがあります。

  • 画像
    • en_images_folder
      • logo.png
      • banner.png
    • ru_images_folder
    • fr_images_folderを(倍

      <img src={{STATIC_URL}}/images/{% trans "fr_images_folder" %}/logo.png> 
      
      :今すぐにそれを変更

      <img src={{STATIC_URL}}/images/fr_images_folder/logo.png> 
      

      :えー、通常の翻訳に干渉しないように名前が)、

十分に一意である必要があり、テンプレートに、あなたは、それらをアクセス

poファイルを生成し、たとえばfrで作成します。

#: .\test_temp\test.html.py:5 
msgid "en_images_folder" 
msgstr "fr_images_folder" 

PS: 私はそれを試していませんでしたが、うまくいくと思います。 @John Doeはすでにドキュメントへのリンクを提供していますので、私はそれを繰り返さないでしょう。

+1

それは本当に "翻訳"が必要な文字列ではありません。言語コードの名前にちなんで、言語ごとに1つのサブディレクトリを持つ 'images'ディレクトリを持つことができます。パスは、ローカライズする必要があるものではありません。 –

+0

ええ、私は同意します。それを少し過ぎた:) – Pill