Multilingual 类型3:如何重定向到未翻译页面的翻译主页?

Multilingual 类型3:如何重定向到未翻译页面的翻译主页?,multilingual,typo3-7.6.x,language-switching,Multilingual,Typo3 7.6.x,Language Switching,我用以下语言创建了一个多语言TYPO3网站: 德语(默认) 英式 西班牙文 所有页面都没有翻译。例如,我有十个德语页面和十个英语翻译页面,但只有四个西班牙语翻译页面,但语言切换程序在所有网站上都可用。因此,如果有人移动到六页中西班牙语不可用的其中一页,并尝试使用语言切换程序,他将收到以下错误消息: Page Not Found Reason: Page is not available in the requested language (strict). 这不是很好,我认为更好的解决方案是,

我用以下语言创建了一个多语言TYPO3网站:

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

    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 >
            }
        }
     }
    
    obj.languageSwitcher=humenu
    语言切换器{
    特殊=语言
    特殊值=0,1,2
    special.normalWhenNoLanguage=0时
    1=t菜单
    1 {
    否=1
    没有{
    doNotLinkIt=1
    stdWrap{
    覆盖=DE | | EN | ES
    打字链接{
    parameter.data=page:uid
    附加参数=&L=0 | |&L=1 | |&L=2
    }
    外套=
  • |
  • } } 第号法案 表演{ stdWrap.typolink> stdWrap.outerWrap=
  • |
  • } USERDEF1<.NO USERDEF1{ stdWrap.typolink> } } }

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

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

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