使用locallang.xlf以typo3格式翻译自定义validationErrorMessages

时间:2019-07-09 14:10:07

标签: forms validation typo3 translation typo3-9.x

我使用locallang.xlf来翻译表单(typo3 9.5.5,formextension)。

我的customform.yaml:

       renderables:
          -
            properties:
              fluidAdditionalAttributes:
                required: required
              validationErrorMessages:
                -
                  code: 1221560910
                  message: 'My Custom Message'
                  code: 1221560718
                  message: 'My Custom Message'
                -
                  code: 1347992400
                  message: 'My Custom Message'
                -
                  code: 1347992400
                  message: 'My Custom Message'
              options:
                products: 'Products'
                miscellaneous: 'Sonstiges'
              prependOptionLabel: 'Please Specify'
            type: SingleSelect
            identifier: subject
            label: 'Your Subject:'
            validators:
              -
                identifier: NotEmpty
          -

我的locallang.xlf:

        <trans-unit id="element.subject.properties.prependOptionLabel">
            <source>Please Specify --Works!</source>
        </trans-unit>
        <trans-unit id="element.subject.properties.options.products">
                <source>Products --Works!</source>
        </trans-unit>
    <trans-unit id="element.subject.properties.validationErrorMessages.message">
            <source>Custom Message -Doesn't work!</source>
        </trans-unit>

使用一个确切的转换键可以正常工作,但validationErrorMessages除外。 有人知道如何翻译吗?

提前预定,Milenoi

1 个答案:

答案 0 :(得分:0)

您可以使用以下转换键来验证错误代码。 1221559976EmailAddress验证程序的代码:

<trans-unit id="validation.error.1221559976">
    <source>Please enter valid email address. Thanks!</source>
    <target>Bitte gebe eine gültige E-Mail-Adresse ein. Danke!</target>
</trans-unit>
<trans-unit id="MyContactForm.validation.error.1221559976">
    <source>Please enter valid email address. Thank you very much!</source>
    <target>Bitte gebe eine gültige E-Mail-Adresse ein. Vielen herzlichen Dank!</target>
</trans-unit>

后者将覆盖第一个,因为它包含表单标识符,因此更加具体。

请记住,如果您已经在表单定义中设置了自定义消息,则这两个转换键将不起作用!

这意味着必须删除以下示例的最后三行:

renderables:
  -
    defaultValue: ''
    identifier: email
    label: Email
    type: Text
    properties:
      fluidAdditionalAttributes:
        placeholder: 'Email address'
      ### Don't set this if you want to translate the message:
      #validationErrorMessages:
      #  - code: 1221559976
      #    message: 'Please enter a valid email address, dear.'