Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

Дизайн и модификация Invision Community

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

Вывод lang переменных на другой сайт связанных с ипб

Предисловие:

Есть самописный портал к которому привязан IPBoard. С портала можно зарегистрироваться, авторизоваться, сменить пароль и выйти из IPB не заходя на сам форум. Так же на данный портал выводится некоторая информация из IPB типа новости, галерея, профиль и тд и тп..

 

Встала нужда добавить 2 языка: Английский и Русский. Сменить язык с этого портала я могу, а так же проверить какой язык у пользователя и какой язык стоит у системы по дефолту тоже.

Но я не хочу выдумывать велосипед и создавать новые lang файлы для этого портала. Мне удобнее дописать файлы lang ipb и уже из них вывести информацию в зависимости от языка пользователя.

 

Нужна ваша помощь в выдергивание функции которая работает с lang файлами в ipb или же ее подгрузка в портал, а следом вывод переменных из массивов lang файлов. Что бы я мог скажем использовать следующее:

<? echo $this->lang->words['title']; ?> Если стоит русский язык. Выводит русский текст, а если стоит английский, то английский текст.

Просто иначе придется писать:

<? if ($lang_user == 1) { echo $lang->ru['title']; } else {echo $lang->en['title']; } и работать со своими lang файлами.

Способ в принципе такой же, но кода в 2 раза больше. Конечно можно написать функцию и облегчить его до уровня первого варианта, но зачем? Оно уже есть в IPB.

Убил пару часов, но так ничего вывести у меня не получилось из lang файлов IPB.

 

Может кто работал и сможет мне помочь.

 

Спасибо за внимание.

Рекомендованные сообщения

$this->lang->loadLanguageFile( array( 'PACK_NAME' ), 'APP_KEY' );

 

PACK_NAME - имя пака где находятся языковые строки

APP_KEY - имя приложения

  • Автор

Спасибо, но не получилось.

 

Сделал так, решил для теста вывести хоть что то вот мой код:

 

<?
define('FORUM_PATH', $_SERVER['DOCUMENT_ROOT'].$forum.'/');
require_once( FORUM_PATH . 'initdata.php' );
require_once( FORUM_PATH . 'admin/api/member/api_member_login.php' );
require_once( IPS_ROOT_PATH . 'sources/base/ipsRegistry.php' );
require_once( IPS_ROOT_PATH . 'sources/base/ipsController.php' );
require_once( IPS_ROOT_PATH . 'sources/classes/class_localization.php' );//Класс подгрузил на всякий случай, но и без него не так и не сяк не работает.
$ipbRegistry = ipsRegistry::instance();
$ipbRegistry->init();
$DB         =  $ipbRegistry->DB();
$settings   =& $ipbRegistry->fetchSettings();
$request    =& $ipbRegistry->fetchRequest();
$lang       =  $ipbRegistry->getClass('class_localization');
$ipb_test_lang = $lang->loadLanguageFile( array( 'public_online' ), 'members' );
?>

 

Вывод делаю так:

<? echo $ipb_test_lang['online_page_title']; ?>

Но ничего не выводит. Где я сделал ошибку? Переменные $DB, $settings, $request используются нормально.

А для чего Вы присваиваете

$ipb_test_lang = $lang->loadLanguageFile( array( 'public_online' ), 'members' );

 

Вывод

$lang->words['online_page_title']

$lang->loadLanguageFile( array( 'public_online' ), 'members' );
print_r($lang->words);

  • Автор

Ну вообще думал с целью использовать скажем разные боксы под это дело.

Например для страница новостей портала loadLanguageFile( array( 'news' ), 'portal' )

Для страницы регистрации loadLanguageFile( array( 'regs' ), 'portal' )

 

И так далее. А так получится что придется разные переменные задавать или нет?

 

А и да оно заработало)

Изменено пользователем Pastuh

loadLanguageFile только подгружает указанные лэнг-паки, включая глобальный, если он не подгружен. И все.

Например для страница новостей портала loadLanguageFile( array( 'news' ), 'portal' )

Для страницы регистрации loadLanguageFile( array( 'regs' ), 'portal' )

Для одного и того же приложения, можете в массиве указывать PACK_NAME

$lang->loadLanguageFile( array( 'news', 'regs' ), 'portal' );

 

И так далее. А так получится что придется разные переменные задавать или нет?
Нет.
  • Автор

А хорошо спасибо понял тогда. Можно закрывать.

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.