Skip to main content

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'});

...
}