2011-12-05 3 views
1

私はこの上に私の髪の毛が少し残っているかを解説し始めます。部分月カレンダーのローカライゼーションに失敗しました(「今日」のラベルは翻訳されません)

私はWindows 7の下でwinformsアプリケーション(.NET 3.5)を開発しています。このアプリケーションでは、実際の日付ピッキングにMonthCalendarを使用するカスタムの日付ピッカーコントロールがあります。下部に表示されている「今日」の日付を除いて、うまくいきました。その横に「今日」というラベルが付きます。あなたの聴衆がネイティブの英語話者であれば、これは問題ありません。私のものはデンマーク語です。

文化がデンマーク語に設定されている場合、「今日」のラベルは変更されず、週および月の名前と日付形式は関連するWindows設定に従います。それは小さな笑い声ですが、それでも迷惑なものです。

他にもこれを見ましたか?誰かが私が間違っていることを知っていますか?それに失敗した場合、回避策を知っている人はいますか?

答えて

2

あなたのデンマークの顧客は、Windowsのデンマーク語バージョンを実行します。今日はデンマーク語のテキストを使用しています。マシン上のカルチャを変更しても、MonthCalendarで使用されるようなネイティブWindowsリソースの言語は変更されません。

これは実際の問題ではありません。たとえば、スクリーンショットのように本物に見えるようにする必要がある場合は、WindowsのUltimateエディションのライセンスを購入してください。これらのネイティブリソースを変更する言語パックをインストールできます。または、MSDNサブスクリプションを使用して、デンマーク語Windows版にアクセスします。

+0

デンマークのお客様がデンマーク語版のWindowsを使用することをどのように知っていますか? – Bas

+0

デンマークのユーザーはWindowsのデンマーク語版を好むからです。彼らが何らかの理由で別の言語を選んだ場合、その選択を無効にするのはあなた次第ではありません。あなたもできません。 –

+0

エンタープライズまたは究極のウィンドウを用意していないので、現時点でテストするのは難しいですが、それは非常に説得力のある説明のようです。私はこの説明を読んで、少し面倒なことがありました。振り返ってみると少し分かりそうです:)ありがとう。 – LOAS

2

「今日」のラベルは、コントロールパネル(地域と言語)のオペレーティングシステムの言語を反映しています。下記の画像を参照してください。

これはWindows Formsライブラリに組み込まれているため、この問題を解決するためにプライベートフィールドをオーバーライド/非表示/設定することはできません。これは.NET 4.0でも同じです。

回避策は、MonthCalendarのTodayラベルを非表示にして、今日のボタンを模倣して正しい言語でテキストを表示するMonthCalendarを含むUserControlを作成することです。

+0

答えとスクリーンショットをありがとう。私が正しく理解していれば、写真の第2セクションはエンタープライズ版と最終版のWindowsエディションにのみ存在します。私はそれを持っていない窓専門家を持っています。 – LOAS

関連する問題