Мультиязычность

RLink

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

igortik

Новичок
я думаю, ты уже сам для себя все решил...
смотря каким путем идет развитие твоего скила.

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

Crys

Двинутый новичок
есть ли смысл заводить шаблоны, которые кстати вызываются потом функциями либо парсят целиком страницу... если мне необходимо перевести, десяток заголовков и пару описаний
Ну так и не заводи. Вынеси десяток заголовков в массив и выводи их там, где тебе нужно. К чему вообще тогда разговоры про какие-то черезпопуделанные замены с использованием ob_start и т.д?
 

igortik

Новичок
думаю, ты не увидишь разницы.
Без сарказма... у тебя массив от силы в 50 строк будет, я так понимаю.

Объявляй вывод эхом в дескрипторах.

-~{}~ 24.07.10 00:31:

с точки зрения все же производительности - в вопросе уже есть ответ.
Что лучше - иметь уже страницу с текстом, или при каждом запросе ее выводить эхом?
 

RLink

Новичок
в общем всем спасибо )
бенчмарк мне в руки и гоу тестить ))
 

xVansX

Новичок
А мне кажется лучше создать дополнительный модуль с возможностью добавления, редактирования и удаления слов употребляемых слов в шаблоне. Разделить его по категориям. В смарти думаю особого труда не составит поставить туда куда надо)
 

SiZE

Новичок
На IPB помоему удочно сделано, опишу вкратце

ru/global.php
PHP:
$lang = array(
 'hello' => 'Привет'
);
en/global.php
PHP:
$lang = array(
 'hello' => 'Hello'
);
class_lang.php
PHP:
class lang {
 public function loadLang( $l ) {
   require_once( $l.'/global.php' );
   return $lang;
 }
}
class_kernel.php
PHP:
class kernel {
  public $lang;
  function init () {
    require_once ('class_lang.php');
    $lang = new lang();
    $this->lang = $lang->loadLang('ru');
    $this->echoText('hello' );
  }

  function echoText ( $msg ) {
    echo $this->lang[ $msg ];
  }
}
-~{}~ 07.10.10 10:09:

Ну и до кучи, для каждого модуля/контроллера свой языковой файл, какие-то общие фразы выносятся в один. Ну и подгружаются соответствующим образом.
 

Mols

Новичок
SiZE
не всегда этого достаточно.
Иногда нужны и отличия в вёрстке.
Небольшие но всё же нужны.
И дело даже не в картинках (текст на которых тоже нужно переводить, или даже не текст на картинке, а саму картинку. Скажем европейцам показывать домик в европейском стиле, а китайцам в китайсом), а в том, что разные выражения/навзвания на разных языках получаются разной длины. Плюс есть особенности в конструкции выражений на разных языках. Плюс особенности выравнивания и общепринятые для этого народа устои (например некоторые языки читают и пишут справа на лево) И шаблон сделанный по русски(английски/корейски....) при "переводе в лоб" может выглядеть не очень хорошо.
Так что только переменными не всегда удастся отделаться.
 
Сверху