[英]Mixed language url's by TYPO3 & RealURL
我已经设置了RealURL来生成网址,但是在更改语言后会生成混合语言的网址。 清除缓存并且不更改语言后,URL仍保持活动语言,没问题。 但是更改语言后,URL变得混杂了。 语言预设和页面名称保持正确,但是描述是两种语言的混合。 例如,以下链接URL在同一页面上生成:
/de/anzeige/kategorie/1/vorrat/all.html (this is correct)
/de/anzeige/categorie/1/voorraad/all.html (mix between german & dutch)
看起来像是缓存的问题? 我现在通过在realurl配置文件中进行所有语言之间的组合来修复它,但这会使文件变得复杂。
在realurl配置文件中,我一开始就使用以下代码进行语言选择:
$lang = substr($_SERVER['REQUEST_URI'], 1, 2);
if($lang=='de') {
$cat = 'kategorie';
$alias = 'COALESCE(name_de, name_en, name_nl)';
}
else {
$cat = 'categorie';
$alias = 'COALESCE(name_nl, name_en, name_de)';
}
这部分在postVarSets中用于从数据库中获取类别名称。 我如何从数据库中获取类别名称可能会出现问题吗?
$cat => array(
array (
'GETvar' => 'extension[catname]',
'lookUpTable' => array (
'table' => 'database_table',
'id_field' => 'uid',
'alias_field' => 'uid',
'addWhereClause' => ' AND NOT deleted',
'useUniqueCache' => '1',
'useUniqueCache_conf' => array (
'strtolower' => '1',
'spaceCharacter' => '-',
),
),
),
array (
'GETvar' => 'extension[catname]',
'lookUpTable' => array (
'table' => 'database_table',
'id_field' => 'uid',
'alias_field' => $alias,
'addWhereClause' => ' AND NOT deleted',
'useUniqueCache' => '1',
'useUniqueCache_conf' => array (
'strtolower' => '1',
'spaceCharacter' => '-',
),
),
),
),
),
您似乎没有在页面树中创建实际页面的翻译。 您的两个链接中的语言标识符仍为“ de”。 因此,第一步是创建翻译。
下一步是使您的扩展程序支持多种语言,这将向表中添加一些language_*
字段。 如果操作正确,则可以创建类别的翻译,而在一个数据库记录中无需使用多种语言。 您最终将获得每种语言的一条记录。
接下来,您需要像在新闻扩展中一样,将语言配置添加到您的realurl配置中:
array(
'GETvar' => 'tx_news_pi1[news]',
'lookUpTable' => array(
'table' => 'tx_news_domain_model_news',
'id_field' => 'uid',
'alias_field' => 'title',
'addWhereClause' => ' AND NOT deleted',
'useUniqueCache' => 1,
'useUniqueCache_conf' => array(
'strtolower' => 1,
'spaceCharacter' => '-',
),
'languageGetVar' => 'L',
'languageExceptionUids' => '',
'languageField' => 'sys_language_uid',
'transOrigPointerField' => 'l10n_parent',
'autoUpdate' => 1,
'expireDays' => 180,
),
),
然后您就完成了:-)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.