ルータが認識するパターンに従って、異なるRESXファイルから内容が読み込まれるようにアプリケーションをセットアップしました。すべてのページは、URLの最初の部分に応じて特定の言語でアクセスできます。MVCアプリケーションで複数言語を扱うにはどうすればいいですか?
routes.MapRoute(
name: "Localization",
url: "{lang}/{controller}/{action}/{id}", ...
);
ノー仕様でテストしていたとき、私は私のLingo.REXSの英語版を取得し、私はSEに入れたとき、私はスウェーデン語版、すなわちLingo.se.RESXに着きます。これまでのところすべてが素晴らしい。
しかし、私はユーザーに言語の設定を制御させる方法がわかりません。私はそれが自動的にすることも、ブラウザの設定、地理データなどに基づいて想定したくありません。私は基本的には、どうやら魔法のように3つのフラグ(imgコントロール)が必要ですは、クリックされたフラグの言語に対応する接頭辞が付されている。
したがって、/ se/Home/Aboutと/ ge/Home/Aboutがあります。ユーザーはドイツの旗をクリックします - どのように後者にそれらをルーティングするのですか?スウェーデンの旗をクリックすると、どうやってスウェーデンの国旗にスクロールしますか?
私はthis blogと確認しましたが、クリックした旗の画像に応じて特定の言語にルーティングする方法に関する実際の問題は解決していません。私はまたthis blogを見つけましたが、私は彼らがどのようにそれをするのか分かりません。私はDBへの呼び出しの束を参照してくださいそれはRESXファイルに基づいていないと思うので(私の理解はそれが行く適切な方法です)、@TestResourceへの参照もあります。
今、私は混乱しており、不確実です。どんな提案や説明がありますか?
うーん...私はあなたが私が実装することによって、あまりにも多くのをやったことを意味かしら(吸引アップが配信されていることを、今)ので、あなたの回答のinsightfulnessを、認識特別なルートとローカライゼーション属性。あなたは、* _Layout.cshtml *のどこかに3つの言語の文化とのリンクを置く必要があると言いますか?そして、一度ユーザーがそれをクリックすると(したがって、文化を選択する)、それは存続するでしょうか?それは**簡単ではありません...できますか? –
はい、正しいです。それは簡単です。しかし、それはあなたの質問に表示されているルート値に一致するルートがあるかどうかに依存します。 「既定の」言語を扱う方法については、リンクされた回答を参照してください。 – NightOwl888
すごく面白いです。バグ(この場合は非常に役に立ちます)のように感じますが、愚かな再ルーティングでは**スラッシュ**の後に接尾辞**を処理します。それは素晴らしいことです!ありがとう。 –