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) {
final apiUrl = session.getQualifiedApiUrl(baseUrl: _dynamicUrlInterceptors.jmapUrl);;
final apiUrl = session.getQualifiedApiUrl(baseUrl: _dynamicUrlInterceptors.jmapUrl);
log('ReloadableController::updateAuthenticationAccount():apiUrl: $apiUrl');
if (apiUrl.isNotEmpty) {
consumeState(_updateAuthenticationAccountInteractor.execute(accountId, apiUrl, userName));
@@ -61,7 +61,7 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
children: [
SizedBox(
width: ResponsiveUtils.defaultSizeLeftMenuMobile,
child: _buildScaffoldHaveDrawer(body: SendingQueueView())),
child: _buildScaffoldHaveDrawer(body: const SendingQueueView())),
Expanded(child: EmailView()),
],
);
@@ -70,7 +70,7 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
desktop: bodyView,
tabletLarge: bodyView,
landscapeTablet: bodyView,
mobile: _buildScaffoldHaveDrawer(body: SendingQueueView()));
mobile: _buildScaffoldHaveDrawer(body: const SendingQueueView()));
case DashboardRoutes.waiting:
return const Center(
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:get/get.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 {
static const defaultLocale = Locale('en', 'US');
static const fallbackLocale = Locale('en', 'US');
static const defaultLocale = Locale(LanguageCodeConstants.english, 'US');
static const fallbackLocale = Locale(LanguageCodeConstants.english, 'US');
static final supportedLanguageCodes = [
'fr',
'en',
'vi',
'ru',
'ar',
'it'
LanguageCodeConstants.french,
LanguageCodeConstants.english,
LanguageCodeConstants.vietnamese,
LanguageCodeConstants.russian,
LanguageCodeConstants.arabic,
LanguageCodeConstants.italian
];
static const List<Locale> supportedLocales = [
Locale('fr', 'FR'),
Locale('en', 'US'),
Locale('vi', 'VN'),
Locale('ru', 'RU'),
Locale('ar', 'TN'),
Locale('it', 'IT')
Locale(LanguageCodeConstants.french, 'FR'),
Locale(LanguageCodeConstants.english, 'US'),
Locale(LanguageCodeConstants.vietnamese, 'VN'),
Locale(LanguageCodeConstants.russian, 'RU'),
Locale(LanguageCodeConstants.arabic, 'TN'),
Locale(LanguageCodeConstants.italian, 'IT')
];
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/services.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/language_code_constants.dart';
import 'package:tmail_ui_user/main/utils/app_config.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:intl/intl.dart' as intl;
import 'package:date_format/date_format.dart' as date_format;
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();
}
}
}