Перезапись языковых констант (Language Override) Тема решена
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение

-
- phpBB 1.4.2
- Сообщения: 67
- Стаж: 16 лет 5 месяцев
- Откуда: Kiev
- Благодарил (а): 1 раз
- Поблагодарили: 2 раза
Перезапись языковых констант (Language Override)
Есть ли решение в виде расширения для перезаписи языковых констант, дабы не вмешиваться в перевод?
На phpbbguru.net используется Joomla, а в версии Joomla 3.х, так вот по функционалу такое расширение будет чем-то похоже на Language Override Joomla.
Спасибо!
На phpbbguru.net используется Joomla, а в версии Joomla 3.х, так вот по функционалу такое расширение будет чем-то похоже на Language Override Joomla.
Спасибо!
-
- phpBB 3.0.12
- Сообщения: 2857
- Стаж: 15 лет 4 месяца
- Откуда: Украина! Харьков
- Благодарил (а): 68 раз
- Поблагодарили: 240 раз
Re: Перезапись языковых констант (Language Override)
интересная мысль.
так же, была бы интересна возможность переопределять языковые переменные и других расширений, так сказать, полная адаптация языка под себя, не вмешиваясь в сторонний код.
так же, была бы интересна возможность переопределять языковые переменные и других расширений, так сказать, полная адаптация языка под себя, не вмешиваясь в сторонний код.
-
- phpBB 1.4.2
- Сообщения: 67
- Стаж: 16 лет 5 месяцев
- Откуда: Kiev
- Благодарил (а): 1 раз
- Поблагодарили: 2 раза
Re: Перезапись языковых констант (Language Override)
Например, можно переписать текст перед регистрацией, или назвать на форуме пользователей не Пользователь, а Юзвери

