Вопрос

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

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

Это было полезно?

Решение

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

ru-GB-> ru-> ru-US

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top