Локализация ресурсов текстовых файлов в .NET - PullRequest
3 голосов
/ 22 июля 2010

Локализация / глобализация довольно проста в Visual Studio с использованием файлов RESX. Я просто добавляю файл ресурсов, например MyTextSnippets.resx, добавляю пары ключ / значение и создаю копии для каждого языка, который я хочу поддерживать, например MyTextSnippets.de.resx, MyTextSnippets.fr.resx и т. Д.

Теперь подумайте о более длинных текстах, где сетка редактора ресурсов String работает не очень хорошо. Нет проблем, просто выберите «Добавить ресурс | Добавить новый текстовый файл» из конструктора, и вы можете редактировать столько текстовых файлов, сколько хотите. Пример: я добавляю MyTemplates.resx, и к этому RESX я добавляю файл с именем SomeEmailTemplate.txt. До сих пор работает нормально, однако, когда вы создаете копию файла resx, скажем MyTemplates.de.resx, и открываете оттуда SomeEmailTemplate.txt, он открывает всегда один и тот же файл . Если вы посмотрите на детали, текстовый файл не будет встроен в контейнер resx, но он будет создан в глобальной папке «Ресурсы», а файлы resx просто содержат ссылку на один и тот же файл.

Я не могу понять, как его локализовать. Есть идеи?

Конечно, я мог бы добавить текстовый файл для каждого языка, а во время выполнения перечислить доступные текстовые файлы и попытаться найти лучшее соответствие для культуры пользовательского интерфейса текущего потока. Однако это не так, потому что все это волшебство доступно из коробки для строк и свойств дизайнера.

1 Ответ

3 голосов
/ 22 июля 2010

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

Ознакомьтесь с рекомендациями по глобализации / локализации здесь .

...