Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Switch Lang - работает на 50%?

Ответы на вопросы, связанные с модами для phpBB 2.0.x, кроме относящихся к форуму Для авторов (phpBB 2.0.x).
Аватара пользователя
Alice
phpBB 1.4.4
Сообщения: 197
Стаж: 17 лет 1 месяц
Откуда: SPb
Поблагодарили: 1 раз

Switch Lang - работает на 50%?

Сообщение Alice »

Вот и мое время настало стпросить у вас совет.
Хотела бы, чтобы на форуме была возможность переключать языки, т.к. англоязычные посетители тоже появляются. Скачала мод Switch Lang (http://www.phpbbhacks.com/download/4556), поставила - работает, НО на 50%, так сказать. Вообще-то он должен давать возможность переключать языки гостю (как я понимаю), но как раз в гостевом режиме не переключает, а в зарегистрированном - отлично. Редактировались файлы:
common.php
includes/functions.php
includes/page_header.php
language/lang_russian/lang_main.php
language/lang_english/lang_main.php
templates/***/overall_header.tpl
все делала по инструкции. Хотя одна загвоздка была - в functions.php надо сделать так:

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

#
#-----[ FIND ]------------------------------------------
#
		if ( !empty($userdata['user_lang']))
		{
			$board_config['default_lang'] = $userdata['user_lang'];
		}

#
#-----[ REPLACE WITH ]------------------------------------
#
		if ( !empty($userdata['user_lang']))
		{
			$board_config['default_lang'] = ($board_config['desired_lang']) ? $board_config['desired_lang'] : $userdata['user_lang']; 
		}
а в моем functions.php был код такой:

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

if ( !empty($userdata['user_lang']))
		{
			$default_lang = phpbb_ltrim(basename(phpbb_rtrim($userdata['user_lang'])), "'");
		}
Подумав маленько, решилась на замену (другого такого кода в functions.php не нашла).

Да, я думаю, что как раз в этом functions.php что-то и не то, хотя точно не знаю (в php не разбираюсь).
Еще один кусок кода, который нужно вставить:

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

if ( $userdata['user_id'] == ANONYMOUS )
	{
		$board_config['default_lang'] = (isset($board_config['desired_lang'])) ? $board_config['desired_lang'] : $board_config['default_lang']; 
	}
в нем все в порядке?
Только в нем встречается товарищ ANONYMOUS.

Да, еще был вопрос на счет размещения ссылки на это переключение, она не очень красиво страивалась прямо на страницу под главное меню, но в процессе написания поста на меня снизошло озарение и я сама докумекала, так что ссылка красивая, еще бы работала хорошо :)

Товарищи гуру, помогите разобраться с модом, пожалуйста. Если этот мод все-таки не умеет переключать языки гостю (и я тут напрасно мучаюсь), то может быть вы что-то сможете в нем переделать?

Добавлено спустя 10 минут 32 секунды:

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

Добавлено спустя 7 минут 11 секунд:

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

Добавлено спустя 5 минут 31 секунду:

Нашла еще один мод - Select Default Language - может его попробовать? Если кто-нибудь ставил такие моды, скажите, как работает.
Я не волшебник, я только учусь!
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16372
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1745 раз

Сообщение rxu »

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

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

			$default_lang = ($board_config['desired_lang']) ? phpbb_ltrim(basename(phpbb_rtrim(board_config['desired_lang'])), "'") : phpbb_ltrim(basename(phpbb_rtrim($userdata['user_lang'])), "'");
и вторая для гостей

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

			$default_lang = (isset($board_config['desired_lang'])) ? phpbb_ltrim(basename(phpbb_rtrim(board_config['desired_lang'])), "'") : phpbb_ltrim(basename(phpbb_rtrim($board_config['default_lang'])), "'");
Изображение
Аватара пользователя
Alice
phpBB 1.4.4
Сообщения: 197
Стаж: 17 лет 1 месяц
Откуда: SPb
Поблагодарили: 1 раз

Сообщение Alice »

Так, теперь разобраться б только, куда это все воткнуть :)

Вот так?

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

#
#-----[ FIND ]------------------------------------------
#
      if ( !empty($userdata['user_lang']))
      {
         $board_config['default_lang'] = $userdata['user_lang'];
      }

