gpt4 book ai didi

TYPO3:在 Fluid 模板中硬编码的语言相关变量

转载 作者:行者123 更新时间:2023-12-04 23:38:58 34 4
gpt4 key购买 nike

我有一个 多语种网站建于 TYPO3 V7.6.18 .它使用的口号应该保持可编辑,但对于三种语言是不同的。这是在流体模板中硬编码的变量。

对于此类变量,我使用文件 Configuration/TypoScript/constants.ts我定义了可以编辑的变量( WEB -> Template -> Constant Editor )并使用:

#---------------------------------------------------------------------
# constants.ts
#---------------------------------------------------------------------

# customsubcategory=general=General Setup

myextension.configuration {
general {
# cat=myextension/general/05; type=string; label=Website Slogan.
slogan= website slogan in main language
}
}

[globalVar = GP:L=1]
myextension.configuration.general.slogan = website slogan in second language
[end]

[globalVar = GP:L=2]
myextension.configuration.general.slogan = website slogan in third language
[end]

然后我将变量绑定(bind)到 Configuration/TypoScript/setup.ts用来:
#---------------------------------------------------------------------
# setup.ts
#---------------------------------------------------------------------

page = PAGE
page {
# Page Main template
10 = FLUIDTEMPLATE
10 {
variables {
# slogan
slogan = TEXT
slogan.value = {$myextension.configuration.general.slogan}
}
}
}

此代码有效,但只有主要语言中的标语是可编辑的...

有什么解决方案可以使标语可以用其他两种语言编辑?

最佳答案

提出了三种可能性,其中两种是 Mathias 和 Riccardo 提到的。我将添加第三个,列出它们的优缺点。

因此,首先第三种可能性是创建一个内容元素(最好是 header 类型)并创建一个 TypoScript 常量来保存它的 uid .

# cat=myextension/general/05; type=int; label=Slogan CE UID
myextension.configuration.general.sloganUid =

然后在你的流体变量中获取这个内容元素的标题:
page.10.variables.slogan = CONTENT
page.10.variables.slogan {
select.uidInList = {$myextension.configuration.general.sloganUid}
table = tt_content
renderObj = TEXT
renderObj.field = header
}

创建一个 sysfolder,创建一个 header 类型的内容元素并将其 uid 放入常量中。也许您必须在 .select 中添加更多内容让它发挥作用——我总是不确定。

现在利弊:

三个常数 ,正如马蒂亚斯所建议的:
  • : 关闭你所做的,简单,代码少,更改不需要文件访问
  • 骗局 :需要在常量中添加另一个常量并为每种其他语言设置

  • locallang.xlf :
  • : 这就是你期望翻译的地方(在代码中),很容易添加翻译,可以去 VCS
  • 骗局 : 需要文件访问权限才能更改

  • 内容元素 :
  • :管理员可以授予编辑者访问权限(如果他们愿意),最容易添加翻译
  • 骗局 : 添加数据库查询(但通常缓存),很容易从 BE
  • 搞砸

    关于TYPO3:在 Fluid 模板中硬编码的语言相关变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43800098/

    34 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com