TF-2040 Add LanguageCodeConstants to manage language supported

(cherry picked from commit de57a6a8a43c18e1deed057d6a0e12c06c2bb1fe)
This commit is contained in:
dab246
2023-07-25 19:54:56 +07:00
committed by Dat Vu
parent b2e5b29dc0
commit 6f1ef2e645
5 changed files with 49 additions and 17 deletions
@@ -140,7 +140,7 @@ abstract class ReloadableController extends BaseController {
} }
void updateAuthenticationAccount(Session session, AccountId accountId, UserName userName) { void updateAuthenticationAccount(Session session, AccountId accountId, UserName userName) {
final apiUrl = session.getQualifiedApiUrl(baseUrl: _dynamicUrlInterceptors.jmapUrl);; final apiUrl = session.getQualifiedApiUrl(baseUrl: _dynamicUrlInterceptors.jmapUrl);
log('ReloadableController::updateAuthenticationAccount():apiUrl: $apiUrl'); log('ReloadableController::updateAuthenticationAccount():apiUrl: $apiUrl');
if (apiUrl.isNotEmpty) { if (apiUrl.isNotEmpty) {
consumeState(_updateAuthenticationAccountInteractor.execute(accountId, apiUrl, userName)); consumeState(_updateAuthenticationAccountInteractor.execute(accountId, apiUrl, userName));
@@ -61,7 +61,7 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
children: [ children: [
SizedBox( SizedBox(
width: ResponsiveUtils.defaultSizeLeftMenuMobile, width: ResponsiveUtils.defaultSizeLeftMenuMobile,
child: _buildScaffoldHaveDrawer(body: SendingQueueView())), child: _buildScaffoldHaveDrawer(body: const SendingQueueView())),
Expanded(child: EmailView()), Expanded(child: EmailView()),
], ],
); );
@@ -70,7 +70,7 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
desktop: bodyView, desktop: bodyView,
tabletLarge: bodyView, tabletLarge: bodyView,
landscapeTablet: bodyView, landscapeTablet: bodyView,
mobile: _buildScaffoldHaveDrawer(body: SendingQueueView())); mobile: _buildScaffoldHaveDrawer(body: const SendingQueueView()));
case DashboardRoutes.waiting: case DashboardRoutes.waiting:
return const Center( return const Center(
child: SizedBox( child: SizedBox(
@@ -0,0 +1,9 @@
class LanguageCodeConstants {
static const String english = 'en';
static const String french = 'fr';
static const String vietnamese = 'vi';
static const String italian = 'it';
static const String russian = 'ru';
static const String arabic = 'ar';
}
@@ -4,28 +4,29 @@ import 'dart:ui';
import 'package:core/utils/app_logger.dart'; import 'package:core/utils/app_logger.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:tmail_ui_user/features/manage_account/data/local/language_cache_manager.dart'; import 'package:tmail_ui_user/features/manage_account/data/local/language_cache_manager.dart';
import 'package:tmail_ui_user/main/localizations/language_code_constants.dart';
class LocalizationService extends Translations { class LocalizationService extends Translations {
static const defaultLocale = Locale('en', 'US'); static const defaultLocale = Locale(LanguageCodeConstants.english, 'US');
static const fallbackLocale = Locale('en', 'US'); static const fallbackLocale = Locale(LanguageCodeConstants.english, 'US');
static final supportedLanguageCodes = [ static final supportedLanguageCodes = [
'fr', LanguageCodeConstants.french,
'en', LanguageCodeConstants.english,
'vi', LanguageCodeConstants.vietnamese,
'ru', LanguageCodeConstants.russian,
'ar', LanguageCodeConstants.arabic,
'it' LanguageCodeConstants.italian
]; ];
static const List<Locale> supportedLocales = [ static const List<Locale> supportedLocales = [
Locale('fr', 'FR'), Locale(LanguageCodeConstants.french, 'FR'),
Locale('en', 'US'), Locale(LanguageCodeConstants.english, 'US'),
Locale('vi', 'VN'), Locale(LanguageCodeConstants.vietnamese, 'VN'),
Locale('ru', 'RU'), Locale(LanguageCodeConstants.russian, 'RU'),
Locale('ar', 'TN'), Locale(LanguageCodeConstants.arabic, 'TN'),
Locale('it', 'IT') Locale(LanguageCodeConstants.italian, 'IT')
]; ];
static final locale = _getLocaleFromLanguage(); static final locale = _getLocaleFromLanguage();
+22
View File
@@ -2,10 +2,13 @@ import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:get/get.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
import 'package:tmail_ui_user/main/localizations/language_code_constants.dart';
import 'package:tmail_ui_user/main/utils/app_config.dart'; import 'package:tmail_ui_user/main/utils/app_config.dart';
import 'package:url_launcher/url_launcher.dart'; import 'package:url_launcher/url_launcher.dart';
import 'package:intl/intl.dart' as intl; import 'package:intl/intl.dart' as intl;
import 'package:date_format/date_format.dart' as date_format;
class AppUtils { class AppUtils {
@@ -48,4 +51,23 @@ class AppUtils {
); );
}); });
} }
static date_format.DateLocale getCurrentDateLocale() {
final currentLanguageCode = Get.locale?.languageCode;
if (currentLanguageCode == LanguageCodeConstants.french) {
return const date_format.FrenchDateLocale();
} else if (currentLanguageCode == LanguageCodeConstants.english) {
return const date_format.EnglishDateLocale();
} else if (currentLanguageCode == LanguageCodeConstants.vietnamese) {
return const date_format.VietnameseDateLocale();
} else if (currentLanguageCode == LanguageCodeConstants.russian) {
return const date_format.RussianDateLocale();
} else if (currentLanguageCode == LanguageCodeConstants.arabic) {
return const date_format.ArabicDateLocale();
} else if (currentLanguageCode == LanguageCodeConstants.italian) {
return const date_format.ItalianDateLocale();
} else {
return const date_format.EnglishDateLocale();
}
}
} }