Управление локализацией/интернационализацией
От: LF  
Дата: 26.02.13 10:15
Оценка:
Всем привет.

Поделитесь опытом, как у вас построен процесс локализации/интернационализации?
Используются ли специализированные инструменты или вручную/скриптами формируются файл для перевода?
Как налажено взаимодействие с переводчиками?

Любые мысли по этому поводу приветствуются.
Re: Управление локализацией/интернационализацией
От: decradle Ниоткуда http://www.alconost.com
Дата: 26.02.13 11:09
Оценка: 32 (5)
Привет,

LF>Поделитесь опытом, как у вас построен процесс локализации/интернационализации?

LF>Используются ли специализированные инструменты или вручную/скриптами формируются файл для перевода?
LF>Как налажено взаимодействие с переводчиками?

Интернационализация (то, что делает разработчик):

1. Вынесение строчек, картинок и др. материалов, подлежащих переводу в отдельные ресурсные файлы. Все современные средства разработки это умеют. Ресурсы хранятся отдельно от кода. Строки нельзя разбивать на бессмысленные куски т.е. нельзя "Всего " + 10 + " карт на руках", а нужно "Всего %d карт на руках".
2. Реализация поддержки юникода в программе. Можно использовать и локальные национальные кодировки для каждой локали, но без юникода будет невозможно показать пользователю строку на 2-ях языках одновременно: например, русский интерфейс и имя файла на китайском.
3. Реализация поддержки форматов вывода даты, времени, денег, чисел и т.п. Если программа что-то такое показывает, отображение должно зависеть от текущей локали пользователя.
4. Спец. символы — разные для разных локалей. Например, в японском символ разделителя пути к файлу не "слеш", а "елочка".
5. Механизм определения текущей (либо переключения) локали.
6. Нужно исключить из UI ситуаций, когда что-то может "не поместиться". Например, немецкие строчки длиннее английских на 30%. Китайские — наоборот, короче. Поэтому caption лучше располагать не перед контролом: "Всего: 10", а над ним. У Microsoft есть специальный гайд по локализации, который все такие случаи разбирает.
7. Следует учесть направление текста — для арабского, иврита написание текста — справа-налево. Т.е. не "Всего: 10" а "10 :Всего". Это легко решается если среда среда разработки и компоненты имеют поддержку написания справа-налево.

Локализация (то, что делает локализатор):

Идеальный процесс:

1. Используем специальную облачную платформу для управления локализацией (да, есть такие).
2. Заливаем в облако ресурсы.
3. Приглашаем переводчиков и редакторов.
4. Скачиваем переведенные ресурсы.
(5). Апдейтим ресурсы
(6). Допереводятся новые строчки.

К строчкам можно аттачить скриншоты, задавать вопросы. Есть опция вычитки вторым переводчиком. Накапливается память переводов.
Есть админка для разработчика — можно в реалтайме смотреть за процессом.
Можно даже закачку ресурсов автоматизировать с помощью API облачной платформы.

Вот полное описание решения по локализации от Alconost:
Alconost — предложение по локализации для разработчиков ПО, игр

Там написано подробно про платформу и процесс работы.


В довесок, пару полезных ссылок:

Microsoft Language Portal
http://www.microsoft.com/Language/en-US/Default.aspx

Localizing Windows Phone apps: New terminology and Style Guides
http://blogs.technet.com/b/terminology/archive/2011/12/19/creating-international-windows-phone-apps-new-terminology-and-style-guides-posted.aspx

Globalization and Localization for Windows Phone
http://msdn.microsoft.com/en-us/library/ff637522(v=VS.92).aspx

Facebook internationalization guidance for developers
http://developers.facebook.com/docs/internationalization/

Adobe Flash Localization Guidelines
http://blogs.adobe.com/globalization/adobe-flash-localization-guidelines/
--Александр
Re: Управление локализацией/интернационализацией
От: AlexNek  
Дата: 26.02.13 18:57
Оценка:
Здравствуйте, LF, Вы писали:

LF>Всем привет.


LF>Поделитесь опытом, как у вас построен процесс локализации/интернационализации?

LF>Используются ли специализированные инструменты или вручную/скриптами формируются файл для перевода?
LF>Как налажено взаимодействие с переводчиками?

LF>Любые мысли по этому поводу приветствуются.

Для каждого проекта (и его типа) в каждый период есть более желательный способ. Пока больше о Winforms.

Больше всего напрягают строки и диалоги. И желательно что бы разработчики писали бы в коде обычные строки и рисовали "обычные диалоги". Когда проект "устаканивается" строки из исходников и диалогов "вытаскиваются" специальной прогой в специальную базу и сохраняются "ссылки" на исходные места. База экспортируется, допустим в экзел, и передается для перевода. Пришедший перевод импортируется обратно в базу и обновляются "исходники". Важно чтобы на время перевода не нужно было приостанавливать разработку, новые строки просто добавляются в новый запрос для перевода, когда обновится первый.
При этом также не должно быть сложно переносить старый код в новые проекты иногда бывает нужна просто какая то малая часть.
Также есть приворечие между точкой зрения разработчиков и ответственным за локализацию. Разработчикам удобно "держать" тексты по месту их появления в коде. Отвественному же удобнее по месту их появления в GUI. Копромиссом может быть использование общего текстового репозитория на последних этапах разработки (также спец. прогой)
При этом разработчики должны только соблюдать определенные правила, всем остальным должен заниматься один человек (кроме перевода)
Cообщение написано в << RSDN@Home 1.2.0 alpha 5-AN-R8 rev. 13227>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.