我有一个有两种语言的网站,例如德文和英文。 De 是我的默认语言,没有路径前缀。 En,第二种语言,在 url 中以 /en/ 作为前缀。现在,当我切换到 en 语言时,菜单项链接的 url 中包含 /en/,这很好。但是,当我单击后端未显式翻译的菜单项时,我会收到 404 错误。我不能说这种行为是错误的,因为在我创建页面之前不存在具有此 slug 路径的页面。但我该怎么办呢?为每个页面创建一个翻译,如果已经有数百个页面,那么这没有什么帮助。是否没有后备(不是内容后备、页面后备)?
站点配置
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
有一个与内容回退相关的未解决错误:
https://forge.typo3.org/issues/86762
也许尝试升级到 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;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)