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=2691)

(:) 16.02.2007 14:24

как безболезненно менять дефолтовый язык сайта?
 
Всем привет!

на сайте два языка.

по умолчанию немецкий, второй альтернативный (uid=1) английский.

Код:

# language by default is german
# language ID = 1 is English (L=1)

[GLOBAL]
#setting language selector variable
config.linkVars = L
config.uniqueLinkVars = 1

#default german language
config.sys_language_uid = 0
config.language = de
config.locale_all = de_DE
plugin.tx_indexedsearch._DEFAULT_PI_VARS.lang = 0

#English language
[globalVar=GP:L=1]
config.sys_language_uid = 1
config.language = en
config.locale_all = english
plugin.tx_indexedsearch._DEFAULT_PI_VARS.lang = 1

заказчик хочет чтоб теперь по умолчанию загружался сайт на английском языке.

если я в глобал прописываю английские настройки

Код:

# language ID = 1 is English (L=1)

[GLOBAL]
#setting language selector variable
config.linkVars = L
config.uniqueLinkVars = 1

##########default english###############
config.sys_language_uid = 1
config.language = en
config.locale_all = english
plugin.tx_indexedsearch._DEFAULT_PI_VARS.lang = 1
##########default english###############


#default german language
[globalVar=GP:L=0]
config.sys_language_uid = 0
config.language = de
config.locale_all = de_DE
plugin.tx_indexedsearch._DEFAULT_PI_VARS.lang = 0

#English language
[globalVar=GP:L=1]
config.sys_language_uid = 1
config.language = en
config.locale_all = english
plugin.tx_indexedsearch._DEFAULT_PI_VARS.lang = 1

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

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

не хочется переделывать все, но похоже прийдется.

Pavel Antonov 18.02.2007 15:26

Это само по себе уже не совсем рпавильно... но если надо, то как сделаете так и будет правильно. ..А переделовать..5 строчек переписать?

(:) 19.02.2007 18:53

привет, Павел!

Что именно не правильно, я не совсем понял?
можете пояснить?
Цитата:

Сообщение от Pavel Antonov (Сообщение 9908)
Это само по себе уже не совсем рпавильно... но если надо, то как сделаете так и будет правильно. ..А переделовать..5 строчек переписать?

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

спасибо,
Евгений

Pavel Antonov 19.02.2007 20:22

Цитата:

Сообщение от (:) (Сообщение 9917)
привет, Павел!

Что именно не правильно, я не совсем понял?
можете пояснить?


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

спасибо,
Евгений

По моему мнению, менять дефолтный язык не правильно. Если разные части сайта имеют различный язык, то это вносит неразбериху.

"Правильного решения" нет... что Вас смушает? Для каждой ветки где нужен другой язык определяете свои константы language, locale, sys_language_uid.

(:) 20.02.2007 12:01

привет, Павел,

Цитата:

Сообщение от Pavel Antonov (Сообщение 9918)
По моему мнению, менять дефолтный язык не правильно. Если разные части сайта имеют различный язык, то это вносит неразбериху.

"Правильного решения" нет... что Вас смушает? Для каждой ветки где нужен другой язык определяете свои константы language, locale, sys_language_uid.

тут дело в другом.
необходимо изменить дефолтовый язык для всего сайта сразу.

т.е. сначала был немецкий и по чистому урл грузился немецкий вариант.
в то же время второй язык грузился когда параметр "L=1" и дополнительно если параметр "L=0" грузит снова первый язык.

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

Вопрос: возможно ли задавать значение параметра "L=" из тайпоскрипта.
тогда, возможно, можно было установить в глобальном контексте этот параметр в необходимый дефолтовый язык а дальше все условия отработали бы в зависимости от установленного параметра.

спасибо,
Евгений

Pavel Antonov 20.02.2007 14:51

Цитата:

Сообщение от (:) (Сообщение 9923)
привет, Павел,
тут дело в другом.
необходимо изменить дефолтовый язык для всего сайта сразу.

т.е. сначала был немецкий и по чистому урл грузился немецкий вариант.
в то же время второй язык грузился когда параметр "L=1" и дополнительно если параметр "L=0" грузит снова первый язык.

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

Вопрос: возможно ли задавать значение параметра "L=" из тайпоскрипта.
тогда, возможно, можно было установить в глобальном контексте этот параметр в необходимый дефолтовый язык а дальше все условия отработали бы в зависимости от установленного параметра.

