Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 08.07.2011, 21:38   #1
rUs_LAN
Участник клуба
 
Регистрация: 15.11.2008
Сообщений: 575
Репутация: 59

skype: truesuport
По умолчанию переключення мов в сі

Ситуація така. Є view навігації nav.php де є такі рядки
Код:
<table class="flags">
        <tr>
            <td valign="middle">
                <?=anchor('main/changeLanguage/' . 'ua','<img src="/img/ua.gif" alt="Українська" title="Українська" />');?>
                <?=anchor('main/changeLanguage/'. 'ru','<img src="/img/ru.gif" alt="Російська" title="Російська"/>');?>
                <img src="/img/ro.gif" alt="Румунська" title="Румунська"/>
                <img src="/img/md.gif" alt="Молдавська" title="Молдавська"/>   
                <img src="/img/fr.gif" alt="Францюзька" title="Французька"/>  
            </td>
        </tr>
    </table>
тут при кліку на картинку прапор запускається функція
Код:
function changeLanguage()
     {
      
          switch ($this->uri->segment(3))
          {
              case 'ua':
                  $this->config->set_item('language', 'ua');
                  redirect(getenv("HTTP_REFERER"));
                  break;
              case 'ru':
                  $this->config->set_item('language', 'ru');
                  redirect(getenv("HTTP_REFERER"));
                  break;
             
          } 

     }
в конструкторі ці мови грузяться
Код:
function __construct()
    {
        parent::__construct();
        $this->load->helper(array('url','form'));
        $this->load->database();
        $this->load->library('session');
        $this->load->library('encrypt');
        $this->load->model('sqlfunc','sql');
        $this->load->helper('language');
        $this->lang->load('ua', 'ukrainian');
        $this->lang->load('ru','russian');
    }
Файли мов розміщені в стандартному місці /application/language/ukrainian/ua_lang.php
і
/application/language/russian/ru_lang.php
Коли була одна мова все нормально працювало а при доданні другої не виходить нормально написати фунцію їх переключення. При спробі змінити мову нічого не міняється, видно тільки як проходить редірет.

Последний раз редактировалось rUs_LAN; 08.07.2011 в 22:16.
rUs_LAN вне форума   Ответить с цитированием
Старый 08.07.2011, 22:07   #2
Andkorol
Профессионал
 
Регистрация: 31.05.2010
Сообщений: 3,301
Репутация: 1127
По умолчанию

Цитата:
Сообщение от rUs_LAN Посмотреть сообщение
Файли мов розміщені в стандартному місці /application/language/ukrainian/ua_lang_php
і
/application/language/russian/ru_lang_php
Мануал по CI2:
Цитата:
Название языкового файла должно заканчиваться на _lang.php
Andkorol вне форума   Ответить с цитированием
Старый 08.07.2011, 22:16   #3
rUs_LAN
Участник клуба
 
Регистрация: 15.11.2008
Сообщений: 575
Репутация: 59

skype: truesuport
По умолчанию

