Распространение локализованного приложения winforms - PullRequest
1 голос
/ 25 июня 2009

Это связано с моим ранним постом сегодня: текст ссылки

Так что теперь у меня есть демо-приложение winforms с двумя разными локализациями, одна английская, одна испанская. Допустим, у меня есть большое приложение, допустим, оно поддерживает локализации на 15 разных языках. В предыдущем посте было предложено добавить несколько строк при инициализации формы для установки локализации. В настоящее время я использую щелчок один раз для развертывания моего приложения. Я пытаюсь найти способ развертывания, не имея 15 различных вариантов приложения. Есть ли способ посмотреть на локализацию текущего пользователя и, если она соответствует одному из языков, на которых я писал свои экраны, чтобы использовать его, в противном случае используйте значение по умолчанию?

1 Ответ

2 голосов
/ 25 июня 2009

Встроенная система локализации .NET Framework уже справляется с этой аварийной ситуацией. Вы просто устанавливаете сателлитные библиотеки DLL, которые локализуют ваши формы и элементы управления, а затем, если правильная соответствует локали пользователя, .NET будет использовать ее, в противном случае она вернется к следующей родственной локали. Например, если языком вашего приложения по умолчанию является en-US, но вы предоставили перевод en-GB и en перевод, то запасной вариант:

ан-GB-> ен> ан-US

т.е. когда en-GB недоступен, он ищет en, а если его нет, он использует значение по умолчанию en-US.

Следовательно, при распространении вы можете распространять только ваше основное приложение en-US, а затем предоставлять дополнительные сателлитные библиотеки DLL для определенных языков, например, языковые пакеты. Существует атрибут SatelliteContractVersionAttribute, который позволяет основным сборкам приложения указывать нужные версии сателлитов, что позволяет вашим локализациям работать между версиями сборок (например, если ваши версии сборок увеличиваются со сборкой - вы можете эффективно игнорировать номер сборки).

MSDN имеет много информации о глобализации и локализации и о том, как это работает, даже в контексте развертывания ClickOnce. Проверьте раздел Глобализация Windows Forms .

Конечно, если вы решили не полагаться на систему .NET для поддержки глобализованных продуктов, вам придется придумать что-то, что соответствует выбранному вами направлению.

...