Многоязычное приложение для Windows с использованием C # .NET - PullRequest
2 голосов
/ 11 августа 2009

Я работаю над приложением на C #, хочу сделать его многоязычным. У меня есть 2 варианта: сначала создать отдельный файл ресурсов для всех файлов классов, а затем создать один общий файл ресурсов для всего приложения.

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

Приветствия:)

Ответы [ 6 ]

1 голос
/ 22 августа 2009

Мы завернули gettext и использовали это. Положительным моментом является то, что можно просто добавить новый перевод, и все работает. Можно изменить язык на лету. И это легко для переводчиков, потому что можно просто отправить им простой текстовый файл, который они могут редактировать.

Мы еще не выпустили и не выпустили его в проект, но мы могли бы сделать это, если людям это будет интересно.

1 голос
/ 22 августа 2009

Используйте один файл ресурсов и убедитесь, что все ваши формы и компоненты помечены как локализуемые. После этого у вас есть возможность использовать несколько сторонних инструментов для локализации вашего приложения.

Мы используем Visual Localize на работе. Вы можете не только экспортировать ресурсы текста и повторно импортировать их после перевода, но вы также можете изменять размер или изменять порядок диалогов, чтобы они соответствовали новым размерам текста. Например. Немецкий язык в полтора раза длиннее того же текста на английском языке.

1 голос
/ 17 августа 2009

Я бы создал один файл ресурсов в каждой сборке (при необходимости).

Вы можете позволить VS создать класс для файла ресурсов, который позволяет безопасно получить доступ к ресурсам во время компиляции. (Вы получаете свойство для каждой строки.) Я думаю, что вы делаете это с помощью Build Action. Сгенерированный класс является внутренним. Таким образом, ресурсы доступны только внутри сборки, что имеет смысл.

1 голос
/ 14 августа 2009

Я использовал «Multi-Language Add-In» от Softwarebuero Jollans (http://jollans.com/tiki/tiki-index.php).. Это коммерческий продукт, который достаточно хорошо поддерживается. Вы можете экспортировать строки из своего приложения в Visual Studio в электронную таблицу Excel, чтобы переведенный, а затем повторно импортируйте электронную таблицу в ваше приложение. После этого языки будут автоматически скомпилированы во встроенные ресурсы.

1 голос
/ 11 августа 2009

Я предпочитаю использовать встроенную функцию локализации, включенную в IDE. Это может быть привередливым, но это делает работу. Он генерирует отдельную DLL для каждого языка.

В тех случаях, когда у меня есть строки, не относящиеся к пользовательскому интерфейсу, у меня есть один файл XML, содержащий все языки со строками языка, привязанными к уникальным идентификаторам.

1 голос
/ 11 августа 2009

По моему опыту, все ваши локализованные ресурсы проще хранить в одном месте. Часто в приложении есть строки, которые используются в нескольких местах. Если у вас есть все ресурсы в одном месте, вам нужно будет перевести повторную строку только один раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...