спасибо,
Евгений

L= это всего лишь внешний параметр, ни на что не влияет и может интерпритироваться по желанию... Поменяйте установку sys_language_id и все будет как надо.
Код:

[GLOBAL]
#setting language selector variable
config.linkVars = L
config.uniqueLinkVars = 1

# English language
config.sys_language_uid = 1
config.language = en
config.locale_all = english
plugin.tx_indexedsearch._DEFAULT_PI_VARS.lang = 1

# german language
[globalVar=GP:L=1]
config.sys_language_uid = 0
config.language = de
config.locale_all = de_DE
plugin.tx_indexedsearch._DEFAULT_PI_VARS.lang = 0

Вот и все... теперб по умолчанию английский, а по L=1 немецкий... и совершенно не обязательно что бы L == sys_language_uid...

(:) 20.02.2007 19:12

привет, спасибо антон,

но не все так просто.

дело в том, что в различных местах тайпо скрипта
используется условие по параметру L=

например, картинка выводится другая в хедере
или в футере генерируются тайполинки и надписи на разных языках подставляются тут же в зависимости от параметра.

ссылки и надписи в статической поисковой форме
которую я тоже генерю ручками через тайполинк и т.п.
например чтоб было лучше понятно:
Код:

[global]
#search box
temp.searchbox_label = TEXT
temp.searchbox_label.value = Suche

#English language
[globalVar=GP:L=1]

temp.searchbox_label.value = Search

[global]
lib.bodyTemplate.marks.SEARCH_LABEL < temp.searchbox_label

#advanced search
temp.advanced_search_label = TEXT
temp.advanced_search_label.value = Erweiterte Suche

#English language
[globalVar=GP:L=1]
temp.advanced_search_label.value = Advanced Search
[global]
temp.advanced_search_label {
  typolink {
    parameter = suche_seite
    additionalParams = &tx_indexedsearch[ext]=1
    wrap = <img src="{$arrowImgFile}"/>|
    ATagBeforeWrap = 1
  }
}
lib.bodyTemplate.subparts.ADVANCED_SEARCH_LINK < temp.advanced_search_label

#sitemap LINK
temp.sitemap_link = TEXT
temp.sitemap_link.value = Sitemap

#English language
[globalVar=GP:L=1]
temp.sitemap_link.value = Sitemap
[global]
temp.sitemap_link{
  typolink {
    parameter = sitemap_seite
    wrap = <img src="{$arrowImgFile}"/>|
    ATagBeforeWrap = 1
  }
}

lib.bodyTemplate.subparts.SITEMAP_LINK < temp.sitemap_link

#search page url with alias
temp.searchpage_url = TEXT
temp.searchpage_url.typolink.parameter = suche_seite
temp.searchpage_url.typolink.returnLast = url

lib.bodyTemplate.marks.SEARCH_PAGE_URL < temp.searchpage_url

такой способ решения был достаточно действенный.

плюс мой плагин тоже завязан на параметр "L="

таким образом не достаточно только изменить в том месте где вы сказали.
а возникает необходимость править ручками весь тайпоскрипт код.

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

может есть идеи?
или я вобще иду не верным путем?

Дмитрий Самойлов 21.02.2007 02:41

Поставте realurl, там есть возможность выставить язык если не передан параметр L

'preVars'=> array(
array(
'GETvar' => 'L',
'valueMap' => array( 'ru' => '0', 'en' => '1' ),
'valueDefault' => 'ru',
),
),

вот valueDefault как раз и решает какой язык отображать при опущенноом L

(:) 26.02.2007 13:56

спасибо, Дмитрий,

задачу решил, простой корректировкой тайпоскрипта, вобщем не так много оказалось.

посчитал, что в моем случае это меньшие услиля, по сравнению с установкой и настройкой realUrl.

спасибо за совет, сам собирался разобраться этим расширением.
есть вопросы по нему. Но лучше создам новую тему.

а что касаемо универсального решения в чистом тайпоскрипте, вопрос остается актуальным пока. сам не нашел еще решения...

всме спасибо

thebat 30.04.2008 00:44

Цитата:

Сообщение от (:) (Сообщение 10034)
[...]
задачу решил, простой корректировкой тайпоскрипта, вобщем не так много оказалось.
[...]

…, а решение посмотреть можно?


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

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