(スケーラブルな) Web アプリケーションの静的テキストの翻訳メカニズム/戦略を設計する必要があります。これは、非同期 jQuery からロードされた動的データを使用して、ASP.NET 環境の HTML、JQuery/JavaScript に基づいています (ただし、サーバー側のコントロールはありません)。 http ハンドラへの呼び出し。
Globalizeを使用して数値、日付などのローカライズに成功しましたが、テキストの翻訳を整理する必要があります。
翻訳されたテキストはデータベースに適切に保存されます (別のアプリケーションのネイティブ パートナーによって維持されます)。したがって、 jQuery Localization / jQuery Localize / jQuery-i18n-propertiesアプローチのようなファイル ベースのResX同等物を使用したくありません。データベースから翻訳を取得するために、ASP.NET コントロール (私は持っていません) をローカライズするリソース プロバイダー モデルを拡張するのと同様のソリューションです。
クライアント側のアプローチ: i18next の動的 (非静的) リソース ルートに出くわしたばかりで、http ハンドラー (およびJStorage / LawnChairでのキャッシュ) からそのようなものを返して、プレースホルダー/タグを埋めることができるかどうかを調べようとしています。 jQuery 関数を使用するか、 Mustacheまたはhogan.jsテンプレートで同様のアプローチを取ります。
サーバー側のアプローチ: HTML を提供する前に変更します。たとえば、この回答では、 HttpResponse.Filterを使用して応答サーバー側を変更することを提案しています (この記事を参照)。バッファがチャンク化されているため、ここで提案されているようにストリーム全体をキャプチャする必要があります。これはパフォーマンスの低下につながりますが、ページの各 (言語) バージョンをキャッシュすることでこれを軽減できることを願っています。
または、このインスタンスで複数のバージョンのページをキャッシュする方法がよくわかりませんが、このようにHTTP ハンドラーを使用すると、より単純なアプローチのように見えます。
他の誰かがこれらのアプローチの経験を持っているか、特にパフォーマンス、スケーラビリティ、および保守性の観点から要件を満たす同様のまたは「ベストプラクティス」を知っていますか?
何か不明な点があれば、私に知らせてください。私は Web 開発が初めてです。:)
注: これは、データ キャプチャ用のタブレット/ハンドヘルド デバイスで実行される Web アプリケーション用であり、CMS や静的サイトではありません (以前の化身は、約 5 年間、.Net Compact Framework で実行されていました。ユーザーが Android や iPad などの Windows 以外のデバイスを使用できるようにするための更新)。