i18n
Hiện tại, chúng tôi hỗ trợ các ngôn ngữ sau (và nhiều ngôn ngữ khác sẽ được bổ sung trong tương lai):
- Tiếng Việt
- Tiếng Anh
Cách sử dụng
import 'package:piscale_chat_flutter/piscale_chat_flutter.dart';
class App extends StatelessWidget {
const App({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp.router(
supportedLocales: const [
Locale.fromSubtags(languageCode: 'vi'),
Locale.fromSubtags(languageCode: 'en'),
],
locale: appState.locale,
localizationsDelegates: const [
PSChatLocalizationsNNDelegate.delegate,
PSChatLocalizationsDelegate.delegate,
...,
],
builder: (context, child) {
return PSChat(
userId: 'USER_ID',
deviceId: 'DEVICE_ID',
apiClientOptions: PSChatApiClientOptions(
appId: 'APP_ID',
fetchToken: fetchToken,
),
child: child,
);
},
);
}
}
Thay đổi ngôn ngữ
Hãy thay đổi ở AppState của bạn.
Thêm ngôn ngữ
import 'package:piscale_chat_flutter/piscale_chat_flutter.dart';
import 'package:flutter/foundation.dart';
class PSChatLocalizationsNNDelegate
extends LocalizationsDelegate<PSTranslations> {
const PSChatLocalizationsNNDelegate();
static const delegate = PSChatLocalizationsNNDelegate();
@override
bool isSupported(Locale locale) => locale.languageCode == 'nn';
@override
Future<PSTranslations> load(Locale locale) =>
SynchronousFuture(const PSChatLocalizationsNn());
@override
bool shouldReload(PSChatLocalizationsNNDelegate old) => false;
}
class PSChatLocalizationsNn extends PSTranslations {
const PSChatLocalizationsNn({super.localeName = 'nn'});
...
}