C# список ресурсов локализации

Сейчас я реализовал локализацию с помощью ресурсов (Strings*.resx), и столкнулся с двумя проблемами:

  1. Выбор языка

Я хочу сделать выбора языка в приложении. Но как приложению узнать, какие языки доступны? Я, конечно, могу просто забить в список имена папок, содержащих Имя_приложения.resources.dll, так как они отражают 2 буквы языка локализации, по которому можно создать CultureInfo. Но мне кажется, есть более простой и правильный путь, о котором я не знаю.

  1. User-friendly локализация

По умолчанию, моя программа имеет 2 ресурса локализации: по умолчанию (английский) и русский. Ресурсы – не самая удобная вещь для редактирования пользователем, особенно после компиляции. Мне бы хотелось создать папку Localization, в ней – .txt файлы локализации со структурой вида

ключ значение
ключ_2 значение 2
ключ_3 значение\n3

При запуске программа читает эти файлы и создаёт из них ресурсы локализации. Как создавать ресурс – я, вроде, нашёл – Strings.ResourceManager.GetResourceSet(new CultureInfo("xx-XX"),true,true). И то, я не уверен, что это сработает. А как мне с ним работать? Как помещать туда ключи и значения?

Обобщу вопросы:

Как получить список файлов-ресурсов локализации? Как добавить файл локализации програмно? Как програмно прочитать или добавить ключ или значение определённого языка (не текущего)? Если что-то из этого сделать нельзя¹, то есть ли другие методы локализации, такие же programmer-friendly как ресурсы {Сейчас я просто пишу строку на дефолтном языке, вызываю Resharper, он помещает эту строку в ресурсы (заодно подцепляя такие же строки) и открывает менеджер локализаций (таблицу), где я могу произвести локализацию этой строки для других языков.}?

¹ Но всё равно напишите, как сделать то, что можно


Ответы (0 шт):