Файлы ресурсов и вспомогательные сборки

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

В каталоге моего проекта: я создал файлы LanguageText.resx и LanguageText.nl.resx.

В моем каталоге проекта/bin: я создал папку "nl"

В моем каталоге project/bin/nl: я использовал ResGen.exe для создания файла LanguageText.nl.resources из файла LanguageText.nl.resx, затем я использовал AL.exe для создания файла project.resources.dll. Этот файл .dll находится в папке bin/nl. Он собран нормально, и теперь у меня есть nl/project.resources.dll в моей папке project/bin/debug.

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

Любая помощь или направление приветствуется.

Спасибо, Майк


person Community    schedule 19.01.2009    source источник


Ответы (2)


Вы можете сделать это с помощью AssemblyInfo. Перейдите к AssemblyInfo.cs и добавьте атрибут

[assembly: NeutralResourcesLanguageAttribute("en-US",UltimateResourceFallbackLocation.Satellite)]

Не забудьте добавить оператор using using System.Resources; вверху. Приведенная выше строка указывает, что нейтральным языком ресурсов вашей сборки является «en-US», и это сборка Satellite.

person Neo    schedule 16.02.2010

Резервные ресурсы должны быть помещены в LanguageText.dll в папке bin. В качестве альтернативы вы можете добавить атрибут System.Resources.NeutralResourcesLanguageAttribute в сборку LanguageText.dll и указать язык и региональные параметры по умолчанию, используемые, если язык и региональные параметры являются инвариантными или нет соответствия для данного языка и региональных параметров.

Создайте сборку nl, назовите ее LanguageText.resources.dll, поместите в папку bin/nl.

Убедитесь, что это работает, установив культуру в потоке и используя ResourceManager для получения ресурсов.

person baretta    schedule 19.01.2009