我正在使用带有Twig的Slim PHP微框架和翻译扩展名i18n。
我需要输出已翻译的国家/地区名称,并且更愿意使用转换扩展名而不是构建数组并在PHP中手动获取名称。
所以我在Twig模板中尝试了这个:
{% set country="trans-country-name("~isoCountryCode~")" %}
{% trans %}
This is a list of all the numbers in {{country}}.
{% endtrans %}
这在我的.po
文件中:
msgid "This is a list of all the numbers in %country%."
msgstr "Detta är en lista över samtliga nummer i %country%."
msgid "trans-country-name(NO)"
msgstr "Norge"
我希望这会导致
"Detta är en lista över samtliga nummer i Norge."
但我只是得到了
"Detta är en lista över samtliga nummer i trans-country-name(NO)."
是否可以将翻译扩展名解析为trans-country-name(NO)
作为要翻译的文本?
答案 0 :(得分:0)
我认为我正在倒退。事后看来,这个解决方案显而易见 - 只需先在$patterm = "/[0-9]{2}+(?:-|.|\/)+[a-zA-Z]{3}+(?:-|.|\/)+[0-9]{4}/";
变量上使用| trans
过滤器,然后在文本中直接使用该过滤器进行翻译。
Twig模板:
country
{% set country = ("trans-country-name("~numbers[0].countryNames.code~")") | trans %}
{% trans %}This is a list of all the numbers in {{country}}.{% endtrans %}
档案
.po
我的最终解决方案是废弃国家/地区代码,转而直接使用国家/地区代码:
msgid "This is a list of all the numbers in %country%."
msgstr "Detta är en lista över samtliga telefonnummer i %country%."
msgid "trans-country-name(NO)"
msgstr "Norge"
{% set country=numbers[0].countryNames.displayName | trans %}
{% trans %}This is a list of all the numbers in {{country}}.{% endtrans %}