我正在为我的项目使用Twig作为模板引擎。
我要实现的是翻译月份名称。例如google play services location
至30 December
项目不是基于symfony或任何其他框架构建的。它只是基于PHP7并带有MVC模式的项目。
答案 0 :(得分:1)
也许您可以使用 Twig扩展库,该库为Twig提供了几个有用的扩展:https://twig-extensions.readthedocs.io/en/latest/。
它是由创建Twig模板引擎的同一人开发的。
您可以使用 i18n扩展名(https://twig-extensions.readthedocs.io/en/latest/i18n.html),然后在代码中使用trans
块将模板中的各个部分标记为可翻译的:
{% trans "Hello World!" %}
{% trans string_var %}
{% trans %}
Hello World!
{% endtrans %}
{% set name = object.name_property %}
{% trans %}
Hello {{ name }}!
{% endtrans %}
如果您只想快速解决月份名称的转换,又不想使项目充满其他依赖性,则可以创建一个简单的 Twig过滤器,如下所述:{{ 3}}。
$filter = new Twig_Filter('trans', function ($string) {
// $string is the month name...
// return the translated string
return ... ;
});
$twig = new Twig_Environment($loader);
$twig->addFilter($filter);
然后在您的模板中使用它:
{{ 'December'|trans }}