web-dev-qa-db-ja.com

多言語サイトで画像ファイルに名前を付けるには?

たとえば、英語とスペイン語の2つの言語を含む1つのサイトがあります。画像ファイルに名前を付けるための適切な規則は何でしょうか?

私の観点からすると、画像を複製し、アップロードするサイトに応じて名前を付けるのは愚かなことです。 IMOのリソースと無駄な仕事が無駄になります。

これについてどう思いますか?

6
RhymeGuy

画像の複製が本当に不要な場合は、おそらく両方の長所を活用することができます...画像を一度保存​​するだけで、異なる言語の異なるファイル名で参照されます-mod_rewrite(Apache)と内部書き換えを使用します。

Unorの例に基づく:

  • example.net/img/en/house.png
  • example.net/img/es/casa.png

これらは、サーバー側スクリプトにリクエストを送信するために内部的に書き換えられます。

  • imgScript.php?file = en/house.png
  • imgScript.php?file = es/casa.png

スクリプトは、要求された両方のファイルに同じ画像を提供することを知っています。おそらく、単純な検索連想配列を使用します。

array (
  'en/house.png' => 'real/path/to/my-house-pic.png',
  'es/casa.png' => 'real/path/to/my-house-pic.png',
  // etc.
);

この方法では、必要に応じて特定のファイルに異なる画像を提供できます。

3
MrWhite

ファイル名を変更する必要はないが、異なるファイルパスを提供する2つのソリューション:

  1. 同じディレクトリに転送する異なるドメインを作成します。そこで、サイトは言語を検出し、サーバーはパス/サイトコンテンツを修正します。例えばwebsite.eswebsite.comからコンテンツをプルするため、website.com/picture.jpgwebsite.es/picture.jpgになります

  2. 同様にes.website.comdk.website.com(これも安い:))などの 'メイン'(私にとってはこれが最初のサイトであり、通常はサイト所有者/メイン管理者の言語)サイトでサブドメインを使用します上記と同じアプローチで、1つのディレクトリからサイトを取得し、es.website.com/picture.jpgなどの言語固有のURLを取得します

これらの両方のソリューションが提供しないのは、前述の回答者table.jpgまたはmensa.jpgのような意味のあるファイル名です

ただし、alttitleタグなどのメタ情報を使用すると、周囲のコンテンツやファイルが存在するページの言語宣言は言うまでもなく、補正されます。また、上記の両方のソリューションを使用して、GoogleウェブマスターツールでサイトのURL(およびコンテンツ)の位置情報を設定できます。

これは多くの作業のように聞こえますが、人気のあるCMSを使用する場合、プラグインがあります。

2
S..

画像を複製したくない場合、4つの方法があります。

  • 英語(house.png)
  • スペイン語(casa.png)
  • 英語とスペイン語(house_casa.pngまたはcasa_house.png)
  • 言語コンテンツなし:(alpha-)numerical ID、date(2012-09-25.png、123.png、…)

しかし、私はそれらを複製します。画像は、テキスト、PDF、ビデオ、オーディオなどのコンテンツでもあります。そのため、一般的には、翻訳されたメディアファイルを提供できるインフラストラクチャを持っている(または必要としている)でしょう。もちろん、翻訳を必要としないメディアファイル(サイレントフィルム、テキスト情報のない写真など)はありますが、例外として考えたいです(実際にそうであるかどうかは関係ありません)。

だから私は(画像が同じであっても)行きます:

  • example.net/en/house.png
  • example.net/es/casa.png
1
unor