1

私のasp.netアプリでは、ユーザーは(ボタンの)いくつかのローカライズされた画像をアップロードできます。たとえば、「send.gif」、「send.fr.gif」、「send.en-UK,gif」をアップロードします。等..

訪問者が自分のページにアクセスするとき、訪問者のロケールに基づいて適切なファイルを選択する必要があります。

ロケールに基づいて最適な画像を見つけるための API (または簡単な方法) はありますか?たとえば、訪問者がフランスからの場合、API は「send.fr.gif」を返します。訪問者がオーストラリアからの場合、API は「send.en.gif」などを返す...

ロジックは、基本的に ASP.NET が適切なローカライズされたリソース ファイルを選択するのと同じである必要があります。

ありがとう。

4

1 に答える 1

1

あなたの投稿から、ユーザーのロケールを検出する方法が既にあるようです。したがって、あなたがこの情報を保持していると仮定します。

これを行う方法は、ユーザーのロケールをセッションに保存し、すべてのローカライズされたリソースを対応するディレクトリ名に保存することです。例えば:

/
    /images
        sendButton.gif
        background.gif
        /de-de/
            sendButton.gif
        /fr-fr/
            sendButton.gif

次に、HttpHandler を使用して、現在のユーザーのロケールに基づいて、ローカライズされたディレクトリをデフォルト ディレクトリの上にマップします。これにより、イメージをすべてのコードと css にシームレスに統合でき、ローカライズされたイメージが見つからない場合はベース ディレクトリのイメージを使用します。

より洗練された並べ替えが必要な場合は、国を言語内にネストすることをお勧めします。このような:

/
    /images
        sendButton.gif
        background.gif
        /de
            /de
                sendButton.gif
        /fr
            sendButton.gif
            /fr
            /be

その後、言語レベルのリソースを指定できます。さらに、http ハンドラー マップ ファイルをツリーの下ではなく上に伝搬するようにします。そのため、fr-fr リソースは、その名前の独自のリソースを持たないすべてのフランス語圏の国に使用されます。

もちろん、この時点ではかなり複雑になります。特に、何も指定されていない場合にフランス語のデフォルトとしてどのフランス語圏の国を使用するかを決定する場合はそうです。何をどのロケールに提供するかを決定するために、どこかに優先度を保存し始めたいと思うかもしれません。また、リソースがツリーを上下に伝播するかどうか。しかし、yoru マークアップと CSS をきれいに保ちながら画像をローカライズするための透過的な構造として、これは非常にうまく機能するはずです。

于 2008-11-25T12:51:23.663 に答える