Автор Тема: Templates  (Прочитано 2437 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Hatchet

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 25
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Templates
« : 09 Ноября 2003, 13:56:39 »
Стоит задача: сайт на двух языках русский и английский...

Я подумал - нафиг делать по два варианта файлов .tmpl и описал все строки в виде ключ=значение в файлах
language_rus и _eng.pl...

Но получается, что я передаю в шаблон избыточное колличество значений - т.е в одном шаблоне есть поле Имя... а в другом нет. Если поле не описано при передаче данных в ->param то оно игнорируется... а если наоборот-  можно ли научить скрипт пропустить ключ=значение при заполнении шаблона?

Кажись сформулировал доходчиво :)

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Templates
« Ответ #1 : 09 Ноября 2003, 16:39:50 »
Hatchet
Я у себя делаю так:
языковые файлы russian.lng и english.lng пишу в виде:

$txt[0] = "текст 1";
$txt[1] = "текст 2";
...
$txt[n] = "текст n";

соответственно $txt[0] русского файла соответствует $txt[0] английского

в шаблоне вместо всего текста подставляю %txt0%, %txt1%, ... %txtn%

Потом в скрипте, в зависимости от выбранного языка подгружаю соответствующий lng, а в шаблон произвожу замену %txt0% -> $txt[0] и вывожу на экран:

@temp - твой шаблон...

foreach $line (@temp) {
    $line =~s /%txt([0-9]*)%/$txt[$1]/gi;
}
print "Content-type: text/html; charset=windows-1251\\n\\n";
print qq "@temp";

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
Templates
« Ответ #2 : 10 Ноября 2003, 10:31:26 »
Hatchet
(IMHO) Лучше сделай два варианта шаблонов. А еще лучше два варианта сайта, на разных языках.
0 OK, 0:1

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28