|
|
|
@ -88,7 +88,8 @@ import 'flutter_quill_localizations_zh.dart'; |
|
|
|
|
/// be consistent with the languages listed in the AppLocalizations.supportedLocales |
|
|
|
|
/// property. |
|
|
|
|
abstract class AppLocalizations { |
|
|
|
|
AppLocalizations(String locale) : localeName = intl.Intl.canonicalizedLocale(locale.toString()); |
|
|
|
|
AppLocalizations(String locale) |
|
|
|
|
: localeName = intl.Intl.canonicalizedLocale(locale.toString()); |
|
|
|
|
|
|
|
|
|
final String localeName; |
|
|
|
|
|
|
|
|
@ -96,7 +97,8 @@ abstract class AppLocalizations { |
|
|
|
|
return Localizations.of<AppLocalizations>(context, AppLocalizations); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static const LocalizationsDelegate<AppLocalizations> delegate = _AppLocalizationsDelegate(); |
|
|
|
|
static const LocalizationsDelegate<AppLocalizations> delegate = |
|
|
|
|
_AppLocalizationsDelegate(); |
|
|
|
|
|
|
|
|
|
/// A list of this localizations delegate along with the default localizations |
|
|
|
|
/// delegates. |
|
|
|
@ -108,7 +110,8 @@ abstract class AppLocalizations { |
|
|
|
|
/// Additional delegates can be added by appending to this list in |
|
|
|
|
/// MaterialApp. This list does not have to be used at all if a custom list |
|
|
|
|
/// of delegates is preferred or required. |
|
|
|
|
static const List<LocalizationsDelegate<dynamic>> localizationsDelegates = <LocalizationsDelegate<dynamic>>[ |
|
|
|
|
static const List<LocalizationsDelegate<dynamic>> localizationsDelegates = |
|
|
|
|
<LocalizationsDelegate<dynamic>>[ |
|
|
|
|
delegate, |
|
|
|
|
GlobalMaterialLocalizations.delegate, |
|
|
|
|
GlobalCupertinoLocalizations.delegate, |
|
|
|
@ -592,7 +595,8 @@ abstract class AppLocalizations { |
|
|
|
|
String get caseSensitivityAndWholeWordSearch; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
class _AppLocalizationsDelegate extends LocalizationsDelegate<AppLocalizations> { |
|
|
|
|
class _AppLocalizationsDelegate |
|
|
|
|
extends LocalizationsDelegate<AppLocalizations> { |
|
|
|
|
const _AppLocalizationsDelegate(); |
|
|
|
|
|
|
|
|
|
@override |
|
|
|
@ -601,75 +605,141 @@ class _AppLocalizationsDelegate extends LocalizationsDelegate<AppLocalizations> |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@override |
|
|
|
|
bool isSupported(Locale locale) => <String>['ar', 'bg', 'bn', 'cs', 'da', 'de', 'en', 'es', 'fa', 'fr', 'he', 'hi', 'id', 'it', 'ja', 'ko', 'ms', 'nl', 'no', 'pl', 'pt', 'ru', 'sr', 'sw', 'tk', 'tr', 'uk', 'ur', 'vi', 'zh'].contains(locale.languageCode); |
|
|
|
|
bool isSupported(Locale locale) => <String>[ |
|
|
|
|
'ar', |
|
|
|
|
'bg', |
|
|
|
|
'bn', |
|
|
|
|
'cs', |
|
|
|
|
'da', |
|
|
|
|
'de', |
|
|
|
|
'en', |
|
|
|
|
'es', |
|
|
|
|
'fa', |
|
|
|
|
'fr', |
|
|
|
|
'he', |
|
|
|
|
'hi', |
|
|
|
|
'id', |
|
|
|
|
'it', |
|
|
|
|
'ja', |
|
|
|
|
'ko', |
|
|
|
|
'ms', |
|
|
|
|
'nl', |
|
|
|
|
'no', |
|
|
|
|
'pl', |
|
|
|
|
'pt', |
|
|
|
|
'ru', |
|
|
|
|
'sr', |
|
|
|
|
'sw', |
|
|
|
|
'tk', |
|
|
|
|
'tr', |
|
|
|
|
'uk', |
|
|
|
|
'ur', |
|
|
|
|
'vi', |
|
|
|
|
'zh' |
|
|
|
|
].contains(locale.languageCode); |
|
|
|
|
|
|
|
|
|
@override |
|
|
|
|
bool shouldReload(_AppLocalizationsDelegate old) => false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
AppLocalizations lookupAppLocalizations(Locale locale) { |
|
|
|
|
|
|
|
|
|
// Lookup logic when language+country codes are specified. |
|
|
|
|
switch (locale.languageCode) { |
|
|
|
|
case 'en': { |
|
|
|
|
switch (locale.countryCode) { |
|
|
|
|
case 'US': return AppLocalizationsEnUs(); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
case 'pt': { |
|
|
|
|
switch (locale.countryCode) { |
|
|
|
|
case 'BR': return AppLocalizationsPtBr(); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
case 'zh': { |
|
|
|
|
switch (locale.countryCode) { |
|
|
|
|
case 'CN': return AppLocalizationsZhCn(); |
|
|
|
|
case 'HK': return AppLocalizationsZhHk(); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
case 'en': |
|
|
|
|
{ |
|
|
|
|
switch (locale.countryCode) { |
|
|
|
|
case 'US': |
|
|
|
|
return AppLocalizationsEnUs(); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
case 'pt': |
|
|
|
|
{ |
|
|
|
|
switch (locale.countryCode) { |
|
|
|
|
case 'BR': |
|
|
|
|
return AppLocalizationsPtBr(); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
case 'zh': |
|
|
|
|
{ |
|
|
|
|
switch (locale.countryCode) { |
|
|
|
|
case 'CN': |
|
|
|
|
return AppLocalizationsZhCn(); |
|
|
|
|
case 'HK': |
|
|
|
|
return AppLocalizationsZhHk(); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Lookup logic when only language code is specified. |
|
|
|
|
switch (locale.languageCode) { |
|
|
|
|
case 'ar': return AppLocalizationsAr(); |
|
|
|
|
case 'bg': return AppLocalizationsBg(); |
|
|
|
|
case 'bn': return AppLocalizationsBn(); |
|
|
|
|
case 'cs': return AppLocalizationsCs(); |
|
|
|
|
case 'da': return AppLocalizationsDa(); |
|
|
|
|
case 'de': return AppLocalizationsDe(); |
|
|
|
|
case 'en': return AppLocalizationsEn(); |
|
|
|
|
case 'es': return AppLocalizationsEs(); |
|
|
|
|
case 'fa': return AppLocalizationsFa(); |
|
|
|
|
case 'fr': return AppLocalizationsFr(); |
|
|
|
|
case 'he': return AppLocalizationsHe(); |
|
|
|
|
case 'hi': return AppLocalizationsHi(); |
|
|
|
|
case 'id': return AppLocalizationsId(); |
|
|
|
|
case 'it': return AppLocalizationsIt(); |
|
|
|
|
case 'ja': return AppLocalizationsJa(); |
|
|
|
|
case 'ko': return AppLocalizationsKo(); |
|
|
|
|
case 'ms': return AppLocalizationsMs(); |
|
|
|
|
case 'nl': return AppLocalizationsNl(); |
|
|
|
|
case 'no': return AppLocalizationsNo(); |
|
|
|
|
case 'pl': return AppLocalizationsPl(); |
|
|
|
|
case 'pt': return AppLocalizationsPt(); |
|
|
|
|
case 'ru': return AppLocalizationsRu(); |
|
|
|
|
case 'sr': return AppLocalizationsSr(); |
|
|
|
|
case 'sw': return AppLocalizationsSw(); |
|
|
|
|
case 'tk': return AppLocalizationsTk(); |
|
|
|
|
case 'tr': return AppLocalizationsTr(); |
|
|
|
|
case 'uk': return AppLocalizationsUk(); |
|
|
|
|
case 'ur': return AppLocalizationsUr(); |
|
|
|
|
case 'vi': return AppLocalizationsVi(); |
|
|
|
|
case 'zh': return AppLocalizationsZh(); |
|
|
|
|
case 'ar': |
|
|
|
|
return AppLocalizationsAr(); |
|
|
|
|
case 'bg': |
|
|
|
|
return AppLocalizationsBg(); |
|
|
|
|
case 'bn': |
|
|
|
|
return AppLocalizationsBn(); |
|
|
|
|
case 'cs': |
|
|
|
|
return AppLocalizationsCs(); |
|
|
|
|
case 'da': |
|
|
|
|
return AppLocalizationsDa(); |
|
|
|
|
case 'de': |
|
|
|
|
return AppLocalizationsDe(); |
|
|
|
|
case 'en': |
|
|
|
|
return AppLocalizationsEn(); |
|
|
|
|
case 'es': |
|
|
|
|
return AppLocalizationsEs(); |
|
|
|
|
case 'fa': |
|
|
|
|
return AppLocalizationsFa(); |
|
|
|
|
case 'fr': |
|
|
|
|
return AppLocalizationsFr(); |
|
|
|
|
case 'he': |
|
|
|
|
return AppLocalizationsHe(); |
|
|
|
|
case 'hi': |
|
|
|
|
return AppLocalizationsHi(); |
|
|
|
|
case 'id': |
|
|
|
|
return AppLocalizationsId(); |
|
|
|
|
case 'it': |
|
|
|
|
return AppLocalizationsIt(); |
|
|
|
|
case 'ja': |
|
|
|
|
return AppLocalizationsJa(); |
|
|
|
|
case 'ko': |
|
|
|
|
return AppLocalizationsKo(); |
|
|
|
|
case 'ms': |
|
|
|
|
return AppLocalizationsMs(); |
|
|
|
|
case 'nl': |
|
|
|
|
return AppLocalizationsNl(); |
|
|
|
|
case 'no': |
|
|
|
|
return AppLocalizationsNo(); |
|
|
|
|
case 'pl': |
|
|
|
|
return AppLocalizationsPl(); |
|
|
|
|
case 'pt': |
|
|
|
|
return AppLocalizationsPt(); |
|
|
|
|
case 'ru': |
|
|
|
|
return AppLocalizationsRu(); |
|
|
|
|
case 'sr': |
|
|
|
|
return AppLocalizationsSr(); |
|
|
|
|
case 'sw': |
|
|
|
|
return AppLocalizationsSw(); |
|
|
|
|
case 'tk': |
|
|
|
|
return AppLocalizationsTk(); |
|
|
|
|
case 'tr': |
|
|
|
|
return AppLocalizationsTr(); |
|
|
|
|
case 'uk': |
|
|
|
|
return AppLocalizationsUk(); |
|
|
|
|
case 'ur': |
|
|
|
|
return AppLocalizationsUr(); |
|
|
|
|
case 'vi': |
|
|
|
|
return AppLocalizationsVi(); |
|
|
|
|
case 'zh': |
|
|
|
|
return AppLocalizationsZh(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
throw FlutterError( |
|
|
|
|
'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely ' |
|
|
|
|
'an issue with the localizations generation tool. Please file an issue ' |
|
|
|
|
'on GitHub with a reproducible sample app and the gen-l10n configuration ' |
|
|
|
|
'that was used.' |
|
|
|
|
); |
|
|
|
|
'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely ' |
|
|
|
|
'an issue with the localizations generation tool. Please file an issue ' |
|
|
|
|
'on GitHub with a reproducible sample app and the gen-l10n configuration ' |
|
|
|
|
'that was used.'); |
|
|
|
|
} |
|
|
|
|