Перечисление переведенных ресурсов .resx во время выполнения в приложении WPF - PullRequest
0 голосов
/ 27 мая 2009

Я делаю локализацию для своего приложения WPF, храня строки в файлах .resx. Мой строковый ресурс по умолчанию (английский) - strings.resx. Для других языков называются strings.fr-FR.resx для французского, strings.es-ES.resx для испанского и т. Д.

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

Можно ли во время выполнения перечислить, какие языки есть в моей сборке?

Я мог бы обойти этот и жесткий код, в который включены языки, но он может меняться от сборки к сборке, так как сервер сборки собирает языковые ресурсы и строит динамически.

1 Ответ

2 голосов
/ 28 мая 2009

Я вижу два варианта, ни один из которых не идеален ...

  • Перечислите все известные культуры (CultureInfo.GetCultures) и попробуйте получить заданный ресурс для этой культуры => просто, но медленно
  • Найдите вспомогательные сборки в каталоге вашего приложения: для каждого подкаталога проверьте, соответствует ли его имя названию культуры (CultureInfo.GetCultureInfo) и содержит ли он файл .resources.dll
...