Orientation Awareコントロールを使用して複数の解像度をサポートするモバイルアプリケーションをローカライズした人は誰ですか? CultureInfoは、実行時に設定可能であり、システムから読み取る必要はありません。これがサポートされているかどうかは不明です。助けてください。オリエンテーションでNET CFのローカライズ
Plamen
Orientation Awareコントロールを使用して複数の解像度をサポートするモバイルアプリケーションをローカライズした人は誰ですか? CultureInfoは、実行時に設定可能であり、システムから読み取る必要はありません。これがサポートされているかどうかは不明です。助けてください。オリエンテーションでNET CFのローカライズ
Plamen
私はあなたが言及しているコントロールを使用したことがないも私はあなたが言ったコントロールの実行時のCultureInfoを設定する必要が理由を知っていますか。したがって、私の返信は、実行時にCultureInfoを設定する方法に関する質問に基づいています。これがあなたの望むものでない場合は、私の返事を無視してください。私たちは、デスクトップ・アプリケーションをプログラミングしていた場合、のCultureInfoを使用して変更することができ
:
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US")
'en-US = American English
残念ながら、これはCF.NETでは不可能です。
実際、私が知る限り、実行時にCF.NETのデバイスのCultureInfo(および地域設定)を変更することはできません。レジストリの地域設定を変更する可能性はありますが、これはデバイスを再起動する必要があることを意味します。
私のコードライブラリでは、私はしばらく前に見つけたコードスニペットを持っています。このコードスニペットは、うまく動作するエミュレータでしかテストしていません。 これは "ハック"とみなされ、危険な可能性がありますしかし、エミュレータでテスト中に、私は決して問題に遭遇したことはありません。ここでは、VB.Netである:
'I declare the following statement
Dim myCIintl As New Globalization.CultureInfo("en-US") 'where en-US is for Ame-English
'Then I call the following sub
SetDefaultLocale(myCIintl)
'Here is the code of the sub
Public Shared Sub SetDefaultLocale(ByVal locale As System.Globalization.CultureInfo)
If Nothing Is locale Then
Throw New ArgumentNullException("locale")
End If
Dim fi As System.Reflection.FieldInfo = GetType(System.Globalization.CultureInfo).GetField _
("m_userDefaultCulture", System.Reflection.BindingFlags.NonPublic Or System.Reflection.BindingFlags.Static)
If Nothing Is fi Then
Throw New NotSupportedException("Setting locale is not supported in this version of the framework.")
End If
fi.SetValue(Nothing, locale)
End Sub
注:プライベート変数場合m_userDefaultCultureが壊れることがあり、コードの上に、将来のバージョンでは、その名前を変更するという事実を認識してください。また、変数の名前は、Windows Mobileのローカライズ版に別の名前が付いている可能性があります。スペイン語バージョンでは、別の名前が付けられている可能性があります。私はあなたがあなた自身のためにそれを試しなければならないと思うので、私は知らない。
上記の注記の他に、使用する地域の設定がデバイスに存在する限り、上記のコードは機能するはずです(指を横切る)。どの地域の設定がデバイスでサポートされているかを見るには、Ctackeがhereと表示した優れたコードを使用できます。
幸運を祈る!