Вывести сообщение в зависимости от языка

У вас есть идея для расширения функциональности phpBB 3.0.x? Расскажите о ней здесь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Jons
phpBB 2.0.4
Сообщения: 418
Стаж: 18 лет
Благодарил (а): 65 раз
Поблагодарили: 2 раза

Вывести сообщение в зависимости от языка

Сообщение Jons »

Вывожу сообщение в шапке на русском языке. Как сделать, чтобы сообщение выводилось на том языке, который сейчас выбран у пользователя. Покажите пожалуйста конструкцию условий для языков: русский, английский, украинский.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Вывести сообщение в зависимости от языка

Сообщение Sheer »

Есть такой замечательный объект $user. Вот там хранится вся доступная информация о пользователе.

Код: Выделить всё

if ($user->data['user_lang'] == 'ru')
{
//  Русский
}
else if ($user->data['user_lang'] == 'en')
{
// Английский
}
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
МайскийЖук
phpBB 3.0.7-PL1
Сообщения: 2535
Стаж: 16 лет 11 месяцев
Благодарил (а): 17 раз
Поблагодарили: 366 раз

Вывести сообщение в зависимости от языка

Сообщение МайскийЖук »

Как сделать, чтобы сообщение выводилось на том языке, который сейчас выбран у пользователя.
Необходимо создать языковую переменную, прописать ее в языковых файлах всех используемых на форуме языков, а в шаблоне шапки прописать вывод именно этой переменной. И после этого, если пользователь переключит язык в настройках форума, надпись в шапке будет отображаться именно на том языке, который выбрал пользователь.

Пример такого действия можно посмотреть у меня. В правом верхнем углу есть переключатель языков.
Любовь и боль, покой и бой я как любой несу с собой…
Jons
phpBB 2.0.4
Сообщения: 418
Стаж: 18 лет
Благодарил (а): 65 раз
Поблагодарили: 2 раза

Re: Вывести сообщение в зависимости от языка

Сообщение Jons »

Про прописать я lя думаю что знаю как. Как вывести эту переменную, пример можно?
Аватара пользователя
HAMMER663
Former team member
Сообщения: 2032
Стаж: 16 лет 5 месяцев
Откуда: Зеленоград
Благодарил (а): 77 раз
Поблагодарили: 249 раз

Re: Вывести сообщение в зависимости от языка

Сообщение HAMMER663 »

Jons {L_NAME}
Аватара пользователя
МайскийЖук
phpBB 3.0.7-PL1
Сообщения: 2535
Стаж: 16 лет 11 месяцев
Благодарил (а): 17 раз
Поблагодарили: 366 раз

Вывести сообщение в зависимости от языка

Сообщение МайскийЖук »

Ну, конечно, можно. Например:

Код: Выделить всё

<script language="javascript" src="{L_PHPBBMON_STAT}"></script>
Этот код, вставленный в /styles/название_стиля/template/index_body.html выводит на заглавной странице количество скачиваний. Переменная PHPBBMON_STAT прописана в /language/en/common.php и в /language/ru/common.php и меняет свое значение в зависимости от выбранного языка.
Любовь и боль, покой и бой я как любой несу с собой…
Jons
phpBB 2.0.4
Сообщения: 418
Стаж: 18 лет
Благодарил (а): 65 раз
Поблагодарили: 2 раза

Re: Вывести сообщение в зависимости от языка

Сообщение Jons »

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

Добавлено спустя 17 минут 38 секунд:
HAMMER663 писал(а):Jons {L_NAME}
Создал переменную в common.php:

Код: Выделить всё

 // BEGIN
$lang = array_merge($lang, array(
	'COPYING'		=> 'При полном или частичном использовании ...',
));
// END
в overall_footer.html, в нужном мне месте указал:

Код: Выделить всё

{L_COPYING}
почитил кеш,а на экране вот что:
{ COPYING }
я подозреваю, что {L_COPYING} нужно заключить в конструкцию типа

Код: Выделить всё

<!-- IF  что-то там>  {L_COPYING}  <!-- ENDIF -->
Если так, что мне указать вместо "что-то там". Или может быть я ошибаюсь!? Тогда, как правильно?
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Вывести сообщение в зависимости от языка

Сообщение Sheer »

Jons писал(а):Создал переменную в common.php:
В каком common.php ?
Так называемые "языковые переменные" нужно добавлять в соответствующие "языковые" файлы.
В language/ru/common.php

Код: Выделить всё

'COPYING'		=> 'При полном или частичном использовании ...',
В language/en/common.php

Код: Выделить всё

'COPYING'		=> 'At full or partial use of ...',
В language/ua/common.php

Код: Выделить всё

'COPYING'		=> 'При повному або частковому використанні ...',
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Jons
phpBB 2.0.4
Сообщения: 418
Стаж: 18 лет
Благодарил (а): 65 раз
Поблагодарили: 2 раза

Re: Вывести сообщение в зависимости от языка

Сообщение Jons »

Каюсь, забыл файл на хостинг залить. А ещё думаю, сделал же переменную только в русском языковом пакете и не мог понять, почему в других пакетах языков не появилось сообщение о том, что не хватает такой же переменной 'COPYING'? Залил language/ru/common.php всё заработало.
Разобрался.
Аватара пользователя
МайскийЖук
phpBB 3.0.7-PL1
Сообщения: 2535
Стаж: 16 лет 11 месяцев
Благодарил (а): 17 раз
Поблагодарили: 366 раз

Вывести сообщение в зависимости от языка

Сообщение МайскийЖук »

На английский не переключается, автоматом на русский, по крайней мере для гостей.
Кстати, да, что-то я раньше этого не заметил. На гостей переключалка действительно не действует. Тогда вот:

Имя пользователя: TestUser
Пароль: testuser1
Любовь и боль, покой и бой я как любой несу с собой…
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Вывести сообщение в зависимости от языка

Сообщение Sheer »

Есть вроде мод - переключатель языка для гостей MSSTI Quick Language
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Jons
phpBB 2.0.4
Сообщения: 418
Стаж: 18 лет
Благодарил (а): 65 раз
Поблагодарили: 2 раза

Re: Вывести сообщение в зависимости от языка

Сообщение Jons »

Поставил мод на 3.0.11. Отлично работает.
Jons
phpBB 2.0.4
Сообщения: 418
Стаж: 18 лет
Благодарил (а): 65 раз
Поблагодарили: 2 раза

Re: Вывести сообщение в зависимости от языка

Сообщение Jons »

Почему то {L_NAME} не работает в конструции php:


Код: Выделить всё

<!-- PHP -->

{L_NAME} 

<!-- ENDPHP -->
Аватара пользователя
Garret_Dark
phpBB 2.0.16
Сообщения: 1097
Стаж: 17 лет 8 месяцев
Откуда: root/world/russia/
Благодарил (а): 126 раз
Поблагодарили: 206 раз

Re: Вывести сообщение в зависимости от языка

Сообщение Garret_Dark »

Jons, скорее всего потому что это PHP и не обрабатываются условия шаблона
Попробуйте так
$user->lang['NAME']
Последний раз редактировалось Garret_Dark 14.09.2012 17:31, всего редактировалось 1 раз.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Вывести сообщение в зависимости от языка

Сообщение Sheer »

Jons
В одну телегу впрячь неможно коня и трепетную лань

Добавлено спустя 43 секунды:
{L_NAME} - это объект шаблона, а не сценария.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.

Вернуться в «Запросы модов для phpBB 3.0.x»