我是 TYPO3 的新手,从 8.7 LTS 开始。我创建了几个带有默认“表单”扩展名的表单。我的网站要求将其中一些表格翻译成最多 5 种其他语言。到目前为止,我发现的唯一解决方案是复制表格,然后为每个翻译设置一个单独的表格,但这似乎不是最好的解决方案,因为从长远来看它会导致表格分歧。
是否可以直接在 YAML 文件中添加替代翻译或指向应使用的翻译文件?
我是 TYPO3 的新手,从 8.7 LTS 开始。我创建了几个带有默认“表单”扩展名的表单。我的网站要求将其中一些表格翻译成最多 5 种其他语言。到目前为止,我发现的唯一解决方案是复制表格,然后为每个翻译设置一个单独的表格,但这似乎不是最好的解决方案,因为从长远来看它会导致表格分歧。
是否可以直接在 YAML 文件中添加替代翻译或指向应使用的翻译文件?
这是一个示例,就像我在页面上使用的那样:
对于前端翻译,将此添加到您的排版设置中:
plugin.tx_form {
settings {
yamlConfigurations {
100 = EXT:my_site_package/Configuration/Yaml/CustomFormSetup.yaml
}
}
}
"my_site_package" 必须是现有且已激活的 TYPO3 扩展
然后在 my_site_package/Configuration/Yaml/CustomFormSetup.yaml 下创建一个 yaml 文件
TYPO3:
CMS:
Form:
prototypes:
standard:
formElementsDefinition:
Form:
renderingOptions:
translation:
translationFile:
# default translation files for the frontend
10: 'EXT:form/Resources/Private/Language/locallang.xlf'
20: 'EXT:my_site_package/Resources/Private/Language/locallang.xlf'
并在 my_site_package/Resources/Private/Language 中有一些翻译文件
默认(英文):my_site_package/Resources/Private/Language/locallang.xlf
<?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.0" xmlns:t3="http://typo3.org/schemas/xliff">
<file source-language="en" datatype="plaintext" original="messages" product-name="tamods">
<header/>
<body>
<trans-unit id="ticketbestellung.element.objekt.properties.label" xml:space="preserve">
<source>Object</source>
</trans-unit>
</body>
</file>
</xliff>
德语(de):my_site_package/Resources/Private/Language/de.locallang.xlf
<?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.0" xmlns:t3="http://typo3.org/schemas/xliff">
<file source-language="en" target-language="de" datatype="plaintext" original="messages" product-name="tamods">
<header/>
<body>
<trans-unit id="ticketbestellung.element.objekt.properties.label" xml:space="preserve">
<target>Objekt</target>
</trans-unit>
</body>
</file>
</xliff>
德语(fr):my_site_package/Resources/Private/Language/fr.locallang.xlf
<?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.0" xmlns:t3="http://typo3.org/schemas/xliff">
<file source-language="en" target-language="fr" datatype="plaintext" original="messages" product-name="tamods">
<header/>
<body>
<trans-unit id="ticketbestellung.element.objekt.properties.label" xml:space="preserve">
<target>Objet</target>
</trans-unit>
</body>
</file>
</xliff>
这是我使用的表单中的 yaml:
renderingOptions:
submitButtonLabel: Senden
type: Form
identifier: ticketbestellung
label: Ticketbestellung
prototypeName: standard
renderables:
-
renderingOptions:
previousButtonLabel: 'previous Step'
nextButtonLabel: 'next Step'
type: Page
identifier: page-1
label: Page
renderables:
-
defaultValue: ''
type: Text
identifier: objekt
label: Objekt
properties:
fluidAdditionalAttributes:
placeholder: Objekt
required: required
validators:
-
identifier: NotEmpty
一些翻译键,很难找到:
提交按钮
element.Form.renderingOptions.submitButtonLabel
element.ticketbestellung.renderingOptions.submitButtonLabel
电子邮件装订器中的主题
finisher.Email.subject
(解决方法,也在版本 8.7.5 之前工作)
finisher.EmailToReceiver.subject
(应该是直到版本 8.7.5 的解决方案是错误的)
如果没有TYPO3 Slack 中的manuel-selbach的帮助,这个答案是不可能的。
<?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.0" xmlns:t3="http://typo3.org/schemas/xliff">
<file source-language="en" target-language="fr" datatype="plaintext" original="messages" product-name="tamods">
<header/>
<body>
<trans-unit id="ticketbestellung.element.objekt.properties.label" xml:space="preserve">
<source>Object</source>
<target>Objet</target>
</trans-unit>
</body>
</file>
</xliff>
TYPO3 CMS 8 LTS 引入的新表单框架有一个(正在进行的工作)文档。
在这里您可以找到有关“什么是站点包”的信息: https ://de.slideshare.net/benjaminkott/typo3-the-anatomy-of-sitepackages
在这里您可以找到有关扩展架构的更多信息: https ://docs.typo3.org/typo3cms/CoreApiReference/ExtensionArchitecture/Index.html
大多数表单文档(第一个和第二个链接)已经翻译成英文,但有些部分仍然是德文。
我知道要阅读的内容很多,但是阅读后您将了解“如何使用 TYPO3 构建网站(并翻译表格)。