1

多言語シナリオだけでなく、特定のコミュニティの語彙と文法のローカライズをサポートするためのWebサイトの設計に関するさまざまなCompositeディスカッションを読みました。たとえば、技術コミュニティと一般公開コミュニティ。

これらの議論は説得力があると思いましたが、さまざまな「方言」を追加するためにC1のコンテキストでこれらのシナリオを実装する方法を説明していませんでした。

これらの方言を手動で次のデータソースファイルに追加し、言語のように扱う必要があると思います:「Composite.Cultures.en-us」。

上記のシナリオを処理するためのベストプラクティスがあるかどうか、およびそれを達成するための手動の方法が少ないかどうかを説明してください。

4

2 に答える 2

1

異なる「方言」に対して同じページ構造で異なるコンテンツを表示したい場合は、そうです-それらを言語として扱うことは理にかなっています。言語のリストは、システムによってWindowsレジストリから取得されるため、方言を言語として追加する場合は、コード( http://msdn.microsoft.com/en-us/library/)を使用して登録できます。 ms172469.aspx)。ただし、関連するASP.NETプロセスはWindowsレジストリにアクセスする必要があり、サイトを新しい環境に移動する必要があるたびに追加の作業が必要になる可能性があるため、お勧めしません。
方言スイッチャーとして使用しない既存のカルチャコードを使用することもできますFeen-US/ en-GB/en-AU。

もう1つの方法は、各ページのコンテンツに個別のプレースホルダーを設定することです。1つは技術ユーザー用で、もう1つは非技術ユーザー用です。URL/Cookieに応じていずれかが表示されます。このアプローチでは、クローラーのURLを同じにするか、異なるページにするか、ページに同じコメントを付けるか、別々にするかなども決定する必要があります。

方言サイトが同じページ構造を維持していない場合は、それらを異なるページツリーとして使用し、必要に応じて、ある種のメタデータフィールドを使用して関連ページを相互にリンクすることもできます。

于 2012-01-13T23:19:37.057 に答える
1

質問を理解しているかどうかわかりません。サイトが表示されている言語ではなく、ログインしているユーザーに応じて異なることを言うために、フロントエンド Web サイトに特定の文字列を配置したいからですか?

C1 のデフォルトのローカリゼーション ファイルは~/Composite/localization、形式で配置されていますSome.Namespace.language.xml。つまり、サイトがアメリカ英語で書かれているが、Techs または Others の特定の文字列の異なるバージョンを表示したい場合は、次の xml ファイルを作成できます。

  • My.Component.General.en-us.xml
  • My.Component.Technical.en-us.xml

表示する文字列を取得する必要がある場合は、次のロジックがあります。

var ns = "My.Component";
var mode = is_tech ? "Technical" : "General";

return StringResourceSystemFacade.GetString(ns +"."+ mode, "title");
于 2012-01-12T09:20:45.447 に答える