symfony - symfony2 中的模板本地化

标签 symfony localization twig

波斯语(波斯语)等一些语言具有从右到左的结构。

要完全完成 i18n 和 l10n,我应该翻译字符串和翻转布局。

我完全使用 Translation 组件翻译字符串。

现在我正在尝试翻转布局。如何加载 rtl基于 loacle 的 CSS 版本在 symfony 项目中的 twig 文件中?

最佳答案

换句话说,您希望根据您的语言环境加载正确的 CSS 文件。

Twig 可以让你顺利地处理这个问题。
这是一个关于如何做到这一点的例子,

一、创建全局 app/Resources/views/base.twig.html 包含的模板

{% block head %}
{% block direction %}
    <HTML>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
{% endblock %}
    <head>
    <!-- put here your head meta data -->
{% endblock %}

然后,您可以添加基本模板的英语和波斯语(或您想要的任何语言)版本

app/Resources/views/base.en.html.twig
{% extends '::base.html.twig' %}

在基本模板的波斯版本中,由于您需要 html 的 RTL 和专门的 CSS,您需要对其设置更多详细信息,

应用程序/资源/ View /base.fa.html.twig (我猜“fa”是波斯语的语言代码)
{% extends '::base.html.twig' %}

{% block direction %}
    <HTML DIR="RTL">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
{% endblock %}
{% block stylesheet %}
    {{ parent() }}
    <!-- Add here your specified stylesheets -->
{% endblock %}

然后,使用三级固有特性,您可以根据您的语言环境从正确的基本模板中继承。这是您的布局首先应包含的内容,
{% extends '::base.' ~ app.request.locale ~ '.html.twig' %}

关于symfony - symfony2 中的模板本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13230464/

相关文章:

symfony - 在 Symfony2 的依赖注入(inject)中避免循环引用?

symfony - 在 Assetic Assets 中翻译 JavaScript 文字字符串的最佳方法是什么?

Symfony webpack encore twig 函数不起作用

php - Symfony2 - 多种形式的主题

iphone - App Store 中显示的语言错误!

php - 在 Symfony 2.0.x 中自动加载非 PSR0 库

mysql - 像phpMyAdmin 中的教义多长时间了?

symfony - 作为依赖项的 Sylius 产品包

c# - Convert.ToString(DateTime) 产生英国格式而不是美国格式

php - Laravel strftime 与 Homestead 无法正常工作