LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
19.06.2013, 01:39:07 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 2.5 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: 1 [2] 3  Все   Вниз
  Добавить закладку  |  Печать  
Автор Тема: [FAQ] Первый пункт главного меню в многоязычном сайте на Joomla 1.6/1.7  (Прочитано 43447 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ZHart
Joostina
*****

Репутация: +53/-2
Offline Offline

Пол: Мужской
Сообщений: 299



« : 29.01.2011, 16:07:40 »

ВОПРОС:

Как известно, в Joomla 1.6 есть поддержка многоязычности «Из коробки».
Применительно к названиям пунктов меню, она заключается в том, что для каждого пункта меню можно указать язык к которому он относится.
Главный пункт меню (ведущий на домашнюю страницу) может быть только один, и он обязательно должен быть включен для всех языков.

Вроде бы все логично, но беда в том, что и название этого пункта едино для всех языков.
В итоге, если назовем его по-русски, то в англоязычной версии меню отображаются, например, такие пункты:
«Главная», «Articles»,  «Gallery»,  «Contacts».
Если поменяем «Главная» на «Home», то, соответственно, в русскоязычной версии сайта будет:
«Home», «Статьи»,  «Галерея»,  «Контакты».

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

ОТВЕТ:

Да, можно, причем существует несколько вариантов решения (обратите особое внимание на последний, 4-й метод):

1. Картинка вместо текста.
Показать текстовый блок

2. Небольшой хак.
Показать текстовый блок

3. Метод отдельных меню с псевдонимами.
Показать текстовый блок

4. Ну и наконец, самый красивый, корректный и простой метод, который даже под спойлер прятать не буду (я использовал именно его, спасибо Lex!):

В шаблоне пишем

Код
<?php
$menu = JSite::getMenu();
$menu->getDefault()->title = JText::_($menu->getDefault()->title);
?>
В языковом файле шаблона
HOME=Главная
Решение работает, если первый пункт меню называется не иначе как «Home».
Если главная home в языковом файле HOME=Главная, если главная не home то и в языковом файле надо
ЧЕТОТАМ=Главная

При использовании этого метода вопрос с «крошками» (breadcrumbs) также решается без всяких хаков.
Для вывода названия главного пункта меню можно создать отдельные модули крошек для каждого языка:
Показать текстовый блок
...А можно даже модули не дублировать, а просто оставить пустым поле «Текст пункта `Главная`», при этом текст будет браться из языковых файлов:
Показать текстовый блок
_________________________________________________________________________

ИНСТРУКЦИЯ ДЛЯ Joomla 1.7

Для Joomla 1.7 все поменялось, ибо изменилась логика работы многоязычного сайта.

Если обновиться с Jooomla 1.6 до Joomla 1.7, оставив все как есть, то модуль переключения языков перестает работать.
Поэтому в случае с Joomla 1.7 нужно забыть все предыдущие инструкции и выполнить другую, не менее простую инструкцию:
  • Создать несколько главных меню — одно общее и по одному для каждого из языков.
    Например: mainmenu-all, mainmenu-ru, mainmenu-en.
    Для каждого из языковых меню создать соответствующие им модули. Для «общего» меню модуль можно не создавать (ибо его все равно потом придется скрыть).
  • Назначение «общего» меню только одно — создать в нем единственный пункт меню «Главная», сделать его основным и назначить его всем языкам. Смысл этой манипуляции в том, что хотя-бы один пункт меню обязательно должен быть главным и при этом должен быть назначен всем языкам.
  • Далее в каждом из языковых меню нужно создать соответствующие языку пункты меню. Важно, чтобы в каждом из этих меню присутствовал пункт «Главная», при этом чтобы он был сделан основным, а в качестве языка был выбран язык этого конкретного меню.
  • Profit.

P.S.: Кого интересует пошаговая настройка мультиязычного сайта на Joomla 1.7 (с нуля, а не после обновления) — можете заглянуть сюда (ахтунг, английский!).
« Последнее редактирование: 24.08.2011, 10:44:54 от ZHart » Записан
 
Lex
Тестеры
*****

Репутация: +272/-1
Offline Offline

Пол: Мужской
Сообщений: 1703


« Ответ #31 : 17.02.2011, 13:03:36 »

Кстати о крошках. Сегодня полез в модуль и увидел
Код
if ($params->get('showHome', 1))
{
$item = new stdClass();
$item->name = $params->get('homeText', JText::_('MOD_BREADCRUMBS_HOME'));
$item->link = JRoute::_('index.php?Itemid='.$app->getMenu()->getDefault()->id);
array_unshift($items, $item);
}
Это значит, что если в поле "Текст пункта `Главная`" ничего нет, значение берется из языковой константы MOD_BREADCRUMBS_HOME в файле перевода модуля ru-RU.mod_breadcrumbs.ini
Можно не копировать модули для разных языков. Просто оставлять поле пустым, тогда значение будет браться из языковых файлов.
Записан
effrit
Группа развития
*****

Репутация: +577/-5
Offline Offline

Пол: Мужской
Сообщений: 5251


effrit.com


« Ответ #32 : 17.02.2011, 13:08:28 »

прикольно
надо в первый пост это вписать вместе с предыдущим советом, чтобы не по всей теме размазано было
Записан
ZHart
Joostina
*****

Репутация: +53/-2
Offline Offline

Пол: Мужской
Сообщений: 299



« Ответ #33 : 17.02.2011, 15:16:53 »

надо в первый пост это вписать вместе с предыдущим советом, чтобы не по всей теме размазано было

Постарался резюмировать все самое полезное в первом сообщении.
Записан
Сержo
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 113


« Ответ #34 : 23.02.2011, 13:00:33 »

Да ужжжж..., на мудрили они со встроенной мультиязычностью, сам попарился когда разбирался, и в конечном счёте пришёл к виду двух модулей меню, на русском и английском.
Вот только весь этот геморрой не решает основной проблемы со статьями, их всё равно надо делать для каждого языка отдельно, а в этом случае JoomFish лучший выход, только нет его для 1.6 версии. Sad
Записан
b2z
Support Team
*****

Репутация: +328/-0
Offline Offline

Пол: Мужской
Сообщений: 4093


Contra Gaming Community


« Ответ #35 : 23.02.2011, 13:30:17 »

Сержo - не по теме пишем...
Записан
pika4y
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Мужской
Сообщений: 27



« Ответ #36 : 01.03.2011, 09:08:14 »

Поясните как текст на другом языке добавить. Вот к примеру - есть материал (статья) на рус, а мне надо еще что бы и англ был, я чего то не вкурил куда перевод вставлять к материалу.
Записан
effrit
Группа развития
*****

Репутация: +577/-5
Offline Offline

Пол: Мужской
Сообщений: 5251


effrit.com


« Ответ #37 : 01.03.2011, 09:15:02 »

pika4y, ты читать умеешь уже, или только писАть?
постом выше модератор просил писать ПО ТЕМЕ.
к тому же мог просто в разделе посмотреть, или, на худуй конец, создать НОВУЮ тему, а не соваться в первую попавшуюся с невтемачным вопросом.
http://joomlaforum.ru/index.php/topic,153050.0.html
Записан
b2z
Support Team
*****

Репутация: +328/-0
Offline Offline

Пол: Мужской
Сообщений: 4093


Contra Gaming Community


« Ответ #38 : 01.03.2011, 11:15:24 »

Блин, какой все же народ глупый... Следующий оффтоп тру тупо без предупреждения!
Записан
radiouniverse
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 9


« Ответ #39 : 23.04.2011, 17:15:15 »

Кто может подробней написать, как создать Главную и Меню на четырёх языках? В каких файлах и где именно файлы находятся? Joomla 1.6.3
За ранее очень благодарен.
Записан
ZHart
Joostina
*****

Репутация: +53/-2
Offline Offline

Пол: Мужской
Сообщений: 299



« Ответ #40 : 23.04.2011, 18:05:51 »

radiouniverse, в первом сообщении темы недостаточно подробно написано?
Записан
Rasputin
Гость
« Ответ #41 : 02.05.2011, 20:08:15 »

radiouniverse, в первом сообщении темы недостаточно подробно написано?
Видимо недостаточно.
Я шаблон собирал сам и к сожалению понятия не имею, что такое ЯЗЫКОВОЙ ФАЙЛ ШАБЛОНА, как он выглядит, где находится и что содержит. Поэтому чтение первого поста темы мне никак не помогло и видимо не мне одному Sad
Уважаемый, ZHart, помогите всетаки решить проблему до конца, приведите имя, расположение и содержание ЯЗЫКОВОГО ФАЙЛА ШАБЛОНА и как его правильно подключить.
Заранее благодарю.
Записан
ZHart
Joostina
*****

Репутация: +53/-2
Offline Offline

Пол: Мужской
Сообщений: 299



« Ответ #42 : 02.05.2011, 20:28:05 »

Rasputin, по поводу языковых файлов, их нахождения, содержания и принципов создания ищите и спрашивайте все же в других темах. Это слишком общие и не относящиеся напрямую к этой теме вопросы. В двух словах — находятся они в директории «language» для фронта сайта, и в директории «administrator/language» для админки, и создаются не только для шаблонов, а для всех составляющих Joomla. За примером рекомендую обратиться в один из бесплатных шаблонов.
Записан
n_i_x
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Сообщений: 105


« Ответ #43 : 09.05.2011, 14:41:15 »

у меня тоже не получилось с 4 способом. в какую часть вставлять (начало, конец, центр)? и что делать, если шаблон поделён на части, то есть типа head, main, footer?

за ранее спасибо!
« Последнее редактирование: 09.05.2011, 15:33:11 от n_i_x » Записан
rstas
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 6


« Ответ #44 : 15.05.2011, 00:57:24 »

у меня тоже не получилось с 4 способом. в какую часть вставлять (начало, конец, центр)? и что делать, если шаблон поделён на части, то есть типа head, main, footer?

за ранее спасибо!
В mainmenu должен быть пункт HOME(на англ.) установленный как главная страница, в шаблоне прописаны строки из 4 способа.В директории \language\ru-RU\ должен находиться файл ru-RU.tpl_НазваниеШаблонаНаАнглМаленькимиБуквами.ini *например ru-RU.tpl_beez5.ini, в котором должна быть строка вида HOME="НазваниеПункаМенюПоРусски".

Следует заметить что в файле перевода строки должны начинаться со 2ой... т.е. 1ая строка должна быть пустой. Например
  • HOME="Главная"
  • CONTACTS="Контакты"
Записан
n_i_x
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Сообщений: 105


« Ответ #45 : 16.05.2011, 10:04:59 »

это понятно, спасибо за разъяснение. но вот так и не могу разобраться, с тем куда в какой всё таки файл шаблона вписывать код, если index.php поделён на части (типа head.php, main.php, footer.php)

п.с. сам шаблон построен на основе T3 framework 2.0 от joomlart
Записан
Lex
Тестеры
*****

Репутация: +272/-1
Offline Offline

Пол: Мужской
Сообщений: 1703


« Ответ #46 : 16.05.2011, 10:06:25 »

Да куда хочешь. Пиши в head.php.
Записан
AlexeyMaloi
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 6


« Ответ #47 : 16.05.2011, 14:27:28 »

Все это конечно хорошо, но у меня вопрос такого плана.
Для того что бы появились иконки языков в опубликованном модуле "Переключение языка" - необходимо что бы как минимум для 2х пунктов меню были установлены используемые языки (допустим RU и EN) и они были обозначены как ГЛАВНАЯ СТРАНИЦА!
Но также Joomla не дает уже сделанной Главной странице выбрать один из пунктов языка (либо Ru либо En) просит указать в качестве языка  пункт "Все"
отсюда получается что у меня на главной странице сайта всегда есть пункт меню "Главная" и в зависимости от выбранного языка дублирующий его пункт меню. Каким образом это можно исправить?
Записан
rstas
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 6


« Ответ #48 : 16.05.2011, 14:47:17 »

Все это конечно хорошо, но у меня вопрос такого плана.
Для того что бы появились иконки языков в опубликованном модуле "Переключение языка" - необходимо что бы как минимум для 2х пунктов меню были установлены используемые языки (допустим RU и EN) и они были обозначены как ГЛАВНАЯ СТРАНИЦА!
Но также Joomla не дает уже сделанной Главной странице выбрать один из пунктов языка (либо Ru либо En) просит указать в качестве языка  пункт "Все"
отсюда получается что у меня на главной странице сайта всегда есть пункт меню "Главная" и в зависимости от выбранного языка дублирующий его пункт меню. Каким образом это можно исправить?
оставить главную страницу, у которой в качестве языка "Все", в покое, а страницы указанные как главные для языков снять с публикации...

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

Репутация: +0/-0
Offline Offline

Сообщений: 6


« Ответ #49 : 16.05.2011, 15:00:56 »

Спасибо..Сделал как указано в п.3 (геморройно конечно) =(
Записан
n_i_x
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Сообщений: 105


« Ответ #50 : 17.05.2011, 20:43:39 »

Следует заметить что в файле перевода строки должны начинаться со 2ой... т.е. 1ая строка должна быть пустой. Например
  • HOME="Главная"
  • CONTACTS="Контакты"

ничего не понял)
Записан
genko1
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 6


« Ответ #51 : 24.06.2011, 01:10:55 »

ВОПРОС:

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


Вот тут в картинках описано простое решение  без всякого копания в коде http://blognote.by/joomla/joomla-articles/16-multilanguage-in-joomla16
Записан
ZHart
Joostina
*****

Репутация: +53/-2
Offline Offline

Пол: Мужской
Сообщений: 299



« Ответ #52 : 24.06.2011, 08:33:01 »

genko1, тоже топорное и некрасивое решение.
Хотя понятно, что приходится извращаться, раз разработчики не предусмотрели такую простую возможность.

Для тех, кому лень идти по ссылке:
Предлагается сделать фейковое (нигде не отображаемое) меню, в котором сделать пункт «по умолчанию», ведущий неважно куда. Это позволит нам снять с публикации первый пункт отображаемого (главного) меню. В итоге для каждого языка все пункты меню могут быть свои, в том числе и главный (Home/Главная).
Записан
genko1
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 6


« Ответ #53 : 24.06.2011, 14:17:32 »

genko1, тоже топорное и некрасивое решение.
А можно по-подробнее: в чем заключается топорность и некрасивость данного решения?
Записан
ZHart
Joostina
*****

Репутация: +53/-2
Offline Offline

Пол: Мужской
Сообщений: 299



« Ответ #54 : 24.06.2011, 14:24:21 »

А по-вашему специально создавать отдельное меню и скрывать его только ради того, чтобы получить возможность вывода первого пункта меню — это красиво и правильно? Сущность меню используется совершенно не по назначению. Это явный костыль, по-моему это очевидно.
Другой вопрос, что разработчики не предоставили возможности некостыльных решений, поэтому приходится извращаться.
Записан
genko1
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 6


« Ответ #55 : 24.06.2011, 14:35:03 »

То, что приходиться извращаться для отключения первого пункта меню - согласен, не красиво. Но что сделано разработчиками, то сделано.  И нам приходится  искать возможность, или "костыль" по-Вашему как обойти этот косяк. И из всех "костылей" которые были предложены, этот самый быстрый и не связан с копанием в коде.  Вы его сами в двух словах описали, даже картинок не потребовалось:)
Записан
Aquasonick
Давно я тут
****

