fluintl

Fultter App 国际化/多语言. A Flutter Internationalization packages.

Github星跟蹤圖

README of English

fluintl (Flutter 国际化)

Pub

fluintl 是一个为应用提供国际化的库,可快速集成实现应用多语言。该库封装了一个国际化支持类,通过提供统一方法getString(id)获取字符串。CustomLocalizations多语言支持类。LBaseState可简洁获取字符串。

使用方式:

dependencies:
  fluintl: ^0.1.3  

v0.1.3(2019.03.25)

支持复用。

 //替换字符串格式要求:'%\${index}\$s' ,{index} 第几个参数,从0开始。

 Ids.click_times: '%\$0\$s点击了%\$1\$s次',   
   
 IntlUtil.getString(context, Ids.click_times, params: ['Tom', '$_counter'])  
 // print: Tom点击了0次

使用步骤:

1.创建多语言资源字符串id管理类Ids 和 多语言资源Map

///多语言资源id管理类.  
class Ids {  
  static String titleHome = 'title_home'; 
}  
///简单多语言资源.  
Map<String, Map<String, String>> localizedSimpleValues = {  
  'en': {    
    Ids.titleHome: 'Home',  
  },  
  'zh': {    
    Ids.titleHome: '主页',  
  },  
};  
///多语言资源.  
Map<String, Map<String, Map<String, String>>> localizedValues = {  
  'en': {  
    'US': {  
      Ids.titleHome: 'Home',  
    }  
  },  
  'zh': {  
    'CN': {  
      Ids.titleHome: '主页',  
    },  
    'HK': {  
      Ids.titleHome: '主頁',  
    },  
  }  
};  

2.在MyApp initState配置多语言资源(可配置通用或简单多语言资源,二选一)

  void initState() {    
    super.initState();      
//    setLocalizedSimpleValues(localizedSimpleValues);//配置简单多语言资源  
    setLocalizedValues(localizedValues); //配置多语言资源      
  }   

3.在MaterialApp指定localizationsDelegates和supportedLocales:

MaterialApp(  
   home: MyHomePage(),  
   localizationsDelegates: [  
   GlobalMaterialLocalizations.delegate,  
   GlobalWidgetsLocalizations.delegate,  
   CustomLocalizations.delegate //设置本地化代理     
   ],  
   supportedLocales: CustomLocalizations.supportedLocales,//设置支持本地化语言集合     
);  

4.字符串获取

 IntlUtil.getString(context, Ids.titleHome);
 IntlUtil.getString(context, Ids.titleHome, params: [param1, param2]); 
 CustomLocalizations.of(context).getString(Ids.titleHome)

5.其他(不推荐使用)

 //在主页初始化.
 class _MyHomePageState extends State<MyHomePage> {
  Widget build(BuildContext context) {
    CustomLocalizations.init(context);
    ...
  }

 // 字符串获取
 CustomLocalizations.instance.getString(Ids.titleHome)
 extends or with LBaseState()  (MyHomePageState不能使用)
 cl.getString(Ids.titleHome)

6.应用国际化详细使用请参考flutter_wanandroidApp。
Q:Flutter国际化系统切换iOS不生效问题?
A:在Xcode项目Localizations下添加支持语言即可,原文

Add dependency

dependencies:
  flutter_localizations:
    sdk: flutter  
    
  fluintl: x.x.x  #latest version

APIs

setLocalizedSimpleValues(values)                    : 配置简单多语言资源.
setLocalizedValues(values)                          : 配置多语言资源.
CustomLocalizations.delegate                        : 自定义本地化代理.
CustomLocalizations.supportedLocales                : 本地支持的语言环境.
CustomLocalizations.of(context)                     : 获取CustomLocalizations.
getString(id, {languageCode, countryCode, params})  : 通过id获取字符串,可指定languageCode,countryCode.
IntlUtil.getString(context, id, params)             : 通过id获取字符串,可指定languageCode,countryCode.

//不推荐使用
CustomLocalizations.init(context)                   : 自定义本地化代理初始化.(在MyHomePage初始化)
LBaseState (extends or with LBaseState)             : 可方便简洁获取字符串
cl.getString(id).(MyHomePage不能使用)

Example

Demo: flutter_wanandroid.

APK:点击下载 v0.1.x

APK QR:

flutter_wanandroid

Screenshot

image

image

关于作者

GitHub : Sky24n
简书     : Sky24n
掘金     : Sky24n
Pub      : Sky24n
Email   : 863764940@qq.com
如果您觉得本项目不错的话,来个star支持下作者吧!

Flutter全局屏幕适配 auto_size

GitHub stars GitHub forks GitHub watchers

Flutter版玩安卓 flutter_wanandroid

GitHub stars GitHub forks GitHub watchers

Flutter仿滴滴出行 GreenTravel

GitHub stars GitHub forks GitHub watchers

Flutter常用工具类库 flustars

GitHub stars GitHub forks GitHub watchers

Dart常用工具类库 common_utils

GitHub stars GitHub forks GitHub watchers

Flutter城市列表 azlistview

GitHub stars GitHub forks GitHub watchers

Flutter汉字转拼音库 lpinyin

GitHub stars GitHub forks GitHub watchers

Flutter国际化库 fluintl

GitHub stars GitHub forks GitHub watchers

主要指標

概覽
名稱與所有者Sky24n/fluintl
主編程語言Dart
編程語言Dart (語言數: 5)
平台
許可證BSD 2-Clause "Simplified" License
所有者活动
創建於2018-10-11 16:24:39
推送於2021-04-14 09:41:46
最后一次提交2021-04-14 17:41:46
發布數0
用户参与
星數124
關注者數9
派生數8
提交數37
已啟用問題?
問題數7
打開的問題數2
拉請求數0
打開的拉請求數0
關閉的拉請求數0
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?