Защити свои аккаунты качественными и приватными прокси форматов IPv4 и IPv6! - Proxy-seller

VLD

Админ

Данные, встроенные в файл . resources, являются локализуемыми.

Проблема локализации ресурсов возникает, когда приложение запускается под управлением версии Windows, ориентированной на отображение всех данных на другом языке. В целях согласованности приложение должно использовать тот же самый язык.

Типичная настройка предполагает наличие следующих компонентов:

• главная сборка, содержащая файлы . resources для стандартного или запасного языка;
• отдельные подчиненные сборки, содержащие локализованные файлы . resources, которые переведены на различные языки.

Когда приложение запускается, платформа .NET Framework выясняет язык текущей ОС (из свойства Culturelnfo. CurrentUICulture). Всякий раз, когда с применением ResourceManager запрашивается ресурс, платформа .NET Framework ищет локализованную подчиненную сборку. Если она доступна — и содержит запрошенный ключ ресурса — она используется вместо версии главной сборки.

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

Подчиненные сборки развертываются в подкаталогах папки сборки, как показано ниже:

programBaseFolder\MyProgram.exe \MyLibrary.ехе \XX\MyPrcgrarr.. resources . dll \XX\MyLibrary.resources.dll

Здесь XX — двухбуквенный код языка (такой как de для немецкого) либо код языка и региона (вроде en-GB для английского в Великобритании). Такая система именования позволяет среде CLR автоматически находить и загружать корректную подчиненную сборку.

Построение подчиненных сборок

Предшествующий пример . resx включал следующий код:

[root]

[data name="Greeting"

[value]hello[/value]

[/data]

[/root]


Затем мы извлекали приветственное сообщение (Greeting) во время выполнения следующим образом:

ResourceManager г = new ResourceManager ("welcome",

Assembly.GetExecutingAssembly() ) ; Console.Write (r.GetString ("Greeting"));

Предположим, что при запуске в среде немецкоязычной ОС Windows вместо этого требуется вывести “Hallo”. Первый шаг состоит в добавлении еще одного файла . resx по имени welcome, de. resx, в котором строка hello заменяется строкой hallo: [root]

[data name="Greeting"]

[value]hallo[value]

[/data]

[/root]


В Visual Studio это все, что понадобится сделать — при компиляции в подкаталоге de будет автоматически создана подчиненная сборка по имени МуАрр. resources. dll. В случае использования командной строки сначала понадобится запустить resgen для преобразования файла . resx в файл . resources:

resgen МуАрр.de.resx

и затем запустить для построения подчиненной сборки:

al /culture:de /out:МуАрр.resources.dll /embed:МуАрр.de.resources /t:lib Можно указать /template: МуАрр. exe для импорта строгого имени главной сборки.

Тестирование подчиненных сборок

Для эмуляции выполнения в среде ОС с другим языком понадобится изменить свойство CurrentUICulture с использованием класса Thread:

System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.Culturelnfo ("de");

Culturelnfo. CurrentUICulture — это версия того же самого свойства, предназначенная только для чтения.

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

Поддержка визуальных конструкторов Visual Studio

Визуальные конструкторы в Visual Studio предоставляют расширенную поддержку для локализуемых компонентов и визуальных элементов. Визуальный конструктор WPF имеет собственный рабочий поток для локализации; другие визуальные конструкторы на основе Component применяют свойство, предназначенное только для этапа проектирования, которое показывает, что компонент или элемент управления Windows Forms имеет свойство Language. Для настройки на другой язык нужно просто изменить значение свойства Language и затем приступать к модификации компонента. Все свойства элементов управления с атрибутом Localizable будут сохраняться в файле . resx для заданного языка. Переключаться между языками можно в любой момент, просто изменяя свойство Language.
 
Сверху Снизу