Аватар пользователя B.X

Mens immota manet...

Mens immota manet, lacrimae volvuntur inanes. — Дух непоколебим: понапрасну катятся слёзы.

Top.Mail.Ru Каталог webplus.info Яндекс.Метрика

Пользователей онлайн: 0.

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

Локализация через статический файл (5.0) | [Харзах]-[РУ]

Аватар пользователя jason32

Итак, проснулся я в хорошем настроении и решил наконец-то облегчить жизнь тем людям, которых раздражает кол-во запросов к базе у Друпала 5 при переводе. Для Друпал 4.7 я уже такое делал, пришла очередь пятого. Итак, без патча к сожалению не обошлось, можно и не надеяться.
файл includes/common.inc

<?php 
function t($string$args 0) {
  global 
$locale;
  
//////////////////////////////////////////////////////////////
if (function_exists('locale_static') && $locale != 'en') {
    
$string locale_static($string);
  }
  else
///////////////////////////////////////////////////////////////
  
if (function_exists('locale') && $locale != 'en') {
    
$string locale($string);
  }
  if (!
$args) {
    return 
$string;
  }
  else {
    
// Transform arguments before inserting them
    
foreach ($args as $key => $value) {
      switch (
$key[0]) {
        
// Escaped only
        
case '@':
          
$args[$key] = check_plain($value);
        break;
        
// Escaped and placeholder
        
case '%':
        default:
          
$args[$key] = theme('placeholder'$value);
          break;
        
// Pass-through
        
case '!':
      }
    }
    return 
strtr($string$args);
  }
}
?>

Добавлены строчки, которые между вот такими полосками - ///////////////////////////////////////////////////////////////.
C патчами закончили. Приаатачиваю МОДУЛЬ, никаких теперь левых конвертеров :)
PS Как вы понимаете, модуль сырой и не особенно тестированный, так что просьба сбрасывать сюда вопросы и найденные баги и фичи.

Аватар пользователя Гость

помогите пжлст, включил модуль Localization Static.
выдает такое сообщение The language file m:/home/localhost/www/files/Russian.php does not exist. Will rebuild him.
где его взять?

Аватар пользователя B.X

папка files должна быть разрешена для записи...
просто создайте в ней чистый файл Russian.php если он не создаётся автоматически...

Аватар пользователя Гость

а после появления файла russian.php модуль locale_static нужно отключать или нет? у меня на сайте возникает такая проблема - при включенном locale_static другие модули добавить уже становиться невозможно.

Аватар пользователя B.X

Такого не должно быть. Во всяком случае, у меня этот модуль на другие модули никак не влияет, да и собственно он не может этого сделать.

Модуль должен быть включен, так как именно он передаёт информацию из файла russian.php Друпалу о переведённых словах. Тем модуль и полезен, что используется совместно с модулем Locale. Можно переводить прямо на своём сайте, не забывая перезаписывать файл russian.php в настройках Locale Static.

Аватар пользователя Sergey1917

Владимир, что-то я модуль locale_static-5.x-1.1-dev на официальном сайте не нашел вообще. Хотел проверить, может уже релиз появился а не отладочная версия.

И хотел уточнить - этот модуль + патч уменьшает количество обращений к базе в русской версии Друпала?

Аватар пользователя B.X

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

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

Аватар пользователя Sergey1917

Жаль что дальнейшее развитие не планируется. Все только и говорят об отказах в доступе к базе из-за перегрузок, а этот модуль снижает количество обращений к базе и наверное хорошо снижает.

P.S. Владимир, вы не насобирали материала по модулю Views, и особенно в связке CCK + Views + View field? Если да, то может опубликуете здесь. У меня на нем сейчас все застопорилось, а разобраться пока никак не получается. А нужно следующее:
Как в созданном документе (страница или заметка), в середине страницы (текста) вставить список ссылок на другие документы, соотнесенные с одним или несколькими терминами или словарями? Не вручную же их вписывать, особенно если этих ссылок может быть очень много - десятки, сотни, тысячи.

Вы мне когда-то рекомендовали модуль Node list, но он делает только одну выборку, а мне надо как минимум 30.

Аватар пользователя B.X

Честно говоря, эти модули (Views и др.) я считаю избыточными и ненужными для обычного сайта, они ещё больше увеличивают нагрузку на базу данных, что сказывается на производительности, а так как профессионально я разработкой сайтов не занимаюсь, то я даже не интересовался этими модулями. Хотя, думаю, что для каких-то особых целей они может быть и нужны...

Но, вообще-то, люди уже интересовались этим вопросом и даже пытались объяснить, как пользоваться этим модулем, вот ссылка на документы о Views. Если вы эти документы уже просматривали, то ничего нового я предложить не могу. Не занимался этим модулем и вообще он мне не очень нравится. CCK я также никогда особо не интересовался, меня в этом плане устраивают стандартные решения.

Аватар пользователя Sergey1917

А можно в моем случае сделать это стандартным решением в Друпале?

Аватар пользователя B.X

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

Аватар пользователя Sergey1917

Большое спасибо за ссылку на сниппеты. Это наверное то, что мне нужно. А их надо встраивать в текст страницы?

P.S. Вроде разобрался, буду теперь эксперементировать. Чем я могу отблагодарить за совет?

Аватар пользователя B.X

да, в страницы встраиваются и в блоки, в php-режиме...

хех, благодарность - это дело личное, я помог вам, вы помогите ещё кому-нибудь...