Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Общие вопросы (http://forum.typo3.ru/forumdisplay.php?f=12)
-   -   Есть ли дока по созданию многоязычных сайтов? (http://forum.typo3.ru/showthread.php?t=4583)

Alex Podusov 21.07.2008 16:57

Дабы не создавать новую тему - продолжу здесь.

Перечитал доку и форум. вопрос такой. Сайт многоязычный: Русский (основной), английский, немецкий. Как необходимо делать? Заводить всё на английском языке (который уже "вшит" в систему как основной), добавлять переводы на русский и немецкий, указав в шаблоне, что русский язык считать дефолтным? Или изначально заводить структуру страниц (заголовки) и контент в них на основном языке? Для самого контента в обоиз случаях различия нет, это я понимаю, но не возникнет ли ситуация, когда язык для контента переключается правильно - а для системных сообшений (например в том же tt_news ссылки подробнее и т.п.) - будут выводиться на другом языке?
Поэкспериментировал бы сейчас же сам, но застопорился на подключении языкового меню... А сам вопрос не дает покоя сейчас :)

void 21.07.2008 22:13

Не очень понял, но:
1) за язык отображения системных сообщений и язык содержимого отвечают разные настройки (sys_language_uid и language/locale_all соответственно).
2) дефолтным языком можно делать любой, вовсе не обязательно английский.

Valery Romanchev 21.07.2008 22:34

Цитата:

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

Alex Podusov 22.07.2008 12:57

Цитата:

Сообщение от void (Сообщение 20138)
Не очень понял, но:
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. Сначала я завожу записи языков перевода (Языки сайта) в корне вебсайта, затем мне необходимо завести на каждой странице, которую буду переводить - Альтернативный язык страницы, и тогда этот язык становится доступным для перевода. Или я не правильно всё понимаю?

Цитата:

Сообщение от Valery Romanchev (Сообщение 20139)
возьмите пример языкового меню из tt_news - есть в папке res (и в доке об этом тоже должно быть)
(это необходимо, если у вас там многоязычные новости есть)

установил sr_language_menu
как указано для realURL - указал в setup
Код:

config.simulateStaticDocuments = 0
config.baseURL = http://florant.info/
config.tx_realurl_enable = 1
config.uniqueLinkVars = 1
config.linkVars = L

Воспользовался именно примером языкового меню из tt_news. Не "мудрствуя лукаво" скопировал файл tt_news_languageMenu.php
Замапил размещение меню в шаблоне и прописал в setup
Код:

includeLibs.something=fileadmin/template/InfoCenter/tt_news_languageMenu.php
lib.menu_langselector = USER
lib.menu_langselector {
userFunc = user_languageMenu
}

Если языкового перевода для страницы нет - флаг не активный. Ес ли есть - активный. Однако. Теперь Во всех ссылках меню постоянно присутствует параметр L=2. При этом нажатие на любой из флажков (L=0, L=1) - ситуацию не меняет и перевода не отображает. Что-то я делаю не так, но что именно - пока никак понять не могу...

Alex Podusov 22.07.2008 17:25

Эксперименты показали:
Переводы страниц можно делать сразу после указания языков сайта (website language) в корне дерева страниц. Однако пока не будут указаны соответствующие альтернативные языки страницы (alternative language page) - язык перевода будет недоступен во frontend. Что касается языкового меню из tt_news. в первых строчках соответственно указываем пути к картинкам флагов, а индексы массива '1' и '2' заменяем на id соответствующей записи языка website language.

и, как я и говорил уже - что-то я упускаю... языки не переключаются.

PS
вот оно что! добавил после строки
config.language = ru

Код:

config.language = ru

[globalVar = GP:L = 2]
config.sys_language_uid = 2
config.language = en

[globalVar = GP:L = 3]
config.sys_language_uid = 3
config.language = de

[global]

