Инвариантен .resx файл - c #, resx

Имам localizable c # заявление. Има файл Localization.resx и файл Localization.de.resx, Най- Localization.resx съдържа инвариантен език - това е английски.

Потребителят трябва да може да избере предпочитания от него език. Намерих първия отговор на този въпрос Програматичен начин за получаване на всички налични езици (в сателитни асемблени) за да се определи кои култури са на разположение. Виждам, че има de и InvariantCulture на разположение.

Но не мога да предложа InvariantCulture. Потребителят няма да знае какво е това, а трябва да предложа en.

Не мога да преименувам Localization.resx да се Localization.en.resx, тъй като този файл е необходим за създаване на класа, в която се съхраняват ресурсите.

Мога да копирам Localization.resx да се Localization.en.resx, но тогава винаги ще трябва да поддържам тези файлове съвместими и също така трябва да ги премахна InvariantCulture от наличните култури.

Мога да напиша конвертор, който визуализира InvariantCulture като en, Но това, мисля, е грозна рана.

Всяка помощ моля?

Отговори:

3 за отговор № 1

Можете да използвате NeutralResourcesLanguageAttribute монтажен атрибут за задаване на неутрален език.

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

Това също така го прави "резервен" за други спътници, ако ключът не е намерен в един ресурс (ако поискате ключ, който не е определен в resource.en-US.resx, той ще търси в resource.en.resx и накрая в resource.resx)

Не съм сигурен как изброявате езиковите имена, но в случай, че това все още е дадено InvariantCulture, може да има празен Localization.en.resx, и с този метод "ще намери всички липсващи ресурси в Localization.resx, така че няма нужда да ги синхронизирате.


2 за отговор № 2

В потребителския интерфейс позволяваме на потребителя да знае какво "по подразбиране"приложението има локализация на английски език. И предлагайте да го промените, като покажете всички налични опции, освен Invariant. Също така няма да е грозна хак да напишем конвертор, който визуализира InvariantCulture като en.