Репутация: +1/-4
Offline Offline

Пол: Мужской
Сообщений: 289


Пока семь раз отмеришь - другие уж сожрут.


« Ответ #56 : 01.07.2011, 11:23:45 »

Что ты вы тут намудрили...
Или у меня походу ещё и 5 вариант.)
Решил просто настройками. 3 языка, везде соответствующий пункт меню.
Потом попросили убрать его вообще - убрал. Ничего сложного
Короче не понял я почему у вас так сложно.
Записан
ZHart
Joostina
*****

Репутация: +53/-2
Offline Offline

Пол: Мужской
Сообщений: 299



« Ответ #57 : 24.08.2011, 10:41:13 »

Для Joomla 1.7 все поменялось, ибо изменилась логика работы многоязычного сайта.
Если обновиться с Jooomla 1.6 до Joomla 1.7, оставив все как есть, то модуль переключения языков перестает работать.
Поэтому в случае с Joomla 1.7 нужно забыть все инструкции и выполнить другую, не менее простую инструкцию:
  • Создать несколько главных меню — одно общее и по одному для каждого из языков.
    Например: mainmenu-all, mainmenu-ru, mainmenu-en.
    Для каждого из языковых меню создать соответствующие им модули. Для «общего» меню модуль можно не создавать (ибо его все равно потом придется скрыть).
  • Назначение «общего» меню только одно — создать в нем единственный пункт меню «Главная», сделать его основным и назначить его всем языкам. Смысл этой манипуляции в том, что хотя-бы один пункт меню обязательно должен быть главным и при этом должен быть назначен всем языкам.
  • Далее в каждом из языковых меню нужно создать соответствующие языку пункты меню. Важно, чтобы в каждом из этих меню присутствовал пункт «Главная», при этом чтобы он был сделан основным, а в качестве языка был выбран язык этого конкретного меню.
  • Profit.

