[Moscow.pm] Как делать сайт на нескольких языках с template toolkit

Иван Бессарабов ivan на bessarabov.ru
Вт Ноя 17 06:27:50 PST 2009


Сергей, я не очень понял твой ответ (все отдельные слова понятны, но
далеко не все предложения ясны и плюс весь смысл я не уловил), если ты
не потив, поуточняю.

Т.е. у меня есть (сейчас) элементарный темплейт:
{{{
<b>Привет, [% system.login %]</b>
}}}

Дальше продолжил писать в цитировании.

16 ноября 2009 г. 12:51 пользователь Sergey Juchkov <juchkov на gmail.com> написал:
> Весь статический текст дизайна - в переменные TT

Я правильно понимаю, что в моем случае "статический текст дизайна" -
это строка "hello"?
Я не силен в терминологии, судя по документации
http://template-toolkit.org/docs/manual/Variables.html "Переменная TT"
- это та структура, которая я передаю шаблонизатору.

Т.е. ты имел в виду, что я должен буду писать что-то вроде:
{{{
<b>[% lang.ru.hello %] [% system.login %]</b>
}}}

А в lang.ru.hello у меня будет находится "Привет,", так?

> Сами перемменные определять в языковом ТТ шаблоне
> И соответственно инклюдить нужный шаблон

Слушай, как здорово. Пока писал вопросы, кажется во все разобрался, о
чем ты говорил =)
Т.е. ты хочешь сказать (пожалуйста меня поправь, если я тебя как-то не
так понял), что вот эти вот переменные можно определять не в перле, а
в других шаблонах, т.е. у меня будут вот такие 2 шаблона:
index.tt:
{{{
[% PROCESS lang.ru.tt %]
<b>[% lang.ru.hello %] [% system.login %]</b>
}}}

и lang.ru.tt:
{{{
[% lang.ru.hello = "Привет," %]
}}}

Класс! Очень здорово и красиво. Особенно нравится то, что не нужно
заморачиватся с базой.
Буду читать и размашлять, как бы получше решить мою задачу, но пока
твое решение мне очень нравится (плюс, естсетсвенно я буду вот эти
файлы с переводом создавать из .po gettext-а)

Вот как интересно получилось, изначально не понимал твою письмо, а
после вдумчивого прочтения и задавания вопросов, вроде бы все понял (и
даже вроде бы все понял правильно =)

> JS - теоритически так же перегенерять,
Т.е. ты говоришь вот про то, что в html подключаю 2 js файла, вроде таких:

js/lang.ru.js
{{{
var langRu = new Array();
langRu['mememe'] = "мемеме";
}}}

js/script.js
{{{
function changeText() {
        var element = document.getElementById("message");
        element.innerHTML=langRu['mememe'];
}
}}}

Правильно я тебя понял?

> но идеальнее всего избавиться
> от текстов в нем вообще

Так.. А вот тут я сколько не обдумывал, все равно не понимаю. Как
правильно избавлятся от текста в js?

Сергей, спасибо за ответ, вроде потихонечку начинает вырисовыватся
схема, как я все сделаю.

>> Вообще, хотелось бы, чтобы и js и perl использовал одну и ту же базу
>> строк (следить за одной системой всегда проще чем за нескольким), но
>> при этом хочется, чтобы наличие этой базы не сильно усложняло систему
>> и не сильно замедляло ее работу.
>>
>> Вот я и подобрался к вопросу: как вы считаете. как лучше всего решать
>> эту задачу?
>>
>> PS слава богу у меня задача очень простая, у меня нет там фраз типа "у
>> вас 18 яблок", так что мучатся с сопряжением слов с числительными мне
>> не нужно.
>>
>> --
>> bessarabov
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
>>
>
>
>
> --
> Sergey Juchkov
> http://juchkov.com
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>



-- 
bessarabov


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