• Уважаемый Гость! Если вы зарегистрировались на нашем форуме, значит вам нужна помощь! Мы всегда рады вам помочь, еще ни один пользователь не получил отказа! Но мы так же нуждаемся в Вашей поддержке. Проект полностью бесплатный, мы не имеем права требовать от вас денег, нам это и не нужно! Но от любой финансовой поддержки не откажемся. Проект развивается, но иногда очень тяжело его поддерживать, особенно в финансовом отношении. Если у вас есть возможность поддержать нас финансово, мы будем вам очень благодарны! С уважением, команда Оскласс Россия!
  • Изменение в правилах форума! В связи с огромным количеством вопросов поступающих в адрес технической поддержки мы решили изменить правила форума! Просим всех пользователей обратить внимание на данные изменения и четко их соблюдать!
  • Ребята, нуждаемся в программистах! Если хотите зарабатывать и есть время, пишите администраторам сайта. Есть база и инструменты, нужен опыт и знания =)
  • Уважаемые пользователи! На форуме появились разделы по работе с системой Yclas. Yclas - это скрипт доски объявлений. Нужны разработчики.

Вставка своего контента в страницу двуязычного сайта

passer

Новичок
Доброго времени суток, друзья!
OSCLASS 3.8.1. Сайт на двух языках.
Необходимо вставить на главную страницу некий html-контент.
Для одноязычного сайта эта задача не представляет труда:
  • или внести контент непосредственно в файл main.php;
  • или с помощью выражения include вставить в main.php файл с контентом.
А вот для мультиязычного сайта у меня не хватает знаний PHP для написания функции, позволяющей менять контент в зависимости от выбора языка.
Я создал два файла: insert-ru.php и insert-eng.php, на соответствующих языках.
Очень прошу помочь в написании функции локализации, так как вот уже почти шесть часов "танцую с бубном", пытаясь методом "научного тыка" заинклюдить эти два файла в main.php, но в ответ получаю лишь: Parse error: syntax error, unexpected...
 

administrator

Блудный сын.
Команда форума
Можно самым простым способом вывести в main.php:
PHP:
<?php if( osc_locale_code(),1 ) { ?>
	<p>Текст на Русском</p>
<?php } else { ?>
	<p>Текст на Английском</p>
<?php } ?>
Или написать функцию, более сложный вариант. Проработаю и выложу решение, так сходу не смогу расписать.
 

administrator

Блудный сын.
Команда форума
А вообще можно использовать виджеты, в оскласс неплохо реализована работа виджетов. Разработчики шаблонов не часто их используют. Почитайте на форуме материалы вывода виджетов, а для примера возьмите шаблон Бендер.
 

passer

Новичок
Можно самым простым способом вывести в main.php:
PHP:
<?php if( osc_locale_code(),1 ) { ?>
	<p>Текст на Русском</p>
<?php } else { ?>
	<p>Текст на Английском</p>
<?php } ?>

Увы: вставил и получил: Parse error: syntax error, unexpected ',' in D:\OpenServer\OSPanel\domains\hah\oc-content\themes\osclasswizards\main.php on line 106
 

passer

Новичок
А вообще можно использовать виджеты, в оскласс неплохо реализована работа виджетов. Разработчики шаблонов не часто их используют. Почитайте на форуме материалы вывода виджетов, а для примера возьмите шаблон Бендер.

Это - первое, что я пробовал сделать!
"Отставил в сторону", так как виджет появлялся на каждой странице. Не сообразил, что, наверно, можно использовать формулу типа "только на этой странице".
Правда, не знаю, как эту формулу реализовать...
 

administrator

Блудный сын.
Команда форума
Сорри! Немного неверно написал. Попробуйте вот такую комбинацию:
PHP:
<?php if( (osc_locale_code(),1) ) { ?>
	<p>Текст на Русском</p>
<?php } else { ?>
	<p>Текст на Английском</p>
<?php } ?>
Чтобы не писать бред, давайте оставим до вечера, буду посвободнее реализуем через модификацию.
 

administrator

Блудный сын.
Команда форума
Это - первое, что я пробовал сделать!
"Отставил в сторону", так как виджет появлялся на каждой странице. Не сообразил, что, наверно, можно использовать формулу типа "только на этой странице".
Правда, не знаю, как эту формулу реализовать...
Все верно, нужно выводить через код и отключить вывод на других страницах, опять же через функцию.
 

passer

Новичок
Я спал всего три часа, поэтому плохо сейчас вижу и соображаю, но мне кажется, что второй вариант вставки в main.php - точная копия первого (и результат, естественно, такой же).
Что касается использования виджетов - тут опять проблема с мультиязычностью...
Однако, огромное Вам спасибо за заботу и оперативность!!!
Буду ждать вечера!
 

administrator

Блудный сын.
Команда форума
Я спал всего три часа, поэтому плохо сейчас вижу и соображаю, но мне кажется, что второй вариант вставки в main.php - точная копия первого (и результат, естественно, такой же).
Что касается использования виджетов - тут опять проблема с мультиязычностью...
Однако, огромное Вам спасибо за заботу и оперативность!!!
Буду ждать вечера!
Идите отдохните =))
Достаточно простой вариант реализации, должно работать.
 

passer

Новичок
Добрый день!
Так и не удается мне до сих пор самому решить задачу...
Попробовал использовать возможности Poedit, я имею в виду вставку в нужное место страницы выражения типа <?php _e('xxxxx', ПАПКА_МОЕЙ_ТЕМЫ); ?> - работает. Но это если переводимое содержание очень простое - слово, или предложение. А если используется html-конструкция со сложным форматированием - встроенный в Poedit редактор интерпретирует ее по своему, и получается не то, что нужно... Да и вообще, это вариант типа "лечить гланды через задний проход"...
 

passer

Новичок
Гип-гип УРА!!!
Наконец-то "родил" вариант вставки собственного контента на страницу двуязычного сайта!
Принцип такой:
<?php
if (osc_current_user_locale() == 'ru_RU' ) {
echo "Русский язык";
} else {
echo "Второй язык";
}
?>

А если нужно вставлять сложный контент - создается два файла на разных языках , и выражение выглядит так:


<?php
if (osc_current_user_locale() == 'ru_RU' ) {
include 'my-ru.php';
} else {
include 'my-ХХ.php';
}
?>

Не претендую на оригинальность и абсолютную правильность - но работает!!!
 

administrator

Блудный сын.
Команда форума
Собственно вам это и писали, только более сложным механизмом. Но работать будет и так.
Молодец!
 
Верх