Просмотр полной версии : как безболезненно менять дефолтовый язык сайта?
Всем привет!
на сайте два языка.
по умолчанию немецкий, второй альтернативный (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 строчек переписать?
привет, Павел!
Что именно не правильно, я не совсем понял?
можете пояснить?
Это само по себе уже не совсем рпавильно... но если надо, то как сделаете так и будет правильно. ..А переделовать..5 строчек переписать?
и если не трудно, поделитесь какое правильное направление решение может быть этой задачи с выбором независимого языка по умолчанию.
Пока что-то не приходят идеи в голову. Может уже кто решал подобную проблему?
спасибо,
Евгений
Pavel Antonov
19.02.2007, 20:22
привет, Павел!
Что именно не правильно, я не совсем понял?
можете пояснить?
и если не трудно, поделитесь какое правильное направление решение может быть этой задачи с выбором независимого языка по умолчанию.
Пока что-то не приходят идеи в голову. Может уже кто решал подобную проблему?
спасибо,
Евгений
По моему мнению, менять дефолтный язык не правильно. Если разные части сайта имеют различный язык, то это вносит неразбериху.
"Правильного решения" нет... что Вас смушает? Для каждой ветки где нужен другой язык определяете свои константы language, locale, sys_language_uid.
привет, Павел,
По моему мнению, менять дефолтный язык не правильно. Если разные части сайта имеют различный язык, то это вносит неразбериху.
"Правильного решения" нет... что Вас смушает? Для каждой ветки где нужен другой язык определяете свои константы language, locale, sys_language_uid.
тут дело в другом.
необходимо изменить дефолтовый язык для всего сайта сразу.
т.е. сначала был немецкий и по чистому урл грузился немецкий вариант.
в то же время второй язык грузился когда параметр "L=1" и дополнительно если параметр "L=0" грузит снова первый язык.
Но теперь задача изменилась, и необходимо чтобы по чистому урл грузился второй язык. Издесь проблема.
Вопрос: возможно ли задавать значение параметра "L=" из тайпоскрипта.
тогда, возможно, можно было установить в глобальном контексте этот параметр в необходимый дефолтовый язык а дальше все условия отработали бы в зависимости от установленного параметра.
спасибо,
Евгений
Pavel Antonov
20.02.2007, 14:51
привет, Павел,
тут дело в другом.
необходимо изменить дефолтовый язык для всего сайта сразу.
т.е. сначала был немецкий и по чистому урл грузился немецкий вариант.
в то же время второй язык грузился когда параметр "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...
привет, спасибо антон,
но не все так просто.
дело в том, что в различных местах тайпо скрипта
используется условие по параметру 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
спасибо, Дмитрий,
задачу решил, простой корректировкой тайпоскрипта, вобщем не так много оказалось.
посчитал, что в моем случае это меньшие услиля, по сравнению с установкой и настройкой realUrl.
спасибо за совет, сам собирался разобраться этим расширением.
есть вопросы по нему. Но лучше создам новую тему.
а что касаемо универсального решения в чистом тайпоскрипте, вопрос остается актуальным пока. сам не нашел еще решения...
всме спасибо
[...]
задачу решил, простой корректировкой тайпоскрипта, вобщем не так много оказалось.
[...]…, а решение посмотреть можно?
привет, решение применил как описано в первом посте - пришлось переписать все языковые условия. меня смущало именно это. другого пока не искал
евгений
Работает на vBulletin® версия 3.8.1. Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot