Как определить язык, установленный в Windows Phone - PullRequest
0 голосов
/ 03 августа 2011

Мне нужно определить язык телефона, чтобы я мог отобразить сообщение соответствующим образом. Если это английский, тогда покажите английский. Скажем, я нацелился на несколько стран, таких как Китай, Япония, Корея. Как мне это сделать? вот мой неполный код, чтобы показать, что я имею в виду:

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;

Это файл vanila csproj моего приложения Wp7. В нем нет тегов SupportCulture. Итак, я должен добавить этот тег прямо, когда я открываю его с помощью блокнота? Когда я скачал ваш пример приложения, я открыл файл csproj с помощью блокнота, я тоже не вижу этот тег? Спасибо

Ответы [ 3 ]

3 голосов
/ 03 августа 2011

Способ, которым вы пытаетесь сделать локализацию, состоит в том, чтобы получить очень сложную работу, много дублирования и в будущем ее будет сложно изменить.

Существует встроенный способ поддержки нескольких языков / культур /и т.п.Смотри http://msdn.microsoft.com/en-us/library/ff637522(v=vs.92).aspx

1 голос
/ 03 августа 2011

Я написал блог на эту тему только на днях.В нем описывается, как локализовать от начала до конца, и он находится по адресу www.hopnet.mobi, щелкните «Блоги».

Как только вы освоите его, локализация действительно совсем не сложна.Я локализовал одно приложение, и я жду от друга, чтобы подтвердить мои переводы.Пока она это делает, я локализую другие приложения.Больше языков означает более широкое распространение, что означает больше денег.Вы делаете правильные вещи!

0 голосов
/ 03 августа 2011

Используйте CurrentCulture, которая находится в вашем пространстве имен System.Globalization. У него есть такие свойства, как Name, EnglishName, DisplayName и NativeName, поэтому вы можете выбрать, какой из них вам больше подходит.

РЕДАКТИРОВАТЬ: Определение языка будет зависеть от того, хотите ли вы разрешить пользователям изменять язык или нет. Если нет, то найдите его в App.xaml.cs и сохраните информацию в объекте IsolatedStorage, чтобы вы могли поделиться ею между различными страницами. Таким образом, вы можете избежать обнаружения языковых настроек позже и просто полагаться на сохраненные настройки. Что касается лучшей практики, я придерживаюсь CultureInfo. Я никогда не пытался идти напрямую через Thread.CurrentThread.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...