Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: перевод темплатов PhpBB2 на русский
 
 автор: michail1982   (29.11.2008 в 14:44)   письмо автору
 
 

Доброго времени суток
хочу сделать автоматический перевод файлов шаблонов из 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)... помагите с паттерном плз..

  Ответить  
 
 автор: xx77   (29.11.2008 в 16:17)   письмо автору
 
   для: michail1982   (29.11.2008 в 14:44)
 

В первом классе символов вроде можно не упоминать символ %, в ключах массива не встречается
что-то вроде [0-9A-Z_]+ должно подойти , поскольку eregi
А несовпадения наверное из-за второго
[,0-9A-zА-я\s%]+ если удалить лишние запятые

Здесь хоть и регистронезависимая функция, A-zА-я означают только то и всё то что входит в эти диапазоны.
, включая символы [\]^_` , и невключая Ёё.

Наверное я-бы попробовал просто [^\']+
или [,\.:0-9A-ZА-яЁё\s%]+ если только не пропустил ещё чего-нибудь там встречающегося.

И надо-бы посмотреть что именно может непереводить

  Ответить  
 
 автор: MIchail1982   (29.11.2008 в 18:31)   письмо автору
 
   для: 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;
}
?>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования