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

Flutter使用easy_localization时LTR与RTL文本方向异常问题

问题根源定位
  • 你修改的是本地Pub缓存中easy_localization包内置的RTL语种判定数组,该文件不属于你项目的lib或assets目录,因此仅复制这两个目录到新项目仍会复现问题。
  • 你误将en、de加入RTL语种数组后,easy_localization会错误将这两个LTR语种判定为RTL方向,导致输入框文本排版异常;fr未被加入该数组,因此方向判定正常。
  • 该数组默认仅包含ar、fa、he、ps、ur五个RTL语种,无其他额外语种。
修复方案

1. 重置被修改的依赖包

执行以下命令修复本地Pub缓存,将所有依赖重置为官方原始版本:
flutter pub cache repair
如果仅需要修复easy_localization单包,也可以手动删除本地Pub缓存目录中的easy_localization文件夹,再回到项目根目录执行flutter pub get重新拉取原始版本即可恢复默认RTL数组配置。

2. 正确配置项目支持语种

不要直接修改第三方依赖源码,项目支持的语种需要在easy_localization初始化阶段配置,示例如下:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await EasyLocalization.ensureInitialized();
  
  runApp(
    EasyLocalization(
      // 此处配置项目实际支持的语种
      supportedLocales: const [
        Locale('en'),
        Locale('de'),
        Locale('fr'),
        Locale('ar'),
      ],
      path: 'assets/translations',
      fallbackLocale: const Locale('en'),
      child: const MyApp(),
    ),
  );
}

3. 验证修复

重启应用后切换en、de语种,确认文本排版方向恢复为LTR,输入框标点位置显示正常。

内容的提问来源于stack exchange,提问作者AhmedxHs

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 22:36:08