Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.07.2011, 21:38   #1
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию переключення мов в сі

Ситуація така. Є 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
По умолчанию

Цитата:
Сообщение от 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
Сообщений: 577
По умолчанию

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

Цитата:
Сообщение от 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
Сообщений: 577
По умолчанию

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

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
По умолчанию

Цитата:
Сообщение от 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
По умолчанию

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
Сообщений: 577
По умолчанию

Цитата:
Сообщение от 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
По умолчанию

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
Сообщений: 577
По умолчанию

Код:
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 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


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