-
- phpBB 3.0.12
- Сообщения: 2857
- Стаж: 15 лет 4 месяца
- Откуда: Украина! Харьков
- Благодарил (а): 68 раз
- Поблагодарили: 240 раз
Re: Перезапись языковых констант (Language Override)
да, смысл понятен.
мне интересно именно внесение изменений без правок ядра и расширений.
мне интересно именно внесение изменений без правок ядра и расширений.
-
- Former team member
- Сообщения: 3468
- Стаж: 11 лет
- Благодарил (а): 39 раз
- Поблагодарили: 792 раза
Re: Перезапись языковых констант (Language Override)
Сделал расширение.
Как использовать:
Как использовать:
- в
event/listener.php
можно подключать свои языковые файлы и добавлять/модифицировать переменные шаблона; - в
language/XX/custom.php
, где XX - код ISO языкового пакета, можно задавать свои языковые переменные для общих случаев; - в
language/XX/info_XXX_custom.php
, где XXX -acp
,mcp
илиucp
, можно задавать свои языковые переменные для администраторского, модераторского и личного разделов соответственно (требуется для модификации пунктов меню). Если переменные используются не только в меню, потребуется также модификация в файле для общих случаев. Модификация пунктов меню других расширений не гарантируется (зависит от последовательности загрузки языковых файлов движком).
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- phpBB 3.0.12
- Сообщения: 2857
- Стаж: 15 лет 4 месяца
- Откуда: Украина! Харьков
- Благодарил (а): 68 раз
- Поблагодарили: 240 раз
Re: Перезапись языковых констант (Language Override)
в
но, по прежнему вижу
Отправлено спустя 4 минуты 35 секунд:
так же пробовал добавить переменную
во все файлы, она тоже не переопределила имеющиеся значение для страницы регистрации.
где я ошибся?
custom.php
добавил переменную
Код: Выделить всё
'FORUM_INDEX' => 'ГЛАВНАЯ СТРАНИЦА',
Список форумов
, т.е. переменная не переопределилась.Отправлено спустя 4 минуты 35 секунд:
так же пробовал добавить переменную
Код: Выделить всё
'TERMS_OF_USE_CONTENT' => 'ТЕСТ',
где я ошибся?
-
- Former team member
- Сообщения: 3468
- Стаж: 11 лет
- Благодарил (а): 39 раз
- Поблагодарили: 792 раза
Re: Перезапись языковых констант (Language Override)
'FORUM_INDEX'
меняет "Список форумов" для ссылки в Администраторском разделе.Для главной страницы придётся задавать переменную шаблона в
listener.php
:
Код: Выделить всё
/* Change template variables. */
$this->template->assign_vars(array(
/* Your variables go here. */
'EXT_CUSTOM_LANGUAGE' => true,
'L_INDEX' => '123456789',
));
Опять-таки через переменную шаблона
'L_TERMS_OF_USE'
задаём свой текст.Кстати, тогда имеет смысл переставить местами куски кода в расширении, обновил архив.
В движке переменная задаётся так:
Код: Выделить всё
$template->assign_vars(array(
'S_LANG_OPTIONS' => (sizeof($lang_row) > 1) ? language_select($user_lang) : '',
'L_TERMS_OF_USE' => sprintf($user->lang['TERMS_OF_USE_CONTENT'], $config['sitename'], generate_board_url()),
'S_SHOW_COPPA' => false,
'S_REGISTRATION' => true,
'S_HIDDEN_FIELDS' => build_hidden_fields($s_hidden_fields),
'S_UCP_ACTION' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register' . $add_coppa),
'COOKIE_NAME' => $config['cookie_name'],
'COOKIE_PATH' => $config['cookie_path'],
)
);
'TERMS_OF_USE_CONTENT'
переопределяем переменную шаблона ещё раз:
Код: Выделить всё
/* Change template variables. */
$this->template->assign_vars(array(
/* Your variables go here. */
'EXT_CUSTOM_LANGUAGE' => true,
'L_INDEX' => '123456789',
'L_TERMS_OF_USE' => sprintf($this->user->lang['TERMS_OF_USE_CONTENT'], $this->config['sitename'], generate_board_url()),
));
В общем, по сути каждый отдельный случай требует особого рассмотрения и своих доработок.
Большинство правок легко сделать в расширении аналогично правкам выше.
-
- phpBB 3.0.12
- Сообщения: 2857
- Стаж: 15 лет 4 месяца
- Откуда: Украина! Харьков
- Благодарил (а): 68 раз
- Поблагодарили: 240 раз
Re: Перезапись языковых констант (Language Override)
думал, все будет проще.
я просто поставил протестировать, но пока проще будет исправить в ядре и записать лог изменений.
либо сделать скриптовое изменение текста для страницы регистрации.
я просто поставил протестировать, но пока проще будет исправить в ядре и записать лог изменений.
либо сделать скриптовое изменение текста для страницы регистрации.
-
- Former team member
- Сообщения: 3468
- Стаж: 11 лет
- Благодарил (а): 39 раз
- Поблагодарили: 792 раза
Re: Перезапись языковых констант (Language Override)
Вообще текст для ссылки "Список форумов" можно поменять в Администраторском разделе.
Если через данное расширение, то более правильный вариант будет такой:
в слушатель добавить
(вместо
задать свой
Другой способ - искать события между заданием переменных и добавлением их в шаблон, но он не всегда прокатит.
Для общих файлов можно добавить строчку
С этой правкой примеры выше упрощаются, но тогда и custom.php каждый раз грузится дважды.
Отправлено спустя 3 минуты 46 секунд:
Плюс событие
Если через данное расширение, то более правильный вариант будет такой:
в слушатель добавить
Код: Выделить всё
'L_INDEX' => ($this->config['board_index_text'] !== '') ? $this->config['board_index_text'] : $this->user->lang['FORUM_INDEX'],
'L_INDEX' => '123456789',
в коде выше);задать свой
'FORUM_INDEX'
в языковом файле custom.php
.Так уж получается, что в движке некоторые языковые переменные записываются через шаблон.
Другой способ - искать события между заданием переменных и добавлением их в шаблон, но он не всегда прокатит.
Для общих файлов можно добавить строчку
'core.user_setup_after' => 'change_language_variables',
после 'core.adm_page_footer' => 'change_language_variables',
. Но этот способ не будет работать для файлов, подключаемых в коде дополнительно после $user->setup().С этой правкой примеры выше упрощаются, но тогда и custom.php каждый раз грузится дважды.
Отправлено спустя 3 минуты 46 секунд:
Плюс событие
'core.user_setup_after'
доступно только начиная с phpBB 3.1.6-RC1. 
-
- Former team member
- Сообщения: 1965
- Стаж: 15 лет 1 месяц
- Благодарил (а): 57 раз
- Поблагодарили: 622 раза
Re: Перезапись языковых констант (Language Override)
А если из админки иметь возможность изменить текст?
Переписал расширение выше, после установки смотреть в "Настройки конференции"//
Переписал расширение выше, после установки смотреть в "Настройки конференции"//
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- phpBB 3.0.12
- Сообщения: 2857
- Стаж: 15 лет 4 месяца
- Откуда: Украина! Харьков
- Благодарил (а): 68 раз
- Поблагодарили: 240 раз
Re: Перезапись языковых констант (Language Override)
можно немножко технический вопрос:
почему в первоначальном варианте
а в варианте Анвара
?
можно ли для языковых переменных оставить вариант Анвара и будет ли он более оптимизированным по сравнению с первоначальным вариантом?
Отправлено спустя 2 минуты 8 секунд:
в
почему в первоначальном варианте
Код: Выделить всё
arguments:
- @config
- @user
- @template
- @auth
- %core.root_path%
- %core.php_ext%
Код: Выделить всё
arguments:
- @config
- @template
можно ли для языковых переменных оставить вариант Анвара и будет ли он более оптимизированным по сравнению с первоначальным вариантом?
Отправлено спустя 2 минуты 8 секунд:
Код: Выделить всё
\phpbb\auth\auth $auth, $phpbb_root_path, $phpEx
listener.php
вроде не используются, а остальное таки нужно-
- Former team member
- Сообщения: 3468
- Стаж: 11 лет
- Благодарил (а): 39 раз
- Поблагодарили: 792 раза
Re: Перезапись языковых констант (Language Override)
Анвар оставил только то, что использует в слушателе.
Т.е. мой пример выше и другие сложные доработки с данными правками работать не будут.
Хотя для простых правок (совсем простых) вполне нормально.
Отправлено спустя 9 минут :
В принципе, так и надо, по логике, во многих случаях.
-
- Former team member
- Сообщения: 1965
- Стаж: 15 лет 1 месяц
- Благодарил (а): 57 раз
- Поблагодарили: 622 раза
Re: Перезапись языковых констант (Language Override)
Мне кажется из админки более удобнее использовать, только нужно знать названия констант и думать о том что префикс "L_" будет добавлен автоматически.
Решайте сами что и как хотите использовать, я лишь предложил такой вариант(набросал за 15 минут).
Решайте сами что и как хотите использовать, я лишь предложил такой вариант(набросал за 15 минут).
-
- phpBB 3.0.12
- Сообщения: 2857
- Стаж: 15 лет 4 месяца
- Откуда: Украина! Харьков
- Благодарил (а): 68 раз
- Поблагодарили: 240 раз
Re: Перезапись языковых констант (Language Override)
пытаюсь понять аналогию...
добавил переменные, но они не переопределились
но, оно вроде не имеет отношения к нужному мне.
как быть?
Отправлено спустя 1 минуту 19 секунд:
или надо еще в конктуртор добавку делать?
Отправлено спустя 4 минуты 1 секунду:
что-то не то....
добавил переменные, но они не переопределились
Код: Выделить всё
'SUBFORUM' => 'Подраздел',
'SUBFORUMS' => 'Подразделы',
L_SUBFORUM
нашел только одно вхождение
Код: Выделить всё
$l_subforums = (sizeof($subforums[$forum_id]) == 1) ? $user->lang['SUBFORUM'] : $user->lang['SUBFORUMS'];
как быть?
Отправлено спустя 1 минуту 19 секунд:
или надо еще в конктуртор добавку делать?
Отправлено спустя 4 минуты 1 секунду:
Код: Выделить всё
'L_FORUM' => (sizeof($subforums[$forum_id]) == 1) ? $user->lang['SUBFORUM'] : $user->lang['SUBFORUMS'],
-
- Former team member
- Сообщения: 3468
- Стаж: 11 лет
- Благодарил (а): 39 раз
- Поблагодарили: 792 раза
Re: Перезапись языковых констант (Language Override)
А почему L_FORUM?
Там есть L_SUBFORUM_STR. И просто L_SUBFORUM.
Но этот случай из разряда сложных, простым копированием не обойтись.
Там есть L_SUBFORUM_STR. И просто L_SUBFORUM.
Но этот случай из разряда сложных, простым копированием не обойтись.