国际化
小于 1 分钟
UIKit-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,
...
);
}
}