Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.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 打字3:检查当前页面是否由打字脚本翻译_Typo3_Typoscript - Fatal编程技术网

Typo3 打字3:检查当前页面是否由打字脚本翻译

Typo3 打字3:检查当前页面是否由打字脚本翻译,typo3,typoscript,Typo3,Typoscript,对于通过打字脚本生成规范标记,我需要检查当前页面是否已翻译。如果不是,则canonical需要以默认语言指向url 如何检查当前页面是否由打字稿翻译 我的打字脚本配置中的语言处理: sys_language_overlay = 1 sys_language_mode = content_fallback 如果有人感兴趣,我已经为我的任务找到了一个解决方案:如果当前页面没有翻译,则以默认语言呈现规范url(content\u回退) page.headerData.10=COA 第页,标题数据.1

对于通过打字脚本生成规范标记,我需要检查当前页面是否已翻译。如果不是,则canonical需要以默认语言指向url

如何检查当前页面是否由打字稿翻译

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

sys_language_overlay = 1
sys_language_mode = content_fallback

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

page.headerData.10=COA
第页,标题数据.10{
10=加载寄存器
10.isPageTranslated.cObject=内容
10.isPageTranslated.cObject{
表=页
挑选{
selectFields=plo.sys\u language\u uid
pidInList={$config.rootPid}
join=pages\u language\u在plo.pid=pages.uid上覆盖plo
其中=plo.pid=#########pid###和plo.sys#u language####和plo.deleted=0和plo.hidden=0
标记{
pid.data=page:uid
lang.data=page:sys\u language\u uid
}
}
renderObj=文本
#翻译可用
伦德罗布{
包裹=
打字链接{
parameter.data=TSFE:id
returnLast=url
}
追加=文本
附加值(
)
}
}   
20=文本
20 {
数据=寄存器:isPageTranslated
如果是空的{
#没有翻译
包裹=
打字链接{
parameter.data=TSFE:id
additionalParams=&L=0
returnLast=url
}
追加=文本
附加值(
)
}
}
}

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

page.headerData.10=COA
第页,标题数据.10{
10=加载寄存器
10.isPageTranslated.cObject=内容
10.isPageTranslated.cObject{
表=页
挑选{
selectFields=plo.sys\u language\u uid
pidInList={$config.rootPid}
join=pages\u language\u在plo.pid=pages.uid上覆盖plo
其中=plo.pid=#########pid###和plo.sys#u language####和plo.deleted=0和plo.hidden=0
标记{
pid.data=page:uid
lang.data=page:sys\u language\u uid
}
}
renderObj=文本
#翻译可用
伦德罗布{
包裹=
打字链接{
parameter.data=TSFE:id
returnLast=url
}
追加=文本
附加值(
)
}
}   
20=文本
20 {
数据=寄存器:isPageTranslated
如果是空的{
#没有翻译
包裹=
打字链接{
parameter.data=TSFE:id
additionalParams=&L=0
returnLast=url
}
追加=文本
附加值(
)
}
}
}

我认为您混淆了两件事:canonical始终是您当前访问的页面的URL。因此,如果您访问页面的翻译版本,canonical始终具有该特定翻译的URL。另一件事是指向页面的翻译版本。如果您使用TYPO3 9.5或更新版本,TYPO3已经为您创建了这些hreflang链接。感谢Peter的回答。当然,canonical是当前页面的url。在我们的例子中,一些页面尚未翻译,而是以默认语言显示。例如:我们有不同语言的页面域(.com、.fr、.it、.ch)。问题是,由于内容回退功能,谷歌在不同领域显示结果。谷歌应该用域名对应的语言对网页进行索引。我的想法是在没有翻译的情况下,在默认语言/域中设置规范url。现在我明白了你的问题,但我还没有准备好解决方案。我总是避免使用内容备份。从你网页上一个说英语的访问者的角度来看:他对德语内容没有用处,因为他不懂。所以我认为最好使用严格模式,并且根本不显示未翻译的页面。这也有助于解决您的重复内容问题。我完全同意您的意见,但我的客户希望内容有退路:(我认为您在这里混淆了两件事:canonical始终是您当前访问的页面的URL。因此,如果您访问页面的翻译版本,canonical始终具有特定翻译的URL。另一件事是hreflang指向页面的翻译版本。如果您使用TYPO3 9.5或更新版本,TYPO3已经创建了这些hreflang链接是为您准备的。感谢Peter的回答。当然,canonical是当前页面的url。在我们的例子中,一些页面尚未翻译,而是以默认语言显示。例如:我们有不同语言的页面域(.com、.fr、.it、.ch)。问题是,由于内容回退功能,谷歌在不同的域中显示结果。谷歌应该使用与域对应的语言对页面进行索引。我的想法是,如果没有翻译,则在默认语言/域中设置规范url。现在我明白了你的问题,但我还没有准备好解决方案。我总是我想使用内容\u回退。从你页面的英语访问者的角度来看:他对德语内容没有用处,因为他不理解。所以我认为最好使用严格模式,不要显示未翻译的页面。这也有助于解决你的重复内容问题。我完全同意你的观点,但我的客户想要c内容回退:(
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 (

)
        }
    }
}