Локализация корпоративного приложения (vb) .NET на другой язык (с изюминкой) - PullRequest
1 голос
/ 27 сентября 2011

Я создал приложение, и оно большое. VB.NET, .NET 3.5. Два года в разработке, 12 проектов (1 .exe, 11 .dll), каждый из которых содержал десятки WinForms. Тысячи классов бизнес-объектов. Вы получаете картину.

Это миграция .NET для существующей устаревшей линейки корпоративных приложений. Он близится к концу разработки и еще не запущен, но код выглядит чистым (иш), и проект, вероятно, будет успешным.

Однако он был разработан на английском языке (все формы и элементы управления на английском языке) и с порядком чтения слева направо.

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

Я ищу техническую , а не деловую критику моего подхода.

Мой план:

  1. Вручную (можно ли это сделать с помощью макроса или автоматизации?) Проанализировать каждый класс в каждом проекте и заменить ссылки на строки в коде на строки в файле ресурсов.

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

  3. Измените все элементы управления для ссылки на файл языкового ресурса нового проекта (или формы).

    (на данном этапе нет заметных различий с англоговорящим конечным пользователем)

  4. Пусть переводчик переведет все строки в новый файл языкового ресурса.

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

Конкретные вопросы:

  1. Существует ли инструмент, помогающий переносить строки из кода в файлы ресурсов?

  2. Как я должен привязать элементы управления для поддержки порядка чтения справа налево без ущерба для порядка чтения слева направо, для которого были разработаны формы?

  3. Какую версию операционной системы поддерживает языковой стандарт .NET Framework? Я полагаю, XP SP1 в качестве базовой линии?

  4. Должен ли я использовать один файл ресурсов для проекта или формы?

  5. Должны ли переводы для каких-либо жестко закодированных строк (для окон сообщений) быть записаны в код (в блоке if, else) или также интегрированы в один из новых файлов языковых ресурсов?

-

Любой совет, который вы можете предложить, будет тепло оценен. Это первый раз, когда мне приходилось задумываться о переводе, поэтому приветствуются любые советы или мысли относительно самого быстрого и устойчивого пути к успеху: -)

Заранее спасибо за ваше время,

Mike

Ответы [ 2 ]

3 голосов
/ 27 сентября 2011

Это гораздо проще, чем вы предполагаете, если вы используете встроенную поддержку локализации в Winforms и избегаете попыток придумать собственную схему. Выберите форму, установите для ее свойства Localizable значение True. Измените свойство языка на арабский (Саудовская Аравия). Измените свойства RightToLeft и RightToLeftLayout. Вот где вы сделали. Отправьте файлы .resx в службу локализации для перевода.

1 голос
/ 27 сентября 2011

Относительно ваших строк в коде: Resharper - отличный инструмент для извлечения строк в локализуемый файл ресурсов.

Взгляните на функции: http://www.jetbrains.com/resharper/features/internationalization.html

...