TYPO3:如何重定向到非翻译页面的翻译主页?

时间:2016-11-03 15:18:11

标签: multilingual typo3-7.6.x language-switching

我创建了一个多语言TYPO3网站,其中包含以下语言:

  1. 德语(默认)
  2. 英语
  3. 西班牙语
  4. 所有网页都没有翻译。例如,我有十页德语和十页英文翻译页面,但只有四页用西班牙语翻译,但语言切换器可在所有网站上使用。因此,如果有人移动到西班牙语不可用的六个页面之一并尝试使用语言切换器,他将收到以下错误消息:

    Page Not Found
    Reason: Page is not available in the requested language (strict).
    

    这并不是很好,我认为如果没有特定页面的西班牙语翻译,更好的解决方案是将用户重定向到西班牙语主页,但我该如何做这样的事情呢?

    我当前的语言配置如下所示:

    config {
        ...
        sys_language_uid = 0
        language = de
        htmlTag_langKey = de-DE
        locale_all = de_DE
        sys_language_mode = strict
    }
    
    [globalVar = GP:L = 1]
    config {
        sys_language_uid = 1
        language = en
        htmlTag_langKey = en
        locale_all = en_GB
        linkVars = L(1)
    }
    [global]
    
    [globalVar = GP:L = 2]
    config {
        sys_language_uid = 2
        language = es
        htmlTag_langKey = es
        locale_all = es
        linkVars = L(2)
    }
    [global]
    

    我的语言切换器看起来像这样:

    obj.languageSwitcher = HMENU
    obj.languageSwitcher {
    
        special = language
        special.value = 0,1,2
        special.normalWhenNoLanguage = 0
    
        1 = TMENU
        1 {
            NO = 1
            NO {
                doNotLinkIt = 1
                stdWrap {
                    override = DE || EN || ES
                    typolink {
                        parameter.data = page:uid
                        additionalParams = &L=0 || &L=1 || &L=2
                    }
                    outerWrap = <li>|</li>
                }
            }
    
            ACT < .NO
            ACT {
                stdWrap.typolink >
                stdWrap.outerWrap = <li class="active">|</li>
            }
    
            USERDEF1 < .NO
            USERDEF1 {
                stdWrap.typolink >
            }
        }
     }
    

    正如您所看到的,我目前已经定义了一个USERDEF1,如果当前站点没有西班牙语版本,则会从我的语言切换器中删除该链接,但我仍然希望将用户重定向到西班牙语版本的主页。你有什么建议吗?

1 个答案:

答案 0 :(得分:1)

而不是删除链接,您应该更改目标:

USERDEF1 < .NO
USERDEF1.stdWrap.typolink {
  parameter.data >
  parameter = 123           <- use your homepage id
}