локализация 3

This commit is contained in:
MaD 2024-12-17 00:09:10 +04:00
parent 2ddd459f25
commit 5c056797a0
5 changed files with 94 additions and 16 deletions

View File

@ -4,6 +4,9 @@
"search": "Search",
"liked": "liked!",
"disliked": "disliked :<",
"heroDetailsTitle": "Hero Details",
"heroNoImage": "No image available",
"heroNoDescription": "No description available",
"arbEnding": "ЗАПЯТАЯ"
}

View File

@ -4,6 +4,9 @@
"search": "Поиск",
"liked": "нравится!",
"disliked": "не нравится :<",
"heroDetailsTitle": "Детали героя",
"heroNoImage": "Изображение недоступно",
"heroNoDescription": "Описание отсутствует",
"arbEnding": "ЗАПЯТАЯ"
}

View File

@ -72,6 +72,16 @@ abstract class AppLocale {
static const LocalizationsDelegate<AppLocale> delegate = _AppLocaleDelegate();
/// A list of this localizations delegate along with the default localizations
/// delegates.
///
/// Returns a list of localizations delegates containing this delegate along with
/// GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate,
/// and GlobalWidgetsLocalizations.delegate.
///
/// 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>>[
delegate,
GlobalMaterialLocalizations.delegate,
@ -79,19 +89,83 @@ abstract class AppLocale {
GlobalWidgetsLocalizations.delegate,
];
/// A list of this localizations delegate's supported locales.
static const List<Locale> supportedLocales = <Locale>[
Locale('en'),
Locale('ru')
];
// Существующие строки
/// No description provided for @search.
///
/// In ru, this message translates to:
/// **'Поиск'**
String get search;
String get liked;
String get disliked;
String get arbEnding;
// Новые строки для HeroDetailScreen
/// No description provided for @liked.
///
/// In ru, this message translates to:
/// **'нравится!'**
String get liked;
/// No description provided for @disliked.
///
/// In ru, this message translates to:
/// **'не нравится :<'**
String get disliked;
/// No description provided for @heroDetailsTitle.
///
/// In ru, this message translates to:
/// **'Детали героя'**
String get heroDetailsTitle;
/// No description provided for @heroNoImage.
///
/// In ru, this message translates to:
/// **'Изображение недоступно'**
String get heroNoImage;
/// No description provided for @heroNoDescription.
///
/// In ru, this message translates to:
/// **'Описание отсутствует'**
String get heroNoDescription;
/// No description provided for @arbEnding.
///
/// In ru, this message translates to:
/// **'ЗАПЯТАЯ'**
String get arbEnding;
}
class _AppLocaleDelegate extends LocalizationsDelegate<AppLocale> {
const _AppLocaleDelegate();
@override
Future<AppLocale> load(Locale locale) {
return SynchronousFuture<AppLocale>(lookupAppLocale(locale));
}
@override
bool isSupported(Locale locale) => <String>['en', 'ru'].contains(locale.languageCode);
@override
bool shouldReload(_AppLocaleDelegate old) => false;
}
AppLocale lookupAppLocale(Locale locale) {
// Lookup logic when only language code is specified.
switch (locale.languageCode) {
case 'en': return AppLocaleEn();
case 'ru': return AppLocaleRu();
}
throw FlutterError(
'AppLocale.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.'
);
}

View File

@ -15,10 +15,6 @@ class AppLocaleEn extends AppLocale {
@override
String get disliked => 'disliked :<';
@override
String get arbEnding => 'COMMA';
// Добавленные строки
@override
String get heroDetailsTitle => 'Hero Details';
@ -27,4 +23,7 @@ class AppLocaleEn extends AppLocale {
@override
String get heroNoDescription => 'No description available';
@override
String get arbEnding => 'ЗАПЯТАЯ';
}

View File

@ -15,16 +15,15 @@ class AppLocaleRu extends AppLocale {
@override
String get disliked => 'не нравится :<';
@override
String get arbEnding => 'ЗАПЯТАЯ';
// Добавленные строки
@override
String get heroDetailsTitle => 'Детали героя';
@override
String get heroNoImage => 'Изображение отсутствует';
String get heroNoImage => 'Изображение недоступно';
@override
String get heroNoDescription => 'Описание отсутствует';
@override
String get arbEnding => 'ЗАПЯТАЯ';
}