Как в модуле привязать языковые файлы

Тема в разделе "Создание расширений для Joomla", создана пользователем kurz, 16.07.2011.

  1. kurz
    Offline

    kurz Недавно здесь

    Регистрация:
    16.05.2010
    Сообщения:
    11
    Симпатии:
    0
    Пол:
    Женский
    Есть модуль mod_achat. Там есть языковые файлы: русский и английский. Я еще добавила украинский. Но работает модуль только на русском, на переключение языков не реагирует, т.е на english не переходит
    Хотелось бы, чтобы и на english, и на ukrainian переводил.
    Код из achat.php
    if (file_exists(JPATH_SITE.'/modules/mod_achat/languages/russian.php')) {
    include_once(JPATH_SITE.'/modules/mod_achat/languages/russian.php');
    } else {
    include_once(JPATH_SITE.'/modules/mod_achat/languages/english.php');
    }
     
  2.  
  3. ycsus
    Offline

    ycsus специалист

    Регистрация:
    19.02.2011
    Сообщения:
    249
    Симпатии:
    33
    Пол:
    Мужской
    Как то стрёмно... языковые файлы мона держать в модуле, правда всегда задавался вопросом зачем? В данной ситуации нужно в любом случае условия в зависимости от языка, а не от наличия:
    Код (PHP):
    1. $doc = & JFactory::getDocument();
    2. $lang = $doc->getlanguage();
    3. switch $lang{
    4.  case 'ru-ru': include_once(JPATH_SITE.'/modules/mod_achat/languages/russian.php'); break;
    5.  case 'en-gb': include_once(JPATH_SITE.'/modules/mod_achat/languages/english.php'); break;
    6.  case 'ua-ua': include_once(JPATH_SITE.'/modules/mod_achat/languages/ukranian.php'); break;
    7.  default: include_once(JPATH_SITE.'/modules/mod_achat/languages/russian.php'); break;
    8. }

    де то так, если что то не подхватится выведите $lang и посмотрите значение. Это всё актуально для 1.5шной ветки. Ну а вообще мона попробовать убрать эти условия и создать нормальные языковые файлы на основе того что есть.
     
    kurz нравится это.
  4. kurz
    Offline

    kurz Недавно здесь

    Регистрация:
    16.05.2010
    Сообщения:
    11
    Симпатии:
    0
    Пол:
    Женский
    Спасибо! Попробую, сейчас просто не могу. Чуть позже.
     
  5. kurz
    Offline

    kurz Недавно здесь

    Регистрация:
    16.05.2010
    Сообщения:
    11
    Симпатии:
    0
    Пол:
    Женский
    Если создать языковые файлы, то можно просто убирать эти условия?
    Нужно наверное еще правильно прописать, например такое if(timer != "<?php echo _ACHAT_TIMEROFF;?>") start_timers();};
     
  6. ycsus
    Offline

    ycsus специалист

    Регистрация:
    19.02.2011
    Сообщения:
    249
    Симпатии:
    33
    Пол:
    Мужской
    это жс? тогда я не думаю что стоит убирать, да и вообще какая разница где будут лежать языковые файлы, просто в 1.5 и выше принято ложить их в общую папку а не отдельно в каждом расширении?
     
  7. kurz
    Offline

    kurz Недавно здесь

    Регистрация:
    16.05.2010
    Сообщения:
    11
    Симпатии:
    0
    Пол:
    Женский
    Заменила на ваш код
    $doc = & JFactory::getDocument();
    $lang = $doc->getlanguage();
    switch ($lang){
    case 'ru-ru': include_once(JPATH_SITE.'/modules/mod_achat/languages/russian.php'); break;
    case 'en-gb': include_once(JPATH_SITE.'/modules/mod_achat/languages/english.php'); break;
    case 'ua-ua': include_once(JPATH_SITE.'/modules/mod_achat/languages/ukranian.php'); break;
    default: include_once(JPATH_SITE.'/modules/mod_achat/languages/russian.php'); break;
    }
    Только скобки пришлось добавить ($lang), иначе писал ошибку.

    english.php подключился, а ukranian не хочет никак. Какие могут быть причины? Где посмотреть?
     
  8. kurz
    Offline

    kurz Недавно здесь

    Регистрация:
    16.05.2010
    Сообщения:
    11
    Симпатии:
    0
    Пол:
    Женский
    Простите, все невнимательность. Неправильно было прописано название файла и вместо uk-ua было ua-ua.

    Файл подключился, но другая напасть. Теперь, при включенном украинском языке пропадают все сообщения в чате.
     
  9. ycsus
    Offline

    ycsus специалист

    Регистрация:
    19.02.2011
    Сообщения:
    249
    Симпатии:
    33
    Пол:
    Мужской
    угу, и то правда, забыл.
    При переключении языков, или всмысле пропадают?
     
  10. kurz
    Offline

    kurz Недавно здесь

    Регистрация:
    16.05.2010
    Сообщения:
    11
    Симпатии:
    0
    Пол:
    Женский
    При переключении на украинский. При переключении на инглиш и рашен все есть, все нормально. При включенном украинском - сообщений нет.
     
  11. ycsus
    Offline

    ycsus специалист

    Регистрация:
    19.02.2011
    Сообщения:
    249
    Симпатии:
    33
    Пол:
    Мужской
    Значит где то еще есть проверки на язык или еще какой то момент не учитываете. Курите, Шура, курите... они золотые)
     
  12. kurz
    Offline

    kurz Недавно здесь

    Регистрация:
    16.05.2010
    Сообщения:
    11
    Симпатии:
    0
    Пол:
    Женский
    Спасибо вам огромное, ycsus. Вы мне очень помогли. Я в еще один устаревший компонент вставила языки. Там сразу все получилось.
    А здесь просто в самом украинском файле не проканал апостроф: И'МЯ. Я его всегда заменяю на И"МЯ, но тут этот номер не прошел. Написала просто ИМЯ - все теперь нормально. Украинцы, конечно, прикопаются, что это неправильно, ну да ладно, потерпят, зато остальной перевод есть.
    Еще раз спасибо. Не вижу, где здесь ставить плюсики или здесь какие-то др. поощрения?

    Нашла плюсик. Поставила.
     
  13. ycsus
    Offline

    ycsus специалист

    Регистрация:
    19.02.2011
    Сообщения:
    249
    Симпатии:
    33
    Пол:
    Мужской
    спец символы попробуйте экранировать, правила как и в пхп, перед апострофом \ вставить
     
  14. kurz
    Offline

    kurz Недавно здесь

    Регистрация:
    16.05.2010
    Сообщения:
    11
    Симпатии:
    0
    Пол:
    Женский
    Спасибо! все получилось.
     

Поделиться этой страницей

Загрузка...