<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div><br></div><div><br>13.12.2012, в 19:28, Dmitry Simonov <<a href="mailto:dsimonov@gmail.com">dsimonov@gmail.com</a>> написал(а):<br><br></div><blockquote type="cite"><div>В общем смотри, какая тема. Тут все кивают i18n, но мало, кто в курсе, что i18n (internationalization), это не только gettext. Тебе потребуется ещё и l10n (localization). <div><br></div><div>Вот сложности, с которыми придётся столкнуться:</div>

<div>1. В одной стране может быть (а скорее и очень быстро потребуется) более одного языка. Например, в России потребуется русский и английский.</div><div>2. Перевод одного и того же языка для разных стран будет разным. Например, переводы маркетинговых текстов на английский для России и Великобритании будут отличаться.</div>

<div>3. Если у Тебя хоть сколько-нибудь нормальный клиент-сайд интерфейс, то переводы потребуется и для него на стороне клиента.</div><div>4. Тебе потребуется хранить переводы двух типов - короткие фразы (используются для интерфейсов и поясняющих подписей) и длинные тексты (маркетинг, faq, юридическая документация типа оферты и др).</div>

<div>5. Тебе потребуется перевод картинок на языки (причём для разных стран, опять-таки разные). Причём есть картинки как интерфейсного плана, так и тупо скриншоты. Причём совершенно точно известно, что не все картинки поддадутся автоматизированном наложению генерящихся надписей. И, кстати, для некоторых языков потребуется отдельно доставлять шрифтовые пекеджи.</div>

<div>6. Когда Ты соберёшься передавать тексты в перевод, то для каждого короткого текста потребуется комментарий, который описывает контекст, в котором нужен перевод (одно и тоже слов, как Ты знаешь, может иметь несколько значений). Более того, в такой комментарий потребуется точный перечень мест в интерфейс (и как до него добраться), где оно используется.</div>

<div>7. Во всех переводах (коротких и длинных) надо не забыть проставить макросы для вставки как минимум доменных имён и валют,  если они отличаются.</div><div>8. Таймзона в БД имеет значение. И вывод времени в нужной таймзоне тоже. В отдельных сложных случаях без костылей не обойтись. Например, по тайландскому летоисчислению, сейчас 2555 год.</div>

<div>9. Проект must be in UTF-8. Иначе вымрешь сразу же.</div><div>10. Вывод чисел с десятичной точкой в разных странах отличается. Будь готов.</div><div>11. Поиск по сайту. Каким бы ты не пользовался движком, важно знать, - все европейские языки, включая русский, процессятся специальным стеммером Snowball. Это такая штука, без которой орфография не будет работать вообще. НО для некоторых языков Snowball-а не хватит и движок заточенный под работу с ним станет бесполезной обузой. Чтобы решить проблему поройся по интернету и разберись, какие бывают стеммеры. Да, кстатьи, для некоторых языков символ пробела (" ") не является разделителем слов (сюрприз!).</div>

<div>12. НИКОГДА не храни исходники текстов в html, - Ты его тупо не сможешь отдать на перевод, который тарифицируется по-символьно. Используй форматы типа wiki-markup или markdown.<br></div><div>13. НИКОГДА не храни в .po файлах (это способ хранения коротких фраз для переводов с использование упомянутого тут всеми gettext) в лексемах что-либо кроме самого текста.</div>

<div>14. Для gettext-а НЕ ИСПОЛЬЗУЙ в качестве идентификаторов лексем русскую фразу, - ты не сможешь такой набор экспортировать на client-side.</div><div><br></div><div>Это не всё. Но основное!</div><div>Если кто-то хочет, могу попросить на питерской перловке рассказать кого-нибудь из своих коллег про то, какие ещё бывают подводные камни с переводами проекта.  </div>

<div><br></div><div><br></div><div class="gmail_extra"><br clear="all"><div>---<br>Dmitriy V. Simonov,<br>Perl & Python programmer</div>
<br></div></div></blockquote>Спасибо :) очень доходчиво , теперь ясно что задача шире чем просто перевод фраз. Действительно про форматы дат, денег и чисел не подумал. <br><blockquote type="cite"><div><div class="gmail_extra"><br><div class="gmail_quote">2012/12/12 Денис Ильиных <span dir="ltr"><<a href="mailto:greyhard@gmail.com" target="_blank">greyhard@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br><div class="gmail_extra"><br><br><div class="gmail_quote">12 декабря 2012 г., 17:42 пользователь Dmitry Simonov <span dir="ltr"><<a href="mailto:dsimonov@gmail.com" target="_blank">dsimonov@gmail.com</a>></span> написал:<div class="im">

<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Привет! А Твой чудесный сайт имеет только несколько языков или всё же он заточен под несколько отдельных стран?</blockquote>



</div><div><br>Он будет для нескольких стран.<br> </div><div class="im"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_extra"><br clear="all"><div>

---<br>Dmitriy V. Simonov,<br>

Perl & Python programmer</div><br>


<br><br><div class="gmail_quote">2012/12/12 Денис Ильиных <span dir="ltr"><<a href="mailto:greyhard@gmail.com" target="_blank">greyhard@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div><div>

Есть сайт на Mojo. Появилась задача перевести его не несколько языков. У меня возник вопрос. Как правильно сделать перевод сайта?<br>Первая мысль переводить шаблоны и раскладывать по папкам /en/ /ru/ /de/<br>Вторая мысль так как текста не много делать через gettext.<br>







<br>Подскажите верный путь.<br>Спасибо.<br>
<br></div></div><div>--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org" target="_blank">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
<br></div></blockquote></div><br></div>
<br>--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org" target="_blank">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
<br></blockquote></div></div><br><br>Спасибо всем за помощь. Я видимо так и буду делать. Проще поддерживать словарь чем логику в 2-х и более шаблонах<br></div>
<br>--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
<br></blockquote></div><br></div>
</div></blockquote><blockquote type="cite"><div><span>-- </span><br><span>Moscow.pm mailing list</span><br><span><a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org">http://moscow.pm.org</a></span><br></div></blockquote></body></html>