Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typo3 混合语言url';(三)及;RealURL_Typo3_Realurl - Fatal编程技术网

Typo3 混合语言url';(三)及;RealURL

Typo3 混合语言url';(三)及;RealURL,typo3,realurl,Typo3,Realurl,我已经为生成url设置了RealURL,但它在更改语言后正在生成混合语言url。清除缓存且不更改语言后,URL将保持活动语言,没有问题。但是在改变了语言之后,url变得复杂了。语言预设和页面名称保持正确,但描述是两种语言的混合。例如,以下链接URL在同一页面上生成: /de/anzeige/kategorie/1/vorrat/all.html (this is correct) /de/anzeige/categorie/1/voorraad/all.html (mix between ger

我已经为生成url设置了RealURL,但它在更改语言后正在生成混合语言url。清除缓存且不更改语言后,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)';
}
此部分在PostVarset中用于从数据库获取类别名称。我如何从数据库中获取类别名称会有问题吗

$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配置中,如下所示:


那么您就完成了:-)

但是
cat
值应该是什么?或者应该用自己的cat值为每种语言复制此数组?cat值与所选语言不对应。当然没有复制。请看一下新闻分机的结构。有些类别的使用方式与您希望的相同(我猜)。新闻扩展还提供了一个解决类别问题的方法。但正如答案中所述,您必须先执行其他步骤。但是名称
kategorie
categie
已经出错。此名称不是来自数据库,而是来自realurl配置文件。对于我来说,不清楚如何根据语言设置数组名?或者这是不可能的?已经谢谢了。应该需要使用“kategorie/1”。相反,如果从数据库加载,类别的(翻译)名称应该在那里。假设您有名为“水果”和“蔬菜”的类别,这些类别应取代“kategorie/1”部分。=><代码>/de/anzeige/fruits/vorrat/all.html
    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,
            ),
        ),