如何检测Windows手机中的语言设置

时间:2011-08-03 11:38:15

标签: windows-phone-7

我需要检测手机的语言,以便我可以相应地显示信息。如果是英语,那么显示英语。说,我的目标是中国,日本,韩国等几个国家。我该怎么做?这里我的不完整代码显示我的意思:

tring StrLanSetOnClient;

  string strLanEng= "english Msg";
  string strLanChn=" Msg in chinese character";
  string strLanJpn= "Msg in Japanese character";
  string strLanKor= "Msg in Korean character" ;


   strLanSetOnClient =  CultureInfo..........


 If( strLanSetOnClient == "English") 
  {
         txtBlkLan.Text = strLanEng;
  }
 elseif ( strLanSetOnClient == "Chinese")
 {
         txtBlkLan.Text = strLanChn
 }
....

由于 ---更新了问题:

1)我应该在哪里检测语言?在App.xaml? 2)所有页面如何引用此全局变量名称?
3)哪种检测方法最佳?使用CultureInfo或thread.currentThread

由于




&#lt;?xml version="1.0" encoding="utf-8"?&#gt;
&#lt;Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"&#gt;
  &#lt;ProjectExtensions&#gt;
    &#lt;VisualStudio &#gt;
      &#lt;FlavorProperties GUID="{C089C8C0-30E0-4E22-80C0-CE093F11xxxx}"&#gt;
        &#lt;SilverlightMobileCSProjectFlavor&#gt;

          &#lt;FullDeploy &#gt; True  &#lt;/FullDeploy&#gt;

        &#lt;/SilverlightMobileCSProjectFlavor&#gt;
      &#lt;/FlavorProperties&#gt;
    &#lt;/VisualStudio&#gt;
  &#lt;/ProjectExtensions&#gt;
&#lt;/Project&#gt;

这是我的Wp7应用程序的vanila csproj文件。其中没有SupportCulture标签。那么,当我用记事本打开它时,我必须在其中添加此标记吗?当我下载你的示例应用程序时,我用记事本打开csproj文件,我也没看到这个标签?感谢

3 个答案:

答案 0 :(得分:3)

你尝试本地化的方式是变得非常复杂,有很多重复,将来很难改变。

有一种支持多种语言/文化等的内置方式。见http://msdn.microsoft.com/en-us/library/ff637522(v=vs.92).aspx

答案 1 :(得分:1)

前几天我在这个主题上写了一篇博客。它描述了如何从头到尾进行本地化,它位于www.hopnet.mobi,点击博客。

一旦掌握了它,本地化确实并不困难。我已经本地化了一个应用程序,我正在等待朋友验证我的翻译。虽然她正在这样做,但我正在本地化其他应用程序。更多语言意味着更广泛的分配,这意味着更多的钱你做对了!

答案 2 :(得分:0)

使用System.Globalization命名空间中的CurrentCulture。它具有Name,EnglishName,DisplayName和NativeName等属性,因此您可以选择最适合您的属性。

编辑:检测语言取决于您是否允许用户更改语言。如果没有,则在App.xaml.cs中检测它并将信息存储在IsolatedStorage对象中,以便您可以在不同的页面之间共享它。这样,您可以避免以后检测语言设置,只需依赖保存的设置即可。至于最佳实践,我坚持CultureInfo。我从未尝试直接通过Thread.CurrentThread。