在silverstripe中使用i18n _t()的东西有一些疯狂的令人沮丧的问题。 (我确定我有这个工作,但现在不是)。
我目前有一个php联系表单,我需要翻译成法语。这是我的代码片段来自php页面。编辑第二个参数会显示所显示文本的变化,它似乎永远不会找到翻译
public function generalContactForm() {
$fields = new FieldList(
new TextField('FirstName', '', _t('ContactUs.FirstName','FIRST NAME')),
new TextField('Surname', '', _t('ContactUs.Surname','Surname')),
new EmailField('Email', '', 'Email'),
new TextField('Phone', '', _t('ContactUs.Phone' ,'Phone No.')),
new TextField('Country', '', _t('ContactUs.Country','Country Of Origin')),
new TextareaField('Message', '', _t('ContactUs.Comments','COMMENTS'))
);
$actions = new FieldList(
new FormAction('submitGeneralForm', _t('Main.Submit','Submit'))
);
return new Form($this, 'generalContactForm', $fields, $actions);
}
然后我将我的fr.yml放在mysite / lang / fr.yml中。(我也尝试了fr_FR.yml)。我已经使用在线验证器验证了yaml文件的完整性并且一切正常。
fr:
Main:
Submit: 'Submit TBT'
ContactUs:
FirstName: 'Prenom'
Surname: 'Surname TBT'
Phone: 'Phone TBT'
Country: 'Country TBT'
Comments: 'Comments TBT'
Response: 'Canned Response TBT'
Company: 'Company TBT'
Position: 'Position TBT'
Website: 'Website TBT'
Minimum: 'Minimin TBT'
Maximum: 'Maximum TBT'
我尝试将lang文件夹复制到网站结构中的几乎所有可以想象的位置,包括themes / name / lang,没有运气以及确保在每次移动后都执行flush = all。请帮忙!