[英]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.