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

Ответить