我正在使用带有插件 Catalyst::Plugin::I18N 的 Catalyst 设置一个新项目,并使用 HTML::FormFu 创建表单我的问题是使用 HTML::FormFu 配置文件进行本地化不起作用。
我创建我的语言文件,如下所示:https ://metacpan.org/pod/Catalyst::Plugin::I18N::Manual
我尝试了诸如 localize_class 或 add_localize_class_from_object 之类的解决方案,但没有一个不起作用
我的表单配置文件如下所示:
action:
indicator: submit
auto_fieldset: 1
elements:
- type: Text
name: email
id: email
label_loc: form.add_user.email.label
constraints:
- type: Required
message_loc: form.add_user.email.constraint.required
- type: Email
message_loc: form.add_user.email.constraint.email
error_tag: div
render_method: tt
attributes_xml: { class: form-control }
container_attributes: { class: form-group }
Catalyst 控制器中的动作(我使用的是 Catalyst::Controller::HTML::FormFu)
sub add_user :Path('/admin/add/user') :FormConfig {
my ($self, $c) = @_;
my $form = $c->stash->{'form'};
$form->get_field('submit')->value($c->loc('form.add_user.submit.value'));
return if !$form->submitted_and_valid;
}
de.po 文件的内容:
#: root/forms/admin/add_user.yml:9
msgid "form.add_user.email.label"
msgstr "E-Mail Adresse"
它始终显示:form.add_user.email.label 而不是:E-Mail Adresse