私は、人々がコンテンツを作成し、コンテンツにコメントできるようにする Web サイトを構築しています。
フォーム ラベル、ボタン、その他の静的コンテンツなどには、.resx
ファイルを使用できます。私は以前にそれをやったことがありますが、うまくいきます。
今、私はどちらの道を進むべきか分からない岐路に立たされています。私にはどちらも同じように聞こえますが、これがそのような領域への私の最初の進出になるので、私が考慮していない可能性のある落とし穴について尋ねたいと思います.
実装を考えた 2 つのオプションを次に示します。どちらも、ユーザー生成コンテンツをローカライズしてユーザーに表示するという私の問題を解決してくれます。
オプション A:
MVC3 アプリケーション全体の複数のコピーを作成し、各ローカリゼーションを独自の IIS アプリケーションに配置します。
foobar.com
es.foobar.com
ru.foobar.com
そして、ローカリゼーションごとに異なるデータベースを使用するには、web.config ファイルを変更するだけで済みます。
これにはいくつかの問題があります。たとえば、次のようになります。
ユーザーがログインし
foobar.com
、ローカライズされたバージョンのサイトにアクセスしたとしても、2 つの完全に別のアプリケーションであるため、ログインすることはできません。統一されたモデレーション ツールはありません。各アプリケーションにアクセスしてログインし、管理パネルにアクセスして、そこからモデレートする必要がありました。
ページのすべてのバージョンに変更/更新をプッシュするのは困難です。各 IIS アプリケーション フォルダに手動で移動し、ローカライズされたバージョンごとに公開されたファイルをコピーする必要がありました。
オプション B:
単一の MVC3 アプリケーションを作成し、バックエンド データベースでローカリゼーションごとに複数のフィールドを作成します。
例えば:
Car
------
CarID
Name
esName
ruName
Make
esMake
ruMake
..and so on..
次に、選択したローカリゼーションに基づいて、表示するフィールドを動的に選択します。サブドメインにアクセスすると、IIS の実際のドメインを指すようにサブドメインをバインドできない限り、まったく別の IIS アプリケーションに移動するため、これが可能かどうかさえわかりません。
foobar.com
es.foobar.com
ru.foobar.com
このアプローチで私が目にする問題は、フィールドの数だけでなく、レコードの数においても、各テーブルのサイズが巨大になることです。これが問題になるかどうかはわかりません。
MVC3 アプリケーションでユーザーが生成したコンテンツのローカリゼーションを実装する方法について、いくつかの提案をいただければ幸いです。
つまり、スペイン語版 ( ) にアクセスしたユーザーには、他のバージョンではなくes.foobar.com
、他のスペイン語のコンテンツとユーザーが作成したコメントが表示されます。コンテンツを翻訳してエンド ユーザーに提示するという意味ではありません。