Content management system TYPO3 9.5.2 Slug:multi-language:Page not found 404异常,如果页面不存在翻译
我有一个两种语言的网站,例如de和en。De是我的默认语言,没有路径前缀。第二种语言En在url中有/En/作为前缀。现在,当我切换到en语言时,菜单项链接的url中有/en/,这很好。但是当我点击一个菜单项,它在后端没有被显式翻译,然后我得到一个404错误。我不能说这个行为主义者是错的,因为在我创建一个页面之前,没有一个页面具有这个slug路径。但是我该怎么办呢?为每个页面创建一个翻译,如果已经有数百个页面,这是没有帮助的。是否没有回退(不是内容回退、页面回退) 站点配置Content management system TYPO3 9.5.2 Slug:multi-language:Page not found 404异常,如果页面不存在翻译,content-management-system,typo3,typoscript,slug,typo3-9.x,Content Management System,Typo3,Typoscript,Slug,Typo3 9.x,我有一个两种语言的网站,例如de和en。De是我的默认语言,没有路径前缀。第二种语言En在url中有/En/作为前缀。现在,当我切换到en语言时,菜单项链接的url中有/en/,这很好。但是当我点击一个菜单项,它在后端没有被显式翻译,然后我得到一个404错误。我不能说这个行为主义者是错的,因为在我创建一个页面之前,没有一个页面具有这个slug路径。但是我该怎么办呢?为每个页面创建一个翻译,如果已经有数百个页面,这是没有帮助的。是否没有回退(不是内容回退、页面回退) 站点配置 rootPageId
rootPageId: 2
base: 'http://some-domain.de/'
baseVariants: { }
languages:
-
title: 'Meine tolle Webseite'
enabled: true
languageId: '0'
base: /
typo3Language: de
locale: de_DE.UTF-8
iso-639-1: de
navigationTitle: ''
hreflang: ''
direction: ''
flag: de
-
title: 'Andere Sprache'
enabled: true
languageId: '1'
base: /en/
typo3Language: en
locale: en_US.UTF-8
iso-639-1: en
navigationTitle: ''
hreflang: ''
direction: ''
fallbackType: fallback
fallbacks: '0'
flag: en
errorHandling: { }
routes: { }
routeEnhancers:
PageTypeSuffix:
type: PageType
default: .html
map:
.html: 0
存在与内容回退相关的开放性错误: 也许可以尝试升级到9.5.3(不知道这是否已修复) 解决方法:是否要删除英文菜单中未翻译的页面 然后,您可以为所有页面设置“如果当前语言不存在翻译,则隐藏页面”。此复选框适用于“语言”选项卡下的每页 要对所有现有页面执行此操作,请执行以下操作:
UPDATE pages SET l18n_cfg = 2
要为新创建的页面自动设置此标志,请执行以下操作:
在扩展中创建一个overrides pages.php
typo3conf/ext/[YOUR_EXTENSION]/Configuration/TCA/Overrides/pages.php
并添加l18n_cfg的默认值
$GLOBALS['TCA']['pages']['columns']['l18n_cfg']['config']['default'] = 2;
存在与内容回退相关的开放性错误: 也许可以尝试升级到9.5.3(不知道这是否已修复) 解决方法:是否要删除英文菜单中未翻译的页面 然后,您可以为所有页面设置“如果当前语言不存在翻译,则隐藏页面”。此复选框适用于“语言”选项卡下的每页 要对所有现有页面执行此操作,请执行以下操作:
UPDATE pages SET l18n_cfg = 2
要为新创建的页面自动设置此标志,请执行以下操作:
在扩展中创建一个overrides pages.php
typo3conf/ext/[YOUR_EXTENSION]/Configuration/TCA/Overrides/pages.php
并添加l18n_cfg的默认值
$GLOBALS['TCA']['pages']['columns']['l18n_cfg']['config']['default'] = 2;
另一个替代为每个页面创建翻译的解决方法是创建静态路由。 例如:
route: de/english-slug-of-page
type: uri
source: https://yoursite/english-slug-of-page.
虽然不是很方便的解决方案。它的缺点是,路由到英文页面会改变所选语言(在本例中,从德语到英语)
TYPO3 9.5.4中仍然没有解决此问题的方法。另一种替代为每个页面创建翻译的方法是创建静态路由。 例如:
route: de/english-slug-of-page
type: uri
source: https://yoursite/english-slug-of-page.
虽然不是很方便的解决方案。它的缺点是,路由到英文页面会改变所选语言(在本例中,从德语到英语)
在TYPO3 9.5.4中仍然没有解决这个问题。这里应该是对Steffen Mächtel回答的评论,但我没有足够的声誉
如果您希望在没有翻译时隐藏所有页面(在菜单内),可以在“模块设置”->“配置安装范围选项”->[FE][HIDEPAGESIFNOTTRANSTEDBYDEFAULT](
如果您希望在没有翻译时隐藏所有页面(在菜单内),可以在“模块设置”->“配置安装范围选项”->[FE][HIDEPAGESIFNOTTRANSTEDBYDEFAULT](