【问题标题】:TYPO3: check if current page is translated by typoscriptTYPO3:检查当前页面是否被排版翻译
【发布时间】:2020-06-17 07:45:57
【问题描述】:

为了通过typoscript生成canonical标签,我需要检查当前页面是否被翻译。如果没有,规范需要指向默认语言的 url。

如何检查当前页面是否被排版翻译?

我的打字稿配置中的语言处理:

sys_language_overlay = 1
sys_language_mode = content_fallback

【问题讨论】:

  • 我认为您在这里混淆了两件事:规范始终是您当前正在访问的页面的 URL。因此,如果您访问页面的翻译版本,规范总是具有该特定翻译的 URL。另一件事是 hreflang 指向页面的翻译版本。如果您使用 TYPO3 9.5 或更新版本,TYPO3 已经为您创建了这些 hreflang 链接。
  • 感谢彼得的回答。当然,canonical 是当前页面的 url。
  • 在我们的例子中,有些页面还没有翻译,而是以默认语言显示。即:klimaholzhaus.com/construction/zertifizierte-holzelemente 我们为不同语言(.com、.fr、.it、.ch)的页面提供域。问题是,由于内容后备功能,谷歌在不同的域中显示结果。谷歌应该用与域对应的语言索引页面。如果没有翻译,我的想法是在默认语言/域中设置规范 url。
  • 现在我得到了你的问题,但我没有准备好解决方案。我总是避免使用 content_fallback。从您页面的英语访问者的角度来看:他对德语内容没有用处,因为他不会理解。所以我认为最好使用严格模式并且根本不显示未翻译的页面。这也有助于解决重复内容问题。
  • 我完全支持你,但我的客户想要内容后备:(

标签: typo3 typoscript


【解决方案1】:

如果有人感兴趣,我已经为我的任务制定了一个解决方案:如果当前页面没有翻译,则以默认语言呈现规范 url (content_fallback)

page.headerData.10 = COA
page.headerData.10 {
    10 = LOAD_REGISTER
    10.isPageTranslated.cObject = CONTENT
    10.isPageTranslated.cObject {
        table = pages
        select {
            selectFields = plo.sys_language_uid
            pidInList = {$config.rootPid}
            join = pages_language_overlay plo ON plo.pid = pages.uid            
            where = plo.pid = ###pid### AND plo.sys_language_uid = ###lang### AND plo.deleted = 0 AND plo.hidden = 0
            markers {
                pid.data = page:uid
                lang.data = page:sys_language_uid
            }
        }
        renderObj = TEXT
        # translation available
        renderObj {
            wrap = <link rel="canonical" href="|">
            typolink {
                parameter.data = TSFE:id
                returnLast = url
            }
            append = TEXT
            append.value (

)
        }
    }   
    20 = TEXT
    20 {
        data = register:isPageTranslated
        ifEmpty {
            # no translation available
            wrap = <link rel="canonical" href="|">
            typolink {
                parameter.data = TSFE:id
                additionalParams = &L=0
                returnLast = url
            }
            append = TEXT
            append.value (

)
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-10
    • 2015-09-11
    • 1970-01-01
    • 2014-03-17
    • 1970-01-01
    • 2011-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多