P.S.: Кого интересует пошаговая настройка мультиязычного сайта на Joomla 1.7 (с нуля, а не после обновления) — можете заглянуть сюда (ахтунг, английский!).
Записан
Testikus
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 16


« Ответ #58 : 13.10.2011, 17:56:01 »

В Joomla 1.6/1.7 есть тип пункта меню "Псевдоним пункта меню" или "Menu Item Alias".

Пробую делать так:
В главном меню, есть пункт по умолчанию "Главная", который ведёт на главную страницу. Это меню для всех языков и НЕ выводится не в одном из модулей.

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

На тесте вроде работает, посмотрим не вылезет ли каких багов.
Записан
pantela
Давно я тут
****

Репутация: +1/-0
Offline Offline

Сообщений: 285



« Ответ #59 : 05.12.2011, 14:39:57 »

И как понять? В итоге что ли Joomla использовать в качестве мультиязычности лучеще едлать клоны меню, материалов, модулей... чем использовать что то на подобии JoomFish (Конечно когда он будет поддерживатся)
Записан
veselun
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 1


« Ответ #60 : 06.12.2011, 18:01:12 »

установил программу Joomla все нормально запустил сервер создал шаблон сайта , теперь хочу текст сохранить на Главной странице сайта , беру  код текста захожу в панель управления сайтом через   admin   ,  хочу вставить текст ,а кнопка  html  не нажимается и не открывается редактор HTML  . Обычный текст вставить можна , что я не так сделал подскажите . Может что то недогрузил в корневой папке ? Отдельно на компе редактор есть HTML .
« Последнее редактирование: 06.12.2011, 18:08:01 от veselun » Записан
Страниц: 1 [2] 3  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.18 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet