![]() |
|
||||||||||
|
|||||
|
Теоретик и Практик
|
здарова всем
предупреждаю сразу, я - ЛАМЕР! значит проблема вот в чем: надо сайт на 3х языках (en-ru-ua), но писать три варианта со своими файлами - как минимум тупо. думаю сделать так: есть три файла .dat (ua*, ru*, en*), d в которых соответственно все текстовки по сайту на соотв. языках. Все вроде бы понятно, и даже вроде бы умно. Только не могу допереть, как оно делается... как все это связать в систему... мануалы меня запутали вообще, 3 суток долблюсь с коктейлями php+mysql... не знаю, может поспать сутки-вторые? а то никакого решения мой мозг уже не видит... помогите, плиииииииииииииииииз! |
|
|||||
|
сделай такую маленькую феньку - строковый ресурс.
пример файла ru.dat: str1=строка первая str2=строка вторая str3=строка третья теперь напишем функцию их загрузки: //Возвращаем в $StrArray
function LoadStrResource($lang,&$StrArray){
$StrArray= array();
$fname = strtolwer($lang).".dat";
if (!is_readable($fname) || ! is_file($fname)) return false;
$f = file($fname);
for ($i=0;$i<count($f);$i++){
$x = strpos($f[$i],'=');
if ($x==false) continue;
$name = trim(substr($f[$i],0,$x));
$value = trim(substr($f[$i],$x+1));
$StrArray[$name] = $value;
};
return true;
};
//теперь при запуске скрипта мы первым делом запускаем эту функцию
if (!LoadStrResource($lang,$msg)) {
print "Can`t load string resource!";
exit;
};
//После этого чтобы вывести строку "строка первая" пишешь так:
print $msg['str1'];
<? //тэги необходимы! $msg['str1'] = "строка первая"; $msg['str2'] = "строка вторая"; $msg['str3'] = "строка третья"; ?> Для загрузки такого ресурса необходимо всего лишь сделать таку вещь: include $lang.".dat"; и все! Но, как ты сам понимаешь, сами файлы ресурсов писать несколько сложнее... Ну вот и все, осталось только написать файлы ресурсов для нужных тебе языков - и вперед!
__________________
Не ошибается то, что не работает. (с) Windows |
![]() |
Часовой пояс GMT +4, время: 06:59. |
|
|
« Предыдущая тема | Следующая тема » |
|
|