теперь системные сообщения и названия страниц (отображаемые в меню и тэге title) переключаются с переключением языка. не переключается язык в Заголовке новостей. не переключается язык в контенте страницы. Что-то ещё нужно сделать, что-то очень важное и нужное... Но вот что??? :confused: :)

void 23.07.2008 00:10

config.* свойства действуют глобально, а page.config.* - только на этот объект типа PAGE. (объектов PAGE может быть несколько, у них обязательно должен быть разный typeNum).

Вот пример настройки для сайта с дефолтным русским и опциональным английским:
Код:

config {
        linkVars = L
        uniqueLinkVars = 1
        sys_language_overlay = hideNonTranslated
        sys_language_softMergeIfNotBlank = tt_content:image, tt_content:header
        sys_language_uid = 0
        htmlTag_langKey = ru-RU
        locale_all = ru_RU.UTF8
        language = ru
}


[globalVar = GP:L = 1]
config.sys_language_uid = 1
config.htmlTag_langKey = en-US
config.locale_all = en_US.UTF8
config.language = en
[global]

Обратите внимание на настройки sys_language_mode и sys_language_overlay. Стоит почитать TSRef и l10n_guide.
Ещё одна важная настройка -
PHP код:

$TYPO3_CONF_VARS['FE']['hidePagesIfNotTranslatedByDefault'] = true

. Она также описана. О ней легко забыть, т.к. она находится не в TS, а в localconf.

Alex Podusov 23.07.2008 12:34

Цитата:

Сообщение от void (Сообщение 20187)
Обратите внимание на настройки sys_language_mode и sys_language_overlay. Стоит почитать TSRef и l10n_guide.

Спасибо - всё перечитал, всё сделал - заработало :)
Немного поэкспериментировал - и вышло у меня вот что -
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
(Глобальное значение) cp1251
character set connection utf8
(Глобальное значение) cp1251
character set database cp1251
character set results utf8
(Глобальное значение) cp1251
character set server cp1251
character set system utf8
collation connection utf8_unicode_ci
(Глобальное значение) cp1251_general_ci
collation database cp1251_general_ci
collation server cp1251_general_ci


Alex Podusov 23.07.2008 16:00

Вопрос с перекодировкой снят. Выставленное в настройках мускуля сравнение в utf8-general-ci не действует на уже установленные таблицы. А пизначально в нем стоит cp1251. При загрузке таблиц из установщика тайпо они грузятся именно с этой настройкой. поэтому из phpMyAdmin сделал дамп базы, сохранил в файл, далее открыл блокнотом (HTMLPad - кстати прекрасное средство) и сделал замену по всему документу cp1251 на utf8.
Затем в phpMyAdmin (открытый через контрольную панель хостера, а не из тайпы) удалил все таблицы (иначе будет писать об ошибке) и загрузил весь дамп обратно. Все таблицы и записи стали в utf8-general-ci

HardRock 28.07.2008 12:50

Цитата:

Сообщение от Uruguaygrep (Сообщение 14923)
Я делал по этому мануалу.
http://typo3.org/documentation/tips-...ites-in-typo3/
И никаких дополнительных расширений не ставил. Все работае включая новости.
Там, собстна, вообще неважно какое расширение используется

Не получается добавить выбор языка на страницу, помогитеразобраться пожалуйста,
если чесно я вообще непредставляю как это зделать (

HardRock 29.07.2008 13:35

Цитата:

Сообщение от Илья (Сообщение 15057)
С разными шаблонами для разных языков разобрался.
А меню с флагами так и не заработало.
В результате сделал смену языков с помощью sr_language_menu.
Все спасибо за участие!

Скопировал example_languageMenu.php в fileadmin
в сетап добалил такие строки

page.includeLibs.multilanguage = fileadmin/example_languageMenu.php

temp.languageMenu = USER
temp.languageMenu.userFunc = user_languageMenu
subparts.langMenu < temp.languageMenu


теперь при запускестраницы выдаёт такое (((
Error: No parent object present.


Часовой пояс GMT +4, время: 20:55.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot