неактуально Язык релиза

L

ler

Гость
#1
Какой бы язык не поставил в настройках профиля, форма добавления релиза все равно на русском языке. Подскажите как это все работает. По идее все берется из lang_topic_templates.php

А вот сам код из topic_templates.php
PHP:
function build_tpl_item ($item, $val)
{
    if (strpos($item, '--BR--') === 0)
    {
        return "\n\n";
    }
    if (!$val)
    {
        return '';
    }

    if (function_exists("tpl_func_$item"))
    {
        return call_user_func("tpl_func_$item", $item, $val);
    }
    else if (isset($GLOBALS['tpl_sprintf'][$item]))
    {
        return sprintf($GLOBALS['tpl_sprintf'][$item], $val);
    }
    else
    {
        return '[b]'. $GLOBALS['lang']['TPL'][strtoupper($item)] .'[/b]: '. $val ."\n";
    }
}
 

Exile

Администратор
#2
Это старый неподдерживаемый компонент движка.

Ну и так - берет из файла с языковыми, массив называется ['TPL'] - в нем перечисление элементов с переводом.
 
L

ler

Гость
#3
Так мне было интересно как он это берет. Уже разобрался. Английский язык при оформлении релиза отображается в том случае, если установлен браузер на английском языке.
Хотя мне например предпочтительнее чтоб язык определялся в зависисмости от выбранного в настройках профиля.
Не юзать же одновременно два браузера
 
L

ler

Гость
#5
Все равно не пойму. Установил я браузер на английском. И теперь не могу создавать раздачи на русском т.к. язык берется из HTTP_ACCEPT_LANGUAGE а мне надо чтоб на странице posting.php язык брался из isset($bb_cfg['default_lang'])
Сделал так, но не работает никуя

PHP:
// Language
setlocale(LC_ALL, 'ru_RU.UTF-8');
setlocale(LC_NUMERIC, 'C');
$bb_cfg['auto_language'] = true;
if (!empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && $bb_cfg['auto_language'])
{
           
        if (substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2) == 'ru')
        {
        if (isset($bb_cfg['default_lang']) && $bb_cfg['default_lang'] == 'russian') {
            $bb_cfg['default_lang_dir'] = LANG_ROOT_DIR .'lang_russian/';}
        else{
            $bb_cfg['default_lang_dir'] = LANG_ROOT_DIR .'lang_russian/';
            $bb_cfg['default_lang'] = 'russian';
            }
        }
        else
        {
       
        if (isset($bb_cfg['default_lang']) && $bb_cfg['default_lang'] == 'english') {
            $bb_cfg['default_lang_dir'] = LANG_ROOT_DIR .'lang_english/';}
        else{
            //var_dump($bb_cfg['default_lang']);
            $bb_cfg['default_lang_dir'] = LANG_ROOT_DIR .'lang_english/';
            $bb_cfg['default_lang'] = 'english';
            }
        }
}
else
{
        if (isset($bb_cfg['default_lang']) && $bb_cfg['default_lang'] == 'russian') $bb_cfg['default_lang_dir'] = LANG_ROOT_DIR .'lang_russian/';
        else $bb_cfg['default_lang_dir'] = LANG_ROOT_DIR .'lang_english/';
}
 
L

ler

Гость
#7
Спасибо всем за помощь. Решилось в файле sessions.php
PHP:
        if ($this->data['user_id'] != ANONYMOUS){
            $deflang=$this->data['user_lang'];
        }
        else {
            $deflang=$bb_cfg['default_lang'];
        }
        define('DEFAULT_LANG_DIR', LANG_ROOT_DIR .'lang_'. $deflang .'/');
 

Exile

Администратор
#8
Это старый неподдерживаемый компонент движка
Вообще вся суть в этом изначально. В последующих билдах правки в отношении автовыбора вносил, но в данном конкретном случае проблема только тут.
Это еще что? GUEST_UID с 600 ревизии!

Please Login or Register to view hidden text.

- следовательно весь приведенный код работать не может.
 
Сверху