我是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
我添加了一些更多的鏈接和背景信息。希望這會幫助你。 –