![]() |
Есть ли дока по созданию многоязычных сайтов?
Надо сделать сайт с 2-мя языками (Рус+Англ) в одном дереве.
На сайте присутствует tt_news. Нашел доку: http://typo3.org/documentation/docum...guide/current/ - для перевода основного контента. По ней работает все, то есть возможен перевод, но кроме контента tt_news. Для tt_news есть своя дока про мультиязычности в родном мануале http://typo3.org/documentation/docum..._news/current/ Плюс есть возможность использовать sr_language_menu для управления многоязычности в новостях http://typo3.org/documentation/docum..._menu/current/. Но связать все это вместе мне сложно... Оч. много избыточной инфы. Может быть есть готовый документ который бы описывал каким образом сделать многоязычный сайт с tt_news? Или же создать такой документ на основе приведенных выше и поместить в ФАК? |
Цитата:
|
Ok, а это меню будет нормально отображать контент на других языках опубликованный без использования tt_news?
|
Попробовал вставить пример из tt_news так:
temp.lang = PHP_SCRIPT temp.lang.file = fileadmin/tt_news_languageMenu.php subparts.langMenu < temp.lang Не заработало (Языковое меню не появилось, пути к картинкам в скрипте подправил). Где то читал про необходимость использования для вставки php скрипта includeLibs.something, но не уверен, что сработает. |
Я делал по этому мануалу.
http://typo3.org/documentation/tips-...ites-in-typo3/ И никаких дополнительных расширений не ставил. Все работае включая новости. Там, собстна, вообще неважно какое расширение используется |
По этому пробовал, работал перевод всего кроме новостей.
Попробую на досуге еще раз. Спасибо. |
Вложений: 1
Вот что и получилось (на вложенном скрине)
Добавляй Alternative Language Pages хоть для обычной страницы, хоть для систем фолдер (как в случае с новостями), и автоматически добавляется возможность редактирования контента на добавленном языке. |
В мануале на сайте тайпы (http://typo3.org/documentation/tips-...ites-in-typo3/) используется скрипт:
media/scripts/example_languageMenu.php Насколько я понял, в 4 версии путь, где лежит этот скрипт изменился, и выглядит так: typo3\sysext\cms\tslib\media/scripts/example_languageMenu.php Скрипт переписал в fileadmin. Внутри скрипта поменял пути до флагов. Сам скрипт подключал так: temp.languageMenu = PHP_SCRIPT temp.languageMenu.file = fileadmin/example_languageMenu.php subparts.langMenu < temp.languageMenu В результате в langMenu ничего не вставляется: <!--###langMenu###--> <!--###langMenu###--> Риторический вопрос: А что не так? |
И еще вдогонку вопрос по теме:
Что почитать про то, как прилепить к англоязычной версии другой html шаблон с другими картинками? |
Попробуйте так:
### PAGE Setup page.includeLibs.multilanguage = fileadmin/example_languageMenu.php #### Language Menu temp.languageMenu = USER temp.languageMenu.userFunc = user_languageMenu subparts.langMenu < temp.languageMenu |
Еще можно, вроде, и без пхп скрипта делать.
Тут на соседней ветке есть пример: http://forum.typo3.biz/showthread.php?t=4645 И на тайпо3визарде: http://www.typo3wizard.com/de/artike...ser-seite.html |
Цитата:
Код:
page = PAGE |
Цитата:
|
С разными шаблонами для разных языков разобрался.
А меню с флагами так и не заработало. В результате сделал смену языков с помощью sr_language_menu. Все спасибо за участие! |
Цитата:
|
Цитата:
как temp.languageMenu = USER temp.languageMenu.userFunc = user_languageMenu На склько я знаю сейчас example_languageMenu.php просто исполняется как пхп файл без всяких ф-й. Это раньше там была ф-я function user_languageMenu(), которую можно было вызвать так как вы написали. Пэтому надо либо подключать как пхп файл, либо если хотите использовать как ф-ю, то поискать старую версию этого файла. Могу приложить если не найдете :-) |
Цитата:
Взял экст sr_language_menu, меня вполне устроило. |
Не так давно разбираюсь со всей этой красотой... Поэтому как уже было сказано - вопрос может показаться глупым, но! перечитав форум и приведенные ссылки, для русификации фронтэнда хватило установки экста ts_language_ru и записи в setup шаблона page.config.language = ru
Далее - появились поля выбора языка - Альтернативный язык страницы. Но в поле выбора - только стандартный. Как я понимаю, надо добавить язык сайта (website language), но вот разрази меня... никак не найду где и как... |
Цитата:
|
Именно это я и хотел сделать, но вот что только он мне выдает, как возможное к добавлению (и там нет варианта - язык вебсайта):
http://florant.ru/download/typo3.png PS : Все таки ткнул пальцем в "зеленый шарик" :) именно там - язык сайта. Но поскольку у меня подразумевалась многосайтовая система - тыкал мышу в корневую страницу именно сайта, а не всей системы. Спасибо! |
Дабы не создавать новую тему - продолжу здесь.
Перечитал доку и форум. вопрос такой. Сайт многоязычный: Русский (основной), английский, немецкий. Как необходимо делать? Заводить всё на английском языке (который уже "вшит" в систему как основной), добавлять переводы на русский и немецкий, указав в шаблоне, что русский язык считать дефолтным? Или изначально заводить структуру страниц (заголовки) и контент в них на основном языке? Для самого контента в обоиз случаях различия нет, это я понимаю, но не возникнет ли ситуация, когда язык для контента переключается правильно - а для системных сообшений (например в том же tt_news ссылки подробнее и т.п.) - будут выводиться на другом языке? Поэкспериментировал бы сейчас же сам, но застопорился на подключении языкового меню... А сам вопрос не дает покоя сейчас :) |
Не очень понял, но:
1) за язык отображения системных сообщений и язык содержимого отвечают разные настройки (sys_language_uid и language/locale_all соответственно). 2) дефолтным языком можно делать любой, вовсе не обязательно английский. |
Цитата:
(это необходимо, если у вас там многоязычные новости есть) |
Цитата:
Я вставил строчку в setup шаблона page.config.language = ru в результате чего системные сообщения, как минимум tt_news, выдаются во фронтэнд русскими. http://florant.ru/download/setup.png 1.чем отличаются page.config.language = ru и config.language = ru ? 2.config.locale_all = ru_RU.CP1251 не надо ли поменять на utf8? предполагается иметь перевод страниц на немецкий язык. 3. Сначала я завожу записи языков перевода (Языки сайта) в корне вебсайта, затем мне необходимо завести на каждой странице, которую буду переводить - Альтернативный язык страницы, и тогда этот язык становится доступным для перевода. Или я не правильно всё понимаю? Цитата:
как указано для realURL - указал в setup Код:
config.simulateStaticDocuments = 0 Замапил размещение меню в шаблоне и прописал в setup Код:
includeLibs.something=fileadmin/template/InfoCenter/tt_news_languageMenu.php |
Эксперименты показали:
Переводы страниц можно делать сразу после указания языков сайта (website language) в корне дерева страниц. Однако пока не будут указаны соответствующие альтернативные языки страницы (alternative language page) - язык перевода будет недоступен во frontend. Что касается языкового меню из tt_news. в первых строчках соответственно указываем пути к картинкам флагов, а индексы массива '1' и '2' заменяем на id соответствующей записи языка website language. и, как я и говорил уже - что-то я упускаю... языки не переключаются. PS вот оно что! добавил после строки config.language = ru Код:
config.language = ru |
config.* свойства действуют глобально, а page.config.* - только на этот объект типа PAGE. (объектов PAGE может быть несколько, у них обязательно должен быть разный typeNum).
Вот пример настройки для сайта с дефолтным русским и опциональным английским: Код:
config { Ещё одна важная настройка - PHP код:
|
Цитата:
Немного поэкспериментировал - и вышло у меня вот что - id записи английского языка - 2 id записи немецкого языка - 3 всё начинает нормально работать только тогда, когда в globalVar = GP:L = ставлю id данного языка и в этот же id указываю в качестве индекса в массиве переключателей в языковом меню из tt_news. Все остальные варианты перепробывал - не работает (вернее работает, но с неожиданными результатами). Ну это я так. Просто интересна была связь ключей с индексами. :) Вот такой вопрос: sitetitle - его значение невозможно изменить? в зависимости от языка вывода? не получается... PS : в дополнение. в мускуле стоит: MySQL-кодировка: UTF-8 Unicode (utf8) Сопоставление соединения с MySQL:utf8_unicode_ci В таблицах сравнение: cp1251_general_ci Именно из-за этого я не могу вводить в базу символы немецкого языка, и они заменяются на знаки вопроса? Если я через phpMyAdmin изменю cp1251_general_ci на utf8-bin - не слетит ли база, и вместе с ней всё то, что я уже успел наделать? PSS Вот такие настройки мускуля Код:
character set client utf8 |
Вопрос с перекодировкой снят. Выставленное в настройках мускуля сравнение в utf8-general-ci не действует на уже установленные таблицы. А пизначально в нем стоит cp1251. При загрузке таблиц из установщика тайпо они грузятся именно с этой настройкой. поэтому из phpMyAdmin сделал дамп базы, сохранил в файл, далее открыл блокнотом (HTMLPad - кстати прекрасное средство) и сделал замену по всему документу cp1251 на utf8.
Затем в phpMyAdmin (открытый через контрольную панель хостера, а не из тайпы) удалил все таблицы (иначе будет писать об ошибке) и загрузил весь дамп обратно. Все таблицы и записи стали в utf8-general-ci |
Цитата:
если чесно я вообще непредставляю как это зделать ( |
Цитата:
в сетап добалил такие строки page.includeLibs.multilanguage = fileadmin/example_languageMenu.php temp.languageMenu = USER temp.languageMenu.userFunc = user_languageMenu subparts.langMenu < temp.languageMenu теперь при запускестраницы выдаёт такое ((( Error: No parent object present. |
у меня вот так
(то, что касаемо переключения языка) Код:
... |
Добавляю Вышеприведённый код в конфиг,
каким образом теперь отобразить панель языков на сайте ? Также я понял что в этом коде по умолчанию стоит русский, второстипенные английский и немецкий так ? Файл tt_news_languageMenu.php где брать ? |
Да правильно. В шаблоне я замапил область под вывод языкового меню - menu_langselector .
в корне сайта добавил два языка сайта (website language) - ayukbqcrbq и немецкий. Записи имеют id (у меня, у вас могут быть и другие цифры, если вы эти записи создавали, и удаляли, а потом снова создавали...) 2 и 3 соответственно (это важно запомнить!) далее: скопировал флаги в папку fileadmin/media/ , скопировал файл tt_news_languageMenu.php в папку fileadmin/template/ , и внес в него изменения: Код:
$defaultflag = array( Да, есть в шаблоне ещё вот такая строчка Код:
// Pointer for the active language И ещё раз - обратите внимание на id записей языка. |
А что нужно добавить, если контент альтернативного языка не отображается, даже если в админке нажать на его просмотр ((
|
Альтернативный язык страниц добавлен (для каждой страницы в отдельности - выбирается из установленных языков вебсайта в корне дерева страниц) ? Созданы страницы для альтернативных языков?
|
в setup ввёл такое
page.1.includeLibs.multilanguage = fileadmin/templates/cms/tt_news_languageMenu.php temp.languageMenu = USER temp.languageMenu.userFunc = user_languageMenu page.1 { subparts.LANG < temp.languageMenu } в индекс вставил <!-- ###LANG### --> <!-- ###LANG### --> флаги не отображаются, когда загружаю страницы с английским и смотрю исходник, то ети теги там пропадают(или заменяются на пустые строки), а если смотрю страницы на русском то ети теги остаются ((( |
Помогите доделать эту ШТУКУ !!!
может кто сталкивался с такой проблемой : page.1 { subparts.MENU_LENG = PHP_SCRIPT subparts.MENU_LENG.file = fileadmin/templates/cms/tt_news_languageMenu.php } этот код я добавил в setup и вродебы всё заработало НО! теперь эти флаги отображаются не только в там, где я им указал, но еще и в хедере страници, из-за чего пхп выдаёт ошибку , что хедер ужеуказан. Вот теперь непойму почему он дублирует вывод в совершенно левом месте? Еще чуть не забыл в файл tt_news_languageMenu.php я внёс изменения, в начале стёр строку обьявляющую начало функции, а в концевместо return написал echo и только тогдда у меняя чтото начало отображатся (точнее начало отображатся то что я написал выше |
Вложений: 2
Тема ушла в самый низ и почти сгинула на следующую страницу, однако возникшая неприятность не даст нам получить такое искреннее удовольствие!
Вот... Заканчиваем лирическое отступление и переходим к делу. Значится, как выше описано - сайт на три языка: русский дефолтный, немецкий (id=3) и английский (id=2). И вот при заходе в BE через модуль Список, и стандартную Страницу - всё нормально, отображаются все три языка (файл lang.jpg), а вот через Страницу TV - только стандартный и немецкий (файл lang-tv.jpg)... Сейчас уже не припомню, но помоему так было и с самого начала. В чем тут казус? Куда в модуле BE Templavoila подевался Английский язык?.. :confused: |
Цитата:
Проверьте создан ли английский язык , как альтенативный ? Может на страницу поиска вы поставили отдельный шаблон, и в нём не всё указали ?, typo3config может там англ пропустили ? А у меня вот такая проблема, сатй на англ ( по умолчанию) и русском, так вот : Выбираем языка сайта русский, всё нормально , контент поменялся, но вот если страницы , которая нам нужна , на руском еще нету, то контент выводится английский, и вместе с ним на сайте появляется английское меню, хотя выбран русский язык. Можно както зделать, чтоб раз уж выбран русский, то и меню всегда на русском, независимо от того есть перевод этой сраницы или нету ? |
Цитата:
|
Часовой пояс GMT +4, время: 13:52. |
Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot