怎样配置Twig实现多语言国际化

冬伟大大_7937

冬伟大大_7937

2026-08-09

729人浏览

原创

要在twig模板中正确显示多语言文本,必须启用symfony translation组件并配置translation.yaml启用翻译器、设置default_locale;在translations/目录下按locale创建messages.en.yaml和messages.zh.yaml等翻译文件;模板中用{{ 'app.welcome'|trans }}调用翻译,支持域指定和占位符传参;通过session存储locale并配合路由与链接实现动态语言切换。

怎样配置twig实现多语言国际化

要在Twig模板中正确显示不同语言的文本,必须让Symfony的翻译组件与Twig协同工作,而不是在模板里硬编码多语种内容或调用外部API实时翻译。

安装并启用Symfony Translation组件

执行命令安装翻译组件:composer require symfony/translation

确保config/packages/translation.yaml存在且内容包含framework.translator: { enabled: true };若该文件不存在,手动创建并写入此配置。

【必须设置default_locale参数,否则trans()函数无法识别当前语言环境】

准备翻译资源文件

在项目根目录下创建translations/子目录。

新建translations/messages.en.yaml,写入英文键值对,例如:app.welcome: "Welcome to our site"

新建translations/messages.zh.yaml,对应写入中文:app.welcome: "欢迎访问我们的网站"

文件名中的messages是默认域(domain),enzh是locale标识符,扩展名.yaml表示loader类型——Twig会自动识别并加载这些文件。

在Twig模板中使用翻译函数

直接在模板中调用{{ 'app.welcome'|trans }}即可输出当前locale对应的翻译文本。

Symfony Linux版
Symfony Linux版

Symfony Linux版整理 Symfony CLI 5.17.1 官方下载入口和 Symfony 框架安装配置说明。

下载

若需指定非默认域,例如使用admin域,则写成{{ 'admin.title'|trans(domain='admin') }}

传参翻译支持占位符:定义messages.en.yaml中为user.greeting: "Hello %name%!",模板中写{{ 'user.greeting'|trans({ '%name%': 'Alice' }) }},结果为Hello Alice!

注意:占位符必须严格匹配,包括空格和标点;%NAME%% name %均不会被替换。

动态切换语言环境

第一步:在config/packages/framework.yaml中确认已启用sessiontranslator

第二步:添加路由接收语言代码,例如/locale/{locale},控制器中执行$request->getSession()->set('_locale', $locale)

第三步:在Twig模板顶部加入语言切换链接:@#@#@#@#@#@#@#@#@#@0 | @#@#@#@#@#@#@#@#@#@1

第四步:确保framework.yamldefault_locale设为'%locale%',并在config/services.yaml中定义locale: 'en'作为兜底值。

这一步操作起来很简单,直接把文件拖进去就行。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Aionclaw智能助手介绍
Aionclaw智能助手介绍

本专题汇总了AionClaw(AI龙虾助手)的功能介绍与在线使用入口。AionClaw是杭州趣猿人工智能有限公司推出的桌面级AI智能体,能直接在电脑上读写文件、运行脚本、操作浏览器,自动交付Word、PPT、Excel等成品。

2026.09.20

0

13

AionClaw AI智能体与电脑自动化任务执行功能使用教程
AionClaw AI智能体与电脑自动化任务执行功能使用教程

AionClaw专题整理AI智能体与电脑自动化相关功能使用教程,涵盖安装部署、AI任务执行、Skills技能、文件处理、浏览器控制、电脑操作、持久记忆、聊天工具连接以及办公、编程和内容创作等功能,帮助用户快速掌握AionClaw的实际使用方法。

2026.09.20

0

15

AI视频生成软件推荐
AI视频生成软件推荐

本专题汇总了当前主流的AI视频生成软件推荐与排行榜单,涵盖seko、AniShort、剧云、Lovart、LiblibAI及立刻mv等热门工具。同时整理了各软件在文生视频、图生视频、时长限制、画质表现及免费额度等方面的差异对比,助您快速选对适合创作需求的AI视频生成工具。

2026.09.16

160

9

ai生成视频的工具免费版合集
ai生成视频的工具免费版合集

本专题汇总了当前免费AI生成视频工具的排行榜与推荐清单,涵盖seko、讯飞智作、AniShort及剧云、Lovart等多模型集成平台。同时整理了各工具的免费额度、输出时长、水印政策及适用场景差异,助您快速选择合适工具开启AI视频创作。

2026.09.16

60

10

Pandas时间序列分析与可视化报表
Pandas时间序列分析与可视化报表

本专题整理Pandas日期转换、时间索引、重采样、滚动窗口、时区处理、plot绘图、Styler表格样式和报表输出方法。

2026.09.16

80

23

Pandas数据筛选索引与清洗处理
Pandas数据筛选索引与清洗处理

本专题整理Pandas中的loc、iloc、条件筛选、query查询、缺失值处理、重复值删除、类型转换和字符串列清洗方法。

2026.09.16

60

25

Pandas数据读取导入与文件导出处理
Pandas数据读取导入与文件导出处理

本专题整理Pandas读取CSV、Excel、JSON、SQL、Parquet等文件的方法,以及to_csv、to_excel、to_sql和to_parquet等常用数据导出流程。

2026.09.16

40

27

GDB怎么设置断点
GDB怎么设置断点

本专题介绍GDB按照函数名、源代码行号和文件位置设置断点的方法,详细说明run、continue、next、step等命令的配合使用,帮助定位程序崩溃、逻辑异常及代码未按预期执行的问题。

2026.09.11

380

28

GDB怎么查看变量值
GDB怎么查看变量值

本专题介绍GDB调试过程中查看变量值的具体方法,涵盖局部变量、函数参数、数组、结构体和指针内容查询,同时整理变量持续显示、格式化输出及无法读取变量时的排查思路。

2026.09.11

120

22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Visual Studio 新手学习
Visual Studio 新手学习

共0课时 | 0人学习

可灵 VIDEO 3.0官方使用手册
可灵 VIDEO 3.0官方使用手册

共0课时 | 0人学习

Codex官方文档
Codex官方文档

共0课时 | 0人学习