Flutter国际化intl

使用:

flutter pub add intl
还需要添加:
flutter_localizations: # Add this line
    sdk: flutter         # Add this line
  1. 使用vscode插件 Flutter Intl


    1669106290349.jpg
  2. Ctrl+Shift+p (windows)打开控制台 选择输出化,成功后会生成。这里默认只能生成英文库


    image.png
  3. Ctrl+Shift+p (windows)打开控制台 选择添加中文库,输入 zh。会自动生成I10n的arb文件
  4. 修改对应arb文件添加字符串,保存会自动生成相应文件无需手动操作


    image.png
  5. 使用
          return MaterialApp(
            builder: EasyLoading.init(),
            routes: AppRouter.routeMaps,
            title: 'TOUR_GUIDE',
            theme: ThemeData(
              primarySwatch: Colors.blue,
            ),
            localizationsDelegates: const [
              S.delegate,
              GlobalMaterialLocalizations.delegate,
              GlobalWidgetsLocalizations.delegate,
              GlobalCupertinoLocalizations.delegate,
            ],
            //设置初始语言
            locale: const Locale('en', ''), 
            supportedLocales: const [
              Locale('en', ''), // English, no country code
              Locale('zh', ''), // Chinese, no country code
            ],
          );

    //需要使用的地方调用S().home,
   TabIconModel(
        title: S().home,
        image: 'assets/images/home.png',
        selectImage: 'assets/images/home_sd.png'),

每次保存会自动在S类生成对应get方法
image.png
  1. 切换语言
///通过S load方法修改语言
S.load(const Locale('zh', ''));
  1. 注意的地方
    貌似不支持嵌套,不知道是打开的方式不对,还是不支持。有知道的可以交流一波

你可能感兴趣的:(Flutter国际化intl)