import 'dart:async'; import 'package:flutter/foundation.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:intl/intl.dart' as intl; import 'app_localizations_en.dart'; import 'app_localizations_ru.dart'; // ignore_for_file: type=lint /// Callers can lookup localized strings with an instance of AppLocalizations /// returned by `AppLocalizations.of(context)`. /// /// Applications need to include `AppLocalizations.delegate()` in their app's /// `localizationDelegates` list, and the locales they support in the app's /// `supportedLocales` list. For example: /// /// ```dart /// import 'l10n/app_localizations.dart'; /// /// return MaterialApp( /// localizationsDelegates: AppLocalizations.localizationsDelegates, /// supportedLocales: AppLocalizations.supportedLocales, /// home: MyApplicationHome(), /// ); /// ``` /// /// ## Update pubspec.yaml /// /// Please make sure to update your pubspec.yaml to include the following /// packages: /// /// ```yaml /// dependencies: /// # Internationalization support. /// flutter_localizations: /// sdk: flutter /// intl: any # Use the pinned version from flutter_localizations /// /// # Rest of dependencies /// ``` /// /// ## iOS Applications /// /// iOS applications define key application metadata, including supported /// locales, in an Info.plist file that is built into the application bundle. /// To configure the locales supported by your app, you’ll need to edit this /// file. /// /// First, open your project’s ios/Runner.xcworkspace Xcode workspace file. /// Then, in the Project Navigator, open the Info.plist file under the Runner /// project’s Runner folder. /// /// Next, select the Information Property List item, select Add Item from the /// Editor menu, then select Localizations from the pop-up menu. /// /// Select and expand the newly-created Localizations item then, for each /// locale your application supports, add a new item and select the locale /// you wish to add from the pop-up menu in the Value field. This list should /// be consistent with the languages listed in the AppLocalizations.supportedLocales /// property. abstract class AppLocalizations { AppLocalizations(String locale) : localeName = intl.Intl.canonicalizedLocale(locale.toString()); final String localeName; static AppLocalizations? of(BuildContext context) { return Localizations.of(context, AppLocalizations); } static const LocalizationsDelegate delegate = _AppLocalizationsDelegate(); /// 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> localizationsDelegates = >[ delegate, GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate, GlobalWidgetsLocalizations.delegate, ]; /// A list of this localizations delegate's supported locales. static const List supportedLocales = [ Locale('en'), Locale('ru') ]; /// No description provided for @appTitle. /// /// In ru, this message translates to: /// **'Мессенджер'** String get appTitle; /// No description provided for @chats. /// /// In ru, this message translates to: /// **'Чаты'** String get chats; /// No description provided for @favorites. /// /// In ru, this message translates to: /// **'Избранное'** String get favorites; /// No description provided for @contacts. /// /// In ru, this message translates to: /// **'Контакты'** String get contacts; /// No description provided for @settings. /// /// In ru, this message translates to: /// **'Настройки'** String get settings; /// No description provided for @login. /// /// In ru, this message translates to: /// **'Вход'** String get login; /// No description provided for @username. /// /// In ru, this message translates to: /// **'Логин'** String get username; /// No description provided for @password. /// /// In ru, this message translates to: /// **'Пароль'** String get password; /// No description provided for @name. /// /// In ru, this message translates to: /// **'Имя'** String get name; /// No description provided for @loginButton. /// /// In ru, this message translates to: /// **'Войти'** String get loginButton; /// No description provided for @register. /// /// In ru, this message translates to: /// **'Зарегистрироваться'** String get register; /// No description provided for @noAccount. /// /// In ru, this message translates to: /// **'Нет аккаунта? Зарегистрироваться'** String get noAccount; /// No description provided for @logout. /// /// In ru, this message translates to: /// **'Выйти из аккаунта'** String get logout; /// No description provided for @serverSettings. /// /// In ru, this message translates to: /// **'Настройки сервера'** String get serverSettings; /// No description provided for @apiUrl. /// /// In ru, this message translates to: /// **'Адрес API'** String get apiUrl; /// No description provided for @apiUrlHint. /// /// In ru, this message translates to: /// **'https://api.example.com'** String get apiUrlHint; /// No description provided for @save. /// /// In ru, this message translates to: /// **'Сохранить'** String get save; /// No description provided for @serverConfig. /// /// In ru, this message translates to: /// **'Конфигурация сервера'** String get serverConfig; /// No description provided for @system. /// /// In ru, this message translates to: /// **'Система'** String get system; /// No description provided for @stories. /// /// In ru, this message translates to: /// **'Истории'** String get stories; /// No description provided for @chatsModule. /// /// In ru, this message translates to: /// **'Чаты'** String get chatsModule; /// No description provided for @messages. /// /// In ru, this message translates to: /// **'Сообщения'** String get messages; /// No description provided for @calls. /// /// In ru, this message translates to: /// **'Звонки'** String get calls; /// No description provided for @klipy. /// /// In ru, this message translates to: /// **'Клипы'** String get klipy; /// No description provided for @import. /// /// In ru, this message translates to: /// **'Импорт'** String get import; /// No description provided for @federation. /// /// In ru, this message translates to: /// **'Федерация'** String get federation; /// No description provided for @domainUrl. /// /// In ru, this message translates to: /// **'Домен'** String get domainUrl; /// No description provided for @registrationStatus. /// /// In ru, this message translates to: /// **'Регистрация'** String get registrationStatus; /// No description provided for @enabled. /// /// In ru, this message translates to: /// **'Включено'** String get enabled; /// No description provided for @disabled. /// /// In ru, this message translates to: /// **'Отключено'** String get disabled; /// No description provided for @language. /// /// In ru, this message translates to: /// **'Язык'** String get language; /// No description provided for @russian. /// /// In ru, this message translates to: /// **'Русский'** String get russian; /// No description provided for @english. /// /// In ru, this message translates to: /// **'English'** String get english; /// No description provided for @notifications. /// /// In ru, this message translates to: /// **'Уведомления'** String get notifications; /// No description provided for @privacy. /// /// In ru, this message translates to: /// **'Конфиденциальность'** String get privacy; /// No description provided for @soundsAndVibration. /// /// In ru, this message translates to: /// **'Звуки и вибрация'** String get soundsAndVibration; /// No description provided for @dataAndStorage. /// /// In ru, this message translates to: /// **'Данные и память'** String get dataAndStorage; /// No description provided for @aboutApp. /// /// In ru, this message translates to: /// **'О приложении'** String get aboutApp; /// No description provided for @help. /// /// In ru, this message translates to: /// **'Помощь'** String get help; /// No description provided for @version. /// /// In ru, this message translates to: /// **'Версия'** String get version; /// No description provided for @loading. /// /// In ru, this message translates to: /// **'Загрузка...'** String get loading; /// No description provided for @error. /// /// In ru, this message translates to: /// **'Ошибка'** String get error; /// No description provided for @retry. /// /// In ru, this message translates to: /// **'Повторить'** String get retry; /// No description provided for @noChats. /// /// In ru, this message translates to: /// **'У вас пока нет чатов'** String get noChats; /// No description provided for @inDevelopment. /// /// In ru, this message translates to: /// **'Функция в разработке'** String get inDevelopment; /// No description provided for @user. /// /// In ru, this message translates to: /// **'Пользователь'** String get user; /// No description provided for @edit. /// /// In ru, this message translates to: /// **'Редактировать'** String get edit; /// No description provided for @serverConnectionError. /// /// In ru, this message translates to: /// **'Ошибка подключения к серверу'** String get serverConnectionError; /// No description provided for @connected. /// /// In ru, this message translates to: /// **'Подключено'** String get connected; /// No description provided for @unknownError. /// /// In ru, this message translates to: /// **'Неизвестная ошибка'** String get unknownError; /// No description provided for @networkError. /// /// In ru, this message translates to: /// **'Ошибка сети'** String get networkError; /// No description provided for @serverError. /// /// In ru, this message translates to: /// **'Ошибка сервера'** String get serverError; /// No description provided for @parsingError. /// /// In ru, this message translates to: /// **'Ошибка обработки данных'** String get parsingError; /// No description provided for @voice. /// /// In ru, this message translates to: /// **'Голосовые вызовы'** String get voice; /// No description provided for @video. /// /// In ru, this message translates to: /// **'Видеовызовы'** String get video; /// No description provided for @lifetime. /// /// In ru, this message translates to: /// **'Время жизни'** String get lifetime; /// No description provided for @groups. /// /// In ru, this message translates to: /// **'Группы'** String get groups; /// No description provided for @maxParticipants. /// /// In ru, this message translates to: /// **'Макс. участников'** String get maxParticipants; /// No description provided for @hours. /// /// In ru, this message translates to: /// **'ч.'** String get hours; /// No description provided for @dailyLimit. /// /// In ru, this message translates to: /// **'Дневной лимит'** String get dailyLimit; /// No description provided for @historyLimit. /// /// In ru, this message translates to: /// **'Лимит истории'** String get historyLimit; /// No description provided for @maxFileSize. /// /// In ru, this message translates to: /// **'Макс. файл'** String get maxFileSize; /// No description provided for @noLimit. /// /// In ru, this message translates to: /// **'Без лимита'** String get noLimit; /// No description provided for @allowForwarding. /// /// In ru, this message translates to: /// **'Пересылка'** String get allowForwarding; /// No description provided for @allowReactions. /// /// In ru, this message translates to: /// **'Реакции'** String get allowReactions; /// No description provided for @allowReplies. /// /// In ru, this message translates to: /// **'Ответы'** String get allowReplies; /// No description provided for @allowQuoting. /// /// In ru, this message translates to: /// **'Цитирование'** String get allowQuoting; /// No description provided for @allowMessageDeletion. /// /// In ru, this message translates to: /// **'Удаление'** String get allowMessageDeletion; /// No description provided for @forbidCopying. /// /// In ru, this message translates to: /// **'Запрет копирования'** String get forbidCopying; /// No description provided for @allowLinks. /// /// In ru, this message translates to: /// **'Ссылки'** String get allowLinks; /// No description provided for @allowPolls. /// /// In ru, this message translates to: /// **'Опросы'** String get allowPolls; /// No description provided for @allowPinning. /// /// In ru, this message translates to: /// **'Закрепы'** String get allowPinning; /// No description provided for @allowMedia. /// /// In ru, this message translates to: /// **'Медиа'** String get allowMedia; /// No description provided for @description. /// /// In ru, this message translates to: /// **'Описание'** String get description; /// No description provided for @server. /// /// In ru, this message translates to: /// **'Сервер'** String get server; /// No description provided for @notSpecified. /// /// In ru, this message translates to: /// **'не указан'** String get notSpecified; /// No description provided for @settingsSaved. /// /// In ru, this message translates to: /// **'Настройки сохранены'** String get settingsSaved; /// No description provided for @enterUsername. /// /// In ru, this message translates to: /// **'Введите логин'** String get enterUsername; /// No description provided for @invalidUsername. /// /// In ru, this message translates to: /// **'Логин должен быть от 3 символов и без кириллицы'** String get invalidUsername; /// No description provided for @loginFailed. /// /// In ru, this message translates to: /// **'Ошибка входа. Проверьте логин и пароль'** String get loginFailed; /// No description provided for @registrationFailed. /// /// In ru, this message translates to: /// **'Ошибка регистрации'** String get registrationFailed; /// No description provided for @online. /// /// In ru, this message translates to: /// **'в сети'** String get online; /// No description provided for @lastSeen. /// /// In ru, this message translates to: /// **'был(а) в сети {date} в {time}'** String lastSeen(Object date, Object time); /// No description provided for @lastSeenRelative. /// /// In ru, this message translates to: /// **'был(а) {hours} ч. {minutes} мин. назад'** String lastSeenRelative(Object hours, Object minutes); /// No description provided for @lastSeenRelativeMinutes. /// /// In ru, this message translates to: /// **'был(а) {minutes} мин. назад'** String lastSeenRelativeMinutes(Object minutes); /// No description provided for @lastSeenJustNow. /// /// In ru, this message translates to: /// **'был(а) только что'** String get lastSeenJustNow; /// No description provided for @lastSeenYesterday. /// /// In ru, this message translates to: /// **'был(а) вчера в {time}'** String lastSeenYesterday(Object time); /// No description provided for @lastSeenDayBeforeYesterday. /// /// In ru, this message translates to: /// **'был(а) позавчера в {time}'** String lastSeenDayBeforeYesterday(Object time); /// No description provided for @noMessages. /// /// In ru, this message translates to: /// **'Сообщений пока нет'** String get noMessages; /// No description provided for @messageHint. /// /// In ru, this message translates to: /// **'Сообщение'** String get messageHint; } class _AppLocalizationsDelegate extends LocalizationsDelegate { const _AppLocalizationsDelegate(); @override Future load(Locale locale) { return SynchronousFuture(lookupAppLocalizations(locale)); } @override bool isSupported(Locale locale) => ['en', 'ru'].contains(locale.languageCode); @override bool shouldReload(_AppLocalizationsDelegate old) => false; } AppLocalizations lookupAppLocalizations(Locale locale) { // Lookup logic when only language code is specified. switch (locale.languageCode) { case 'en': return AppLocalizationsEn(); case 'ru': return AppLocalizationsRu(); } 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.'); }