У меня есть приложение WinForms в .Net4, где у меня проблемы с реализацией нескольких языков.
Отказ от ответственности: я искал и нашел много вопросов о глобализации / локализации, но подавляющее большинство пытается сделать что-то необычное или нестандартное. У меня проблемы с основными вещами из коробки. Я прочитал документацию, но у меня все еще есть проблемы.
У меня есть приложение WinForms, язык по умолчанию - английский. Мне нужно отобразить это на французском на французском ПК, это может быть либо fr-FR
или fr-CA
, поэтому я, когда я установил форму на localizable:=True
, я изменил язык на "французский" и обновил метки, кнопки, и другие элементы управления формой. Эта часть, я Думаю Я сделал правильно.
Формируйте окна сообщений, я помещаю все свои строки в файл ресурсов (нажимая на мой проект, затем вкладку ресурсов). Я заменил строки в коде ссылками на my.ressource.{ressourcename}
Затем я добавил новый Resources.fr.resx
в папку myproject и перевел все содержащиеся в ней строки.
Я попытался проверить это, добавив следующую строку в конструктор new () моей формы запуска.
Thread.CurrentThread.CurrentUICulture = New CultureInfo("fr")
Я тоже пробовал:
Thread.CurrentThread.CurrentUICulture = New CultureInfo("fr-CA")
Приложение по-прежнему загружается на английском языке, даже элементы управления формой, для которых установлен нейтральный язык "французский".
В итоге, есть 4 вопроса:
- Правильно ли я поступаю?
- Правильно ли я создал файл французских ресурсов?
- Должен ли файл
Resources.fr.resx
находиться в папке My Project (рядом со значением по умолчанию Resources.resx
, или он должен находиться в корневом каталоге? Или, в качестве альтернативы, я должен использовать новый файл, такой как MessageResources.resx
и MessageResources.fr.resx
и поместить их обоих в корень?
- Как заставить все приложение использовать французский вместо языка по умолчанию?