2016-05-25 10 views
1

私は国際的に展開されるWebサイトで作業しています。非常に大きなサイトですが、わかりやすくするために、心配しているのはError.aspxとC#のコードです。このカスタムエラーページを可能な限り動的にしたいと思います。このページを読むには、少なくとも今ではいくつかの言語が必要であり、さらに多くの言語が必要です。このページは、データベースを参照せずに独立して動作する必要があります。翻訳されたテキストのスタンドアロンエラーページ?

テキストを入力して、そのドメインに適した言語に基づいて適切な翻訳を表示したいとします。 ".com" =英語、 ".ca/fr" =フランス語、 ".mx" =スペイン語...あなたはそのアイデアを得る。

これを行うにはどうすればよいですか?

私はAPIを見てきましたが、まともなものはコストの閾値がありますが、実際に役立つかもしれませんが、これはかなり標準的なエラーメッセージのテキストです。変更する可能性は低いので、ダイナミックトランスレータ。スケーラビリティーに役立つかもしれませんが、別の言語/国/ドメインを追加する場合にはハードコーディングとの対比を避けるために無制限に余分なお金が必要です。

私が持っていたもう1つのアイデアは、単純にC#でハードコードすることでした。 Request.URLを解析してドメインを取得し、適切なテキストを割り当てるスイッチのステートメントを増やしてください。 (これを行うためのより良い方法を見つけることも試みていますが、要求オブジェクトまたはサーバーのいずれかから利用可能な情報である国コードですか?)この方法は、独立した、正確な、具体的なレベルでの唯一の欠点は、エラーメッセージの内容を調整する必要がある場合は、新しい言語を追加するか、すべての文字列を変更する(おそらくそれほど多くはないと思われる)ことです。しかし、これは悪い習慣のように感じます。

私は1日前にこれを研究していましたが、私はこれらの2つの選択肢に何も選択肢が見つかりませんでした。 CMSを使用せずに、少量の翻訳テキストを処理するベストプラクティスは何ですか?

答えて

2

ASP.NET Webフォームでローカライズを処理する簡単な組み込み方法があります。クライアントのブラウザの言語設定を使用して言語を選択します。それを設定するステップを投稿することは、オンラインで利用可能なこの件に関する多くの情報があるため、冗長です。 Here is a good tutorial

編集:
HTMLリソースファイルを読むことをお勧めします。これは、さまざまな言語を扱うためのHTML標準です(ローカリゼーションと呼ばれます)。また、サーバーコントロールのローカルリソースを作成するときにASP.NETがバックグラウンドで使用するものです。

+1

偉大なリソース、まさに私が探していたもので、ローカリゼーションという言葉を聞いたことがあります。 – Jon

+0

ちょうどちょっとした面倒なこと - ちょうどドメインがCultureを設定する必要があると言われました...私はこれを取得でき、 CurrentThread.CurrentCultureを新しい値に設定することができますが、同じページにリダイレクトする際に、カルチャ設定はブラウザが最初に行っていたことです...別の場所にリロードする方法はありますか特別にresx? – Jon

関連する問題