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

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

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

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

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

Установка английского языка на IBR [3.2.2] и защищенный языковой пакет

Моя версия IPB: 3.2.2 (IBR)

 

Приветствую. Хватило дурости пользоваться IPB от IBR, а не IPS, и теперь возникает следующий вопрос:

 

 

В базовой поставке IPB от IPS есть защищённый языковой пакет - "English (USA)". В комплекте от IBR есть только "Русский" язык.

 

Вопрос состоит в следующем:

 

Можно ли как-то восстановить исходный языковой пакет, или заново установить английский язык так, чтобы он корректно обновлялся в будущем при установке обновлений от IPS?

 

В итоге необходимо получить форум с двумя языками: корректный английский(обновляющиийся как положено), и русский (какой есть).

 

Заранее извиняюсь за возможную сумбурность изложения.

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

Ну да. У меня несколько страничек, которые я добавил в контенте. например страница статистики из предыдущего моего поста скрин. Само собой её название то, которое я прописал в настройках при её создании. Но мне необходимо сделать её название в зависимости от локали, которую выберет пользователь. Сейчас вот пытаюсь разобраться в primary_navigation, ибо оттуда я так понял ноги растут но пока безуспешно. Ну и если эта задача будет решена, попробую сам контент страницы сделать мультиязычным.

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

Названия страниц как и названия тем не рассчитаны на мултиязычность. Там нужно совсем в другом месте капать нежели в названия приложений.

Я прошу прощения, ввёл в заблуждение. Я имел ввиду не названия страниц, а названия кнопок в меню навигации, которое создаётся в IP Content (они у меня идентичны, поэтому я и сам запутался). Вот что мне нужно перевести в зависимости от выбранной локали.

Кажется я уловил суть. Можно попробовать в primary_navigation после

<a id='nav_menu_{$menuItem['menu_id']}_trigger' href='{$menuItem['menu_url']}' title='{$menuItem['menu_description']}' {$menuItem['menu_attributes']}>

дописать что-то вроде:

{$this->lang->words['menu_'.$menuItem['menu_url']]}

вместо:

{$menuItem['menu_title']}

После чего указать в языках ключи

menu__statistics

ну и само собой - url странички у меня так же statistics.

Правда я немного не пойму тут синтаксис после "С", в частности тут:

{$this->lang->words['menu_'.$menuItem['menu_url']]}

Ибо не могу подхватить ключ в языках (страница грузится, но пусто на месте кнопки). Опытные. Подскажите пожалуйста, верно мыслю?

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

Кажется был кеш. Код выше работает :blink:

Все верно. Можно подобрать какой нибудь ключ ид или тайтл страницы и создать лэнг на его основе. Языковые строки создаются в АЦ в языках, на диске находится кеш, если править его то изменения слетят. Лэнги есть глобальные, а есть локальные которые загружаются только в конкретных местах.

Синтаксис вроде правильный.

siv1987 Вы мне выше писали что нет возможности реализовать мультиязычность названий форумов и категорий. Скажите, а где хранятся данные о локали, которую выбрал пользователь? К чему вопрос. У меня есть и был опыт написания сайтов и простеньких форумов на C#. Что делал я в таких случаях: В админке делал по 2 поля (Rus/Eng). Так же и в базе для названий форумов и категорий было по 2 поля. Данные о выбранной локали я хранил в cookie и дальше пользователь получал нужные ему поля исходя из своей локализации что-то вроде:

if (Localization.Count == 1)
{
    Название форума на Русском языке
}
else
{
    Название форума на Английском языке
}

 

Сами файлы языков хранил отдельно (не в базе).

На сколько реально тут что-то подобное организовать?

Вы уж простите за глупые и специфические вопросы, но такова задача). Да и внутри данного форума я никогда ранее не копался...

Вы мне выше писали что нет возможности реализовать мультиязычность названий форумов и категорий.

Я говорил что по умолчанию такой возможности не предусмотрено. Реализовать при желание и должном умение можно все.

 

Скажите, а где хранятся данные о локали, которую выбрал пользователь?

Ид текущего загруженного языка

 

$this->lang->lang_id

или

 

$this->member->language_id

Локаль языка

 

$this->lang->local

Добрый вечер. В продолжении темы о локализации хотелось бы вот по какому вопросу посоветоваться. В

globalTemplate
строку
<title>{$header_items['title']} </title>

я немного изменил на

<title>{$this->lang->words['menu_'.$header_items['title']] }</title>

после чего перемещаясь по страницам на разных локалях я вижу нужный мне тайтл, например Контакты/Contscts. Объясните мне пожалуйста, как я могу проделать то же самое, если я перемещаюсь на форум, или же нахожусь на главной странице контента? В меню навигации я сталкивался с аналогичной проблемой, после чего она была решена следующим путём:

{$this->lang->words['menu_'.$data['app_dir']]}

а вот с тайтлом никак не могу разобраться к сожалению.

 

И интересует вопрос, каким образом проще локализировать breadcrumb? как я понимаю - нужно смотреть в сторону

<if test="navigationlink:|:$data[1]"><a href='{parse url="{$data[1]}" base="$data[4]" seotitle="$data[2]" template="$data[3]"}' title='{$this->lang->words['nav_return_to']} {$data[0]}' itemprop="url"></if><span itemprop="title">{$data[0]}</span><if test="closenavigationlink:|:$data[1]"></a></if>

а в частности в

{$data[0]}

но я не могу понять откуда тут ноги растут. Спасибо!

Массив $this->request

 

$this->request['app']

$this->request['module']

$this->request['section']

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

Аккаунт

Навигация

Поиск

Поиск

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

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