|
|
|
| Доброго времени суток
хочу сделать автоматический перевод файлов шаблонов из PhpBB2
делаю так:
<?php
$pattern = '\$lang\[\'([0-9,A-Z,_,%]+)\'\] = \'([0-9,A-z,А-я,\s,%]+)\';';
$lang_file = file('lang_main.php');
foreach($lang_file as $subject) {
if(eregi($pattern, $subject, $matches)){
$search[] = '{L_'.strtoupper($matches[1]).'}';
$replace[] = $matches[2];
}
}
$tpl_file = file('viewforum_body.tpl');
foreach($tpl_file as $tpl_str){
$new_tpl[] = htmlspecialchars(str_replace($search,$replace,$tpl_str));
}
echo implode('<br />',$new_tpl);
?>
|
но переводит не всё(не всё записи попадают в массивы $search,$replace)... помагите с паттерном плз.. | |
|
|
|
|
|
|
|
для: michail1982
(29.11.2008 в 14:44)
| | В первом классе символов вроде можно не упоминать символ %, в ключах массива не встречается
что-то вроде [0-9A-Z_]+ должно подойти , поскольку eregi
А несовпадения наверное из-за второго
[,0-9A-zА-я\s%]+ если удалить лишние запятые
Здесь хоть и регистронезависимая функция, A-zА-я означают только то и всё то что входит в эти диапазоны.
, включая символы [\]^_` , и невключая Ёё.
Наверное я-бы попробовал просто [^\']+
или [,\.:0-9A-ZА-яЁё\s%]+ если только не пропустил ещё чего-нибудь там встречающегося.
И надо-бы посмотреть что именно может непереводить | |
|
|
|
|
|
|
|
для: xx77
(29.11.2008 в 16:17)
| | оказалось оч. много нераспарсеных... поступил подругому
<?php
function lang_parser($lang_files_dir){
include_once($lang_files_dir.'lang_main.php');
include_once($lang_files_dir.'lang_admin.php');
include_once($lang_files_dir.'lang_bbcode.php');
include_once($lang_files_dir.'lang_faq.php');
foreach($lang as $lang_key=>$lang_val){
$result['search'][] = '{L_'.strtoupper($lang_key).'}';
$result['replace'][] = $lang_val;
}
return $result;
}
?>
|
| |
|
|
|