长文本翻译
Long text translation
几天前我开始使用 Symfony5,我正在试用 symfony/translation 软件包。我的问题是我使用两种语言(默认为 EN 和 PL),并希望在 twig 模板中翻译带有 HTML 标记的长文本块:
<h1>Very long text</h1>
<p>With very long paragraphs and markups</p>
我将翻译存储在 messages.pl.yaml 文件中。对于单个单词或短句,{%trans}{%endtrans} 的基本功能就足够了,但不知道如何处理。
最佳做法是为每个块级标签设置一个单独的可翻译块,但它很快变得不可读:
<h1>{% trans %}Very long text{% endtrans %}</h1>
<p>{% trans %}With very long paragraphs and markups{% endtrans %}</p>
<p>{% trans with {'%url%': homepage_url_variable} %}With very long paragraphs <a href="%url%">links</a>{% endtrans %}</p>
<p>{% trans %}With very long paragraphs and <i class="fas fa-language"></i> icons{% endtrans %}</p>
所以我建议改用翻译键:
twig template
<h1>{{ 'very_long_text'|trans }}</h1>
<p>{{ 'very_long_text_with_p_and_markups'|trans }}</p>
<p>{{ 'very_long_text_with_p_and_links'|trans({'%url%': homepage_url_variable})|raw }}</p>
<p>{{ 'very_long_text_with_p_and_icons'|trans|raw }}</p>
messages.en.yaml file:
very_long_text: Very long text
very_long_text_with_p_and_markups: With very long paragraphs and markups
very_long_text_with_p_and_links: With very long paragraphs <a href="%url%">links</a>
very_long_text_with_p_and_icons: With very long paragraphs and <i class="fas fa-language"></i> icons
缺点是UI撰稿人和翻译人员无法更改布局。
几天前我开始使用 Symfony5,我正在试用 symfony/translation 软件包。我的问题是我使用两种语言(默认为 EN 和 PL),并希望在 twig 模板中翻译带有 HTML 标记的长文本块:
<h1>Very long text</h1>
<p>With very long paragraphs and markups</p>
我将翻译存储在 messages.pl.yaml 文件中。对于单个单词或短句,{%trans}{%endtrans} 的基本功能就足够了,但不知道如何处理。
最佳做法是为每个块级标签设置一个单独的可翻译块,但它很快变得不可读:
<h1>{% trans %}Very long text{% endtrans %}</h1>
<p>{% trans %}With very long paragraphs and markups{% endtrans %}</p>
<p>{% trans with {'%url%': homepage_url_variable} %}With very long paragraphs <a href="%url%">links</a>{% endtrans %}</p>
<p>{% trans %}With very long paragraphs and <i class="fas fa-language"></i> icons{% endtrans %}</p>
所以我建议改用翻译键:
twig template
<h1>{{ 'very_long_text'|trans }}</h1>
<p>{{ 'very_long_text_with_p_and_markups'|trans }}</p>
<p>{{ 'very_long_text_with_p_and_links'|trans({'%url%': homepage_url_variable})|raw }}</p>
<p>{{ 'very_long_text_with_p_and_icons'|trans|raw }}</p>
messages.en.yaml file:
very_long_text: Very long text
very_long_text_with_p_and_markups: With very long paragraphs and markups
very_long_text_with_p_and_links: With very long paragraphs <a href="%url%">links</a>
very_long_text_with_p_and_icons: With very long paragraphs and <i class="fas fa-language"></i> icons
缺点是UI撰稿人和翻译人员无法更改布局。