問題タブ [currentuiculture]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
winforms - WinForms コントロールの CurrentCulture をオーバーライドする
WinForms で特定のコントロールのCurrentCulture
とをオーバーライドすることは可能ですか? CurrentUICulture
この 1 つの特定のコントロールが異なるカルチャを使用するようにするには?
localization - ASP.NET 2.0 で言語が自動的に切り替わるのはなぜですか?
現在、サイトの 2 つの現在の言語として en-GB および zh-HK 言語を実行する ASP.NET 2.0 Web ソリューションに取り組んでいます。その他は後日追加予定です。
要件の 1 つは、表示される言語を別の言語にオーバーライドすることをユーザーが選択できることです。したがって、香港のユーザーはサイトを英語で表示でき、その逆も可能です。
私の2つのリソースファイルは
- Resources.resx (英語用 - デフォルトの翻訳)
- Resources.zh-HK.resx (中国語用)
サイトはこのロジックを実行します
- ユーザーの詳細を読み込む
- ユーザーが優先言語をオーバーライドしたかどうかを確認します
- ある場合は、Thread.CurrentThread.CurrentUICulture をこの言語に設定します。
- そうでない場合は、ブラウザのデフォルトを使用してください。
これは、次のコードで実装されています。
また、uiCulture を自動的に取得するように web.config を構成しました。
いくつかの非常に奇妙な理由で、一部のユーザー (en-GB ユーザーでさえも) は、言語が何の理由もなく zh-HK に切り替わっていることに気付いています。これらのページにいくつかのデバッグ コードを追加しました。これにより、今後さらに多くの情報が明らかになるはずです。これまでに明らかになったのは、ユーザーは必ずしも zh-HK のユーザーではなく、一部のユーザーは zh-CN または zh-TW のユーザーであるということだけです。これは役立つかもしれませんが、en-GB ユーザーは zh-HK を見ているので、これはただのニシンだと思います。
私が気付いたのは、切り替えがページ コンテンツ (IntializeCulture() メソッドが存在するベース ページから継承したもの) で発生することです。私が作成したカスタム ユーザー コントロールでは、この問題は発生せず、ユーザーが構成した正しい言語で表示されます。したがって、ページには英語と中国語の両方のコンテンツの組み合わせが含まれます。
これを正しくコーディングしているかどうか、または要件にアプローチする別の方法について、誰でもガイダンスを提供できますか。
前もって感謝します、
ドミニク
PS これは断続的な問題であり、永続的なものではありません。この問題を再現する一般的なアクションはないようです。それはちょうど - 起こります。
PPS これは実際の問題の画像です。
2009 年 9 月 23 日更新:
Page.Culture に変更しようとしても、断続的に問題が発生します。
なぜこれが発生する可能性があるのか についていくつかのアイデアがありますが、私の「仮説」を正当化することはできません。
- IIS 5.0 分離モードを使用しています。つまり、各 IIS インスタンスの w3wp.exe ではなく、aspnet_wp.exe のみが実行されています。
- Reporting Services もサーバーで実行され、香港のレポートを生成します。
- この障害は、サイトの負荷が高いときに、より頻繁に発生します。大量のレポートが生成されるためだと思います。
それとは別に、他に何が問題を引き起こす可能性があるのか わかりません。別のスクリーンショットを表示しますが、問題は同じで、前のスクリーンショットが示したのと同じ場所に表示されました。
2009 年 9 月 25 日更新:
私たちはそれを解決したかもしれないと思います。Web.config には、次のように構成されたタグがあります。
それを取り除いた後、最初のテストの後、それはまだ現れていません!
2009 年 10 月 13 日更新:
問題が再び発生しました:-(
2009 年 10 月 26 日更新:
サイトの別のユーザーが優先言語を変更すると、サイト上の他のすべてのユーザーに影響するようです! 彼らの優先言語は設定されていますが、どういうわけか他の誰かの言語切り替えがサイトの他のユーザーに影響を与えています!
.net - Windows XP の CurrentUICulture の初期値はどこで設定できますか?
アプリケーションで複数の言語をサポートしようとしています。いくつかのサテライト アセンブリを作成したので、たとえば、フランスのコンピューターで実行したときにアプリがどのように見えるかをテストしたいと考えています。
[コントロール パネル -> 地域と言語のオプション] の [地域のオプション] タブでフランス語 (フランス) を選択し、[詳細設定] タブでフランス語 (フランス) を選択できます。
しかし、これは私のアプリケーションにフランス語だと思わせるには十分ではありません。
このコードをメイン関数の先頭に追加すると、
ci1->Name は ですfr-FR
が、ci2->Name はen-US
です。
残念なことに、フランスのサテライト アセンブリを使用するには、CurrentUICulture をfr-FR
.
コードで CurrentUICulture を CurrentCulture と同じものに設定したくない - コントロール パネルなどを使用してデフォルトのものを変更したい。
CurrentUICulture が変更されたときにイベントを検出する方法について、インターネットで多くの投稿を見てきましたが、変更方法を教えてくれるものは何もありません!
silverlight-3.0 - Silverlight 3 ローカリゼーション構成
アプリケーションを再コンパイルせずに現在のスレッドの UICulture を変更できるように Silverlight アプリケーションを構成する方法を知りたいです。
app.xaml で現在のスレッド カルチャを設定すると、カルチャを変更するたびに再コンパイルする必要があります。アプリケーション設定を追加した場合、クライアントでその情報を取得して現在のスレッド カルチャ情報を変更するにはどうすればよいですか?
何か案は ?
c# - Thread.CurrentThread.CurrentUICulture が一貫して機能しない
私は週末にペット プロジェクトに取り組んで C# についてさらに学びましたが、ローカリゼーションの作業中に奇妙な問題に遭遇しました。具体的には、私が抱えている問題は System.Threading.Thread.CurrentThread.CurrentUICulture にあります。
ユーザーがメニュー項目をクリックしてアプリの言語をすばやく変更できるように、アプリをセットアップしました。メニュー項目は、言語の 2 文字のコード (「en」、「fr」など) を「Language」というユーザー設定に保存し、アプリケーションを再起動します。
アプリケーションが起動すると、フォームのコンストラクターのコードの最初の行 (InitializeComponent() の前であっても) が設定から言語文字列を取得し、CurrentUICulture を次のように設定します。
問題は、これは一貫して機能しないということです。すべてがうまく機能し、アプリケーションが設定ファイルに保存された文字列に基づいて正しい言語をロードする場合があります。そうでない場合もあり、アプリケーションの再起動後も言語は同じままです。
最初は、アプリケーションを再起動する前に言語を保存していないと思っていましたが、そうではありません。正しい言語の読み込みに失敗した場合、アプリケーションを閉じて再度実行すると、正しい言語が正しく表示されます。これは、Language 文字列が保存されていることを意味しますが、フォーム コンストラクターの CurrentUICulture 割り当てが効果を発揮しない場合があります。
何か助けはありますか?C# でスレッド化がどのように機能するかについて、私が見逃しているものはありますか? これはマシン固有の可能性があるため、違いがある場合は、Pentium デュアルコア CPU を使用しています。
アップデート
Vlad から、CurrentThread の CurrentUICulture が何であるかを確認するように依頼されました。そのため、コンストラクターに MessageBox を追加して、CurrentUICulture の 2 文字のコードと、Language ユーザー文字列の値を教えてくれました。
間違った言語が読み込まれると、Language 文字列と CurrentUICulture の両方に間違った言語が含まれます。したがって、CurrentUICulture はクリアされていると思いますが、実際には言語設定に問題があります。
したがって、問題は、アプリケーションが最後に保存された言語文字列ではなく、以前に保存された言語文字列をロードすることがあることだと思います。アプリを再起動すると、実際に保存された言語文字列が読み込まれます。
asp.net - .NETのCultureInfoを使用したリソース文字列へのアクセス
別の簡単な質問。私は異なる言語のウェブサイトを持っています。リソースファイルから文字列にアクセスしたい場合は、次のように使用します
非常に簡単。そうすれば、コンパイル時にリソース文字列が存在することがわかります。
現在、これは現在のカルチャを使用したい場合にのみ機能します。特定のカルチャを指定する必要がある場合があります(現在のユーザーが言語としてドイツ語を使用しているが、彼のアクションにより、受信者の言語である他のユーザーにメッセージが送信されるとしましょう)。今、私は2つのオプションが表示されます。
もう1つは、現在のスレッドのカルチャ情報を変更することです。これは、数回行う必要があります。
第三の道はありますか?コンパイル時にリソースは存在するが、スレッドのカルチャを常に変更する必要がないことを教えてくれるものはありますか?
.net - .NET グローバリゼーション: ページまたはスレッドにカルチャ/UICulture を設定しますか? 違いは何ですか?
質問のタイトルは基本的に質問全体です。ASP.NET では、InitializeCulture メソッドをオーバーライドしてページの Culture/UICulture プロパティを設定したり、現在のスレッドのプロパティを設定したりできます。
違いは何ですか?両方の長所/短所は何ですか? それぞれのオプションをどのような状況で使用しますか?
silverlight - Silverlightのデフォルトの文字列形式
たとえば、ダブルがあります
そして、Silverlight 4アプリケーションのTextBlockに表示したいのですが、表示は次のようになります。
4.32
また、バインディングのStringFormatを変更することはできません。
例外は、番号が次の場合です。
次に、表示されます
4
、ではありません4.00
。
また、最悪の例外は、現在のUIカルチャーを考慮に入れる必要があることです。つまり、アプリを米国でデプロイする場合は.
、小数点以下の区切り記号としてを使用する必要があり、ヨーロッパでは、を使用する必要があります,
(英国では、しかし、あなたはポイントを得る...)
StringFormatを変更できた場合は、defaultformatを設定できますが、#.##
CultureInfoを使用して変更したいと思います。
c# - CurrentUICulture で桁区切りを指定する
スレッドのカルチャ情報を設定しようとしています
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("de-DE");
上記は私が設定したカルチャです。これは、小数点以下の情報を変換するための数値形式でうまく機能します。千の区切り記号を設定しようとしていますが、グリッドビュー レベルで設定したり、string.Format を使用したりせずに方法がわかりません。
スレッドカルチャレベルで千単位の区切り記号を設定する方法を知っている人はいますか?
asp.net - resourcemanager が間違った UICulture を使用してコンテンツを提供しています! ニュートラルな文化を常に返す
重複の可能性:
CurrentThread.CurrentUICulture は正しく設定されていますが、asp.net では無視されているようです
私は多くのフォーラムで尋ねましたが、誰も私を助けることができないようです!
default.aspx:
default.aspx.vb:
グローバル.asax:
\bin フォルダー: bin フォルダーには次のものがあります。
私は次のようにdllを生成します:
今、default.aspxをロードすると
Literal1 コントロールには、「何をお探しですか?」と表示されます。これは App_LocalResources\default.aspx.en.resx の値なので、正しいです。
しかし、ページ タイトル (Me.Page.Title = rm.GetString("homewelcome")) には、bin\strings.txt の値が表示されます。bin\en\strings.txt の値を表示したいので、それはもちろん正しくありません
つまり、リソース マネージャーはカルチャを無視していますが、リテラルは正しいカルチャを使用しています!
ここで何が欠けていますか?