国际化
小于 1 分钟
Flutter 集成文档
国际化
ChatUIKit 提供国际化功能,默认支持中文和英文。
添加国际化文件
class MyApp extends StatelessWidget {
  MyApp({super.key});
  final ChatUIKitLocalizations _localization = ChatUIKitLocalizations();
  
  Widget build(BuildContext context) {
    return MaterialApp(
      localizationsDelegates: _localization.localizationsDelegates,
      supportedLocales: _localization.supportedLocales,
    );
  }
}
当 app 使用的语言超过我们提供的语言范围时,可以设置默认语言,即中文或英文:
_localization.displayLanguageWhenNotSupported = const Locale('en');
添加新语言
可以通过 ChatUIKitLocalizations.addLocales 方法扩展国际化支持的语言,对应文字的常量定义在 ChatUIKitLocal 文件中。你可以添加自己的 ChatLocal 对象传入到 ChatUIKitLocalizations 中实现国际化。
例如,你可以通过以下方式添加法语支持:
class _MyAppState extends State<MyApp> {
  final ChatUIKitLocalizations _localization =
      ChatUIKitLocalizations();
  
  void initState() {
    super.initState();
    _localization.addLocales(locales: const [
      ChatLocal('fr', {
        ChatUIKitLocal.conversationsViewSearchHint: 'Recherche',
        // 需要根据ChatUIKitLocal中的定义将文字补充完整。
        ...
      })
    ]);
    // 添加语言后需要进行resetLocales操作
    _localization.resetLocales();
  }
  
  Widget build(BuildContext context) {
    return MaterialApp(
      localizationsDelegates: _localization.localizationsDelegates,
      supportedLocales: _localization.supportedLocales,
      localeResolutionCallback:_localization.localeResolutionCallback,
      ...
    );
  }
}