#-----[ REPLACE WITH ]------------------------------------
#
      if ( !empty($userdata['user_lang']))
      {
         $default_lang = ($board_config['desired_lang']) ? phpbb_ltrim(basename(phpbb_rtrim(board_config['desired_lang'])), "'") : phpbb_ltrim(basename(phpbb_rtrim($userdata['user_lang'])), "'");
      }
Добавлено спустя 2 минуты 55 секунд:

Хм... и так для гостя?

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

if ( $userdata['user_id'] == ANONYMOUS )
   {
      $default_lang = (isset($board_config['desired_lang'])) ? phpbb_ltrim(basename(phpbb_rtrim(board_config['desired_lang'])), "'") : phpbb_ltrim(basename(phpbb_rtrim($board_config['default_lang'])), "'");
   }
Добавлено спустя 7 минут 22 секунды:

попробовала, синтаксическую ошибку пишет в 320 строке - это именно где первый код прописан.
Я не волшебник, я только учусь!
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16372
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1745 раз

Сообщение rxu »

Да-да, там пропущен знак $ перед board_config, надо

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

phpbb_rtrim($board_config['desired_lang'])
Добавлено спустя 34 секунды:

Так же и во второй части кода.
Изображение
Аватара пользователя
Alice
phpBB 1.4.4
Сообщения: 197
Стаж: 17 лет 1 месяц
Откуда: SPb
Поблагодарили: 1 раз

Сообщение Alice »

Ухты, получилось! Вы - гений!!! :D
Спасибо огромное!!!
@->--->-----
Я не волшебник, я только учусь!
Аватара пользователя
Alice
phpBB 1.4.4
Сообщения: 197
Стаж: 17 лет 1 месяц
Откуда: SPb
Поблагодарили: 1 раз

Сообщение Alice »

Эх, все равно работает некорректно. А я так обрадовалась :(
В общем, когда хочу в профиле изменить язык (на английский), меняю, появляется надпись
Your profile has been updated
Click Here to return to the Index
кликаю на here и опять все переходит на русский :?

Добавлено спустя 6 минут 44 секунды:

Та же ерунда с английским, только наоборот, если в админке по умолчанию ставлю для форума English. Только теперь профиль на русский не изменить, все время переключает на язык по умолчанию (англ.)
Ни так, ни сяк не подходит, т.к. англоязычные юзеры должны переключится и оставаться на английском, а русскоязычные - аналогично, только с русским языком.
Как же сделать, чтоб работало?

Добавлено спустя 8 часов 43 минуты 32 секунды:

В общем, попробовала я второй мод - "Select Default Language" http://www.phpbbhacks.com/download/235
Мне он больше понравился. Ссылка (т.е. окошко с выбором языка) присутствует только когда находишься на сайте гостем. При выборе языка можно переключать все странички и язык не перескакивает (как было с первым модом). Попробовала зарегистрироваться с английским языком, все нормально, после регистрации на дефолтный русский не перескакивает. Форма выбора языка для юзеров (залогинившихся) не видна. В профиле языки вроде нормально переключаются.
В общем, пока остановилась на этом моде, и если у кого возникла необходимость в переключении языков, то (пока) советую этот мод (Select Default Language), а не первый мною испробованный (Switch Lang).

rxu, еще раз спасибо за помощь.
Я не волшебник, я только учусь!
Аватара пользователя
MXM
phpBB 2.0.7
Сообщения: 555
Стаж: 19 лет 8 месяцев
Откуда: Санкт-Петербург

Сообщение MXM »

Alice, у нас есть с тобой что-то общее, почитай:
Изменение языка по умолчанию при запуске форума.
Аватара пользователя
Alice
phpBB 1.4.4
Сообщения: 197
Стаж: 17 лет 1 месяц
Откуда: SPb
Поблагодарили: 1 раз

Сообщение Alice »

MXM, спасиб, почитала! Меня пока устраивает, как работает второй мод. Главное, что человек может зайти на сайт, выбрать язык и спокойно (без перескоков) осуществлять навигацию, зарегистрироваться. Можно вот только исправить проблему с "меню на всех страницах", в твоей теме вроде с ней разобрались.
Я не волшебник, я только учусь!

Вернуться в «Поддержка модов для phpBB 2.0.x»