Расположение строки ресурса - PullRequest
2 голосов
/ 14 декабря 2009

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

Ответы [ 2 ]

4 голосов
/ 14 декабря 2009

Вы должны решительно одобрить использование ресурсов на уровне формы (установите для свойства Localizable формы значение True в конструкторе). Конструктор имеет очень хорошую поддержку, а утилита WinRes.exe доступна для локализации строк в автономном режиме. Код не требуется.

Локализация строк ресурсов проекта возможна, но не очень хорошо поддерживается в среде IDE. Проверьте мой ответ в этой теме для подхода.

3 голосов
/ 14 декабря 2009

Вот что я делаю (не обязательно лучший способ, но пока он хорошо работает) для добавления программных строк в дополнение к использованию чувствительных к языку строк непосредственно в формах:

Помимо добавления смешного количества папок в проект для группировки по форме, я не смог найти чистого решения, кроме как хранить файлы .resx в их собственной папке ресурсов. Обычно у меня будет что-то вроде:

Ресурсы \ Язык
Ресурсы \ Xml
Ресурсы \ Images
и т.д.

Я обнаружил, что использование одного файла .resx для каждой формы - это лучший способ, потому что вы никогда не знаете, когда вам понадобится добавить еще одну строку. Я также создаю Common.resx для таких строк, как «Сохранить», «Загрузить» и т. Д., Которые применимы ко всему приложению и будут использоваться в нескольких местах. С моделью «один .resx-per-form» вы должны строго соблюдать только использование строк в этой форме, что, вероятно, будет означать повторение нескольких строк по мере роста вашего приложения. Но это гораздо проще поддерживать, чем иметь паутину ссылок между формами и файлами .resx.

Для пользовательских элементов управления я помещаю файлы .resx вместе с исходными файлами, поскольку они обычно имеют свою собственную папку, и в любом случае строки не будут использоваться вне этого пользовательского элемента управления. (Примечание: это также означает, что пользовательские элементы управления НЕ должны использовать строки вне своего собственного файла .resx.) Это также позволит вам при необходимости легко извлечь целый пользовательский элемент управления в отдельную сборку.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...