Советы по рефакторингу существующих приложений .net для поддержки локализации? - PullRequest
3 голосов
/ 12 апреля 2010

Мы идем по всему миру. Мне было поручено провести рефакторинг наших существующих продуктов для поддержки локализации. На прошлой неделе я избегал использования файлов ресурсов (.resx) в пользу метода поиска в домашней базе данных. После того, как я натолкнулся на серьезную проблему, я вернулся к способу использования resx в Microsoft.

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

Какие-нибудь хорошие источники / ссылки для интернационализации ваших приложений?

Edit: Я считаю, что это приложения на C # winform, использующие в основном 2.0 фреймворк. Я новичок в компании.

Ответы [ 2 ]

2 голосов
/ 13 апреля 2010

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

0 голосов
/ 13 апреля 2010

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

Даже если есть автоматизированный инструмент для помощи, вам нужно будет просмотреть каждую форму по очереди, чтобы убедиться, что форматирование не будет нарушено для локализованных строк (некоторые языки обычно длиннее других; т. Е. Немецкий против английского). Это должно быть проще для приложения веб-форм, но вы не указали тип приложения, поэтому я постараюсь дать средне нейтральный ответ.

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

Самая большая проблема, которую я видел, - это локализованные строки, в которых важен синтаксис языка, а код вводит значения в строки программным способом. Старайтесь избегать этого, поскольку они не причинят вам ничего, кроме боли. Я помню вопрос о локализации строки, такой как «x дней, y часов, z минут» - или что-то в этом роде.

Стратегия, которую я использую в большинстве этих ситуаций, состоит в том, чтобы найти способ отображать одни и те же данные независимо от локали, если это вообще возможно. Например, вместо того, чтобы иметь одну метку с текстом «45 минут», необходимо изменить рефакторинг, чтобы отделить метку от значения «Минуты:» и «45». Такие вещи. Рефакторинг пользовательского интерфейса - это столько же искусство, сколько наука, поэтому сложно дать конкретный ответ, не зная, с чем вы имеете дело, или с бизнес-областью, или с примерами использования и т. Д.

...