2009-09-18 1 views
1

Я пытаюсь локализовать приложение, но у меня есть пара ограничений. Я должен использовать локализацию на основе Resx (я не могу использовать LocBaml). Кроме того, все ресурсы, включая резервный ресурс (en-US), должны храниться в спутниковой сборке. Никакие ресурсы не могут быть встроены в приложение.В C#, как я могу создать спутниковый ресурс, который будет использоваться во время разработки?

Вот моя проблема. Каждый раз, когда я добавляю строку, я должен добавить ее в Resource.resx, а затем добавить ту же строку в резервный ресурс Resource.en-US.resx. Если я правильно понимаю, файл Resource.resx используется во время компиляции/разработки, а файлы Resources.en-US.resx - это тот, который используется во время выполнения. Есть ли способ обойти это? Могу ли я каким-то образом связать их так, чтобы только один файл нужно было изменить?

ответ

2

Как насчет простого действия перед сборкой, которое копирует ваши .resx-файлы по умолчанию в версию для США? Кажется, я помню, что коды культуры не записаны внутри, поэтому простой файл копирования будет делать.

+0

Хорошая идея. Я сделаю это. – bsh152s

0

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

+0

Все прекрасно компилируется при размещении всех моих строк в файле Resources.resx по умолчанию. Но исключения выполняются во время выполнения, потому что он ищет спутниковый ресурс (Resource.en-US.resx). Большинство людей встраивают исходный/резервный ресурс в основную сборку, и эта проблема не возникнет. К сожалению, мне сказали не делать этого, чтобы ресурсы могли быть обновлены позже, без необходимости перекомпилировать все приложение. Теперь я мог бы сделать весь проект и скопировать позже. Но при редактировании формы это все равно вызовет головные боли для других разработчиков. – bsh152s

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