2012-02-05 4 views
1

I думаю Я понимаю, но несколько аспектов меня смущают. Скажем, я хочу, чтобы строки были локализованы для MyApp в Германии, Испании и США..net resx файлы и локализация

MyApp.resx 
MyApp.de-DE.resx 
MyApp.es-ES.resx 
MyApp.en-US.resx // this *feels* redundant 

Последний файл рекс («ан») будет иметь те же ключи и значение, как «нейтральные» один, так как я американский разработчик, но ... мне нужно?

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

Может ли кто-нибудь, кто сталкивался с международным развитием, объяснить, почему или почему нет в (действительно) простой манере? И было бы важно, если бы я делал WPF, Silverlight, ASP или некоторые другие варианты .Net?

Приветствия,
Berryl

+0

Довольно сложно угадать, как вы их получили, локализация обычно выполняется с помощью компонента GUI. Вы должны использовать MyApp.en-GB.resx, чтобы не говорить с королевой. Спросите парня, который его написал. –

+0

@ Ханс Пассант. Мои файлы создаются через Visual Studio. Совсем не уверен, что я получаю вашу точку зрения, отличную от английского, чем английский. Просьба уточнить. – Berryl

+0

@ HansPassant. Я беру его на веру, что любой, кто может ответить на это ЗНАЧЕНИЕ, о котором я пропустил en.Us как конкретные аспекты культуры, НЕ является предметом вопроса! – Berryl

ответ

4

Если ресурсы в основном блоке (MyApp.resx) в культуре ан-США, вам не нужно создавать файл MyApp.en-US.resx. Если для этой культуры не обнаружена спутниковая сборка, диспетчер ресурсов вернется к ресурсам основной сборки.

0

Согласен с Томасом. Если основным языком для вашего приложения является en-us, вы просто размещаете все свои строки в основных ресурсах и все переводы этих строк (например, немецкий, французский и т. Д.) В соответствующие файлы спутниковых ресурсов.

Например, основным языком является En-Us, но u также хочу поддерживать британский, немецкий, испанский. Таким образом, вы помещаете все исходные строки в файл ресурсов по умолчанию, например Resources.resx. Затем вы создаете Resource.en-GB.resx, Resources.de-De.resx, Resources.es-ES.resx и размещаете там переводы исходных строк.

Если некоторые из строк равны для американских и британских версий, вы просто удаляете эти строки из файла Resources.en-GB.resx. Поскольку первая спутниковая сборка будет проверяться на ресурс, и если строка ресурса не найдена, будет использована основная версия сборки этой строки.

Смежные вопросы