[Moscow.pm] Мультиязычный сайт на Mojo

Dmitry Simonov dsimonov на gmail.com
Чт Дек 13 07:28:12 PST 2012


В общем смотри, какая тема. Тут все кивают i18n, но мало, кто в курсе, что
i18n (internationalization), это не только gettext. Тебе потребуется ещё и
l10n (localization).

Вот сложности, с которыми придётся столкнуться:
1. В одной стране может быть (а скорее и очень быстро потребуется) более
одного языка. Например, в России потребуется русский и английский.
2. Перевод одного и того же языка для разных стран будет разным. Например,
переводы маркетинговых текстов на английский для России и Великобритании
будут отличаться.
3. Если у Тебя хоть сколько-нибудь нормальный клиент-сайд интерфейс, то
переводы потребуется и для него на стороне клиента.
4. Тебе потребуется хранить переводы двух типов - короткие фразы
(используются для интерфейсов и поясняющих подписей) и длинные тексты
(маркетинг, faq, юридическая документация типа оферты и др).
5. Тебе потребуется перевод картинок на языки (причём для разных стран,
опять-таки разные). Причём есть картинки как интерфейсного плана, так и
тупо скриншоты. Причём совершенно точно известно, что не все картинки
поддадутся автоматизированном наложению генерящихся надписей. И, кстати,
для некоторых языков потребуется отдельно доставлять шрифтовые пекеджи.
6. Когда Ты соберёшься передавать тексты в перевод, то для каждого
короткого текста потребуется комментарий, который описывает контекст, в
котором нужен перевод (одно и тоже слов, как Ты знаешь, может иметь
несколько значений). Более того, в такой комментарий потребуется точный
перечень мест в интерфейс (и как до него добраться), где оно используется.
7. Во всех переводах (коротких и длинных) надо не забыть проставить макросы
для вставки как минимум доменных имён и валют,  если они отличаются.
8. Таймзона в БД имеет значение. И вывод времени в нужной таймзоне тоже. В
отдельных сложных случаях без костылей не обойтись. Например, по
тайландскому летоисчислению, сейчас 2555 год.
9. Проект must be in UTF-8. Иначе вымрешь сразу же.
10. Вывод чисел с десятичной точкой в разных странах отличается. Будь готов.
11. Поиск по сайту. Каким бы ты не пользовался движком, важно знать, - все
европейские языки, включая русский, процессятся специальным стеммером
Snowball. Это такая штука, без которой орфография не будет работать вообще.
НО для некоторых языков Snowball-а не хватит и движок заточенный под работу
с ним станет бесполезной обузой. Чтобы решить проблему поройся по интернету
и разберись, какие бывают стеммеры. Да, кстатьи, для некоторых языков
символ пробела (" ") не является разделителем слов (сюрприз!).
12. НИКОГДА не храни исходники текстов в html, - Ты его тупо не сможешь
отдать на перевод, который тарифицируется по-символьно. Используй форматы
типа wiki-markup или markdown.
13. НИКОГДА не храни в .po файлах (это способ хранения коротких фраз для
переводов с использование упомянутого тут всеми gettext) в лексемах
что-либо кроме самого текста.
14. Для gettext-а НЕ ИСПОЛЬЗУЙ в качестве идентификаторов лексем русскую
фразу, - ты не сможешь такой набор экспортировать на client-side.

Это не всё. Но основное!
Если кто-то хочет, могу попросить на питерской перловке рассказать
кого-нибудь из своих коллег про то, какие ещё бывают подводные камни с
переводами проекта.



---
Dmitriy V. Simonov,
Perl & Python programmer



2012/12/12 Денис Ильиных <greyhard на gmail.com>

>
>
>
> 12 декабря 2012 г., 17:42 пользователь Dmitry Simonov <dsimonov на gmail.com>написал:
>
> Привет! А Твой чудесный сайт имеет только несколько языков или всё же он
>> заточен под несколько отдельных стран?
>
>
> Он будет для нескольких стран.
>
>
>>
>> ---
>> Dmitriy V. Simonov,
>> Perl & Python programmer
>>
>>
>>
>> 2012/12/12 Денис Ильиных <greyhard на gmail.com>
>>
>>>  Есть сайт на Mojo. Появилась задача перевести его не несколько языков.
>>> У меня возник вопрос. Как правильно сделать перевод сайта?
>>> Первая мысль переводить шаблоны и раскладывать по папкам /en/ /ru/ /de/
>>> Вторая мысль так как текста не много делать через gettext.
>>>
>>> Подскажите верный путь.
>>> Спасибо.
>>>
>>> --
>>> Moscow.pm mailing list
>>> moscow-pm на pm.org | http://moscow.pm.org
>>>
>>>
>>
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
>>
>>
>
> Спасибо всем за помощь. Я видимо так и буду делать. Проще поддерживать
> словарь чем логику в 2-х и более шаблонах
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20121213/81625403/attachment.html>


Подробная информация о списке рассылки Moscow-pm