我是TYPO3的新手,从8.7 LTS开始。我用默认的“表单”扩展名创建了几个表单。我的网站要求将其中一些表单翻译成最多5种其他语言。到目前为止,我发现的唯一解决方案是复制表单,然后为每个翻译分别创建一个表单,但这似乎不是最好的解决方案,因为从长远来看,这会导致表单分歧。如何翻译EXT:TYPO3 CMS 8.7 LTS中的表单格式?
是否可以直接在YAML文件中添加替代翻译或指向应该使用的翻译文件?
我是TYPO3的新手,从8.7 LTS开始。我用默认的“表单”扩展名创建了几个表单。我的网站要求将其中一些表单翻译成最多5种其他语言。到目前为止,我发现的唯一解决方案是复制表单,然后为每个翻译分别创建一个表单,但这似乎不是最好的解决方案,因为从长远来看,这会导致表单分歧。如何翻译EXT:TYPO3 CMS 8.7 LTS中的表单格式?
是否可以直接在YAML文件中添加替代翻译或指向应该使用的翻译文件?
TYPO3 CMS 8 LTS引入了新的表单框架(正在制定)文档。
你可以找到的翻译文档在这里: https://docs.typo3.org/typo3cms/drafts/code.tritum.de/TYPO3.CMS/Form_Documentation/Concepts/FrontendRendering/Index.html#translation
在这里你可以找到关于“什么是站点包”的信息: https://de.slideshare.net/benjaminkott/typo3-the-anatomy-of-sitepackages
在这里您可以找到关于扩展架构的更多信息: https://docs.typo3.org/typo3cms/CoreApiReference/ExtensionArchitecture/Index.html
大部分表单文档(第一和第二个链接)已经翻译成英文,但有些部分仍然是德文。
我知道这是一个很多的东西阅读,但阅读后你将有关于“如何建立与TYPO3网站(和翻译的形式)的基本知识。
这里一个例子,像我
对于前端的翻译添加到您的TypoScript设置:页面上使用
plugin.tx_form {
settings {
yamlConfigurations {
100 = EXT:my_site_package/Configuration/Yaml/CustomFormSetup.yaml
}
}
“my_site_package”必须是一个已经存在并激活TYPO3扩展
然后进行下my_site_package /配置/ YAML/CustomFormSetup.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'
一个YAML文件,并有一定的翻译文件my_site_package /资源/私人/语言
默认(EN):my_site_package /资源/私人/语言/ 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 /资源/私人/语言/ 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
for Subject电子邮件整理
finisher.Email.subject
(解决办法,目前正在)
finisher.EmailToReceiver.subject
(应该是解决方案buggy, not working at the time of writing)
这个答案是没有可能的帮助下从manuel-selbach在TYPO3松弛:
伟大:我很努力地为submitButton和Finisher搜索了一下! – BastianBalthasarBux
谢谢您。这份文件与TYPO3的大部分文件一样,似乎是由那些已经非常熟悉该系统的人撰写的。它提到添加一个指向你自己的翻译文件的键: 20:'EXT:my_site_package/Resources/Private/Language/locallang.xlf' 但是文档没有提及包含密钥的配置文件位于文件系统或XLF所在的位置。 似乎还没有对XLF文件或链接进行描述,而让读者试图找到此版本的TYPO3的正确文档。 – user3201785
我添加了一些更多的链接和背景信息。希望这会帮助你。 –