Я разрабатываю пользовательский элемент управления, и теперь (в конце работы) я сталкиваюсь с проблемой создания его на нескольких языках.
Я думаю, что мог бы поступить так:
- Для части пользовательского интерфейса я мог бы установить
Localizable = true
на управление и позволить VS генерировать все "записи", которые мне нужны для языка по умолчанию.
- Затем мне нужно вручную добавить все строки, которые я использую для динамических меню, сообщений и т. Д.
- Наконец, мне нужно создать файл всех ресурсов для нужных мне языков
Итак, используя код из MSDN
Assembly myAssembly = this.GetType().Assembly;
ResourceManager mgr = new ResourceManager("namespace.resource", myAssembly);
mgr.GetString(...)
мою работу можно было (легко) выполнить.
Но у меня есть вопрос:
- Когда мой элемент управления (сгенерированная DLL) используется от конечного пользователя, могу ли я испытать некоторые затруднения при использовании
new ResourceManager(...)
из-за изменений основного пространства имен в целевом приложении?
Подумайте, я не знаю, какое пространство имен будет использовать конечный пользователь.
- Когда я создаю языковые ресурсы, VS генерирует спутниковые сборки: есть ли способ, которым я могу "интегрировать" эти файлы в мою целевую DLL?
Я хотел бы развернуть только один файл, если это возможно ...
- Есть ли лучший способ выполнить мою задачу?
- Есть ли что-то, что мне действительно нужно заботиться, когда я разрабатываю многоязыковой элемент управления?
Спасибо всем
ОБНОВЛЕНИЕ: (спасибо @ lak-b за некоторые предложения)
Я отвечаю на вопрос после некоторого исследования:
- Это правда, я могу жестко кодировать пространство имен, и оно не будет изменено , когда конечный пользователь установит мой контроль в своей форме
- Что ж, похоже, нелегкого пути.
В любом случае этот пост предоставляет замечательный урок и отличное решение !!
- ... нет, на этот вопрос я все еще жду, когда кто-нибудь скажет мне лучший / более простой способ
- Некоторая критическая точка была указана в lak-b.
Есть ли что-то еще, о чем я должен беспокоиться?
Еще раз спасибо