TYPO3 V12.4.24 tx_form完成器邮件语言设置问题咨询
TYPO3 12.4.24 tx_form 邮件完成器语言配置修复方案
核心问题
tx_form的「Email to receiver (you)」完成器仅显示英文(对应YAML的default)作为翻译语言选项,表单提交后发送的邮件始终为英文,尽管前端页面的意大利语(语言ID[0])翻译正常。
分步解决
1. 让后台显示意大利语选项
如果后台下拉框仅显示英文,说明form模块未识别到站点的意语配置,可通过TSconfig强制添加可选语言:
在站点级TSconfig(例如sitepackage/Configuration/TsConfig/Page/Form.tsconfig)中添加:
mod.web_form { settings { formElementsDefinition { EmailToReceiver { properties { translationLanguage { items { 0 = Italian 0.value = it 1 = English 1.value = default } } } } } } }
清理TYPO3缓存后,后台表单编辑页的完成器下拉框将显示意大利语选项。
2. 设置默认发送语言为意大利语
后台操作方式:
找到「Email to receiver (you)」完成器,将「Translation language」下拉选项选为「Italian」,保存表单即可。
YAML直接配置(更稳定可靠):
如果直接编写表单YAML文件,可跳过后台选择,直接指定语言参数:
type: Form identifier: your-contact-form label: Contact Form prototypeName: standard finishers: - identifier: EmailToReceiver options: subject: 'Contact Request' translationLanguage: 'it' # 强制使用意大利语,对应语言ID[0] # 可选:限制后台编辑时的语言选项范围 allowedLanguages: - 'it' - 'default'
3. 确保邮件内容加载意大利语翻译
前端翻译正常说明站点语言包已到位,但邮件由后台发送,需补充两个确认项:
- 站点配置中,将默认语言设置为ID[0]的意大利语;
- 表单翻译文件(如
sitepackage/Resources/Private/Language/Form/locallang.xlf)包含完整的意语翻译,示例片段:
<trans-unit id="form.finisher.EmailToReceiver.subject" xml:space="preserve"> <source>Contact Request</source> <target>Richiesta di contatto</target> </trans-unit>
4. 验证配置
清理TYPO3全缓存后,提交表单测试接收邮件的语言。如果仍有异常,可查看系统日志(后台→系统→日志)排查翻译文件加载或语言配置类错误。
内容的提问来源于stack exchange,提问作者webman
相关产品推荐
相关产品推荐