це просто опечатка, нажаль( зараз виправлю
rUs_LAN вне форума   Ответить с цитированием
Старый 08.07.2011, 22:27   #4
Andkorol
Профессионал
 
Регистрация: 31.05.2010
Сообщений: 3,301
Репутация: 1127
По умолчанию

Цитата:
Сообщение от rUs_LAN Посмотреть сообщение
це просто опечатка, нажаль( зараз виправлю
OK, тогда вот еще возможный баг:
Цитата:
Сообщение от rUs_LAN Посмотреть сообщение
$this->lang->load('ua', 'ukrainian');
$this->lang->load('ru','russian');
......
Файли мов розміщені в стандартному місці /application/language/ukrainian/ua_lang.php
і
/application/language/russian/ru_lang.php
Мануал:
Цитата:
Загрузка языкового файла делается так:
$this->lang->load('filename', 'language');
Где filename - это имя файла, который вы хотите загрузить (без расширения)
Имена файлов без расширений в вашем случае будут:
ua_lang
ru_lang
Andkorol вне форума   Ответить с цитированием
Старый 09.07.2011, 21:14   #5
rUs_LAN
Участник клуба
 
Регистрация: 15.11.2008
Сообщений: 575
Репутация: 59

skype: truesuport
По умолчанию

це також не працює воно автоматично додає ці символи при спробі написати ваш варіант пише

Unable to load the requested language file: language/ukrainian/ua_lang_lang.php

може справа в тому що я вивожу ці рядки командою
<?=lang('site');?> в view можливо треба додати якісь додаткові параметри?

Последний раз редактировалось rUs_LAN; 09.07.2011 в 21:16.
rUs_LAN вне форума   Ответить с цитированием
Старый 09.07.2011, 21:35   #6
Andkorol
Профессионал
 
Регистрация: 31.05.2010
Сообщений: 3,301
Репутация: 1127
По умолчанию

Цитата:
Сообщение от rUs_LAN Посмотреть сообщение
може справа в тому що я вивожу ці рядки командою
<?=lang('site');?> в view можливо треба додати якісь додаткові параметри?
Попробуйте использовать $this->lang->line():
Цитата:
Извлечение строки текста

Если требуемый языковой файл загружен, вы можете получить доступ к любой строке текста посредством этой функции:

$this->lang->line('language_key');

Где language_key - это ключ массива, указывающий на нужную текстовую строку.
Примечание: Эта функция просто возвращает строку. Она не осуществляет какой-либо вывод.
Функция lang() во второй версии CodeIgniter, насколько я понимаю, служит немного для других целей, и имеет другой синтаксис.

Есть офф-лайн версия мануала - сохраните её, и используйте для справки.

Целевой форум по CodeIgniter - code-igniter.ru/forum/
Andkorol вне форума   Ответить с цитированием
Старый 09.07.2011, 21:42   #7
Johnatan
Antimoderаtoris
Профессионал
 
Регистрация: 08.02.2008
Адрес: Испания
Сообщений: 1,251
Репутация: 430
По умолчанию

Donde cambias el idioma, antes del redirect, intenta poner en vez del corto 'ru' o 'ua' el nombre completo del idioma. Seguramente que te funcionara.
__________________
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума   Ответить с цитированием
Старый 09.07.2011, 22:17   #8
rUs_LAN
Участник клуба
 
Регистрация: 15.11.2008
Сообщений: 575
Репутация: 59

skype: truesuport
По умолчанию

Цитата:
Сообщение от Johnatan Посмотреть сообщение
Donde cambias el idioma, antes del redirect, intenta poner en vez del corto 'ru' o 'ua' el nombre completo del idioma. Seguramente que te funcionara.
Якщо вам не подобається що я пишу на російською вас можна зрозумітит але мені здається що якби я писав на російській було б ще гірше. Гугл транлейтор не сильно хороший перекладач але наскільки я міг зрозуміти ви пишете про те що я міняю мову після редіректу? Якщо я вас правильно зрозумів то мені здається чо це не так. Якщо ви знаєте як виправити дану помилку будьласка напишіть про це російською я її прекрасно розумію і на скільки я зрозумів ви тоже.
п.с. я попробував видалити редірект, нічого не змінилось



$this->lang->line('key') також не змінив нічого. Дякую за ссилки. Юзергайдом я користуюсь з самого початку щоправда в мене англійський а на їхній форум я обовязново напишу, дякую за допомогу Andkorol !!!
rUs_LAN вне форума   Ответить с цитированием
Старый 10.07.2011, 00:51   #9
Johnatan
Antimoderаtoris
Профессионал
 
Регистрация: 08.02.2008
Адрес: Испания
Сообщений: 1,251
Репутация: 430
По умолчанию

Yo no entiendo lo que escribes. Esto es un foro ruso, así que aquí se habla ruso.
Si tienes preguntas en ucraniano, vete al foro ucraniano.

Tienes que poner $this->config->set_item('language', 'russian'); en vez de lo que tienes ahora.

In worst case ask in english.
__________________
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?

Последний раз редактировалось Johnatan; 10.07.2011 в 00:54.
Johnatan вне форума   Ответить с цитированием
Старый 10.07.2011, 12:10   #10
rUs_LAN
Участник клуба
 
Регистрация: 15.11.2008
Сообщений: 575
Репутация: 59

skype: truesuport
По умолчанию

Код:
function changeLanguage()
     {
      
          switch ($this->uri->segment(3))
          {
              case 'ua':
                  
                  $this->lang->load('ua', 'ukrainian');
                  $this->config->set_item('language', 'ukrainian');
                  #echo "ua";
                  redirect(getenv("HTTP_REFERER"));
                  break;
              case 'ru':
                 
                 $this->lang->load('ru', 'russian');
                 $this->config->set_item('language', 'russian');
                 redirect(getenv("HTTP_REFERER"));
                 #echo "ru";
                  break;
             
          } 

     }
не работает (
rUs_LAN вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
підтримка багатьох мов на сайті rUs_LAN PHP 2 08.07.2011 15:12


08:32.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.