2016-04-27 3 views
1

Мне нужно указать слово «Цвет» как «Цвет» в формате США и «Цвет» в формате Великобритании. Мои приложения работают в этих двух странах. Мне нужно соответствующим образом изменить написание. Я пробовал его со следующим кодом:Определить строку на основе информации о культуре в C# Silverlight

string sample = ""; 

if (CultureInfo.CurrentUICulture.Name == "en-US") 
    sample = "Color"; 
else 
    sample = "Colour"; 

Но это как-то не работает.

+0

Ваш код кажется ОК, так что проблема должна быть в другом месте – Pikoh

+0

Примечание стороны: я предлагаю извлекая метод/свойство 'IsUS' или так, чтобы избежать * опечатками * досадные ошибки (' «нам-EN» ' и так) –

ответ

0

В Silverlight культуральных по умолчанию «EN-US», независимо от страны, где вы на самом деле работаете в

Вы должны явно установить культуру в классе зрения с помощью следующего кода:.

this.Language = XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentCulture.Name); 

после установки культуры резьбы соответственно:

 CultureInfo ci = new CultureInfo(GetEnterpriseCultureName(enterpriseCultureId)); 
     Thread.CurrentThread.CurrentCulture = ci; 
     Thread.CurrentThread.CurrentUICulture = ci; 
     return ci.Name; 

Вы можете также переопределить символ валюты и разделители в этом, а также.

Source

Тогда, как только вы сделали, что самое простое решение, чтобы положить строки в пару файлов ресурсов. Один из них называется «Resource.resx», который является значением по умолчанию, а другой называется «Resource.en-US.resx» (например), если по умолчанию используется Великобритания.

Затем .NET автоматически выберет правильные ресурсы на основе культуры потока.

0

Правильный способ борьбы с локализацией и региональными различиями в орфографии заключается в использовании Silverlight Resource Manager, который был включен в структуру для такого рода вещей.

Иерархическая организация ресурсов

Чтобы понять, как ресурсы загружены, полезно думать о них, как организованы в иерархическом порядке. Локализованное приложение может иметь файлы ресурсов на трех уровнях:

  • В верхней части иерархии находятся резервные ресурсы для культуры по умолчанию, например, английский («en»). Это единственные ресурсы, у которых нет собственного файла; они хранятся в основной сборке.
  • На втором уровне ресурсы для любых культур, не имеющих отношения к региону. Культура, нейтральная региону, связана с языком, но не с регионом. Например, французский («fr») является областью нейтральной культуры.
  • В нижней части иерархии находятся ресурсы для любых конкретных культур. Конкретная культура связана с языком и регионом. Например, французский канадский («fr-CA») является определенной культурой.
Смежные вопросы