0

我正在我的项目中实现 UTF-8 字符支持。我们使用模板工具包。在其中一个模板中,我有这个硬编码的下拉代码,它不允许我翻译文本。这是代码片段。

<select id="sub_select" name="sub_select">
[% sub_options = [
- { value => 'last', choice =>'translate.$lang.L_Submission' },
- { value => 'all', choice => 'translate.$lang.A_Submissions' },
];
%]
[% INCLUDE dropdown.tmpl
options = sub_options
selected = sub_select
%]
</select>

其中 dropdown.tmpl 是一个集中文件,用于在整个应用程序中创建下拉菜单。
我有权创建一个新的 dropdown_UTF8.tmpl,它将支持新的选择类型,或者我可以将新逻辑容纳到这个 dropdown.tmpl 中。目前,当我使用现有的 dropdown.tmpl 尝试此操作时,我得到 translate.$lang.A_Submissions 和 translate.$lang.L_Submission 作为选择,因为我希望显示翻译后的数据。谁能帮我这个。

dropdown.tmpl:

[% valuekey = valuekey || 'value'; 
   choicekey = choicekey || 'choice'; 
   FOREACH opt = options;
     - value = opt.$valuekey.defined ? valuekey_prefix _ opt.$valuekey : valuekey_prefix _ opt
     - choice = opt.$choicekey or value
%]
[% value = value %]
<option value="[% value %]"[% selected="selected" IF value == selected %]>[% choice %]</option>
[% END -%]
4

1 回答 1

0

除非我遗漏了什么,否则我认为这里的问题只是choice这些散列中值的单引号。根据定义,单引号将导致它们包含的内容不被插值。

尝试:

[%  sub_options = [
        - { value => 'last', choice => translate.$lang.L_Submission },
        - { value => 'all',  choice => translate.$lang.A_Submissions },
    ];
%]
于 2013-04-29T02:38:52.187 回答