13.12.2012, в 19:28, Dmitry Simonov <[email protected]> написал(а):
> В общем смотри, какая тема. Тут все кивают 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 Денис Ильиных <[email protected]>
>>
>>
>>
>> 12 декабря 2012 г., 17:42 пользователь Dmitry Simonov <[email protected]>
>> написал:
>>
>>> Привет! А Твой чудесный сайт имеет только несколько языков или всё же он
>>> заточен под несколько отдельных стран?
>>
>>
>> Он будет для нескольких стран.
>>
>>>
>>> ---
>>> Dmitriy V. Simonov,
>>> Perl & Python programmer
>>>
>>>
>>>
>>> 2012/12/12 Денис Ильиных <[email protected]>
>>>> Есть сайт на Mojo. Появилась задача перевести его не несколько языков. У
>>>> меня возник вопрос. Как правильно сделать перевод сайта?
>>>> Первая мысль переводить шаблоны и раскладывать по папкам /en/ /ru/ /de/
>>>> Вторая мысль так как текста не много делать через gettext.
>>>>
>>>> Подскажите верный путь.
>>>> Спасибо.
>>>>
>>>> --
>>>> Moscow.pm mailing list
>>>> [email protected] | http://moscow.pm.org
>>>
>>>
>>> --
>>> Moscow.pm mailing list
>>> [email protected] | http://moscow.pm.org
>>
>>
>> Спасибо всем за помощь. Я видимо так и буду делать. Проще поддерживать
>> словарь чем логику в 2-х и более шаблонах
>>
>> --
>> Moscow.pm mailing list
>> [email protected] | http://moscow.pm.org
>
> --
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org