Ресурсные файлы и спутниковые сборки - PullRequest
2 голосов
/ 20 января 2009

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

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

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

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

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

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

Спасибо, Mike

Ответы [ 2 ]

2 голосов
/ 16 февраля 2010

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

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

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

0 голосов
/ 20 января 2009

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

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

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

...