You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中使用easy_localization无法切换至越南语问题排查

问题排查与解决

1. 翻译文件命名与路径匹配

你设置了useOnlyLangCode: true,这意味着easy_localization只会根据语言代码(比如vi)加载对应命名的翻译文件,比如vi.json。请确认assets/translations目录下的越南语翻译文件是否名为vi.json,而非带国家码的vi_VN.json或其他命名。如果文件名不匹配,插件找不到对应翻译文件,会自动回退到英文。

2. 检查Locale配置正确性

越南语的标准语言代码确实是vi,所以Locale('vi')的配置是正确的,无需额外添加国家码(除非你的翻译文件是带国家码命名的,此时需要关闭useOnlyLangCode)。

3. 确认assets资源配置

检查pubspec.yaml文件中是否正确声明了翻译文件所在的资源目录,配置示例如下:

flutter:
  assets:
    - assets/translations/

如果未添加该配置,应用无法加载翻译文件,会一直显示fallback的英文。

4. 验证语言切换逻辑

确保切换语言时调用了正确方法,并且触发了UI重建:

// 示例切换代码
ElevatedButton(
  onPressed: () {
    EasyLocalization.of(context)?.setLocale(const Locale('vi'));
    // 如需强制刷新UI,可调用setState
    setState(() {});
  },
  child: const Text('切换到越南语'),
)

如果切换方法未被正确调用,或未触发UI更新,界面会保持英文显示。

5. 检查翻译文件内容

确认vi.json文件格式正确,无语法错误(比如缺少逗号、引号不匹配等),且包含所有需要翻译的key。如果文件格式错误,插件加载失败,会回退到英文。

内容的提问来源于stack exchange,提问作者Khoa Nguyễn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 12:37:03