Итак, сделал я локализацию без базы. Сделано немного - запросы к базе ещё остались, но их стало порядка 10-20 против 200-400 ранее. Пока изменена лишь одна функция + сделан конвертер из базы. У меня всё прекрасно сработало.
Итак - файл common.inc
Было:
-
<?php
-
function t($string, $args = 0) {
-
global $locale;
-
$string = locale($string);
-
}
-
if (!$args) {
-
return $string;
-
}
-
else {
-
}
-
}
-
?>
Стало:
-
<?php
-
function t($string, $args = 0) {
-
global $locale;
-
global $lang;
-
else
-
$string = locale($string);
-
}
-
if (!$args) {
-
return $string;
-
}
-
else {
-
}
-
}
-
?>
+ converter.php
-
<?php
-
// converter.php
-
require_once './includes/bootstrap.inc';
-
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
-
//////////названия таблиц////////////////////////////
-
$table_meta='locales_meta';
-
$table_sources='locales_source';
-
$table_target='locales_target';
-
////////////////////////////////////
-
$sql="Select * from $table_meta where `isdefault`=1";
-
{
-
$is_default=$row['locale'];
-
}
-
$sql="Select `lid`,`source` from $table_sources ";
-
{
-
$lang_en[$row['lid']]=$row['source'];
-
}
-
$sql="Select `lid`,`translation`,`locale` from $table_target where `locale`=\"$is_default\"";
-
{
-
{
-
$lang[$id]=$locale_id;
-
}
-
else $lang[$id]=$id;
-
}
-
$locale_file="<?
-
";
-
foreach ($lang as $sources=> $target)
-
{
-
$locale_file.='$lang[\''.$sources.'\']=\''.$target."';
-
";
-
}
-
$locale_file.='?>';
-
?>
Необходимые условия:
нужно закинуть файл conveter.php в корень. Если папка locale с файлом russian.php не появилась - значит необходимо вручную её создать.
В index.php первым оператором прописать include('locale/russian.php');
и всё должно заработать.
После этого запускаем converter.php и тестим
После инсталяции очередного перевода модуля нужно будет только запустить Конвертер и всё.
Комментарии
Спасибо, работает! Пока? :)
Спасибо, работает! Пока… :)
а подробнее можно про файл russian.php?
а можно подробнее про файл russian.php в папке locale? его нужно самому создавать или достаточно создать папку locale в корне движка, а russian.php будет создан конвертером?
если нет, то что должно быть в файле russian.php?
к предыдущему комментарию про russian.php
если не сложно - отпишись по soliton2tv@bk.ru или в асю 178897282
«Если папка locale с файлом russian.php не появилась — зна
"Если папка locale с файлом russian.php не появилась - значит необходимо вручную её создать."
файл скрипт создаёт сам, но если не создаст, то это можно сделать самому... да и проверьте сами, это просто, он не должен быть пустым...
Отличный хак =) Спасибо! Я пробовал на пятерке, немного
Отличный хак =) Спасибо! Я пробовал на пятерке, немного подкорректировал код. все работает на ура. визуально все сталорабоать быстрее =)
Вот только сразу родилося вопрос: а как быть если сайт мультиязычный?
вопросы автору хака можно задать на Друпал.ру: http://drupal.ru/
вопросы автору хака можно задать на Друпал.ру: http://drupal.ru/user/jason32
здесь он редко бывает...