diff --git a/.vscode/launch.json b/.vscode/launch.json index fd4f8f0..6795fc3 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -12,6 +12,7 @@ "--lib=\"example/lib/\"", "--arb=\"src/arbs/\"", "--gen=\"src/generated/\"", + "--ignore=\"help, back.*\"", "--comment=Generated from Google Sheets", "--author=example@gmail.com", "--context=From Google Sheets", diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e94b9e..323889d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.2 + +- **ADDED**: Optional support for ignoring specific sheets by title with RegExp patterns. + ## 0.2.1 - **FIX**: Fix locales import to `dart:ui` diff --git a/bin/generate.dart b/bin/generate.dart index 58898ed..7e119af 100644 --- a/bin/generate.dart +++ b/bin/generate.dart @@ -32,21 +32,43 @@ void main(List? $arguments) => runZonedGuarded( io.exit(0); } + String? excludeQuotes(String? input) { + if (input == null || input.length < 2) return input; + final Runes(:first, :last) = input.runes; + if (first == 34 && last == 34) { + return input.substring(1, input.length - 1); + } else if (first == 39 && last == 39) { + return input.substring(1, input.length - 1); + } else { + return input; + } + } + $log('Reading command line arguments...'); - final credentialsPath = args.option('credentials')?.replaceAll('"', ''); - final sheetId = args.option('sheet')?.replaceAll('"', ''); - final libDir = args.option('lib')?.replaceAll('"', ''); - final arbDir = args.option('arb')?.replaceAll('"', ''); - final genDir = args.option('gen')?.replaceAll('"', ''); - final prefix = args.option('prefix')?.replaceAll('"', '') ?? 'app'; - final header = args.option('header')?.replaceAll('"', ''); + final credentialsPath = excludeQuotes(args.option('credentials')); + final sheetId = excludeQuotes(args.option('sheet')); + final libDir = excludeQuotes(args.option('lib')); + final arbDir = excludeQuotes(args.option('arb')); + final genDir = excludeQuotes(args.option('gen')); + final ignore = excludeQuotes(args.option('ignore')) + ?.split(',') + .map((e) => e.trim()) + .where((e) => e.isNotEmpty) + .map((e) => RegExp(e)) + .toList(growable: false) ?? + const []; + final prefix = excludeQuotes(args.option('prefix')) ?? 'app'; + final header = excludeQuotes(args.option('header')); final format = args.flag('format'); final meta = { - if (args.option('author') case String author) '@@author': author, - if (args.option('modified') case String modified) + if (excludeQuotes(args.option('author')) case String author) + '@@author': author, + if (excludeQuotes(args.option('modified')) case String modified) '@@last_modified': modified, - if (args.option('comment') case String comment) '@@comment': comment, - if (args.option('context') case String context) '@@context': context, + if (excludeQuotes(args.option('comment')) case String comment) + '@@comment': comment, + if (excludeQuotes(args.option('context')) case String context) + '@@context': context, }; // Validate arguments @@ -64,6 +86,7 @@ void main(List? $arguments) => runZonedGuarded( final sheets = fetchSpreadsheets( credentialsPath: credentialsPath, sheetId: sheetId, + ignore: ignore, ); // Generate localization table from the fetched sheets @@ -210,6 +233,26 @@ ArgParser buildArgumentsParser() => ArgParser() help: 'Output directory for generated localization classes, ' 'relative to the library directory', ) + ..addOption( + 'ignore', + abbr: 'i', + aliases: const [ + 'ignore-table', + 'exclude', + 'skip', + 'ignore-patterns', + 'ignore-sheets', + 'exclude-sheets', + 'skip-sheets', + 'exclude-patterns', + 'skip-patterns', + ], + mandatory: false, + defaultsTo: '', + valueHelp: 'help, backend-.*, temp-.*', + help: 'Comma-separated list of RegExp patterns to ignore sheets ' + 'whose titles match any of the patterns', + ) ..addOption( 'author', aliases: const ['meta-author'], @@ -284,6 +327,7 @@ ArgParser buildArgumentsParser() => ArgParser() Stream<({Sheet sheet, List> values})> fetchSpreadsheets({ required String credentialsPath, required String sheetId, + List ignore = const [], }) async* { $log('Credentials path: $credentialsPath'); final credentialsFile = io.File(credentialsPath); @@ -340,17 +384,25 @@ Stream<({Sheet sheet, List> values})> fetchSpreadsheets({ continue; } final SheetProperties(sheetId: id, title: title) = properties; + + // Check if the sheet title matches any of the ignore patterns if (id == null) { $err('Sheet ID is null, skipping sheet...'); continue; } else if (title == null || title.isEmpty) { $err('Sheet title is null or empty, skipping sheet...'); continue; + } else if (ignore.any((pattern) => pattern.hasMatch(title))) { + $log('Ignoring sheet "$title" as it matches ignore patterns'); + continue; } + final ValueRange(:values) = await sheetsApi.spreadsheets.values.get( sheetId, title, ); + + // Validate sheet values if (values == null) { $err('Sheet "$title" has no values, skipping sheet...'); continue; @@ -363,9 +415,9 @@ Stream<({Sheet sheet, List> values})> fetchSpreadsheets({ } else if (values.first.length < 4) { $err('Sheet "$title" has no localizations, skipping sheet...'); continue; - } else { - yield (sheet: sheet, values: values); } + + yield (sheet: sheet, values: values); } } @@ -706,7 +758,7 @@ Future> generateFlutterLocalization({ 'gen-l10n', '--no-nullable-getter', // flutter config --explicit-package-dependencies - '--no-synthetic-package', + //'--no-synthetic-package', '--template-arb-file=${prefix ?? 'app'}_en.arb', '--arb-dir=$dir', '--output-dir=${genDir.path}', diff --git a/example/lib/localization.dart b/example/lib/localization.dart index db0f751..24c3c0d 100644 --- a/example/lib/localization.dart +++ b/example/lib/localization.dart @@ -1,11 +1,13 @@ // This file is generated, do not edit it manually! +// ignore_for_file: directives_ordering library; export 'package:flutter_localizations/flutter_localizations.dart'; export 'src/generated/app/app_localization.dart'; -export 'src/generated/chat/chat_localization.dart'; export 'src/generated/errors/errors_localization.dart'; -export 'src/generated/pay/pay_localization.dart'; -export 'src/generated/settings/settings_localization.dart'; export 'src/generated/sign_up/sign_up_localization.dart'; +export 'src/generated/chat/chat_localization.dart'; +export 'src/generated/settings/settings_localization.dart'; +export 'src/generated/pay/pay_localization.dart'; +export 'src/generated/locales.dart'; diff --git a/example/lib/src/arbs/app/example_ar.arb b/example/lib/src/arbs/app/example_ar.arb new file mode 100644 index 0000000..bb870e5 --- /dev/null +++ b/example/lib/src/arbs/app/example_ar.arb @@ -0,0 +1,45 @@ +{ + "@@locale": "ar", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "دكتورينا", + "@title": {}, + "checkVersionUpdateNowButton": "التحديث الآن", + "@checkVersionUpdateNowButton": { + "description": "Кнопка обновиться" + }, + "checkVersionMaybeLaterButton": "ربما في وقت لاحق", + "@checkVersionMaybeLaterButton": { + "description": "Кнопка отложить обновление" + }, + "checkVersionUpdateOptionalTitle": "تحديث جديد متاح", + "@checkVersionUpdateOptionalTitle": { + "description": "Заголовок можешь обновиться" + }, + "checkVersionUpdateRequiredTitle": "التحديث مطلوب", + "@checkVersionUpdateRequiredTitle": { + "description": "Заголовок обязан обновиться" + }, + "checkVersionUpdateOptionalText": "يتوفر إصدار جديد (v{version}) من التطبيق. يُرجى التحديث للاستمرار في الاستخدام للحصول على أفضل تجربة.", + "@checkVersionUpdateOptionalText": { + "description": "Сообщение о доступности новой версии \nприложения с приглашением обновиться", + "placeholders": { + "version": { + "type": "String", + "example": "2.3.1" + } + } + }, + "checkVersionUpdateRequiredText": "للمتابعة، يُرجى تحديث التطبيق. يتضمن هذا التحديث إصلاحات وتحسينات مهمة.", + "@checkVersionUpdateRequiredText": { + "description": "Сообщение с требованием обновиться", + "placeholders": { + "version": { + "type": "String", + "example": "2.3.1" + } + } + } +} \ No newline at end of file diff --git a/example/lib/src/arbs/app/example_bn.arb b/example/lib/src/arbs/app/example_bn.arb new file mode 100644 index 0000000..e4e57f6 --- /dev/null +++ b/example/lib/src/arbs/app/example_bn.arb @@ -0,0 +1,45 @@ +{ + "@@locale": "bn", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "ডক্টরিনা", + "@title": {}, + "checkVersionUpdateNowButton": "এখনই আপডেট করুন", + "@checkVersionUpdateNowButton": { + "description": "Кнопка обновиться" + }, + "checkVersionMaybeLaterButton": "হয়তো পরে", + "@checkVersionMaybeLaterButton": { + "description": "Кнопка отложить обновление" + }, + "checkVersionUpdateOptionalTitle": "নতুন আপডেট উপলব্ধ", + "@checkVersionUpdateOptionalTitle": { + "description": "Заголовок можешь обновиться" + }, + "checkVersionUpdateRequiredTitle": "আপডেট প্রয়োজন", + "@checkVersionUpdateRequiredTitle": { + "description": "Заголовок обязан обновиться" + }, + "checkVersionUpdateOptionalText": "অ্যাপটির একটি নতুন সংস্করণ (v{version}) উপলব্ধ৷ সেরা অভিজ্ঞতার জন্য চালিয়ে যেতে অনুগ্রহ করে আপডেট করুন।", + "@checkVersionUpdateOptionalText": { + "description": "Сообщение о доступности новой версии \nприложения с приглашением обновиться", + "placeholders": { + "version": { + "type": "String", + "example": "2.3.1" + } + } + }, + "checkVersionUpdateRequiredText": "চালিয়ে যেতে, অনুগ্রহ করে অ্যাপটি আপডেট করুন। এই আপডেটে গুরুত্বপূর্ণ সংশোধন এবং উন্নতি অন্তর্ভুক্ত রয়েছে।", + "@checkVersionUpdateRequiredText": { + "description": "Сообщение с требованием обновиться", + "placeholders": { + "version": { + "type": "String", + "example": "2.3.1" + } + } + } +} \ No newline at end of file diff --git a/example/lib/src/arbs/app/example_de.arb b/example/lib/src/arbs/app/example_de.arb index bcafb72..b23ae4c 100644 --- a/example/lib/src/arbs/app/example_de.arb +++ b/example/lib/src/arbs/app/example_de.arb @@ -1,7 +1,7 @@ { "@@locale": "de", "@@author": "example@gmail.com", - "@@last_modified": "2025-06-04T15:18:15.787321Z", + "@@last_modified": "2025-08-26T14:28:36.220548Z", "@@comment": "Generated from Google Sheets", "@@context": "From Google Sheets", "title": "Doctorina", diff --git a/example/lib/src/arbs/app/example_en.arb b/example/lib/src/arbs/app/example_en.arb index e1a8f3c..4f4a587 100644 --- a/example/lib/src/arbs/app/example_en.arb +++ b/example/lib/src/arbs/app/example_en.arb @@ -1,7 +1,7 @@ { "@@locale": "en", "@@author": "example@gmail.com", - "@@last_modified": "2025-06-04T15:18:15.787321Z", + "@@last_modified": "2025-08-26T14:28:36.220548Z", "@@comment": "Generated from Google Sheets", "@@context": "From Google Sheets", "title": "Doctorina", diff --git a/example/lib/src/arbs/app/example_es.arb b/example/lib/src/arbs/app/example_es.arb index e2d3532..583f4ac 100644 --- a/example/lib/src/arbs/app/example_es.arb +++ b/example/lib/src/arbs/app/example_es.arb @@ -1,7 +1,7 @@ { "@@locale": "es", "@@author": "example@gmail.com", - "@@last_modified": "2025-06-04T15:18:15.787321Z", + "@@last_modified": "2025-08-26T14:28:36.220548Z", "@@comment": "Generated from Google Sheets", "@@context": "From Google Sheets", "title": "Doctorina", diff --git a/example/lib/src/arbs/app/example_fr.arb b/example/lib/src/arbs/app/example_fr.arb new file mode 100644 index 0000000..28fc3a1 --- /dev/null +++ b/example/lib/src/arbs/app/example_fr.arb @@ -0,0 +1,45 @@ +{ + "@@locale": "fr", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "Docteure", + "@title": {}, + "checkVersionUpdateNowButton": "Mettre à jour maintenant", + "@checkVersionUpdateNowButton": { + "description": "Кнопка обновиться" + }, + "checkVersionMaybeLaterButton": "Peut-être plus tard", + "@checkVersionMaybeLaterButton": { + "description": "Кнопка отложить обновление" + }, + "checkVersionUpdateOptionalTitle": "Nouvelle mise à jour disponible", + "@checkVersionUpdateOptionalTitle": { + "description": "Заголовок можешь обновиться" + }, + "checkVersionUpdateRequiredTitle": "Mise à jour requise", + "@checkVersionUpdateRequiredTitle": { + "description": "Заголовок обязан обновиться" + }, + "checkVersionUpdateOptionalText": "Une nouvelle version (v{version}) de l'application est disponible. Veuillez la mettre à jour pour profiter d'une expérience optimale.", + "@checkVersionUpdateOptionalText": { + "description": "Сообщение о доступности новой версии \nприложения с приглашением обновиться", + "placeholders": { + "version": { + "type": "String", + "example": "2.3.1" + } + } + }, + "checkVersionUpdateRequiredText": "Pour continuer, veuillez mettre à jour l'application. Cette mise à jour inclut des correctifs et améliorations importants.", + "@checkVersionUpdateRequiredText": { + "description": "Сообщение с требованием обновиться", + "placeholders": { + "version": { + "type": "String", + "example": "2.3.1" + } + } + } +} \ No newline at end of file diff --git a/example/lib/src/arbs/app/example_hi.arb b/example/lib/src/arbs/app/example_hi.arb new file mode 100644 index 0000000..8035ed0 --- /dev/null +++ b/example/lib/src/arbs/app/example_hi.arb @@ -0,0 +1,45 @@ +{ + "@@locale": "hi", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "डॉक्टरिना", + "@title": {}, + "checkVersionUpdateNowButton": "अभी अद्यतन करें", + "@checkVersionUpdateNowButton": { + "description": "Кнопка обновиться" + }, + "checkVersionMaybeLaterButton": "शायद बाद में", + "@checkVersionMaybeLaterButton": { + "description": "Кнопка отложить обновление" + }, + "checkVersionUpdateOptionalTitle": "नया अपडेट उपलब्ध है", + "@checkVersionUpdateOptionalTitle": { + "description": "Заголовок можешь обновиться" + }, + "checkVersionUpdateRequiredTitle": "अद्यतन आवश्यक है", + "@checkVersionUpdateRequiredTitle": { + "description": "Заголовок обязан обновиться" + }, + "checkVersionUpdateOptionalText": "ऐप का नया संस्करण (v{version}) उपलब्ध है। कृपया बेहतर अनुभव के लिए इसे अपडेट करते रहें।", + "@checkVersionUpdateOptionalText": { + "description": "Сообщение о доступности новой версии \nприложения с приглашением обновиться", + "placeholders": { + "version": { + "type": "String", + "example": "2.3.1" + } + } + }, + "checkVersionUpdateRequiredText": "जारी रखने के लिए, कृपया ऐप अपडेट करें। इस अपडेट में महत्वपूर्ण सुधार और सुधार शामिल हैं।", + "@checkVersionUpdateRequiredText": { + "description": "Сообщение с требованием обновиться", + "placeholders": { + "version": { + "type": "String", + "example": "2.3.1" + } + } + } +} \ No newline at end of file diff --git a/example/lib/src/arbs/app/example_it.arb b/example/lib/src/arbs/app/example_it.arb new file mode 100644 index 0000000..aff2c4b --- /dev/null +++ b/example/lib/src/arbs/app/example_it.arb @@ -0,0 +1,45 @@ +{ + "@@locale": "it", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "Dottoressa", + "@title": {}, + "checkVersionUpdateNowButton": "Aggiorna ora", + "@checkVersionUpdateNowButton": { + "description": "Кнопка обновиться" + }, + "checkVersionMaybeLaterButton": "Forse più tardi", + "@checkVersionMaybeLaterButton": { + "description": "Кнопка отложить обновление" + }, + "checkVersionUpdateOptionalTitle": "Nuovo aggiornamento disponibile", + "@checkVersionUpdateOptionalTitle": { + "description": "Заголовок можешь обновиться" + }, + "checkVersionUpdateRequiredTitle": "Aggiornamento richiesto", + "@checkVersionUpdateRequiredTitle": { + "description": "Заголовок обязан обновиться" + }, + "checkVersionUpdateOptionalText": "È disponibile una nuova versione (v{version}) dell'app. Aggiornala per continuare a usufruire della migliore esperienza possibile.", + "@checkVersionUpdateOptionalText": { + "description": "Сообщение о доступности новой версии \nприложения с приглашением обновиться", + "placeholders": { + "version": { + "type": "String", + "example": "2.3.1" + } + } + }, + "checkVersionUpdateRequiredText": "Per continuare, aggiorna l'app. Questo aggiornamento include importanti correzioni e miglioramenti.", + "@checkVersionUpdateRequiredText": { + "description": "Сообщение с требованием обновиться", + "placeholders": { + "version": { + "type": "String", + "example": "2.3.1" + } + } + } +} \ No newline at end of file diff --git a/example/lib/src/arbs/app/example_ko.arb b/example/lib/src/arbs/app/example_ko.arb new file mode 100644 index 0000000..aea401e --- /dev/null +++ b/example/lib/src/arbs/app/example_ko.arb @@ -0,0 +1,45 @@ +{ + "@@locale": "ko", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "닥터리나", + "@title": {}, + "checkVersionUpdateNowButton": "지금 업데이트", + "@checkVersionUpdateNowButton": { + "description": "Кнопка обновиться" + }, + "checkVersionMaybeLaterButton": "아마도 나중에", + "@checkVersionMaybeLaterButton": { + "description": "Кнопка отложить обновление" + }, + "checkVersionUpdateOptionalTitle": "새로운 업데이트가 제공됩니다", + "@checkVersionUpdateOptionalTitle": { + "description": "Заголовок можешь обновиться" + }, + "checkVersionUpdateRequiredTitle": "업데이트가 필요합니다", + "@checkVersionUpdateRequiredTitle": { + "description": "Заголовок обязан обновиться" + }, + "checkVersionUpdateOptionalText": "앱의 새 버전(v{version})이 출시되었습니다. 최상의 환경을 위해 계속 사용하려면 업데이트해 주세요.", + "@checkVersionUpdateOptionalText": { + "description": "Сообщение о доступности новой версии \nприложения с приглашением обновиться", + "placeholders": { + "version": { + "type": "String", + "example": "2.3.1" + } + } + }, + "checkVersionUpdateRequiredText": "계속하려면 앱을 업데이트하세요. 이 업데이트에는 중요한 수정 사항과 개선 사항이 포함되어 있습니다.", + "@checkVersionUpdateRequiredText": { + "description": "Сообщение с требованием обновиться", + "placeholders": { + "version": { + "type": "String", + "example": "2.3.1" + } + } + } +} \ No newline at end of file diff --git a/example/lib/src/arbs/app/example_pt.arb b/example/lib/src/arbs/app/example_pt.arb new file mode 100644 index 0000000..a3ca6cc --- /dev/null +++ b/example/lib/src/arbs/app/example_pt.arb @@ -0,0 +1,45 @@ +{ + "@@locale": "pt", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "Doutora", + "@title": {}, + "checkVersionUpdateNowButton": "Atualizar agora", + "@checkVersionUpdateNowButton": { + "description": "Кнопка обновиться" + }, + "checkVersionMaybeLaterButton": "Talvez mais tarde", + "@checkVersionMaybeLaterButton": { + "description": "Кнопка отложить обновление" + }, + "checkVersionUpdateOptionalTitle": "Nova atualização disponível", + "@checkVersionUpdateOptionalTitle": { + "description": "Заголовок можешь обновиться" + }, + "checkVersionUpdateRequiredTitle": "Atualização necessária", + "@checkVersionUpdateRequiredTitle": { + "description": "Заголовок обязан обновиться" + }, + "checkVersionUpdateOptionalText": "Uma nova versão (v{version}) do aplicativo está disponível. Atualize para continuar e ter a melhor experiência.", + "@checkVersionUpdateOptionalText": { + "description": "Сообщение о доступности новой версии \nприложения с приглашением обновиться", + "placeholders": { + "version": { + "type": "String", + "example": "2.3.1" + } + } + }, + "checkVersionUpdateRequiredText": "Para continuar, atualize o aplicativo. Esta atualização inclui correções e melhorias importantes.", + "@checkVersionUpdateRequiredText": { + "description": "Сообщение с требованием обновиться", + "placeholders": { + "version": { + "type": "String", + "example": "2.3.1" + } + } + } +} \ No newline at end of file diff --git a/example/lib/src/arbs/app/example_pt_BR.arb b/example/lib/src/arbs/app/example_pt_BR.arb new file mode 100644 index 0000000..c96ebdd --- /dev/null +++ b/example/lib/src/arbs/app/example_pt_BR.arb @@ -0,0 +1,45 @@ +{ + "@@locale": "pt_BR", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "Doutora", + "@title": {}, + "checkVersionUpdateNowButton": "Atualizar agora", + "@checkVersionUpdateNowButton": { + "description": "Кнопка обновиться" + }, + "checkVersionMaybeLaterButton": "Talvez mais tarde", + "@checkVersionMaybeLaterButton": { + "description": "Кнопка отложить обновление" + }, + "checkVersionUpdateOptionalTitle": "Nova atualização disponível", + "@checkVersionUpdateOptionalTitle": { + "description": "Заголовок можешь обновиться" + }, + "checkVersionUpdateRequiredTitle": "Atualização necessária", + "@checkVersionUpdateRequiredTitle": { + "description": "Заголовок обязан обновиться" + }, + "checkVersionUpdateOptionalText": "Uma nova versão (v{version}) do aplicativo está disponível. Atualize para continuar e ter a melhor experiência.", + "@checkVersionUpdateOptionalText": { + "description": "Сообщение о доступности новой версии \nприложения с приглашением обновиться", + "placeholders": { + "version": { + "type": "String", + "example": "2.3.1" + } + } + }, + "checkVersionUpdateRequiredText": "Para continuar, atualize o aplicativo. Esta atualização inclui correções e melhorias importantes.", + "@checkVersionUpdateRequiredText": { + "description": "Сообщение с требованием обновиться", + "placeholders": { + "version": { + "type": "String", + "example": "2.3.1" + } + } + } +} \ No newline at end of file diff --git a/example/lib/src/arbs/app/example_ru.arb b/example/lib/src/arbs/app/example_ru.arb index 37e60bf..4541932 100644 --- a/example/lib/src/arbs/app/example_ru.arb +++ b/example/lib/src/arbs/app/example_ru.arb @@ -1,7 +1,7 @@ { "@@locale": "ru", "@@author": "example@gmail.com", - "@@last_modified": "2025-06-04T15:18:15.787321Z", + "@@last_modified": "2025-08-26T14:28:36.220548Z", "@@comment": "Generated from Google Sheets", "@@context": "From Google Sheets", "title": "Doctorina", diff --git a/example/lib/src/arbs/app/example_zh.arb b/example/lib/src/arbs/app/example_zh.arb new file mode 100644 index 0000000..74d03ff --- /dev/null +++ b/example/lib/src/arbs/app/example_zh.arb @@ -0,0 +1,45 @@ +{ + "@@locale": "zh", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "医生丽娜", + "@title": {}, + "checkVersionUpdateNowButton": "立即更新", + "@checkVersionUpdateNowButton": { + "description": "Кнопка обновиться" + }, + "checkVersionMaybeLaterButton": "也许以后", + "@checkVersionMaybeLaterButton": { + "description": "Кнопка отложить обновление" + }, + "checkVersionUpdateOptionalTitle": "有新更新可用", + "@checkVersionUpdateOptionalTitle": { + "description": "Заголовок можешь обновиться" + }, + "checkVersionUpdateRequiredTitle": "需要更新", + "@checkVersionUpdateRequiredTitle": { + "description": "Заголовок обязан обновиться" + }, + "checkVersionUpdateOptionalText": "该应用有新版本 (v{version}) 可用。请更新以获取最佳体验。", + "@checkVersionUpdateOptionalText": { + "description": "Сообщение о доступности новой версии \nприложения с приглашением обновиться", + "placeholders": { + "version": { + "type": "String", + "example": "2.3.1" + } + } + }, + "checkVersionUpdateRequiredText": "要继续,请更新应用。此更新包含重要的修复和改进。", + "@checkVersionUpdateRequiredText": { + "description": "Сообщение с требованием обновиться", + "placeholders": { + "version": { + "type": "String", + "example": "2.3.1" + } + } + } +} \ No newline at end of file diff --git a/example/lib/src/arbs/app/example_zh_CN.arb b/example/lib/src/arbs/app/example_zh_CN.arb new file mode 100644 index 0000000..fe8d611 --- /dev/null +++ b/example/lib/src/arbs/app/example_zh_CN.arb @@ -0,0 +1,45 @@ +{ + "@@locale": "zh_CN", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "医生丽娜", + "@title": {}, + "checkVersionUpdateNowButton": "立即更新", + "@checkVersionUpdateNowButton": { + "description": "Кнопка обновиться" + }, + "checkVersionMaybeLaterButton": "也许以后", + "@checkVersionMaybeLaterButton": { + "description": "Кнопка отложить обновление" + }, + "checkVersionUpdateOptionalTitle": "有新更新可用", + "@checkVersionUpdateOptionalTitle": { + "description": "Заголовок можешь обновиться" + }, + "checkVersionUpdateRequiredTitle": "需要更新", + "@checkVersionUpdateRequiredTitle": { + "description": "Заголовок обязан обновиться" + }, + "checkVersionUpdateOptionalText": "该应用有新版本 (v{version}) 可用。请更新以获取最佳体验。", + "@checkVersionUpdateOptionalText": { + "description": "Сообщение о доступности новой версии \nприложения с приглашением обновиться", + "placeholders": { + "version": { + "type": "String", + "example": "2.3.1" + } + } + }, + "checkVersionUpdateRequiredText": "要继续,请更新应用。此更新包含重要的修复和改进。", + "@checkVersionUpdateRequiredText": { + "description": "Сообщение с требованием обновиться", + "placeholders": { + "version": { + "type": "String", + "example": "2.3.1" + } + } + } +} \ No newline at end of file diff --git a/example/lib/src/arbs/chat/example_ar.arb b/example/lib/src/arbs/chat/example_ar.arb new file mode 100644 index 0000000..112d3eb --- /dev/null +++ b/example/lib/src/arbs/chat/example_ar.arb @@ -0,0 +1,163 @@ +{ + "@@locale": "ar", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "محادثة", + "@title": {}, + "drawerTooltipNotifications": "إشعارات", + "@drawerTooltipNotifications": {}, + "drawerTooltipHelp": "يساعد", + "@drawerTooltipHelp": {}, + "drawerTooltipClose": "يغلق", + "@drawerTooltipClose": {}, + "drawerSectionTitleAccount": "حساب", + "@drawerSectionTitleAccount": {}, + "drawerSectionProfile": "حساب تعريفي", + "@drawerSectionProfile": {}, + "drawerSectionAccountSettings": "إعدادات الحساب", + "@drawerSectionAccountSettings": {}, + "drawerSectionDonateToSupport": "تبرع لدعم", + "@drawerSectionDonateToSupport": {}, + "drawerSectionSubscription": "الاشتراك", + "@drawerSectionSubscription": {}, + "drawerSectionTitleChats": "الدردشات", + "@drawerSectionTitleChats": {}, + "drawerSectionChatHistory": "سجل الدردشة", + "@drawerSectionChatHistory": {}, + "drawerSectionAttachedDocuments": "المستندات المرفقة", + "@drawerSectionAttachedDocuments": {}, + "drawerSectionTitleHowToUse": "كيفية الاستخدام", + "@drawerSectionTitleHowToUse": {}, + "drawerSectionVideoTutorials": "دروس الفيديو", + "@drawerSectionVideoTutorials": {}, + "drawerSectionTitleLegal": "قانوني", + "@drawerSectionTitleLegal": {}, + "drawerSectionContactUs": "اتصل بنا", + "@drawerSectionContactUs": {}, + "drawerSectionBugReport": "تقرير الأخطاء", + "@drawerSectionBugReport": {}, + "drawerSectionTermsAndConditions": "الشروط والأحكام", + "@drawerSectionTermsAndConditions": {}, + "drawerSectionPrivacyPolicy": "سياسة الخصوصية", + "@drawerSectionPrivacyPolicy": {}, + "drawerSectionTitleFeedback": "تعليق", + "@drawerSectionTitleFeedback": {}, + "drawerSectionRateApp": "تقييم التطبيق", + "@drawerSectionRateApp": {}, + "drawerSectionShareWithFriends": "شارك مع الأصدقاء", + "@drawerSectionShareWithFriends": {}, + "drawerButtonLogOut": "تسجيل الخروج", + "@drawerButtonLogOut": {}, + "drawerBannerHelpOthersReceiveMedicalCare": "مساعدة الآخرين على تلقي الرعاية الطبية", + "@drawerBannerHelpOthersReceiveMedicalCare": {}, + "drawerPlaceholderUser": "مستخدم", + "@drawerPlaceholderUser": { + "description": "Если нет имени пользователя, емейла, телефона - по умолчанию." + }, + "drawerSubscriptionLabelPremiumFeaturesWithDoctorina": "ميزات مميزة مع دكتورينا", + "@drawerSubscriptionLabelPremiumFeaturesWithDoctorina": {}, + "drawerSubscriptionButtonGetPremiumFeatures": "يحصل", + "@drawerSubscriptionButtonGetPremiumFeatures": {}, + "drawerLabelJoinUs": "انضم إلينا", + "@drawerLabelJoinUs": { + "description": "Надпись перед иконками социальных сетей" + }, + "drawerTooltipVersion": "إصدار التطبيق:", + "@drawerTooltipVersion": { + "description": "Подсказка при наведении на версию приложения" + }, + "chatInputHintEnterMessage": "أدخل الرسالة", + "@chatInputHintEnterMessage": { + "description": "Подсказка в поле ввода чата" + }, + "chatInputTooltipAttachFile": "إرفاق الملف", + "@chatInputTooltipAttachFile": {}, + "chatInputTooltipDictateMessage": "إملاء الرسالة", + "@chatInputTooltipDictateMessage": {}, + "chatInputTooltipSendMessage": "إرسال رسالة", + "@chatInputTooltipSendMessage": {}, + "chatListSnackBarErrorFailedToFetchMessages": "فشل في جلب الرسائل", + "@chatListSnackBarErrorFailedToFetchMessages": {}, + "chatListLabelErrorFailedToFetchMessagesPleaseTryAgain": "تعذّر جلب الرسائل. يُرجى المحاولة مجددًا.", + "@chatListLabelErrorFailedToFetchMessagesPleaseTryAgain": {}, + "chatListTooltipFetchMessages": "جلب الرسائل", + "@chatListTooltipFetchMessages": {}, + "chatListLabelNoMessagesAvailable": "لا توجد رسائل متاحة. يُرجى إرسال رسالة لبدء المحادثة.", + "@chatListLabelNoMessagesAvailable": {}, + "chatListHasConnection": "متصل", + "@chatListHasConnection": {}, + "chatListNoConnection": "لا يوجد اتصال", + "@chatListNoConnection": {}, + "chatActionButtonTooltipSearch": "يبحث", + "@chatActionButtonTooltipSearch": {}, + "chatActionButtonTooltipFavorites": "المفضلة", + "@chatActionButtonTooltipFavorites": {}, + "chatActionButtonTooltipDownload": "تحميل", + "@chatActionButtonTooltipDownload": {}, + "chatActionButtonTooltipPrintPdf": "طباعة ملف PDF", + "@chatActionButtonTooltipPrintPdf": {}, + "chatActionButtonTooltipShareWithFriends": "شارك مع الأصدقاء", + "@chatActionButtonTooltipShareWithFriends": {}, + "chatActionButtonTooltipNewChat": "دردشة جديدة", + "@chatActionButtonTooltipNewChat": {}, + "chatActionButtonTooltipChatList": "حدد الدردشة", + "@chatActionButtonTooltipChatList": {}, + "chatActionButtonTooltipShowDrawer": "عرض الدرج", + "@chatActionButtonTooltipShowDrawer": { + "description": "Leading кнопка AppBar открывающая панель Drawer'а" + }, + "chatLabelNoChatAvailableRefresh": "لا توجد محادثات متاحة. يُرجى تحديث الصفحة أو إنشاء محادثة جديدة.", + "@chatLabelNoChatAvailableRefresh": {}, + "chatButtonRefreshChats": "تحديث الدردشات", + "@chatButtonRefreshChats": {}, + "chatButtonCreateNewChat": "إنشاء دردشة جديدة", + "@chatButtonCreateNewChat": {}, + "chatContextMenuCopyMessage": "نسخ النص", + "@chatContextMenuCopyMessage": {}, + "chatStatusProcessingMessages": "جاري الكتابة... لحظة...", + "@chatStatusProcessingMessages": { + "description": "⚠️⚠️⚠️ Каждая новая строка - следующее сообщение,\nо том что ответ задерживается. ⚠️⚠️⚠️ " + }, + "chatNoConnectionLabel": "يرجى التحقق من اتصالك بالإنترنت", + "@chatNoConnectionLabel": {}, + "chatErrorMessageAlreadyProcessed": "يتم معالجة الرسالة الآن.", + "@chatErrorMessageAlreadyProcessed": {}, + "chatErrorMessageTooLong": "الرسالة طويلة جداً.", + "@chatErrorMessageTooLong": {}, + "chatRemoveAttachmentTooltip": "إزالة المرفق", + "@chatRemoveAttachmentTooltip": {}, + "chatStatusFailedMessage": "فشل في معالجة الرسالة", + "@chatStatusFailedMessage": { + "description": "Сообщение отображаемое на статус-ошибку с BE." + }, + "chatActionButtonTooltipExportSummary": "تصدير إلى PDF", + "@chatActionButtonTooltipExportSummary": { + "description": "Подсказка для кнопки открывающей боттом шит по экспорту саммари в PDF" + }, + "chatPickerPhotos": "الصور", + "@chatPickerPhotos": { + "description": "Надпись в меню для выбора из галлереи" + }, + "chatPickerCamera": "آلة تصوير", + "@chatPickerCamera": { + "description": "Надпись в меню для прикрепления фото с помощью камеры" + }, + "chatPickerFiles": "الملفات", + "@chatPickerFiles": { + "description": "Надпись в меню для выбора файлов" + }, + "chatRecommendationYIAG": "آمل أن يكون هذا مفيدًا! هل كان هذا الشرح مفيدًا لك؟", + "@chatRecommendationYIAG": {}, + "chatRecommendationButtonDonate": "نعم، كل شيء جيد!", + "@chatRecommendationButtonDonate": { + "description": "Кнопка отображаемая после финальных рекомендаций, для пользователей без подписки" + }, + "chatHistoryTitle": "سجل الدردشة", + "@chatHistoryTitle": {}, + "failedToRetrieveChatSummary": "فشل في استرداد ملخص الدردشة", + "@failedToRetrieveChatSummary": {}, + "chatSummaryCopiedToClipboard": "تم نسخ ملخص الدردشة إلى الحافظة", + "@chatSummaryCopiedToClipboard": {} +} \ No newline at end of file diff --git a/example/lib/src/arbs/chat/example_bn.arb b/example/lib/src/arbs/chat/example_bn.arb new file mode 100644 index 0000000..1ee8b09 --- /dev/null +++ b/example/lib/src/arbs/chat/example_bn.arb @@ -0,0 +1,163 @@ +{ + "@@locale": "bn", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "চ্যাট", + "@title": {}, + "drawerTooltipNotifications": "বিজ্ঞপ্তি", + "@drawerTooltipNotifications": {}, + "drawerTooltipHelp": "সাহায্য", + "@drawerTooltipHelp": {}, + "drawerTooltipClose": "বন্ধ", + "@drawerTooltipClose": {}, + "drawerSectionTitleAccount": "হিসাব", + "@drawerSectionTitleAccount": {}, + "drawerSectionProfile": "প্রোফাইল", + "@drawerSectionProfile": {}, + "drawerSectionAccountSettings": "অ্যাকাউন্ট সেটিংস", + "@drawerSectionAccountSettings": {}, + "drawerSectionDonateToSupport": "সমর্থন দান", + "@drawerSectionDonateToSupport": {}, + "drawerSectionSubscription": "সাবস্ক্রিপশন", + "@drawerSectionSubscription": {}, + "drawerSectionTitleChats": "চ্যাট", + "@drawerSectionTitleChats": {}, + "drawerSectionChatHistory": "চ্যাট ইতিহাস", + "@drawerSectionChatHistory": {}, + "drawerSectionAttachedDocuments": "সংযুক্ত নথি", + "@drawerSectionAttachedDocuments": {}, + "drawerSectionTitleHowToUse": "কিভাবে ব্যবহার করবেন", + "@drawerSectionTitleHowToUse": {}, + "drawerSectionVideoTutorials": "ভিডিও টিউটোরিয়াল", + "@drawerSectionVideoTutorials": {}, + "drawerSectionTitleLegal": "আইনি", + "@drawerSectionTitleLegal": {}, + "drawerSectionContactUs": "আমাদের সাথে যোগাযোগ করুন", + "@drawerSectionContactUs": {}, + "drawerSectionBugReport": "বাগ রিপোর্ট", + "@drawerSectionBugReport": {}, + "drawerSectionTermsAndConditions": "শর্তাবলী", + "@drawerSectionTermsAndConditions": {}, + "drawerSectionPrivacyPolicy": "গোপনীয়তা নীতি", + "@drawerSectionPrivacyPolicy": {}, + "drawerSectionTitleFeedback": "প্রতিক্রিয়া", + "@drawerSectionTitleFeedback": {}, + "drawerSectionRateApp": "অ্যাপকে রেট দিন", + "@drawerSectionRateApp": {}, + "drawerSectionShareWithFriends": "বন্ধুদের সাথে শেয়ার করুন", + "@drawerSectionShareWithFriends": {}, + "drawerButtonLogOut": "লগ আউট করুন", + "@drawerButtonLogOut": {}, + "drawerBannerHelpOthersReceiveMedicalCare": "অন্যদের চিকিৎসা সেবা পেতে সাহায্য করুন", + "@drawerBannerHelpOthersReceiveMedicalCare": {}, + "drawerPlaceholderUser": "ব্যবহারকারী", + "@drawerPlaceholderUser": { + "description": "Если нет имени пользователя, емейла, телефона - по умолчанию." + }, + "drawerSubscriptionLabelPremiumFeaturesWithDoctorina": "প্রিমিয়াম বৈশিষ্ট্য\nডক্টরিনার সাথে", + "@drawerSubscriptionLabelPremiumFeaturesWithDoctorina": {}, + "drawerSubscriptionButtonGetPremiumFeatures": "পান", + "@drawerSubscriptionButtonGetPremiumFeatures": {}, + "drawerLabelJoinUs": "আমাদের সাথে যোগ দিন", + "@drawerLabelJoinUs": { + "description": "Надпись перед иконками социальных сетей" + }, + "drawerTooltipVersion": "অ্যাপ সংস্করণ:", + "@drawerTooltipVersion": { + "description": "Подсказка при наведении на версию приложения" + }, + "chatInputHintEnterMessage": "বার্তা লিখুন", + "@chatInputHintEnterMessage": { + "description": "Подсказка в поле ввода чата" + }, + "chatInputTooltipAttachFile": "ফাইল সংযুক্ত করুন", + "@chatInputTooltipAttachFile": {}, + "chatInputTooltipDictateMessage": "বার্তা লিখুন", + "@chatInputTooltipDictateMessage": {}, + "chatInputTooltipSendMessage": "বার্তা পাঠান", + "@chatInputTooltipSendMessage": {}, + "chatListSnackBarErrorFailedToFetchMessages": "বার্তাগুলি আনতে ব্যর্থ হয়েছে৷", + "@chatListSnackBarErrorFailedToFetchMessages": {}, + "chatListLabelErrorFailedToFetchMessagesPleaseTryAgain": "বার্তাগুলি আনতে ব্যর্থ হয়েছে৷ আবার চেষ্টা করুন.", + "@chatListLabelErrorFailedToFetchMessagesPleaseTryAgain": {}, + "chatListTooltipFetchMessages": "বার্তা আনুন", + "@chatListTooltipFetchMessages": {}, + "chatListLabelNoMessagesAvailable": "কোন বার্তা উপলব্ধ নেই.\nকথোপকথন শুরু করতে একটি বার্তা পাঠান.", + "@chatListLabelNoMessagesAvailable": {}, + "chatListHasConnection": "সংযুক্ত", + "@chatListHasConnection": {}, + "chatListNoConnection": "সংযোগ নেই", + "@chatListNoConnection": {}, + "chatActionButtonTooltipSearch": "অনুসন্ধান করুন", + "@chatActionButtonTooltipSearch": {}, + "chatActionButtonTooltipFavorites": "প্রিয়", + "@chatActionButtonTooltipFavorites": {}, + "chatActionButtonTooltipDownload": "ডাউনলোড করুন", + "@chatActionButtonTooltipDownload": {}, + "chatActionButtonTooltipPrintPdf": "পিডিএফ প্রিন্ট করুন", + "@chatActionButtonTooltipPrintPdf": {}, + "chatActionButtonTooltipShareWithFriends": "বন্ধুদের সাথে শেয়ার করুন", + "@chatActionButtonTooltipShareWithFriends": {}, + "chatActionButtonTooltipNewChat": "নতুন আড্ডা", + "@chatActionButtonTooltipNewChat": {}, + "chatActionButtonTooltipChatList": "চ্যাট নির্বাচন করুন", + "@chatActionButtonTooltipChatList": {}, + "chatActionButtonTooltipShowDrawer": "ড্রয়ার দেখান", + "@chatActionButtonTooltipShowDrawer": { + "description": "Leading кнопка AppBar открывающая панель Drawer'а" + }, + "chatLabelNoChatAvailableRefresh": "কোন চ্যাট উপলব্ধ. অনুগ্রহ করে রিফ্রেশ করুন বা একটি নতুন চ্যাট তৈরি করুন৷", + "@chatLabelNoChatAvailableRefresh": {}, + "chatButtonRefreshChats": "চ্যাট রিফ্রেশ করুন", + "@chatButtonRefreshChats": {}, + "chatButtonCreateNewChat": "নতুন চ্যাট তৈরি করুন", + "@chatButtonCreateNewChat": {}, + "chatContextMenuCopyMessage": "পাঠ্য অনুলিপি করুন", + "@chatContextMenuCopyMessage": {}, + "chatStatusProcessingMessages": "টাইপ করা হচ্ছে...\nমাত্র এক মুহূর্ত...", + "@chatStatusProcessingMessages": { + "description": "⚠️⚠️⚠️ Каждая новая строка - следующее сообщение,\nо том что ответ задерживается. ⚠️⚠️⚠️ " + }, + "chatNoConnectionLabel": "আপনার ইন্টারনেট সংযোগ পরীক্ষা করুন", + "@chatNoConnectionLabel": {}, + "chatErrorMessageAlreadyProcessed": "বার্তাটি ইতিমধ্যেই প্রক্রিয়া করা হচ্ছে।", + "@chatErrorMessageAlreadyProcessed": {}, + "chatErrorMessageTooLong": "বার্তাটি খুব দীর্ঘ৷", + "@chatErrorMessageTooLong": {}, + "chatRemoveAttachmentTooltip": "সংযুক্তি সরান", + "@chatRemoveAttachmentTooltip": {}, + "chatStatusFailedMessage": "বার্তা প্রক্রিয়া করতে ব্যর্থ হয়েছে", + "@chatStatusFailedMessage": { + "description": "Сообщение отображаемое на статус-ошибку с BE." + }, + "chatActionButtonTooltipExportSummary": "PDF এ রপ্তানি করুন", + "@chatActionButtonTooltipExportSummary": { + "description": "Подсказка для кнопки открывающей боттом шит по экспорту саммари в PDF" + }, + "chatPickerPhotos": "ফটো", + "@chatPickerPhotos": { + "description": "Надпись в меню для выбора из галлереи" + }, + "chatPickerCamera": "ক্যামেরা", + "@chatPickerCamera": { + "description": "Надпись в меню для прикрепления фото с помощью камеры" + }, + "chatPickerFiles": "ফাইল", + "@chatPickerFiles": { + "description": "Надпись в меню для выбора файлов" + }, + "chatRecommendationYIAG": "আশা করি যে সাহায্য করেছে! এই ব্যাখ্যা আপনার জন্য দরকারী ছিল?", + "@chatRecommendationYIAG": {}, + "chatRecommendationButtonDonate": "হ্যাঁ, এটা সব ভাল!", + "@chatRecommendationButtonDonate": { + "description": "Кнопка отображаемая после финальных рекомендаций, для пользователей без подписки" + }, + "chatHistoryTitle": "চ্যাট ইতিহাস", + "@chatHistoryTitle": {}, + "failedToRetrieveChatSummary": "চ্যাটের সারাংশ পুনরুদ্ধার করতে ব্যর্থ হয়েছে৷", + "@failedToRetrieveChatSummary": {}, + "chatSummaryCopiedToClipboard": "চ্যাটের সারাংশ ক্লিপবোর্ডে কপি করা হয়েছে", + "@chatSummaryCopiedToClipboard": {} +} \ No newline at end of file diff --git a/example/lib/src/arbs/chat/example_de.arb b/example/lib/src/arbs/chat/example_de.arb index 91dd173..b2c5ab0 100644 --- a/example/lib/src/arbs/chat/example_de.arb +++ b/example/lib/src/arbs/chat/example_de.arb @@ -1,7 +1,7 @@ { "@@locale": "de", "@@author": "example@gmail.com", - "@@last_modified": "2025-06-04T15:18:15.787321Z", + "@@last_modified": "2025-08-26T14:28:36.220548Z", "@@comment": "Generated from Google Sheets", "@@context": "From Google Sheets", "title": "Chat", @@ -104,7 +104,7 @@ "@chatActionButtonTooltipNewChat": {}, "chatActionButtonTooltipChatList": "Chat auswählen", "@chatActionButtonTooltipChatList": {}, - "chatActionButtonTooltipShowDrawer": "Show drawer", + "chatActionButtonTooltipShowDrawer": "Schublade anzeigen", "@chatActionButtonTooltipShowDrawer": { "description": "Leading кнопка AppBar открывающая панель Drawer'а" }, @@ -135,5 +135,29 @@ "chatActionButtonTooltipExportSummary": "Als PDF exportieren", "@chatActionButtonTooltipExportSummary": { "description": "Подсказка для кнопки открывающей боттом шит по экспорту саммари в PDF" - } + }, + "chatPickerPhotos": "Fotos", + "@chatPickerPhotos": { + "description": "Надпись в меню для выбора из галлереи" + }, + "chatPickerCamera": "Kamera", + "@chatPickerCamera": { + "description": "Надпись в меню для прикрепления фото с помощью камеры" + }, + "chatPickerFiles": "Dateien", + "@chatPickerFiles": { + "description": "Надпись в меню для выбора файлов" + }, + "chatRecommendationYIAG": "Hoffe, das hat geholfen! War diese Erklärung für Sie hilfreich?", + "@chatRecommendationYIAG": {}, + "chatRecommendationButtonDonate": "Ja, alles gut!", + "@chatRecommendationButtonDonate": { + "description": "Кнопка отображаемая после финальных рекомендаций, для пользователей без подписки" + }, + "chatHistoryTitle": "Chatverlauf", + "@chatHistoryTitle": {}, + "failedToRetrieveChatSummary": "Chat-Zusammenfassung konnte nicht abgerufen werden", + "@failedToRetrieveChatSummary": {}, + "chatSummaryCopiedToClipboard": "Chat-Zusammenfassung in die Zwischenablage kopiert", + "@chatSummaryCopiedToClipboard": {} } \ No newline at end of file diff --git a/example/lib/src/arbs/chat/example_en.arb b/example/lib/src/arbs/chat/example_en.arb index 616cc60..efe8b6c 100644 --- a/example/lib/src/arbs/chat/example_en.arb +++ b/example/lib/src/arbs/chat/example_en.arb @@ -1,7 +1,7 @@ { "@@locale": "en", "@@author": "example@gmail.com", - "@@last_modified": "2025-06-04T15:18:15.787321Z", + "@@last_modified": "2025-08-26T14:28:36.220548Z", "@@comment": "Generated from Google Sheets", "@@context": "From Google Sheets", "title": "Chat", @@ -135,5 +135,29 @@ "chatActionButtonTooltipExportSummary": "Export to PDF", "@chatActionButtonTooltipExportSummary": { "description": "Подсказка для кнопки открывающей боттом шит по экспорту саммари в PDF" - } + }, + "chatPickerPhotos": "Photos", + "@chatPickerPhotos": { + "description": "Надпись в меню для выбора из галлереи" + }, + "chatPickerCamera": "Camera", + "@chatPickerCamera": { + "description": "Надпись в меню для прикрепления фото с помощью камеры" + }, + "chatPickerFiles": "Files", + "@chatPickerFiles": { + "description": "Надпись в меню для выбора файлов" + }, + "chatRecommendationYIAG": "Hope that helped! Was this explanation useful to you?", + "@chatRecommendationYIAG": {}, + "chatRecommendationButtonDonate": "Yes, it's all good!", + "@chatRecommendationButtonDonate": { + "description": "Кнопка отображаемая после финальных рекомендаций, для пользователей без подписки" + }, + "chatHistoryTitle": "Chat History", + "@chatHistoryTitle": {}, + "failedToRetrieveChatSummary": "Failed to retrieve chat summary", + "@failedToRetrieveChatSummary": {}, + "chatSummaryCopiedToClipboard": "Chat summary copied to clipboard", + "@chatSummaryCopiedToClipboard": {} } \ No newline at end of file diff --git a/example/lib/src/arbs/chat/example_es.arb b/example/lib/src/arbs/chat/example_es.arb index 1bb19c0..c4b26f5 100644 --- a/example/lib/src/arbs/chat/example_es.arb +++ b/example/lib/src/arbs/chat/example_es.arb @@ -1,7 +1,7 @@ { "@@locale": "es", "@@author": "example@gmail.com", - "@@last_modified": "2025-06-04T15:18:15.787321Z", + "@@last_modified": "2025-08-26T14:28:36.220548Z", "@@comment": "Generated from Google Sheets", "@@context": "From Google Sheets", "title": "Chat", @@ -104,7 +104,7 @@ "@chatActionButtonTooltipNewChat": {}, "chatActionButtonTooltipChatList": "Seleccionar chat", "@chatActionButtonTooltipChatList": {}, - "chatActionButtonTooltipShowDrawer": "Show drawer", + "chatActionButtonTooltipShowDrawer": "Mostrar cajón", "@chatActionButtonTooltipShowDrawer": { "description": "Leading кнопка AppBar открывающая панель Drawer'а" }, @@ -135,5 +135,29 @@ "chatActionButtonTooltipExportSummary": "Exportar a PDF", "@chatActionButtonTooltipExportSummary": { "description": "Подсказка для кнопки открывающей боттом шит по экспорту саммари в PDF" - } + }, + "chatPickerPhotos": "Fotos", + "@chatPickerPhotos": { + "description": "Надпись в меню для выбора из галлереи" + }, + "chatPickerCamera": "Cámara", + "@chatPickerCamera": { + "description": "Надпись в меню для прикрепления фото с помощью камеры" + }, + "chatPickerFiles": "Archivos", + "@chatPickerFiles": { + "description": "Надпись в меню для выбора файлов" + }, + "chatRecommendationYIAG": "¡Espero que te haya servido! ¿Te resultó útil esta explicación?", + "@chatRecommendationYIAG": {}, + "chatRecommendationButtonDonate": "¡Sí, está todo bien!", + "@chatRecommendationButtonDonate": { + "description": "Кнопка отображаемая после финальных рекомендаций, для пользователей без подписки" + }, + "chatHistoryTitle": "Historial de chat", + "@chatHistoryTitle": {}, + "failedToRetrieveChatSummary": "No se pudo recuperar el resumen del chat", + "@failedToRetrieveChatSummary": {}, + "chatSummaryCopiedToClipboard": "Resumen del chat copiado al portapapeles", + "@chatSummaryCopiedToClipboard": {} } \ No newline at end of file diff --git a/example/lib/src/arbs/chat/example_fr.arb b/example/lib/src/arbs/chat/example_fr.arb new file mode 100644 index 0000000..643a1ef --- /dev/null +++ b/example/lib/src/arbs/chat/example_fr.arb @@ -0,0 +1,163 @@ +{ + "@@locale": "fr", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "Chat", + "@title": {}, + "drawerTooltipNotifications": "Notifications", + "@drawerTooltipNotifications": {}, + "drawerTooltipHelp": "Aide", + "@drawerTooltipHelp": {}, + "drawerTooltipClose": "Fermer", + "@drawerTooltipClose": {}, + "drawerSectionTitleAccount": "Compte", + "@drawerSectionTitleAccount": {}, + "drawerSectionProfile": "Profil", + "@drawerSectionProfile": {}, + "drawerSectionAccountSettings": "Paramètres du compte", + "@drawerSectionAccountSettings": {}, + "drawerSectionDonateToSupport": "Faites un don pour soutenir", + "@drawerSectionDonateToSupport": {}, + "drawerSectionSubscription": "Abonnement", + "@drawerSectionSubscription": {}, + "drawerSectionTitleChats": "Chats", + "@drawerSectionTitleChats": {}, + "drawerSectionChatHistory": "Historique des discussions", + "@drawerSectionChatHistory": {}, + "drawerSectionAttachedDocuments": "Documents joints", + "@drawerSectionAttachedDocuments": {}, + "drawerSectionTitleHowToUse": "Comment utiliser", + "@drawerSectionTitleHowToUse": {}, + "drawerSectionVideoTutorials": "Tutoriels vidéo", + "@drawerSectionVideoTutorials": {}, + "drawerSectionTitleLegal": "Légal", + "@drawerSectionTitleLegal": {}, + "drawerSectionContactUs": "Contactez-nous", + "@drawerSectionContactUs": {}, + "drawerSectionBugReport": "Rapport de bogue", + "@drawerSectionBugReport": {}, + "drawerSectionTermsAndConditions": "Conditions générales", + "@drawerSectionTermsAndConditions": {}, + "drawerSectionPrivacyPolicy": "politique de confidentialité", + "@drawerSectionPrivacyPolicy": {}, + "drawerSectionTitleFeedback": "Retour", + "@drawerSectionTitleFeedback": {}, + "drawerSectionRateApp": "Évaluer l'application", + "@drawerSectionRateApp": {}, + "drawerSectionShareWithFriends": "Partager avec des amis", + "@drawerSectionShareWithFriends": {}, + "drawerButtonLogOut": "Se déconnecter", + "@drawerButtonLogOut": {}, + "drawerBannerHelpOthersReceiveMedicalCare": "Aider les autres à recevoir des soins médicaux", + "@drawerBannerHelpOthersReceiveMedicalCare": {}, + "drawerPlaceholderUser": "Utilisateur", + "@drawerPlaceholderUser": { + "description": "Если нет имени пользователя, емейла, телефона - по умолчанию." + }, + "drawerSubscriptionLabelPremiumFeaturesWithDoctorina": "Fonctionnalités Premium\navec Doctorina", + "@drawerSubscriptionLabelPremiumFeaturesWithDoctorina": {}, + "drawerSubscriptionButtonGetPremiumFeatures": "Obtenir", + "@drawerSubscriptionButtonGetPremiumFeatures": {}, + "drawerLabelJoinUs": "Rejoignez-nous", + "@drawerLabelJoinUs": { + "description": "Надпись перед иконками социальных сетей" + }, + "drawerTooltipVersion": "Version de l'application :", + "@drawerTooltipVersion": { + "description": "Подсказка при наведении на версию приложения" + }, + "chatInputHintEnterMessage": "Entrez un message", + "@chatInputHintEnterMessage": { + "description": "Подсказка в поле ввода чата" + }, + "chatInputTooltipAttachFile": "Joindre un fichier", + "@chatInputTooltipAttachFile": {}, + "chatInputTooltipDictateMessage": "Dicter un message", + "@chatInputTooltipDictateMessage": {}, + "chatInputTooltipSendMessage": "Envoyer un message", + "@chatInputTooltipSendMessage": {}, + "chatListSnackBarErrorFailedToFetchMessages": "Échec de la récupération des messages", + "@chatListSnackBarErrorFailedToFetchMessages": {}, + "chatListLabelErrorFailedToFetchMessagesPleaseTryAgain": "Échec de la récupération des messages. Veuillez réessayer.", + "@chatListLabelErrorFailedToFetchMessagesPleaseTryAgain": {}, + "chatListTooltipFetchMessages": "Récupérer des messages", + "@chatListTooltipFetchMessages": {}, + "chatListLabelNoMessagesAvailable": "Aucun message disponible. Veuillez envoyer un message pour démarrer la conversation.", + "@chatListLabelNoMessagesAvailable": {}, + "chatListHasConnection": "Connecté", + "@chatListHasConnection": {}, + "chatListNoConnection": "Aucune connexion", + "@chatListNoConnection": {}, + "chatActionButtonTooltipSearch": "Recherche", + "@chatActionButtonTooltipSearch": {}, + "chatActionButtonTooltipFavorites": "Favoris", + "@chatActionButtonTooltipFavorites": {}, + "chatActionButtonTooltipDownload": "Télécharger", + "@chatActionButtonTooltipDownload": {}, + "chatActionButtonTooltipPrintPdf": "Imprimer PDF", + "@chatActionButtonTooltipPrintPdf": {}, + "chatActionButtonTooltipShareWithFriends": "Partager avec des amis", + "@chatActionButtonTooltipShareWithFriends": {}, + "chatActionButtonTooltipNewChat": "Nouveau chat", + "@chatActionButtonTooltipNewChat": {}, + "chatActionButtonTooltipChatList": "Sélectionnez Chat", + "@chatActionButtonTooltipChatList": {}, + "chatActionButtonTooltipShowDrawer": "Afficher le tiroir", + "@chatActionButtonTooltipShowDrawer": { + "description": "Leading кнопка AppBar открывающая панель Drawer'а" + }, + "chatLabelNoChatAvailableRefresh": "Aucun chat disponible. Veuillez actualiser la page ou créer un nouveau chat.", + "@chatLabelNoChatAvailableRefresh": {}, + "chatButtonRefreshChats": "Actualiser les discussions", + "@chatButtonRefreshChats": {}, + "chatButtonCreateNewChat": "Créer un nouveau chat", + "@chatButtonCreateNewChat": {}, + "chatContextMenuCopyMessage": "Copier le texte", + "@chatContextMenuCopyMessage": {}, + "chatStatusProcessingMessages": "Je tape...\nUn instant...", + "@chatStatusProcessingMessages": { + "description": "⚠️⚠️⚠️ Каждая новая строка - следующее сообщение,\nо том что ответ задерживается. ⚠️⚠️⚠️ " + }, + "chatNoConnectionLabel": "Veuillez vérifier votre connexion Internet", + "@chatNoConnectionLabel": {}, + "chatErrorMessageAlreadyProcessed": "Le message est déjà en cours de traitement.", + "@chatErrorMessageAlreadyProcessed": {}, + "chatErrorMessageTooLong": "Le message est trop long.", + "@chatErrorMessageTooLong": {}, + "chatRemoveAttachmentTooltip": "Supprimer la pièce jointe", + "@chatRemoveAttachmentTooltip": {}, + "chatStatusFailedMessage": "Échec du traitement du message", + "@chatStatusFailedMessage": { + "description": "Сообщение отображаемое на статус-ошибку с BE." + }, + "chatActionButtonTooltipExportSummary": "Exporter au format PDF", + "@chatActionButtonTooltipExportSummary": { + "description": "Подсказка для кнопки открывающей боттом шит по экспорту саммари в PDF" + }, + "chatPickerPhotos": "Photos", + "@chatPickerPhotos": { + "description": "Надпись в меню для выбора из галлереи" + }, + "chatPickerCamera": "Caméra", + "@chatPickerCamera": { + "description": "Надпись в меню для прикрепления фото с помощью камеры" + }, + "chatPickerFiles": "Fichiers", + "@chatPickerFiles": { + "description": "Надпись в меню для выбора файлов" + }, + "chatRecommendationYIAG": "J'espère que cela vous a aidé ! Cette explication vous a-t-elle été utile ?", + "@chatRecommendationYIAG": {}, + "chatRecommendationButtonDonate": "Oui, tout va bien !", + "@chatRecommendationButtonDonate": { + "description": "Кнопка отображаемая после финальных рекомендаций, для пользователей без подписки" + }, + "chatHistoryTitle": "Historique des discussions", + "@chatHistoryTitle": {}, + "failedToRetrieveChatSummary": "Échec de la récupération du résumé de la discussion", + "@failedToRetrieveChatSummary": {}, + "chatSummaryCopiedToClipboard": "Résumé de la discussion copié dans le presse-papiers", + "@chatSummaryCopiedToClipboard": {} +} \ No newline at end of file diff --git a/example/lib/src/arbs/chat/example_hi.arb b/example/lib/src/arbs/chat/example_hi.arb new file mode 100644 index 0000000..403377d --- /dev/null +++ b/example/lib/src/arbs/chat/example_hi.arb @@ -0,0 +1,163 @@ +{ + "@@locale": "hi", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "बात करना", + "@title": {}, + "drawerTooltipNotifications": "सूचनाएं", + "@drawerTooltipNotifications": {}, + "drawerTooltipHelp": "मदद", + "@drawerTooltipHelp": {}, + "drawerTooltipClose": "बंद करना", + "@drawerTooltipClose": {}, + "drawerSectionTitleAccount": "खाता", + "@drawerSectionTitleAccount": {}, + "drawerSectionProfile": "प्रोफ़ाइल", + "@drawerSectionProfile": {}, + "drawerSectionAccountSettings": "अकाउंट सेटिंग", + "@drawerSectionAccountSettings": {}, + "drawerSectionDonateToSupport": "समर्थन के लिए दान करें", + "@drawerSectionDonateToSupport": {}, + "drawerSectionSubscription": "सदस्यता", + "@drawerSectionSubscription": {}, + "drawerSectionTitleChats": "चैट", + "@drawerSectionTitleChats": {}, + "drawerSectionChatHistory": "चैट का इतिहास", + "@drawerSectionChatHistory": {}, + "drawerSectionAttachedDocuments": "संलग्न दस्तावेज़", + "@drawerSectionAttachedDocuments": {}, + "drawerSectionTitleHowToUse": "का उपयोग कैसे करें", + "@drawerSectionTitleHowToUse": {}, + "drawerSectionVideoTutorials": "वीडियो ट्यूटोरियल", + "@drawerSectionVideoTutorials": {}, + "drawerSectionTitleLegal": "कानूनी", + "@drawerSectionTitleLegal": {}, + "drawerSectionContactUs": "हमसे संपर्क करें", + "@drawerSectionContactUs": {}, + "drawerSectionBugReport": "बग रिपोर्ट", + "@drawerSectionBugReport": {}, + "drawerSectionTermsAndConditions": "नियम एवं शर्तें", + "@drawerSectionTermsAndConditions": {}, + "drawerSectionPrivacyPolicy": "गोपनीयता नीति", + "@drawerSectionPrivacyPolicy": {}, + "drawerSectionTitleFeedback": "प्रतिक्रिया", + "@drawerSectionTitleFeedback": {}, + "drawerSectionRateApp": "एप्प का मूल्यांकन", + "@drawerSectionRateApp": {}, + "drawerSectionShareWithFriends": "दोस्तों के साथ बांटें", + "@drawerSectionShareWithFriends": {}, + "drawerButtonLogOut": "लॉग आउट", + "@drawerButtonLogOut": {}, + "drawerBannerHelpOthersReceiveMedicalCare": "दूसरों को चिकित्सा देखभाल प्राप्त करने में सहायता करें", + "@drawerBannerHelpOthersReceiveMedicalCare": {}, + "drawerPlaceholderUser": "उपयोगकर्ता", + "@drawerPlaceholderUser": { + "description": "Если нет имени пользователя, емейла, телефона - по умолчанию." + }, + "drawerSubscriptionLabelPremiumFeaturesWithDoctorina": "प्रीमियम सुविधाएँ\nडॉक्टरिना के साथ", + "@drawerSubscriptionLabelPremiumFeaturesWithDoctorina": {}, + "drawerSubscriptionButtonGetPremiumFeatures": "पाना", + "@drawerSubscriptionButtonGetPremiumFeatures": {}, + "drawerLabelJoinUs": "हमसे जुड़ें", + "@drawerLabelJoinUs": { + "description": "Надпись перед иконками социальных сетей" + }, + "drawerTooltipVersion": "एप्लिकेशन वेरीज़न:", + "@drawerTooltipVersion": { + "description": "Подсказка при наведении на версию приложения" + }, + "chatInputHintEnterMessage": "संदेश दर्ज करें", + "@chatInputHintEnterMessage": { + "description": "Подсказка в поле ввода чата" + }, + "chatInputTooltipAttachFile": "फ़ाइल जोड़ें", + "@chatInputTooltipAttachFile": {}, + "chatInputTooltipDictateMessage": "संदेश लिखवाएँ", + "@chatInputTooltipDictateMessage": {}, + "chatInputTooltipSendMessage": "मेसेज भेजें", + "@chatInputTooltipSendMessage": {}, + "chatListSnackBarErrorFailedToFetchMessages": "संदेश प्राप्त करने में विफल", + "@chatListSnackBarErrorFailedToFetchMessages": {}, + "chatListLabelErrorFailedToFetchMessagesPleaseTryAgain": "संदेश प्राप्त करने में विफल. कृपया पुनः प्रयास करें.", + "@chatListLabelErrorFailedToFetchMessagesPleaseTryAgain": {}, + "chatListTooltipFetchMessages": "संदेश प्राप्त करें", + "@chatListTooltipFetchMessages": {}, + "chatListLabelNoMessagesAvailable": "कोई संदेश उपलब्ध नहीं है।\nकृपया बातचीत शुरू करने के लिए एक संदेश भेजें।", + "@chatListLabelNoMessagesAvailable": {}, + "chatListHasConnection": "जुड़े हुए", + "@chatListHasConnection": {}, + "chatListNoConnection": "कोई कनेक्शन नहीं", + "@chatListNoConnection": {}, + "chatActionButtonTooltipSearch": "खोज", + "@chatActionButtonTooltipSearch": {}, + "chatActionButtonTooltipFavorites": "पसंदीदा", + "@chatActionButtonTooltipFavorites": {}, + "chatActionButtonTooltipDownload": "डाउनलोड करना", + "@chatActionButtonTooltipDownload": {}, + "chatActionButtonTooltipPrintPdf": "पीडीएफ प्रिंट करें", + "@chatActionButtonTooltipPrintPdf": {}, + "chatActionButtonTooltipShareWithFriends": "दोस्तों के साथ बांटें", + "@chatActionButtonTooltipShareWithFriends": {}, + "chatActionButtonTooltipNewChat": "नई चैट", + "@chatActionButtonTooltipNewChat": {}, + "chatActionButtonTooltipChatList": "चैट चुनें", + "@chatActionButtonTooltipChatList": {}, + "chatActionButtonTooltipShowDrawer": "दराज दिखाएँ", + "@chatActionButtonTooltipShowDrawer": { + "description": "Leading кнопка AppBar открывающая панель Drawer'а" + }, + "chatLabelNoChatAvailableRefresh": "कोई चैट उपलब्ध नहीं है। कृपया रीफ़्रेश करें या नई चैट बनाएँ।", + "@chatLabelNoChatAvailableRefresh": {}, + "chatButtonRefreshChats": "चैट रीफ़्रेश करें", + "@chatButtonRefreshChats": {}, + "chatButtonCreateNewChat": "नई चैट बनाएँ", + "@chatButtonCreateNewChat": {}, + "chatContextMenuCopyMessage": "पाठ की प्रतिलिपि बनाएँ", + "@chatContextMenuCopyMessage": {}, + "chatStatusProcessingMessages": "टाइप कर रहा हूँ...\nज़रा रुकिए...", + "@chatStatusProcessingMessages": { + "description": "⚠️⚠️⚠️ Каждая новая строка - следующее сообщение,\nо том что ответ задерживается. ⚠️⚠️⚠️ " + }, + "chatNoConnectionLabel": "कृपया अपने इंटरनेट कनेक्शन की जाँच करें", + "@chatNoConnectionLabel": {}, + "chatErrorMessageAlreadyProcessed": "संदेश पर अभी कार्रवाई चल रही है।", + "@chatErrorMessageAlreadyProcessed": {}, + "chatErrorMessageTooLong": "संदेश बहुत लंबा है.", + "@chatErrorMessageTooLong": {}, + "chatRemoveAttachmentTooltip": "अनुलग्नक हटाएँ", + "@chatRemoveAttachmentTooltip": {}, + "chatStatusFailedMessage": "संदेश संसाधित करने में विफल", + "@chatStatusFailedMessage": { + "description": "Сообщение отображаемое на статус-ошибку с BE." + }, + "chatActionButtonTooltipExportSummary": "PDF में निर्यात करें", + "@chatActionButtonTooltipExportSummary": { + "description": "Подсказка для кнопки открывающей боттом шит по экспорту саммари в PDF" + }, + "chatPickerPhotos": "तस्वीरें", + "@chatPickerPhotos": { + "description": "Надпись в меню для выбора из галлереи" + }, + "chatPickerCamera": "कैमरा", + "@chatPickerCamera": { + "description": "Надпись в меню для прикрепления фото с помощью камеры" + }, + "chatPickerFiles": "फ़ाइलें", + "@chatPickerFiles": { + "description": "Надпись в меню для выбора файлов" + }, + "chatRecommendationYIAG": "उम्मीद है इससे मदद मिली होगी! क्या यह स्पष्टीकरण आपके लिए उपयोगी था?", + "@chatRecommendationYIAG": {}, + "chatRecommendationButtonDonate": "हाँ, सब ठीक है!", + "@chatRecommendationButtonDonate": { + "description": "Кнопка отображаемая после финальных рекомендаций, для пользователей без подписки" + }, + "chatHistoryTitle": "चैट का इतिहास", + "@chatHistoryTitle": {}, + "failedToRetrieveChatSummary": "चैट सारांश प्राप्त करने में विफल", + "@failedToRetrieveChatSummary": {}, + "chatSummaryCopiedToClipboard": "चैट सारांश क्लिपबोर्ड पर कॉपी किया गया", + "@chatSummaryCopiedToClipboard": {} +} \ No newline at end of file diff --git a/example/lib/src/arbs/chat/example_it.arb b/example/lib/src/arbs/chat/example_it.arb new file mode 100644 index 0000000..ce4d7b7 --- /dev/null +++ b/example/lib/src/arbs/chat/example_it.arb @@ -0,0 +1,163 @@ +{ + "@@locale": "it", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "Chiacchierata", + "@title": {}, + "drawerTooltipNotifications": "Notifiche", + "@drawerTooltipNotifications": {}, + "drawerTooltipHelp": "Aiuto", + "@drawerTooltipHelp": {}, + "drawerTooltipClose": "Vicino", + "@drawerTooltipClose": {}, + "drawerSectionTitleAccount": "Account", + "@drawerSectionTitleAccount": {}, + "drawerSectionProfile": "Profilo", + "@drawerSectionProfile": {}, + "drawerSectionAccountSettings": "Impostazioni dell'account", + "@drawerSectionAccountSettings": {}, + "drawerSectionDonateToSupport": "Dona per sostenere", + "@drawerSectionDonateToSupport": {}, + "drawerSectionSubscription": "Sottoscrizione", + "@drawerSectionSubscription": {}, + "drawerSectionTitleChats": "Chat", + "@drawerSectionTitleChats": {}, + "drawerSectionChatHistory": "Cronologia chat", + "@drawerSectionChatHistory": {}, + "drawerSectionAttachedDocuments": "Documenti allegati", + "@drawerSectionAttachedDocuments": {}, + "drawerSectionTitleHowToUse": "Come usare", + "@drawerSectionTitleHowToUse": {}, + "drawerSectionVideoTutorials": "Video tutorial", + "@drawerSectionVideoTutorials": {}, + "drawerSectionTitleLegal": "Legal", + "@drawerSectionTitleLegal": {}, + "drawerSectionContactUs": "Contattaci", + "@drawerSectionContactUs": {}, + "drawerSectionBugReport": "Segnalazione di bug", + "@drawerSectionBugReport": {}, + "drawerSectionTermsAndConditions": "Termini e condizioni", + "@drawerSectionTermsAndConditions": {}, + "drawerSectionPrivacyPolicy": "politica sulla riservatezza", + "@drawerSectionPrivacyPolicy": {}, + "drawerSectionTitleFeedback": "Feedback", + "@drawerSectionTitleFeedback": {}, + "drawerSectionRateApp": "Valuta l'app", + "@drawerSectionRateApp": {}, + "drawerSectionShareWithFriends": "Condividi con gli amici", + "@drawerSectionShareWithFriends": {}, + "drawerButtonLogOut": "Disconnetti", + "@drawerButtonLogOut": {}, + "drawerBannerHelpOthersReceiveMedicalCare": "Aiuta gli altri a ricevere assistenza medica", + "@drawerBannerHelpOthersReceiveMedicalCare": {}, + "drawerPlaceholderUser": "Utente", + "@drawerPlaceholderUser": { + "description": "Если нет имени пользователя, емейла, телефона - по умолчанию." + }, + "drawerSubscriptionLabelPremiumFeaturesWithDoctorina": "Funzionalità Premium\ncon Doctorina", + "@drawerSubscriptionLabelPremiumFeaturesWithDoctorina": {}, + "drawerSubscriptionButtonGetPremiumFeatures": "Ottenere", + "@drawerSubscriptionButtonGetPremiumFeatures": {}, + "drawerLabelJoinUs": "Unisciti a noi", + "@drawerLabelJoinUs": { + "description": "Надпись перед иконками социальных сетей" + }, + "drawerTooltipVersion": "Versione dell'app:", + "@drawerTooltipVersion": { + "description": "Подсказка при наведении на версию приложения" + }, + "chatInputHintEnterMessage": "Inserisci il messaggio", + "@chatInputHintEnterMessage": { + "description": "Подсказка в поле ввода чата" + }, + "chatInputTooltipAttachFile": "Allega file", + "@chatInputTooltipAttachFile": {}, + "chatInputTooltipDictateMessage": "Dettare il messaggio", + "@chatInputTooltipDictateMessage": {}, + "chatInputTooltipSendMessage": "Invia messaggio", + "@chatInputTooltipSendMessage": {}, + "chatListSnackBarErrorFailedToFetchMessages": "Impossibile recuperare i messaggi", + "@chatListSnackBarErrorFailedToFetchMessages": {}, + "chatListLabelErrorFailedToFetchMessagesPleaseTryAgain": "Impossibile recuperare i messaggi. Riprova.", + "@chatListLabelErrorFailedToFetchMessagesPleaseTryAgain": {}, + "chatListTooltipFetchMessages": "Recupera i messaggi", + "@chatListTooltipFetchMessages": {}, + "chatListLabelNoMessagesAvailable": "Nessun messaggio disponibile.\nInvia un messaggio per iniziare la conversazione.", + "@chatListLabelNoMessagesAvailable": {}, + "chatListHasConnection": "Collegato", + "@chatListHasConnection": {}, + "chatListNoConnection": "Nessuna connessione", + "@chatListNoConnection": {}, + "chatActionButtonTooltipSearch": "Ricerca", + "@chatActionButtonTooltipSearch": {}, + "chatActionButtonTooltipFavorites": "Preferiti", + "@chatActionButtonTooltipFavorites": {}, + "chatActionButtonTooltipDownload": "Scaricamento", + "@chatActionButtonTooltipDownload": {}, + "chatActionButtonTooltipPrintPdf": "Stampa PDF", + "@chatActionButtonTooltipPrintPdf": {}, + "chatActionButtonTooltipShareWithFriends": "Condividi con gli amici", + "@chatActionButtonTooltipShareWithFriends": {}, + "chatActionButtonTooltipNewChat": "Nuova chat", + "@chatActionButtonTooltipNewChat": {}, + "chatActionButtonTooltipChatList": "Seleziona Chat", + "@chatActionButtonTooltipChatList": {}, + "chatActionButtonTooltipShowDrawer": "Mostra cassetto", + "@chatActionButtonTooltipShowDrawer": { + "description": "Leading кнопка AppBar открывающая панель Drawer'а" + }, + "chatLabelNoChatAvailableRefresh": "Nessuna chat disponibile. Aggiorna la chat o creane una nuova.", + "@chatLabelNoChatAvailableRefresh": {}, + "chatButtonRefreshChats": "Aggiorna le chat", + "@chatButtonRefreshChats": {}, + "chatButtonCreateNewChat": "Crea una nuova chat", + "@chatButtonCreateNewChat": {}, + "chatContextMenuCopyMessage": "Copia il testo", + "@chatContextMenuCopyMessage": {}, + "chatStatusProcessingMessages": "Sto scrivendo...\nUn attimo...", + "@chatStatusProcessingMessages": { + "description": "⚠️⚠️⚠️ Каждая новая строка - следующее сообщение,\nо том что ответ задерживается. ⚠️⚠️⚠️ " + }, + "chatNoConnectionLabel": "Si prega di controllare la connessione Internet", + "@chatNoConnectionLabel": {}, + "chatErrorMessageAlreadyProcessed": "Il messaggio è già in fase di elaborazione.", + "@chatErrorMessageAlreadyProcessed": {}, + "chatErrorMessageTooLong": "Il messaggio è troppo lungo.", + "@chatErrorMessageTooLong": {}, + "chatRemoveAttachmentTooltip": "Rimuovi allegato", + "@chatRemoveAttachmentTooltip": {}, + "chatStatusFailedMessage": "Impossibile elaborare il messaggio", + "@chatStatusFailedMessage": { + "description": "Сообщение отображаемое на статус-ошибку с BE." + }, + "chatActionButtonTooltipExportSummary": "Esporta in PDF", + "@chatActionButtonTooltipExportSummary": { + "description": "Подсказка для кнопки открывающей боттом шит по экспорту саммари в PDF" + }, + "chatPickerPhotos": "Foto", + "@chatPickerPhotos": { + "description": "Надпись в меню для выбора из галлереи" + }, + "chatPickerCamera": "Telecamera", + "@chatPickerCamera": { + "description": "Надпись в меню для прикрепления фото с помощью камеры" + }, + "chatPickerFiles": "File", + "@chatPickerFiles": { + "description": "Надпись в меню для выбора файлов" + }, + "chatRecommendationYIAG": "Spero che ti sia stato utile! Questa spiegazione ti è stata utile?", + "@chatRecommendationYIAG": {}, + "chatRecommendationButtonDonate": "Sì, va tutto bene!", + "@chatRecommendationButtonDonate": { + "description": "Кнопка отображаемая после финальных рекомендаций, для пользователей без подписки" + }, + "chatHistoryTitle": "Cronologia chat", + "@chatHistoryTitle": {}, + "failedToRetrieveChatSummary": "Impossibile recuperare il riepilogo della chat", + "@failedToRetrieveChatSummary": {}, + "chatSummaryCopiedToClipboard": "Riepilogo della chat copiato negli appunti", + "@chatSummaryCopiedToClipboard": {} +} \ No newline at end of file diff --git a/example/lib/src/arbs/chat/example_ko.arb b/example/lib/src/arbs/chat/example_ko.arb new file mode 100644 index 0000000..6e5ee3e --- /dev/null +++ b/example/lib/src/arbs/chat/example_ko.arb @@ -0,0 +1,163 @@ +{ + "@@locale": "ko", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "채팅", + "@title": {}, + "drawerTooltipNotifications": "알림", + "@drawerTooltipNotifications": {}, + "drawerTooltipHelp": "돕다", + "@drawerTooltipHelp": {}, + "drawerTooltipClose": "닫다", + "@drawerTooltipClose": {}, + "drawerSectionTitleAccount": "계정", + "@drawerSectionTitleAccount": {}, + "drawerSectionProfile": "윤곽", + "@drawerSectionProfile": {}, + "drawerSectionAccountSettings": "계정 설정", + "@drawerSectionAccountSettings": {}, + "drawerSectionDonateToSupport": "지원에 기부하세요", + "@drawerSectionDonateToSupport": {}, + "drawerSectionSubscription": "신청", + "@drawerSectionSubscription": {}, + "drawerSectionTitleChats": "채팅", + "@drawerSectionTitleChats": {}, + "drawerSectionChatHistory": "채팅 기록", + "@drawerSectionChatHistory": {}, + "drawerSectionAttachedDocuments": "첨부 문서", + "@drawerSectionAttachedDocuments": {}, + "drawerSectionTitleHowToUse": "사용 방법", + "@drawerSectionTitleHowToUse": {}, + "drawerSectionVideoTutorials": "비디오 튜토리얼", + "@drawerSectionVideoTutorials": {}, + "drawerSectionTitleLegal": "합법적인", + "@drawerSectionTitleLegal": {}, + "drawerSectionContactUs": "문의하기", + "@drawerSectionContactUs": {}, + "drawerSectionBugReport": "버그 리포트", + "@drawerSectionBugReport": {}, + "drawerSectionTermsAndConditions": "이용 약관", + "@drawerSectionTermsAndConditions": {}, + "drawerSectionPrivacyPolicy": "개인정보 보호정책", + "@drawerSectionPrivacyPolicy": {}, + "drawerSectionTitleFeedback": "피드백", + "@drawerSectionTitleFeedback": {}, + "drawerSectionRateApp": "앱 평가", + "@drawerSectionRateApp": {}, + "drawerSectionShareWithFriends": "친구들과 공유하세요", + "@drawerSectionShareWithFriends": {}, + "drawerButtonLogOut": "로그아웃", + "@drawerButtonLogOut": {}, + "drawerBannerHelpOthersReceiveMedicalCare": "다른 사람들이 의료 서비스를 받을 수 있도록 도와주세요", + "@drawerBannerHelpOthersReceiveMedicalCare": {}, + "drawerPlaceholderUser": "사용자", + "@drawerPlaceholderUser": { + "description": "Если нет имени пользователя, емейла, телефона - по умолчанию." + }, + "drawerSubscriptionLabelPremiumFeaturesWithDoctorina": "프리미엄 기능\nDoctorina와 함께", + "@drawerSubscriptionLabelPremiumFeaturesWithDoctorina": {}, + "drawerSubscriptionButtonGetPremiumFeatures": "얻다", + "@drawerSubscriptionButtonGetPremiumFeatures": {}, + "drawerLabelJoinUs": "우리와 함께하세요", + "@drawerLabelJoinUs": { + "description": "Надпись перед иконками социальных сетей" + }, + "drawerTooltipVersion": "앱 버전:", + "@drawerTooltipVersion": { + "description": "Подсказка при наведении на версию приложения" + }, + "chatInputHintEnterMessage": "메시지 입력", + "@chatInputHintEnterMessage": { + "description": "Подсказка в поле ввода чата" + }, + "chatInputTooltipAttachFile": "파일 첨부", + "@chatInputTooltipAttachFile": {}, + "chatInputTooltipDictateMessage": "메시지 받아쓰기", + "@chatInputTooltipDictateMessage": {}, + "chatInputTooltipSendMessage": "메시지 보내기", + "@chatInputTooltipSendMessage": {}, + "chatListSnackBarErrorFailedToFetchMessages": "메시지를 가져오지 못했습니다", + "@chatListSnackBarErrorFailedToFetchMessages": {}, + "chatListLabelErrorFailedToFetchMessagesPleaseTryAgain": "메시지를 가져오지 못했습니다. 다시 시도해 주세요.", + "@chatListLabelErrorFailedToFetchMessagesPleaseTryAgain": {}, + "chatListTooltipFetchMessages": "메시지 가져오기", + "@chatListTooltipFetchMessages": {}, + "chatListLabelNoMessagesAvailable": "사용 가능한 메시지가 없습니다.\n대화를 시작하려면 메시지를 보내주세요.", + "@chatListLabelNoMessagesAvailable": {}, + "chatListHasConnection": "연결됨", + "@chatListHasConnection": {}, + "chatListNoConnection": "연결 없음", + "@chatListNoConnection": {}, + "chatActionButtonTooltipSearch": "찾다", + "@chatActionButtonTooltipSearch": {}, + "chatActionButtonTooltipFavorites": "즐겨찾기", + "@chatActionButtonTooltipFavorites": {}, + "chatActionButtonTooltipDownload": "다운로드", + "@chatActionButtonTooltipDownload": {}, + "chatActionButtonTooltipPrintPdf": "PDF 인쇄", + "@chatActionButtonTooltipPrintPdf": {}, + "chatActionButtonTooltipShareWithFriends": "친구들과 공유하세요", + "@chatActionButtonTooltipShareWithFriends": {}, + "chatActionButtonTooltipNewChat": "새로운 채팅", + "@chatActionButtonTooltipNewChat": {}, + "chatActionButtonTooltipChatList": "채팅 선택", + "@chatActionButtonTooltipChatList": {}, + "chatActionButtonTooltipShowDrawer": "서랍 표시", + "@chatActionButtonTooltipShowDrawer": { + "description": "Leading кнопка AppBar открывающая панель Drawer'а" + }, + "chatLabelNoChatAvailableRefresh": "채팅이 없습니다. 새로고침하거나 새 채팅을 만들어 주세요.", + "@chatLabelNoChatAvailableRefresh": {}, + "chatButtonRefreshChats": "채팅 새로고침", + "@chatButtonRefreshChats": {}, + "chatButtonCreateNewChat": "새로운 채팅 만들기", + "@chatButtonCreateNewChat": {}, + "chatContextMenuCopyMessage": "텍스트 복사", + "@chatContextMenuCopyMessage": {}, + "chatStatusProcessingMessages": "타이핑 중...\n잠깐만요...", + "@chatStatusProcessingMessages": { + "description": "⚠️⚠️⚠️ Каждая новая строка - следующее сообщение,\nо том что ответ задерживается. ⚠️⚠️⚠️ " + }, + "chatNoConnectionLabel": "인터넷 연결을 확인해 주세요", + "@chatNoConnectionLabel": {}, + "chatErrorMessageAlreadyProcessed": "해당 메시지는 현재 처리 중입니다.", + "@chatErrorMessageAlreadyProcessed": {}, + "chatErrorMessageTooLong": "메시지가 너무 깁니다.", + "@chatErrorMessageTooLong": {}, + "chatRemoveAttachmentTooltip": "첨부 파일 제거", + "@chatRemoveAttachmentTooltip": {}, + "chatStatusFailedMessage": "메시지 처리에 실패했습니다", + "@chatStatusFailedMessage": { + "description": "Сообщение отображаемое на статус-ошибку с BE." + }, + "chatActionButtonTooltipExportSummary": "PDF로 내보내기", + "@chatActionButtonTooltipExportSummary": { + "description": "Подсказка для кнопки открывающей боттом шит по экспорту саммари в PDF" + }, + "chatPickerPhotos": "사진", + "@chatPickerPhotos": { + "description": "Надпись в меню для выбора из галлереи" + }, + "chatPickerCamera": "카메라", + "@chatPickerCamera": { + "description": "Надпись в меню для прикрепления фото с помощью камеры" + }, + "chatPickerFiles": "파일", + "@chatPickerFiles": { + "description": "Надпись в меню для выбора файлов" + }, + "chatRecommendationYIAG": "도움이 되었기를 바랍니다! 이 설명이 도움이 되셨나요?", + "@chatRecommendationYIAG": {}, + "chatRecommendationButtonDonate": "네, 다 괜찮아요!", + "@chatRecommendationButtonDonate": { + "description": "Кнопка отображаемая после финальных рекомендаций, для пользователей без подписки" + }, + "chatHistoryTitle": "채팅 기록", + "@chatHistoryTitle": {}, + "failedToRetrieveChatSummary": "채팅 요약을 검색하지 못했습니다.", + "@failedToRetrieveChatSummary": {}, + "chatSummaryCopiedToClipboard": "채팅 요약이 클립보드에 복사되었습니다.", + "@chatSummaryCopiedToClipboard": {} +} \ No newline at end of file diff --git a/example/lib/src/arbs/chat/example_pt.arb b/example/lib/src/arbs/chat/example_pt.arb new file mode 100644 index 0000000..07faa80 --- /dev/null +++ b/example/lib/src/arbs/chat/example_pt.arb @@ -0,0 +1,163 @@ +{ + "@@locale": "pt", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "Bater papo", + "@title": {}, + "drawerTooltipNotifications": "Notificações", + "@drawerTooltipNotifications": {}, + "drawerTooltipHelp": "Ajuda", + "@drawerTooltipHelp": {}, + "drawerTooltipClose": "Fechar", + "@drawerTooltipClose": {}, + "drawerSectionTitleAccount": "Conta", + "@drawerSectionTitleAccount": {}, + "drawerSectionProfile": "Perfil", + "@drawerSectionProfile": {}, + "drawerSectionAccountSettings": "Configurações de Conta", + "@drawerSectionAccountSettings": {}, + "drawerSectionDonateToSupport": "Doe para apoiar", + "@drawerSectionDonateToSupport": {}, + "drawerSectionSubscription": "Subscrição", + "@drawerSectionSubscription": {}, + "drawerSectionTitleChats": "Bate-papos", + "@drawerSectionTitleChats": {}, + "drawerSectionChatHistory": "Histórico de bate-papo", + "@drawerSectionChatHistory": {}, + "drawerSectionAttachedDocuments": "Documentos anexados", + "@drawerSectionAttachedDocuments": {}, + "drawerSectionTitleHowToUse": "Como usar", + "@drawerSectionTitleHowToUse": {}, + "drawerSectionVideoTutorials": "Tutoriais em vídeo", + "@drawerSectionVideoTutorials": {}, + "drawerSectionTitleLegal": "Jurídico", + "@drawerSectionTitleLegal": {}, + "drawerSectionContactUs": "Contate-nos", + "@drawerSectionContactUs": {}, + "drawerSectionBugReport": "Relatório de bug", + "@drawerSectionBugReport": {}, + "drawerSectionTermsAndConditions": "Termos e Condições", + "@drawerSectionTermsAndConditions": {}, + "drawerSectionPrivacyPolicy": "política de Privacidade", + "@drawerSectionPrivacyPolicy": {}, + "drawerSectionTitleFeedback": "Opinião", + "@drawerSectionTitleFeedback": {}, + "drawerSectionRateApp": "Avalie o aplicativo", + "@drawerSectionRateApp": {}, + "drawerSectionShareWithFriends": "Compartilhe com amigos", + "@drawerSectionShareWithFriends": {}, + "drawerButtonLogOut": "Sair", + "@drawerButtonLogOut": {}, + "drawerBannerHelpOthersReceiveMedicalCare": "Ajude outras pessoas a receber cuidados médicos", + "@drawerBannerHelpOthersReceiveMedicalCare": {}, + "drawerPlaceholderUser": "Usuário", + "@drawerPlaceholderUser": { + "description": "Если нет имени пользователя, емейла, телефона - по умолчанию." + }, + "drawerSubscriptionLabelPremiumFeaturesWithDoctorina": "Recursos Premium\ncom Doctorina", + "@drawerSubscriptionLabelPremiumFeaturesWithDoctorina": {}, + "drawerSubscriptionButtonGetPremiumFeatures": "Pegar", + "@drawerSubscriptionButtonGetPremiumFeatures": {}, + "drawerLabelJoinUs": "Junte-se a nós", + "@drawerLabelJoinUs": { + "description": "Надпись перед иконками социальных сетей" + }, + "drawerTooltipVersion": "Versão do aplicativo:", + "@drawerTooltipVersion": { + "description": "Подсказка при наведении на версию приложения" + }, + "chatInputHintEnterMessage": "Digite a mensagem", + "@chatInputHintEnterMessage": { + "description": "Подсказка в поле ввода чата" + }, + "chatInputTooltipAttachFile": "Anexar arquivo", + "@chatInputTooltipAttachFile": {}, + "chatInputTooltipDictateMessage": "Ditar mensagem", + "@chatInputTooltipDictateMessage": {}, + "chatInputTooltipSendMessage": "Enviar mensagem", + "@chatInputTooltipSendMessage": {}, + "chatListSnackBarErrorFailedToFetchMessages": "Falha ao buscar mensagens", + "@chatListSnackBarErrorFailedToFetchMessages": {}, + "chatListLabelErrorFailedToFetchMessagesPleaseTryAgain": "Falha ao buscar mensagens. Tente novamente.", + "@chatListLabelErrorFailedToFetchMessagesPleaseTryAgain": {}, + "chatListTooltipFetchMessages": "Buscar mensagens", + "@chatListTooltipFetchMessages": {}, + "chatListLabelNoMessagesAvailable": "Nenhuma mensagem disponível.\nEnvie uma mensagem para iniciar a conversa.", + "@chatListLabelNoMessagesAvailable": {}, + "chatListHasConnection": "Conectado", + "@chatListHasConnection": {}, + "chatListNoConnection": "Sem conexão", + "@chatListNoConnection": {}, + "chatActionButtonTooltipSearch": "Procurar", + "@chatActionButtonTooltipSearch": {}, + "chatActionButtonTooltipFavorites": "Favoritos", + "@chatActionButtonTooltipFavorites": {}, + "chatActionButtonTooltipDownload": "Download", + "@chatActionButtonTooltipDownload": {}, + "chatActionButtonTooltipPrintPdf": "Imprimir PDF", + "@chatActionButtonTooltipPrintPdf": {}, + "chatActionButtonTooltipShareWithFriends": "Compartilhe com amigos", + "@chatActionButtonTooltipShareWithFriends": {}, + "chatActionButtonTooltipNewChat": "Novo bate-papo", + "@chatActionButtonTooltipNewChat": {}, + "chatActionButtonTooltipChatList": "Selecione Bate-papo", + "@chatActionButtonTooltipChatList": {}, + "chatActionButtonTooltipShowDrawer": "Mostrar gaveta", + "@chatActionButtonTooltipShowDrawer": { + "description": "Leading кнопка AppBar открывающая панель Drawer'а" + }, + "chatLabelNoChatAvailableRefresh": "Nenhum chat disponível. Atualize ou crie um novo chat.", + "@chatLabelNoChatAvailableRefresh": {}, + "chatButtonRefreshChats": "Atualizar chats", + "@chatButtonRefreshChats": {}, + "chatButtonCreateNewChat": "Criar novo chat", + "@chatButtonCreateNewChat": {}, + "chatContextMenuCopyMessage": "Copiar texto", + "@chatContextMenuCopyMessage": {}, + "chatStatusProcessingMessages": "Digitando...\nSó um momento...", + "@chatStatusProcessingMessages": { + "description": "⚠️⚠️⚠️ Каждая новая строка - следующее сообщение,\nо том что ответ задерживается. ⚠️⚠️⚠️ " + }, + "chatNoConnectionLabel": "Por favor, verifique sua conexão com a internet", + "@chatNoConnectionLabel": {}, + "chatErrorMessageAlreadyProcessed": "A mensagem já está sendo processada neste momento.", + "@chatErrorMessageAlreadyProcessed": {}, + "chatErrorMessageTooLong": "A mensagem é muito longa.", + "@chatErrorMessageTooLong": {}, + "chatRemoveAttachmentTooltip": "Remover anexo", + "@chatRemoveAttachmentTooltip": {}, + "chatStatusFailedMessage": "Falha ao processar a mensagem", + "@chatStatusFailedMessage": { + "description": "Сообщение отображаемое на статус-ошибку с BE." + }, + "chatActionButtonTooltipExportSummary": "Exportar para PDF", + "@chatActionButtonTooltipExportSummary": { + "description": "Подсказка для кнопки открывающей боттом шит по экспорту саммари в PDF" + }, + "chatPickerPhotos": "Fotos", + "@chatPickerPhotos": { + "description": "Надпись в меню для выбора из галлереи" + }, + "chatPickerCamera": "Câmera", + "@chatPickerCamera": { + "description": "Надпись в меню для прикрепления фото с помощью камеры" + }, + "chatPickerFiles": "Arquivos", + "@chatPickerFiles": { + "description": "Надпись в меню для выбора файлов" + }, + "chatRecommendationYIAG": "Espero ter ajudado! Esta explicação foi útil para você?", + "@chatRecommendationYIAG": {}, + "chatRecommendationButtonDonate": "Sim, está tudo bem!", + "@chatRecommendationButtonDonate": { + "description": "Кнопка отображаемая после финальных рекомендаций, для пользователей без подписки" + }, + "chatHistoryTitle": "Histórico de bate-papo", + "@chatHistoryTitle": {}, + "failedToRetrieveChatSummary": "Falha ao recuperar o resumo do bate-papo", + "@failedToRetrieveChatSummary": {}, + "chatSummaryCopiedToClipboard": "Resumo do bate-papo copiado para a área de transferência", + "@chatSummaryCopiedToClipboard": {} +} \ No newline at end of file diff --git a/example/lib/src/arbs/chat/example_pt_BR.arb b/example/lib/src/arbs/chat/example_pt_BR.arb new file mode 100644 index 0000000..a410f32 --- /dev/null +++ b/example/lib/src/arbs/chat/example_pt_BR.arb @@ -0,0 +1,163 @@ +{ + "@@locale": "pt_BR", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "Bater papo", + "@title": {}, + "drawerTooltipNotifications": "Notificações", + "@drawerTooltipNotifications": {}, + "drawerTooltipHelp": "Ajuda", + "@drawerTooltipHelp": {}, + "drawerTooltipClose": "Fechar", + "@drawerTooltipClose": {}, + "drawerSectionTitleAccount": "Conta", + "@drawerSectionTitleAccount": {}, + "drawerSectionProfile": "Perfil", + "@drawerSectionProfile": {}, + "drawerSectionAccountSettings": "Configurações de Conta", + "@drawerSectionAccountSettings": {}, + "drawerSectionDonateToSupport": "Doe para apoiar", + "@drawerSectionDonateToSupport": {}, + "drawerSectionSubscription": "Subscrição", + "@drawerSectionSubscription": {}, + "drawerSectionTitleChats": "Bate-papos", + "@drawerSectionTitleChats": {}, + "drawerSectionChatHistory": "Histórico de bate-papo", + "@drawerSectionChatHistory": {}, + "drawerSectionAttachedDocuments": "Documentos anexados", + "@drawerSectionAttachedDocuments": {}, + "drawerSectionTitleHowToUse": "Como usar", + "@drawerSectionTitleHowToUse": {}, + "drawerSectionVideoTutorials": "Tutoriais em vídeo", + "@drawerSectionVideoTutorials": {}, + "drawerSectionTitleLegal": "Jurídico", + "@drawerSectionTitleLegal": {}, + "drawerSectionContactUs": "Contate-nos", + "@drawerSectionContactUs": {}, + "drawerSectionBugReport": "Relatório de bug", + "@drawerSectionBugReport": {}, + "drawerSectionTermsAndConditions": "Termos e Condições", + "@drawerSectionTermsAndConditions": {}, + "drawerSectionPrivacyPolicy": "política de Privacidade", + "@drawerSectionPrivacyPolicy": {}, + "drawerSectionTitleFeedback": "Opinião", + "@drawerSectionTitleFeedback": {}, + "drawerSectionRateApp": "Avalie o aplicativo", + "@drawerSectionRateApp": {}, + "drawerSectionShareWithFriends": "Compartilhe com amigos", + "@drawerSectionShareWithFriends": {}, + "drawerButtonLogOut": "Sair", + "@drawerButtonLogOut": {}, + "drawerBannerHelpOthersReceiveMedicalCare": "Ajude outras pessoas a receber cuidados médicos", + "@drawerBannerHelpOthersReceiveMedicalCare": {}, + "drawerPlaceholderUser": "Usuário", + "@drawerPlaceholderUser": { + "description": "Если нет имени пользователя, емейла, телефона - по умолчанию." + }, + "drawerSubscriptionLabelPremiumFeaturesWithDoctorina": "Recursos Premium\ncom Doctorina", + "@drawerSubscriptionLabelPremiumFeaturesWithDoctorina": {}, + "drawerSubscriptionButtonGetPremiumFeatures": "Pegar", + "@drawerSubscriptionButtonGetPremiumFeatures": {}, + "drawerLabelJoinUs": "Junte-se a nós", + "@drawerLabelJoinUs": { + "description": "Надпись перед иконками социальных сетей" + }, + "drawerTooltipVersion": "Versão do aplicativo:", + "@drawerTooltipVersion": { + "description": "Подсказка при наведении на версию приложения" + }, + "chatInputHintEnterMessage": "Digite a mensagem", + "@chatInputHintEnterMessage": { + "description": "Подсказка в поле ввода чата" + }, + "chatInputTooltipAttachFile": "Anexar arquivo", + "@chatInputTooltipAttachFile": {}, + "chatInputTooltipDictateMessage": "Ditar mensagem", + "@chatInputTooltipDictateMessage": {}, + "chatInputTooltipSendMessage": "Enviar mensagem", + "@chatInputTooltipSendMessage": {}, + "chatListSnackBarErrorFailedToFetchMessages": "Falha ao buscar mensagens", + "@chatListSnackBarErrorFailedToFetchMessages": {}, + "chatListLabelErrorFailedToFetchMessagesPleaseTryAgain": "Falha ao buscar mensagens. Tente novamente.", + "@chatListLabelErrorFailedToFetchMessagesPleaseTryAgain": {}, + "chatListTooltipFetchMessages": "Buscar mensagens", + "@chatListTooltipFetchMessages": {}, + "chatListLabelNoMessagesAvailable": "Nenhuma mensagem disponível.\nEnvie uma mensagem para iniciar a conversa.", + "@chatListLabelNoMessagesAvailable": {}, + "chatListHasConnection": "Conectado", + "@chatListHasConnection": {}, + "chatListNoConnection": "Sem conexão", + "@chatListNoConnection": {}, + "chatActionButtonTooltipSearch": "Procurar", + "@chatActionButtonTooltipSearch": {}, + "chatActionButtonTooltipFavorites": "Favoritos", + "@chatActionButtonTooltipFavorites": {}, + "chatActionButtonTooltipDownload": "Download", + "@chatActionButtonTooltipDownload": {}, + "chatActionButtonTooltipPrintPdf": "Imprimir PDF", + "@chatActionButtonTooltipPrintPdf": {}, + "chatActionButtonTooltipShareWithFriends": "Compartilhe com amigos", + "@chatActionButtonTooltipShareWithFriends": {}, + "chatActionButtonTooltipNewChat": "Novo bate-papo", + "@chatActionButtonTooltipNewChat": {}, + "chatActionButtonTooltipChatList": "Selecione Bate-papo", + "@chatActionButtonTooltipChatList": {}, + "chatActionButtonTooltipShowDrawer": "Mostrar gaveta", + "@chatActionButtonTooltipShowDrawer": { + "description": "Leading кнопка AppBar открывающая панель Drawer'а" + }, + "chatLabelNoChatAvailableRefresh": "Nenhum chat disponível. Atualize ou crie um novo chat.", + "@chatLabelNoChatAvailableRefresh": {}, + "chatButtonRefreshChats": "Atualizar chats", + "@chatButtonRefreshChats": {}, + "chatButtonCreateNewChat": "Criar novo chat", + "@chatButtonCreateNewChat": {}, + "chatContextMenuCopyMessage": "Copiar texto", + "@chatContextMenuCopyMessage": {}, + "chatStatusProcessingMessages": "Digitando...\nSó um momento...", + "@chatStatusProcessingMessages": { + "description": "⚠️⚠️⚠️ Каждая новая строка - следующее сообщение,\nо том что ответ задерживается. ⚠️⚠️⚠️ " + }, + "chatNoConnectionLabel": "Por favor, verifique sua conexão com a internet", + "@chatNoConnectionLabel": {}, + "chatErrorMessageAlreadyProcessed": "A mensagem já está sendo processada neste momento.", + "@chatErrorMessageAlreadyProcessed": {}, + "chatErrorMessageTooLong": "A mensagem é muito longa.", + "@chatErrorMessageTooLong": {}, + "chatRemoveAttachmentTooltip": "Remover anexo", + "@chatRemoveAttachmentTooltip": {}, + "chatStatusFailedMessage": "Falha ao processar a mensagem", + "@chatStatusFailedMessage": { + "description": "Сообщение отображаемое на статус-ошибку с BE." + }, + "chatActionButtonTooltipExportSummary": "Exportar para PDF", + "@chatActionButtonTooltipExportSummary": { + "description": "Подсказка для кнопки открывающей боттом шит по экспорту саммари в PDF" + }, + "chatPickerPhotos": "Fotos", + "@chatPickerPhotos": { + "description": "Надпись в меню для выбора из галлереи" + }, + "chatPickerCamera": "Câmera", + "@chatPickerCamera": { + "description": "Надпись в меню для прикрепления фото с помощью камеры" + }, + "chatPickerFiles": "Arquivos", + "@chatPickerFiles": { + "description": "Надпись в меню для выбора файлов" + }, + "chatRecommendationYIAG": "Espero ter ajudado! Esta explicação foi útil para você?", + "@chatRecommendationYIAG": {}, + "chatRecommendationButtonDonate": "Sim, está tudo bem!", + "@chatRecommendationButtonDonate": { + "description": "Кнопка отображаемая после финальных рекомендаций, для пользователей без подписки" + }, + "chatHistoryTitle": "Histórico de bate-papo", + "@chatHistoryTitle": {}, + "failedToRetrieveChatSummary": "Falha ao recuperar o resumo do bate-papo", + "@failedToRetrieveChatSummary": {}, + "chatSummaryCopiedToClipboard": "Resumo do bate-papo copiado para a área de transferência", + "@chatSummaryCopiedToClipboard": {} +} \ No newline at end of file diff --git a/example/lib/src/arbs/chat/example_ru.arb b/example/lib/src/arbs/chat/example_ru.arb index 17535dc..57e2db7 100644 --- a/example/lib/src/arbs/chat/example_ru.arb +++ b/example/lib/src/arbs/chat/example_ru.arb @@ -1,7 +1,7 @@ { "@@locale": "ru", "@@author": "example@gmail.com", - "@@last_modified": "2025-06-04T15:18:15.787321Z", + "@@last_modified": "2025-08-26T14:28:36.220548Z", "@@comment": "Generated from Google Sheets", "@@context": "From Google Sheets", "title": "Чат", @@ -135,5 +135,29 @@ "chatActionButtonTooltipExportSummary": "Экспортировать в PDF", "@chatActionButtonTooltipExportSummary": { "description": "Подсказка для кнопки открывающей боттом шит по экспорту саммари в PDF" - } + }, + "chatPickerPhotos": "Фотографии", + "@chatPickerPhotos": { + "description": "Надпись в меню для выбора из галлереи" + }, + "chatPickerCamera": "Камера", + "@chatPickerCamera": { + "description": "Надпись в меню для прикрепления фото с помощью камеры" + }, + "chatPickerFiles": "Файлы", + "@chatPickerFiles": { + "description": "Надпись в меню для выбора файлов" + }, + "chatRecommendationYIAG": "Надеюсь, это помогло! Было ли это объяснение вам полезным?", + "@chatRecommendationYIAG": {}, + "chatRecommendationButtonDonate": "Да, все хорошо!", + "@chatRecommendationButtonDonate": { + "description": "Кнопка отображаемая после финальных рекомендаций, для пользователей без подписки" + }, + "chatHistoryTitle": "История чата", + "@chatHistoryTitle": {}, + "failedToRetrieveChatSummary": "Не удалось получить сводку чата", + "@failedToRetrieveChatSummary": {}, + "chatSummaryCopiedToClipboard": "Сводка чата скопирована в буфер обмена", + "@chatSummaryCopiedToClipboard": {} } \ No newline at end of file diff --git a/example/lib/src/arbs/chat/example_zh.arb b/example/lib/src/arbs/chat/example_zh.arb new file mode 100644 index 0000000..ff3569c --- /dev/null +++ b/example/lib/src/arbs/chat/example_zh.arb @@ -0,0 +1,163 @@ +{ + "@@locale": "zh", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "聊天", + "@title": {}, + "drawerTooltipNotifications": "通知", + "@drawerTooltipNotifications": {}, + "drawerTooltipHelp": "帮助", + "@drawerTooltipHelp": {}, + "drawerTooltipClose": "关闭", + "@drawerTooltipClose": {}, + "drawerSectionTitleAccount": "帐户", + "@drawerSectionTitleAccount": {}, + "drawerSectionProfile": "轮廓", + "@drawerSectionProfile": {}, + "drawerSectionAccountSettings": "帐户设置", + "@drawerSectionAccountSettings": {}, + "drawerSectionDonateToSupport": "捐款支持", + "@drawerSectionDonateToSupport": {}, + "drawerSectionSubscription": "订阅", + "@drawerSectionSubscription": {}, + "drawerSectionTitleChats": "聊天", + "@drawerSectionTitleChats": {}, + "drawerSectionChatHistory": "聊天记录", + "@drawerSectionChatHistory": {}, + "drawerSectionAttachedDocuments": "附件", + "@drawerSectionAttachedDocuments": {}, + "drawerSectionTitleHowToUse": "如何使用", + "@drawerSectionTitleHowToUse": {}, + "drawerSectionVideoTutorials": "视频教程", + "@drawerSectionVideoTutorials": {}, + "drawerSectionTitleLegal": "合法的", + "@drawerSectionTitleLegal": {}, + "drawerSectionContactUs": "联系我们", + "@drawerSectionContactUs": {}, + "drawerSectionBugReport": "错误报告", + "@drawerSectionBugReport": {}, + "drawerSectionTermsAndConditions": "条款和条件", + "@drawerSectionTermsAndConditions": {}, + "drawerSectionPrivacyPolicy": "隐私政策", + "@drawerSectionPrivacyPolicy": {}, + "drawerSectionTitleFeedback": "反馈", + "@drawerSectionTitleFeedback": {}, + "drawerSectionRateApp": "评价应用程序", + "@drawerSectionRateApp": {}, + "drawerSectionShareWithFriends": "与朋友分享", + "@drawerSectionShareWithFriends": {}, + "drawerButtonLogOut": "登出", + "@drawerButtonLogOut": {}, + "drawerBannerHelpOthersReceiveMedicalCare": "帮助他人获得医疗服务", + "@drawerBannerHelpOthersReceiveMedicalCare": {}, + "drawerPlaceholderUser": "用户", + "@drawerPlaceholderUser": { + "description": "Если нет имени пользователя, емейла, телефона - по умолчанию." + }, + "drawerSubscriptionLabelPremiumFeaturesWithDoctorina": "Doctorina 的高级功能", + "@drawerSubscriptionLabelPremiumFeaturesWithDoctorina": {}, + "drawerSubscriptionButtonGetPremiumFeatures": "得到", + "@drawerSubscriptionButtonGetPremiumFeatures": {}, + "drawerLabelJoinUs": "加入我们", + "@drawerLabelJoinUs": { + "description": "Надпись перед иконками социальных сетей" + }, + "drawerTooltipVersion": "应用程序版本:", + "@drawerTooltipVersion": { + "description": "Подсказка при наведении на версию приложения" + }, + "chatInputHintEnterMessage": "输入消息", + "@chatInputHintEnterMessage": { + "description": "Подсказка в поле ввода чата" + }, + "chatInputTooltipAttachFile": "附加文件", + "@chatInputTooltipAttachFile": {}, + "chatInputTooltipDictateMessage": "口述信息", + "@chatInputTooltipDictateMessage": {}, + "chatInputTooltipSendMessage": "发送消息", + "@chatInputTooltipSendMessage": {}, + "chatListSnackBarErrorFailedToFetchMessages": "无法获取消息", + "@chatListSnackBarErrorFailedToFetchMessages": {}, + "chatListLabelErrorFailedToFetchMessagesPleaseTryAgain": "无法获取消息。请重试。", + "@chatListLabelErrorFailedToFetchMessagesPleaseTryAgain": {}, + "chatListTooltipFetchMessages": "获取消息", + "@chatListTooltipFetchMessages": {}, + "chatListLabelNoMessagesAvailable": "没有可用的消息。\n请发送消息以开始对话。", + "@chatListLabelNoMessagesAvailable": {}, + "chatListHasConnection": "已连接", + "@chatListHasConnection": {}, + "chatListNoConnection": "无连接", + "@chatListNoConnection": {}, + "chatActionButtonTooltipSearch": "搜索", + "@chatActionButtonTooltipSearch": {}, + "chatActionButtonTooltipFavorites": "收藏夹", + "@chatActionButtonTooltipFavorites": {}, + "chatActionButtonTooltipDownload": "下载", + "@chatActionButtonTooltipDownload": {}, + "chatActionButtonTooltipPrintPdf": "打印PDF", + "@chatActionButtonTooltipPrintPdf": {}, + "chatActionButtonTooltipShareWithFriends": "与朋友分享", + "@chatActionButtonTooltipShareWithFriends": {}, + "chatActionButtonTooltipNewChat": "新聊天", + "@chatActionButtonTooltipNewChat": {}, + "chatActionButtonTooltipChatList": "选择“聊天”", + "@chatActionButtonTooltipChatList": {}, + "chatActionButtonTooltipShowDrawer": "显示抽屉", + "@chatActionButtonTooltipShowDrawer": { + "description": "Leading кнопка AppBar открывающая панель Drawer'а" + }, + "chatLabelNoChatAvailableRefresh": "没有可用的聊天。请刷新或创建新的聊天。", + "@chatLabelNoChatAvailableRefresh": {}, + "chatButtonRefreshChats": "刷新聊天", + "@chatButtonRefreshChats": {}, + "chatButtonCreateNewChat": "创建新聊天", + "@chatButtonCreateNewChat": {}, + "chatContextMenuCopyMessage": "复制文本", + "@chatContextMenuCopyMessage": {}, + "chatStatusProcessingMessages": "正在输入...\n请稍等...", + "@chatStatusProcessingMessages": { + "description": "⚠️⚠️⚠️ Каждая новая строка - следующее сообщение,\nо том что ответ задерживается. ⚠️⚠️⚠️ " + }, + "chatNoConnectionLabel": "请检查您的互联网连接", + "@chatNoConnectionLabel": {}, + "chatErrorMessageAlreadyProcessed": "该消息目前正在处理中。", + "@chatErrorMessageAlreadyProcessed": {}, + "chatErrorMessageTooLong": "消息太长。", + "@chatErrorMessageTooLong": {}, + "chatRemoveAttachmentTooltip": "删除附件", + "@chatRemoveAttachmentTooltip": {}, + "chatStatusFailedMessage": "无法处理消息", + "@chatStatusFailedMessage": { + "description": "Сообщение отображаемое на статус-ошибку с BE." + }, + "chatActionButtonTooltipExportSummary": "导出为 PDF", + "@chatActionButtonTooltipExportSummary": { + "description": "Подсказка для кнопки открывающей боттом шит по экспорту саммари в PDF" + }, + "chatPickerPhotos": "照片", + "@chatPickerPhotos": { + "description": "Надпись в меню для выбора из галлереи" + }, + "chatPickerCamera": "相机", + "@chatPickerCamera": { + "description": "Надпись в меню для прикрепления фото с помощью камеры" + }, + "chatPickerFiles": "文件", + "@chatPickerFiles": { + "description": "Надпись в меню для выбора файлов" + }, + "chatRecommendationYIAG": "希望以上内容对您有所帮助!这个解释对您有帮助吗?", + "@chatRecommendationYIAG": {}, + "chatRecommendationButtonDonate": "是的,一切都很好!", + "@chatRecommendationButtonDonate": { + "description": "Кнопка отображаемая после финальных рекомендаций, для пользователей без подписки" + }, + "chatHistoryTitle": "聊天记录", + "@chatHistoryTitle": {}, + "failedToRetrieveChatSummary": "无法检索聊天摘要", + "@failedToRetrieveChatSummary": {}, + "chatSummaryCopiedToClipboard": "聊天摘要已复制到剪贴板", + "@chatSummaryCopiedToClipboard": {} +} \ No newline at end of file diff --git a/example/lib/src/arbs/chat/example_zh_CN.arb b/example/lib/src/arbs/chat/example_zh_CN.arb new file mode 100644 index 0000000..4c9c34c --- /dev/null +++ b/example/lib/src/arbs/chat/example_zh_CN.arb @@ -0,0 +1,163 @@ +{ + "@@locale": "zh_CN", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "聊天", + "@title": {}, + "drawerTooltipNotifications": "通知", + "@drawerTooltipNotifications": {}, + "drawerTooltipHelp": "帮助", + "@drawerTooltipHelp": {}, + "drawerTooltipClose": "关闭", + "@drawerTooltipClose": {}, + "drawerSectionTitleAccount": "帐户", + "@drawerSectionTitleAccount": {}, + "drawerSectionProfile": "轮廓", + "@drawerSectionProfile": {}, + "drawerSectionAccountSettings": "帐户设置", + "@drawerSectionAccountSettings": {}, + "drawerSectionDonateToSupport": "捐款支持", + "@drawerSectionDonateToSupport": {}, + "drawerSectionSubscription": "订阅", + "@drawerSectionSubscription": {}, + "drawerSectionTitleChats": "聊天", + "@drawerSectionTitleChats": {}, + "drawerSectionChatHistory": "聊天记录", + "@drawerSectionChatHistory": {}, + "drawerSectionAttachedDocuments": "附件", + "@drawerSectionAttachedDocuments": {}, + "drawerSectionTitleHowToUse": "如何使用", + "@drawerSectionTitleHowToUse": {}, + "drawerSectionVideoTutorials": "视频教程", + "@drawerSectionVideoTutorials": {}, + "drawerSectionTitleLegal": "合法的", + "@drawerSectionTitleLegal": {}, + "drawerSectionContactUs": "联系我们", + "@drawerSectionContactUs": {}, + "drawerSectionBugReport": "错误报告", + "@drawerSectionBugReport": {}, + "drawerSectionTermsAndConditions": "条款和条件", + "@drawerSectionTermsAndConditions": {}, + "drawerSectionPrivacyPolicy": "隐私政策", + "@drawerSectionPrivacyPolicy": {}, + "drawerSectionTitleFeedback": "反馈", + "@drawerSectionTitleFeedback": {}, + "drawerSectionRateApp": "评价应用程序", + "@drawerSectionRateApp": {}, + "drawerSectionShareWithFriends": "与朋友分享", + "@drawerSectionShareWithFriends": {}, + "drawerButtonLogOut": "登出", + "@drawerButtonLogOut": {}, + "drawerBannerHelpOthersReceiveMedicalCare": "帮助他人获得医疗服务", + "@drawerBannerHelpOthersReceiveMedicalCare": {}, + "drawerPlaceholderUser": "用户", + "@drawerPlaceholderUser": { + "description": "Если нет имени пользователя, емейла, телефона - по умолчанию." + }, + "drawerSubscriptionLabelPremiumFeaturesWithDoctorina": "Doctorina 的高级功能", + "@drawerSubscriptionLabelPremiumFeaturesWithDoctorina": {}, + "drawerSubscriptionButtonGetPremiumFeatures": "得到", + "@drawerSubscriptionButtonGetPremiumFeatures": {}, + "drawerLabelJoinUs": "加入我们", + "@drawerLabelJoinUs": { + "description": "Надпись перед иконками социальных сетей" + }, + "drawerTooltipVersion": "应用程序版本:", + "@drawerTooltipVersion": { + "description": "Подсказка при наведении на версию приложения" + }, + "chatInputHintEnterMessage": "输入消息", + "@chatInputHintEnterMessage": { + "description": "Подсказка в поле ввода чата" + }, + "chatInputTooltipAttachFile": "附加文件", + "@chatInputTooltipAttachFile": {}, + "chatInputTooltipDictateMessage": "口述信息", + "@chatInputTooltipDictateMessage": {}, + "chatInputTooltipSendMessage": "发送消息", + "@chatInputTooltipSendMessage": {}, + "chatListSnackBarErrorFailedToFetchMessages": "无法获取消息", + "@chatListSnackBarErrorFailedToFetchMessages": {}, + "chatListLabelErrorFailedToFetchMessagesPleaseTryAgain": "无法获取消息。请重试。", + "@chatListLabelErrorFailedToFetchMessagesPleaseTryAgain": {}, + "chatListTooltipFetchMessages": "获取消息", + "@chatListTooltipFetchMessages": {}, + "chatListLabelNoMessagesAvailable": "没有可用的消息。\n请发送消息以开始对话。", + "@chatListLabelNoMessagesAvailable": {}, + "chatListHasConnection": "已连接", + "@chatListHasConnection": {}, + "chatListNoConnection": "无连接", + "@chatListNoConnection": {}, + "chatActionButtonTooltipSearch": "搜索", + "@chatActionButtonTooltipSearch": {}, + "chatActionButtonTooltipFavorites": "收藏夹", + "@chatActionButtonTooltipFavorites": {}, + "chatActionButtonTooltipDownload": "下载", + "@chatActionButtonTooltipDownload": {}, + "chatActionButtonTooltipPrintPdf": "打印PDF", + "@chatActionButtonTooltipPrintPdf": {}, + "chatActionButtonTooltipShareWithFriends": "与朋友分享", + "@chatActionButtonTooltipShareWithFriends": {}, + "chatActionButtonTooltipNewChat": "新聊天", + "@chatActionButtonTooltipNewChat": {}, + "chatActionButtonTooltipChatList": "选择“聊天”", + "@chatActionButtonTooltipChatList": {}, + "chatActionButtonTooltipShowDrawer": "显示抽屉", + "@chatActionButtonTooltipShowDrawer": { + "description": "Leading кнопка AppBar открывающая панель Drawer'а" + }, + "chatLabelNoChatAvailableRefresh": "没有可用的聊天。请刷新或创建新的聊天。", + "@chatLabelNoChatAvailableRefresh": {}, + "chatButtonRefreshChats": "刷新聊天", + "@chatButtonRefreshChats": {}, + "chatButtonCreateNewChat": "创建新聊天", + "@chatButtonCreateNewChat": {}, + "chatContextMenuCopyMessage": "复制文本", + "@chatContextMenuCopyMessage": {}, + "chatStatusProcessingMessages": "正在输入...\n请稍等...", + "@chatStatusProcessingMessages": { + "description": "⚠️⚠️⚠️ Каждая новая строка - следующее сообщение,\nо том что ответ задерживается. ⚠️⚠️⚠️ " + }, + "chatNoConnectionLabel": "请检查您的互联网连接", + "@chatNoConnectionLabel": {}, + "chatErrorMessageAlreadyProcessed": "该消息目前正在处理中。", + "@chatErrorMessageAlreadyProcessed": {}, + "chatErrorMessageTooLong": "消息太长。", + "@chatErrorMessageTooLong": {}, + "chatRemoveAttachmentTooltip": "删除附件", + "@chatRemoveAttachmentTooltip": {}, + "chatStatusFailedMessage": "无法处理消息", + "@chatStatusFailedMessage": { + "description": "Сообщение отображаемое на статус-ошибку с BE." + }, + "chatActionButtonTooltipExportSummary": "导出为 PDF", + "@chatActionButtonTooltipExportSummary": { + "description": "Подсказка для кнопки открывающей боттом шит по экспорту саммари в PDF" + }, + "chatPickerPhotos": "照片", + "@chatPickerPhotos": { + "description": "Надпись в меню для выбора из галлереи" + }, + "chatPickerCamera": "相机", + "@chatPickerCamera": { + "description": "Надпись в меню для прикрепления фото с помощью камеры" + }, + "chatPickerFiles": "文件", + "@chatPickerFiles": { + "description": "Надпись в меню для выбора файлов" + }, + "chatRecommendationYIAG": "希望以上内容对您有所帮助!这个解释对您有帮助吗?", + "@chatRecommendationYIAG": {}, + "chatRecommendationButtonDonate": "是的,一切都很好!", + "@chatRecommendationButtonDonate": { + "description": "Кнопка отображаемая после финальных рекомендаций, для пользователей без подписки" + }, + "chatHistoryTitle": "聊天记录", + "@chatHistoryTitle": {}, + "failedToRetrieveChatSummary": "无法检索聊天摘要", + "@failedToRetrieveChatSummary": {}, + "chatSummaryCopiedToClipboard": "聊天摘要已复制到剪贴板", + "@chatSummaryCopiedToClipboard": {} +} \ No newline at end of file diff --git a/example/lib/src/arbs/errors/example_ar.arb b/example/lib/src/arbs/errors/example_ar.arb new file mode 100644 index 0000000..39c94b7 --- /dev/null +++ b/example/lib/src/arbs/errors/example_ar.arb @@ -0,0 +1,28 @@ +{ + "@@locale": "ar", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "error": "حدث خطأ", + "@error": { + "description": "Ошибка" + }, + "unexpectedError": "حدث خطأ غير متوقع", + "@unexpectedError": { + "description": "Произошла какая то ошибка" + }, + "authErrorMessages": "{errorCode, select, passwordLengthError{Password should be at least 6 characters} invalidEmailOrPhoneNumberError{Please provide valid email or a phone number in the international format. Examples: me@example.com and +1234567890987} invalidEmailError{Email is not valid} operationNotAllowedError{Operation is not allowed} weakPasswordError{Password is too weak} userTokenExpiredError{User token expired} invalidPhoneNumberError{Please provide phone numbers in the international format, starting with + and the country code.} invalidActionCodeError{Action code is not valid} networkRequestFailedError{Network request failed} tooManyRequestsError{Too many requests} acceptTermsAndConditionsError{Please accept the terms and conditions and acknowledge the privacy policy.} acceptAIConsentError{Please acknowledge that consultations are with an AI and not a licensed medical professional.} emailOrPhoneError{Email or phone error} passwordError{Password error} unknownError{Unknown error} googleSSOError{Google SSO error} emailAlreadyInUse{The email address is already in use by another account.} invalidCredentialError{Invalid credentials} invalidAppCredentialError{Invalid app credentials} invalidVerificationCodeError{Invalid verification code} other{Unknown error}}", + "@authErrorMessages": { + "description": "Ошибка аутентификации", + "placeholders": { + "errorCode": { + "type": "String" + } + } + }, + "bugReportSentText": "تم إرسال تقرير الخطأ بنجاح.", + "@bugReportSentText": { + "description": "Сообщение об успешной отправке баг репорта" + } +} \ No newline at end of file diff --git a/example/lib/src/arbs/errors/example_bn.arb b/example/lib/src/arbs/errors/example_bn.arb new file mode 100644 index 0000000..29a75e3 --- /dev/null +++ b/example/lib/src/arbs/errors/example_bn.arb @@ -0,0 +1,28 @@ +{ + "@@locale": "bn", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "error": "একটি ত্রুটি ঘটেছে", + "@error": { + "description": "Ошибка" + }, + "unexpectedError": "একটি অপ্রত্যাশিত ত্রুটি ঘটেছে৷", + "@unexpectedError": { + "description": "Произошла какая то ошибка" + }, + "authErrorMessages": "{errorCode, select, passwordLengthError{পাসওয়ার্ড কমপক্ষে ৬ অক্ষরের হতে হবে} invalidEmailOrPhoneNumberError{সঠিক ইমেইল বা আন্তর্জাতিক ফরম্যাটে ফোন নম্বর দিন। উদাহরণ: me@example.com এবং +1234567890987} invalidEmailError{ইমেইল বৈধ নয়} operationNotAllowedError{অপারেশন অনুমোদিত নয়} weakPasswordError{পাসওয়ার্ড খুব দুর্বল} userTokenExpiredError{ব্যবহারকারীর টোকেনের মেয়াদ শেষ হয়েছে} invalidPhoneNumberError{আন্তর্জাতিক ফরম্যাটে, + এবং দেশের কোড দিয়ে শুরু এমন ফোন নম্বর দিন।} invalidActionCodeError{অ্যাকশন কোড বৈধ নয়} networkRequestFailedError{নেটওয়ার্ক অনুরোধ ব্যর্থ হয়েছে} tooManyRequestsError{অনুরোধ খুব বেশি} acceptTermsAndConditionsError{শর্তাবলীতে সম্মতি দিন এবং গোপনীয়তা নীতিমালা স্বীকার করুন।} acceptAIConsentError{অনুগ্রহ করে নিশ্চিত করুন যে পরামর্শটি একটি AI এর সাথে, কোনো লাইসেন্সধারী চিকিৎসক নন।} emailOrPhoneError{ইমেইল বা ফোন ত্রুটি} passwordError{পাসওয়ার্ড ত্রুটি} unknownError{অজানা ত্রুটি} googleSSOError{Google SSO ত্রুটি} emailAlreadyInUse{এই ইমেইল ঠিকানাটি ইতিমধ্যেই অন্য একটি অ্যাকাউন্টে ব্যবহৃত হচ্ছে।} invalidCredentialError{অবৈধ ক্রেডেনশিয়াল} invalidAppCredentialError{অ্যাপের ক্রেডেনশিয়াল অবৈধ} invalidVerificationCodeError{যাচাইকরণ কোড অবৈধ} other{অজানা ত্রুটি}}\r\n", + "@authErrorMessages": { + "description": "Ошибка аутентификации", + "placeholders": { + "errorCode": { + "type": "String" + } + } + }, + "bugReportSentText": "বাগ রিপোর্ট সফলভাবে পাঠানো হয়েছে।", + "@bugReportSentText": { + "description": "Сообщение об успешной отправке баг репорта" + } +} \ No newline at end of file diff --git a/example/lib/src/arbs/errors/example_de.arb b/example/lib/src/arbs/errors/example_de.arb index 692ec0e..95f66d9 100644 --- a/example/lib/src/arbs/errors/example_de.arb +++ b/example/lib/src/arbs/errors/example_de.arb @@ -1,7 +1,7 @@ { "@@locale": "de", "@@author": "example@gmail.com", - "@@last_modified": "2025-06-04T15:18:15.787321Z", + "@@last_modified": "2025-08-26T14:28:36.220548Z", "@@comment": "Generated from Google Sheets", "@@context": "From Google Sheets", "error": "Ein Fehler ist aufgetreten", diff --git a/example/lib/src/arbs/errors/example_en.arb b/example/lib/src/arbs/errors/example_en.arb index eec7055..464afb3 100644 --- a/example/lib/src/arbs/errors/example_en.arb +++ b/example/lib/src/arbs/errors/example_en.arb @@ -1,7 +1,7 @@ { "@@locale": "en", "@@author": "example@gmail.com", - "@@last_modified": "2025-06-04T15:18:15.787321Z", + "@@last_modified": "2025-08-26T14:28:36.220548Z", "@@comment": "Generated from Google Sheets", "@@context": "From Google Sheets", "error": "An error occurred", diff --git a/example/lib/src/arbs/errors/example_es.arb b/example/lib/src/arbs/errors/example_es.arb index d6b3bc5..f0f049c 100644 --- a/example/lib/src/arbs/errors/example_es.arb +++ b/example/lib/src/arbs/errors/example_es.arb @@ -1,7 +1,7 @@ { "@@locale": "es", "@@author": "example@gmail.com", - "@@last_modified": "2025-06-04T15:18:15.787321Z", + "@@last_modified": "2025-08-26T14:28:36.220548Z", "@@comment": "Generated from Google Sheets", "@@context": "From Google Sheets", "error": "Ocurrió un error", diff --git a/example/lib/src/arbs/errors/example_fr.arb b/example/lib/src/arbs/errors/example_fr.arb new file mode 100644 index 0000000..e4c44b1 --- /dev/null +++ b/example/lib/src/arbs/errors/example_fr.arb @@ -0,0 +1,28 @@ +{ + "@@locale": "fr", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "error": "Une erreur s'est produite", + "@error": { + "description": "Ошибка" + }, + "unexpectedError": "Une erreur inattendue s'est produite", + "@unexpectedError": { + "description": "Произошла какая то ошибка" + }, + "authErrorMessages": "{errorCode, select, passwordLengthError{Le mot de passe doit contenir au moins 6 caractères} invalidEmailOrPhoneNumberError{Veuillez fournir un email valide ou un numéro de téléphone au format international. Exemples : me@example.com et +1234567890987} invalidEmailError{L'email n'est pas valide} operationNotAllowedError{Opération non autorisée} weakPasswordError{Le mot de passe est trop faible} userTokenExpiredError{Le jeton utilisateur a expiré} invalidPhoneNumberError{Veuillez fournir des numéros de téléphone au format international, commençant par + et l'indicatif du pays.} invalidActionCodeError{Le code d'action n'est pas valide} networkRequestFailedError{La requête réseau a échoué} tooManyRequestsError{Trop de demandes} acceptTermsAndConditionsError{Veuillez accepter les termes et conditions et reconnaître la politique de confidentialité.} acceptAIConsentError{Veuillez reconnaître que les consultations se font avec une IA et non un professionnel de santé agréé.} emailOrPhoneError{Erreur d'email ou de téléphone} passwordError{Erreur de mot de passe} unknownError{Erreur inconnue} googleSSOError{Erreur Google SSO} emailAlreadyInUse{L'adresse email est déjà utilisée par un autre compte.} invalidCredentialError{Identifiants invalides} invalidAppCredentialError{Identifiants d'application invalides} invalidVerificationCodeError{Code de vérification invalide} other{Erreur inconnue}}\n", + "@authErrorMessages": { + "description": "Ошибка аутентификации", + "placeholders": { + "errorCode": { + "type": "String" + } + } + }, + "bugReportSentText": "Rapport de bogue envoyé avec succès.", + "@bugReportSentText": { + "description": "Сообщение об успешной отправке баг репорта" + } +} \ No newline at end of file diff --git a/example/lib/src/arbs/errors/example_hi.arb b/example/lib/src/arbs/errors/example_hi.arb new file mode 100644 index 0000000..3f9fb01 --- /dev/null +++ b/example/lib/src/arbs/errors/example_hi.arb @@ -0,0 +1,28 @@ +{ + "@@locale": "hi", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "error": "एक त्रुटि पाई गई", + "@error": { + "description": "Ошибка" + }, + "unexpectedError": "एक अप्रत्याशित त्रुटि हुई", + "@unexpectedError": { + "description": "Произошла какая то ошибка" + }, + "authErrorMessages": "{errorCode, select, passwordLengthError{पासवर्ड कम से कम 6 अक्षरों का होना चाहिए} invalidEmailOrPhoneNumberError{कृपया मान्य ईमेल या अंतर्राष्ट्रीय प्रारूप में फोन नंबर प्रदान करें। उदाहरण: me@example.com और +1234567890987} invalidEmailError{ईमेल मान्य नहीं है} operationNotAllowedError{क्रिया की अनुमति नहीं है} weakPasswordError{पासवर्ड बहुत कमजोर है} userTokenExpiredError{उपयोगकर्ता टोकन की समय सीमा समाप्त हो गई} invalidPhoneNumberError{कृपया फोन नंबर अंतर्राष्ट्रीय प्रारूप में प्रदान करें, जो + और देश कोड से शुरू होता हो।} invalidActionCodeError{क्रिया कोड मान्य नहीं है} networkRequestFailedError{नेटवर्क अनुरोध विफल हुआ} tooManyRequestsError{बहुत अधिक अनुरोध} acceptTermsAndConditionsError{कृपया नियम और शर्तों को स्वीकार करें और गोपनीयता नीति को स्वीकार करने की पुष्टि करें।} acceptAIConsentError{कृपया स्वीकार करें कि परामर्श एक AI के साथ है, न कि लाइसेंस प्राप्त चिकित्सा पेशेवर के साथ।} emailOrPhoneError{ईमेल या फोन त्रुटि} passwordError{पासवर्ड त्रुटि} unknownError{अज्ञात त्रुटि} googleSSOError{Google SSO त्रुटि} emailAlreadyInUse{यह ईमेल पता पहले से ही किसी अन्य खाते द्वारा उपयोग में है।} invalidCredentialError{अमान्य प्रमाणपत्र} invalidAppCredentialError{अमान्य ऐप प्रमाणपत्र} invalidVerificationCodeError{अमान्य सत्यापन कोड} other{अज्ञात त्रुटि}}", + "@authErrorMessages": { + "description": "Ошибка аутентификации", + "placeholders": { + "errorCode": { + "type": "String" + } + } + }, + "bugReportSentText": "बग रिपोर्ट सफलतापूर्वक भेजी गई.", + "@bugReportSentText": { + "description": "Сообщение об успешной отправке баг репорта" + } +} \ No newline at end of file diff --git a/example/lib/src/arbs/errors/example_it.arb b/example/lib/src/arbs/errors/example_it.arb new file mode 100644 index 0000000..18c788b --- /dev/null +++ b/example/lib/src/arbs/errors/example_it.arb @@ -0,0 +1,28 @@ +{ + "@@locale": "it", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "error": "Si è verificato un errore", + "@error": { + "description": "Ошибка" + }, + "unexpectedError": "Si è verificato un errore imprevisto", + "@unexpectedError": { + "description": "Произошла какая то ошибка" + }, + "authErrorMessages": "{errorCode, select, passwordLengthError{La password deve contenere almeno 6 caratteri} invalidEmailOrPhoneNumberError{Fornisci un'email valida o un numero di telefono nel formato internazionale. Esempi: me@example.com e +1234567890987} invalidEmailError{L'email non è valida} operationNotAllowedError{Operazione non consentita} weakPasswordError{La password è troppo debole} userTokenExpiredError{Il token utente è scaduto} invalidPhoneNumberError{Fornisci numeri di telefono nel formato internazionale, iniziando con + e il prefisso del paese.} invalidActionCodeError{Il codice azione non è valido} networkRequestFailedError{Richiesta di rete non riuscita} tooManyRequestsError{Troppe richieste} acceptTermsAndConditionsError{Accetta i termini e le condizioni e conferma la politica sulla privacy.} acceptAIConsentError{Riconosci che le consulenze sono con un'IA e non con un medico abilitato.} emailOrPhoneError{Errore email o telefono} passwordError{Errore password} unknownError{Errore sconosciuto} googleSSOError{Errore Google SSO} emailAlreadyInUse{L'indirizzo email è già utilizzato da un altro account.} invalidCredentialError{Credenziali non valide} invalidAppCredentialError{Credenziali app non valide} invalidVerificationCodeError{Codice di verifica non valido} other{Errore sconosciuto}}\n", + "@authErrorMessages": { + "description": "Ошибка аутентификации", + "placeholders": { + "errorCode": { + "type": "String" + } + } + }, + "bugReportSentText": "Segnalazione bug inviata con successo.", + "@bugReportSentText": { + "description": "Сообщение об успешной отправке баг репорта" + } +} \ No newline at end of file diff --git a/example/lib/src/arbs/errors/example_ko.arb b/example/lib/src/arbs/errors/example_ko.arb new file mode 100644 index 0000000..9f8d973 --- /dev/null +++ b/example/lib/src/arbs/errors/example_ko.arb @@ -0,0 +1,28 @@ +{ + "@@locale": "ko", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "error": "오류가 발생했습니다", + "@error": { + "description": "Ошибка" + }, + "unexpectedError": "예상치 못한 오류가 발생했습니다.", + "@unexpectedError": { + "description": "Произошла какая то ошибка" + }, + "authErrorMessages": "{errorCode, select, passwordLengthError{비밀번호는 최소 6자 이상이어야 합니다} invalidEmailOrPhoneNumberError{유효한 이메일 또는 국제 형식의 전화번호를 입력하세요. 예: me@example.com, +1234567890987} invalidEmailError{유효하지 않은 이메일입니다} operationNotAllowedError{허용되지 않은 작업입니다} weakPasswordError{비밀번호가 너무 약합니다} userTokenExpiredError{사용자 토큰이 만료되었습니다} invalidPhoneNumberError{국가 코드와 + 로 시작하는 국제 형식의 전화번호를 입력하세요.} invalidActionCodeError{동작 코드가 유효하지 않습니다} networkRequestFailedError{네트워크 요청 실패} tooManyRequestsError{요청이 너무 많습니다} acceptTermsAndConditionsError{약관에 동의하고 개인정보 보호정책을 확인하세요.} acceptAIConsentError{상담은 공인 의료 전문가가 아닌 AI와 이루어짐을 확인하세요.} emailOrPhoneError{이메일 또는 전화 오류} passwordError{비밀번호 오류} unknownError{알 수 없는 오류} googleSSOError{Google SSO 오류} emailAlreadyInUse{해당 이메일 주소는 이미 다른 계정에서 사용 중입니다.} invalidCredentialError{유효하지 않은 자격 증명입니다} invalidAppCredentialError{유효하지 않은 앱 자격 증명입니다} invalidVerificationCodeError{유효하지 않은 인증 코드입니다} other{알 수 없는 오류}}\n", + "@authErrorMessages": { + "description": "Ошибка аутентификации", + "placeholders": { + "errorCode": { + "type": "String" + } + } + }, + "bugReportSentText": "버그 보고서가 성공적으로 전송되었습니다.", + "@bugReportSentText": { + "description": "Сообщение об успешной отправке баг репорта" + } +} \ No newline at end of file diff --git a/example/lib/src/arbs/errors/example_pt.arb b/example/lib/src/arbs/errors/example_pt.arb new file mode 100644 index 0000000..1d0bfb1 --- /dev/null +++ b/example/lib/src/arbs/errors/example_pt.arb @@ -0,0 +1,28 @@ +{ + "@@locale": "pt", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "error": "Ocorreu um erro", + "@error": { + "description": "Ошибка" + }, + "unexpectedError": "Ocorreu um erro inesperado", + "@unexpectedError": { + "description": "Произошла какая то ошибка" + }, + "authErrorMessages": "{errorCode, select, passwordLengthError{A senha deve ter pelo menos 6 caracteres} invalidEmailOrPhoneNumberError{Informe um e-mail válido ou um número de telefone no formato internacional. Exemplos: me@example.com e +1234567890987} invalidEmailError{E-mail inválido} operationNotAllowedError{Operação não permitida} weakPasswordError{Senha muito fraca} userTokenExpiredError{Token do usuário expirou} invalidPhoneNumberError{Informe números de telefone no formato internacional, começando com + e o código do país.} invalidActionCodeError{Código de ação inválido} networkRequestFailedError{Falha na requisição de rede} tooManyRequestsError{Muitas solicitações} acceptTermsAndConditionsError{Aceite os termos e condições e reconheça a política de privacidade.} acceptAIConsentError{Reconheça que as consultas são com uma IA e não com um profissional médico licenciado.} emailOrPhoneError{Erro de e-mail ou telefone} passwordError{Erro de senha} unknownError{Erro desconhecido} googleSSOError{Erro no SSO do Google} emailAlreadyInUse{Este e-mail já está em uso por outra conta.} invalidCredentialError{Credenciais inválidas} invalidAppCredentialError{Credenciais do aplicativo inválidas} invalidVerificationCodeError{Código de verificação inválido} other{Erro desconhecido}}\n", + "@authErrorMessages": { + "description": "Ошибка аутентификации", + "placeholders": { + "errorCode": { + "type": "String" + } + } + }, + "bugReportSentText": "Relatório de bug enviado com sucesso.", + "@bugReportSentText": { + "description": "Сообщение об успешной отправке баг репорта" + } +} \ No newline at end of file diff --git a/example/lib/src/arbs/errors/example_pt_BR.arb b/example/lib/src/arbs/errors/example_pt_BR.arb new file mode 100644 index 0000000..d9f53b1 --- /dev/null +++ b/example/lib/src/arbs/errors/example_pt_BR.arb @@ -0,0 +1,28 @@ +{ + "@@locale": "pt_BR", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "error": "Ocorreu um erro", + "@error": { + "description": "Ошибка" + }, + "unexpectedError": "Ocorreu um erro inesperado", + "@unexpectedError": { + "description": "Произошла какая то ошибка" + }, + "authErrorMessages": "{errorCode, select, passwordLengthError{A senha deve ter pelo menos 6 caracteres} invalidEmailOrPhoneNumberError{Informe um e-mail válido ou um número de telefone no formato internacional. Exemplos: me@example.com e +1234567890987} invalidEmailError{E-mail inválido} operationNotAllowedError{Operação não permitida} weakPasswordError{Senha muito fraca} userTokenExpiredError{Token do usuário expirou} invalidPhoneNumberError{Informe números de telefone no formato internacional, começando com + e o código do país.} invalidActionCodeError{Código de ação inválido} networkRequestFailedError{Falha na requisição de rede} tooManyRequestsError{Muitas solicitações} acceptTermsAndConditionsError{Aceite os termos e condições e reconheça a política de privacidade.} acceptAIConsentError{Reconheça que as consultas são com uma IA e não com um profissional médico licenciado.} emailOrPhoneError{Erro de e-mail ou telefone} passwordError{Erro de senha} unknownError{Erro desconhecido} googleSSOError{Erro no SSO do Google} emailAlreadyInUse{Este e-mail já está em uso por outra conta.} invalidCredentialError{Credenciais inválidas} invalidAppCredentialError{Credenciais do aplicativo inválidas} invalidVerificationCodeError{Código de verificação inválido} other{Erro desconhecido}}\n", + "@authErrorMessages": { + "description": "Ошибка аутентификации", + "placeholders": { + "errorCode": { + "type": "String" + } + } + }, + "bugReportSentText": "Relatório de bug enviado com sucesso.", + "@bugReportSentText": { + "description": "Сообщение об успешной отправке баг репорта" + } +} \ No newline at end of file diff --git a/example/lib/src/arbs/errors/example_ru.arb b/example/lib/src/arbs/errors/example_ru.arb index 5914505..596fcf7 100644 --- a/example/lib/src/arbs/errors/example_ru.arb +++ b/example/lib/src/arbs/errors/example_ru.arb @@ -1,7 +1,7 @@ { "@@locale": "ru", "@@author": "example@gmail.com", - "@@last_modified": "2025-06-04T15:18:15.787321Z", + "@@last_modified": "2025-08-26T14:28:36.220548Z", "@@comment": "Generated from Google Sheets", "@@context": "From Google Sheets", "error": "Произошла ошибка", diff --git a/example/lib/src/arbs/errors/example_zh.arb b/example/lib/src/arbs/errors/example_zh.arb new file mode 100644 index 0000000..d09ffc3 --- /dev/null +++ b/example/lib/src/arbs/errors/example_zh.arb @@ -0,0 +1,28 @@ +{ + "@@locale": "zh", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "error": "发生错误", + "@error": { + "description": "Ошибка" + }, + "unexpectedError": "发生意外错误", + "@unexpectedError": { + "description": "Произошла какая то ошибка" + }, + "authErrorMessages": "{errorCode, select, passwordLengthError{密码长度至少为 6 个字符} invalidEmailOrPhoneNumberError{请提供有效的电子邮箱或符合国际格式的电话号码。例如:me@example.com 和 +1234567890987} invalidEmailError{电子邮箱无效} operationNotAllowedError{不允许的操作} weakPasswordError{密码太弱} userTokenExpiredError{用户令牌已过期} invalidPhoneNumberError{请提供以 + 和国家代码开头的国际格式电话号码。} invalidActionCodeError{操作代码无效} networkRequestFailedError{网络请求失败} tooManyRequestsError{请求过多} acceptTermsAndConditionsError{请接受条款与条件并确认隐私政策。} acceptAIConsentError{请确认咨询对象为 AI,而非持证医疗专业人士。} emailOrPhoneError{邮箱或电话号码错误} passwordError{密码错误} unknownError{未知错误} googleSSOError{Google SSO 错误} emailAlreadyInUse{该电子邮箱已被其他账户使用。} invalidCredentialError{凭据无效} invalidAppCredentialError{应用凭据无效} invalidVerificationCodeError{验证码无效} other{未知错误}}\n", + "@authErrorMessages": { + "description": "Ошибка аутентификации", + "placeholders": { + "errorCode": { + "type": "String" + } + } + }, + "bugReportSentText": "错误报告发送成功。", + "@bugReportSentText": { + "description": "Сообщение об успешной отправке баг репорта" + } +} \ No newline at end of file diff --git a/example/lib/src/arbs/errors/example_zh_CN.arb b/example/lib/src/arbs/errors/example_zh_CN.arb new file mode 100644 index 0000000..a3f3fcf --- /dev/null +++ b/example/lib/src/arbs/errors/example_zh_CN.arb @@ -0,0 +1,28 @@ +{ + "@@locale": "zh_CN", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "error": "发生错误", + "@error": { + "description": "Ошибка" + }, + "unexpectedError": "发生意外错误", + "@unexpectedError": { + "description": "Произошла какая то ошибка" + }, + "authErrorMessages": "{errorCode, select, passwordLengthError{密码长度至少为 6 个字符} invalidEmailOrPhoneNumberError{请提供有效的电子邮箱或符合国际格式的电话号码。例如:me@example.com 和 +1234567890987} invalidEmailError{电子邮箱无效} operationNotAllowedError{不允许的操作} weakPasswordError{密码太弱} userTokenExpiredError{用户令牌已过期} invalidPhoneNumberError{请提供以 + 和国家代码开头的国际格式电话号码。} invalidActionCodeError{操作代码无效} networkRequestFailedError{网络请求失败} tooManyRequestsError{请求过多} acceptTermsAndConditionsError{请接受条款与条件并确认隐私政策。} acceptAIConsentError{请确认咨询对象为 AI,而非持证医疗专业人士。} emailOrPhoneError{邮箱或电话号码错误} passwordError{密码错误} unknownError{未知错误} googleSSOError{Google SSO 错误} emailAlreadyInUse{该电子邮箱已被其他账户使用。} invalidCredentialError{凭据无效} invalidAppCredentialError{应用凭据无效} invalidVerificationCodeError{验证码无效} other{未知错误}}\n", + "@authErrorMessages": { + "description": "Ошибка аутентификации", + "placeholders": { + "errorCode": { + "type": "String" + } + } + }, + "bugReportSentText": "错误报告发送成功。", + "@bugReportSentText": { + "description": "Сообщение об успешной отправке баг репорта" + } +} \ No newline at end of file diff --git a/example/lib/src/arbs/pay/example_ar.arb b/example/lib/src/arbs/pay/example_ar.arb new file mode 100644 index 0000000..9a74a05 --- /dev/null +++ b/example/lib/src/arbs/pay/example_ar.arb @@ -0,0 +1,173 @@ +{ + "@@locale": "ar", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "قسط", + "@title": { + "description": "Заголовок экрана" + }, + "exampleButton": "مثال على الزر", + "@exampleButton": { + "description": "Пример кнопки" + }, + "donationYesItsAllGoodButton": "نعم، كل شيء جيد!", + "@donationYesItsAllGoodButton": { + "description": "Кнопка доната после рекомендаций" + }, + "everyContributionHealsTitle": "كل مساهمة تشفي!", + "@everyContributionHealsTitle": {}, + "ifThisHelpedYouConsiderSupportingSubtitle": "تساهم مساهمتك في تمويل تقديم المشورة المجانية للآخرين المحتاجين.", + "@ifThisHelpedYouConsiderSupportingSubtitle": {}, + "payWhatFeelsRightLabel": "ادفع ما تشعر أنه مناسب", + "@payWhatFeelsRightLabel": {}, + "orKeepUsingDoctorinaForFreeLabel": "أو استمر في استخدام Doctorina مجانًا، وذلك بفضل الآخرين الذين اختاروا التبرع.", + "@orKeepUsingDoctorinaForFreeLabel": {}, + "oneTimeLabel": "لمرة واحدة", + "@oneTimeLabel": {}, + "monthlyLabel": "شهريا", + "@monthlyLabel": {}, + "chooseMonthlyDonationAmountLabel": "اختر مبلغ التبرع الشهري", + "@chooseMonthlyDonationAmountLabel": {}, + "subscriptionNoAmount": "أنت على وشك الاشتراك في خطة شهرية.", + "@subscriptionNoAmount": { + "description": "Сумма подписки еще не выбрана" + }, + "subscriptionAmount": "لقد قمت بالاشتراك في خطة شهرية بمبلغ {amount}/الشهر.", + "@subscriptionAmount": { + "description": "Subscription info text with amount", + "placeholders": { + "amount": { + "type": "String", + "example": "9.99", + "description": "Monthly subscription amount" + } + } + }, + "subscriptionInfo": "سيتم خصم المبلغ من حسابك عند تأكيد الشراء. يُجدد الاشتراك تلقائيًا شهريًا ما لم يتم إيقاف التجديد التلقائي قبل 24 ساعة على الأقل من نهاية الفترة الحالية. يمكنك إدارة اشتراكك أو إلغاؤه في أي وقت من إعدادات حسابك. بالمتابعة، أنت توافق على {termsOfService} و{privacyPolicy}.", + "@subscriptionInfo": { + "description": "Subscription info text with amount, Terms of Service and Privacy Policy placeholders as tappable spans.", + "placeholders": { + "termsOfService": { + "type": "String", + "example": "", + "description": "Clickable span for Terms of Service" + }, + "privacyPolicy": { + "type": "String", + "example": "", + "description": "Clickable span for Privacy Policy" + } + } + }, + "chooseOneTimeDonationAmountLabel": "اختر مبلغ التبرع لمرة واحدة", + "@chooseOneTimeDonationAmountLabel": {}, + "mostPeopleGiveHint": "معظم الناس يعطون 7 إلى 15 دولارًا", + "@mostPeopleGiveHint": {}, + "selectCurrencyTooltip": "اختر العملة", + "@selectCurrencyTooltip": {}, + "processingPaymentSemantics": "معالجة الدفع", + "@processingPaymentSemantics": {}, + "processingOneTimePaymentSemantics": "معالجة دفعة لمرة واحدة بقيمة {currency} {amount}", + "@processingOneTimePaymentSemantics": { + "description": "Shown when processing a one-time payment, with currency code and amount placeholders.", + "placeholders": { + "currency": { + "type": "String", + "example": "USD", + "description": "Currency code, e.g. USD, EUR, GBP" + }, + "amount": { + "type": "String", + "example": "49.99", + "description": "Payment amount formatted to two decimal places" + } + } + }, + "processingMonthlyPaymentSemantics": "معالجة الدفع الشهري بقيمة {amount}", + "@processingMonthlyPaymentSemantics": { + "description": "Shown when processing a monthly payment with amount placeholder.", + "placeholders": { + "amount": { + "type": "String", + "example": "9.99", + "description": "Monthly payment amount formatted to two decimal places" + } + } + }, + "thankYouTitle": "شكرًا لك!", + "@thankYouTitle": {}, + "thankYouSubtitle": "الآن سيحصل المزيد من الأشخاص على نصائح مجانية - دعمك لا يقدر بثمن حقًا.", + "@thankYouSubtitle": {}, + "youContributedLabel": "لقد ساهمت بـ:", + "@youContributedLabel": {}, + "perMonth": "/ شهر", + "@perMonth": {}, + "returnToTheMainScreenButton": "العودة إلى الشاشة الرئيسية", + "@returnToTheMainScreenButton": {}, + "termsOfServiceLabel": "شروط الخدمة", + "@termsOfServiceLabel": {}, + "privacyPolicyLabel": "سياسة الخصوصية", + "@privacyPolicyLabel": {}, + "donateButton": "يتبرع", + "@donateButton": {}, + "manageSubscriptionTitle": "إدارة الاشتراك", + "@manageSubscriptionTitle": {}, + "subscriptionStatusActiveLabel": "نشيط", + "@subscriptionStatusActiveLabel": {}, + "subscriptionStatusCanceledLabel": "تم الإلغاء", + "@subscriptionStatusCanceledLabel": {}, + "subscriptionStatusPausedLabel": "متوقف مؤقتًا", + "@subscriptionStatusPausedLabel": {}, + "subscriptionStatusPendingLabel": "قيد الانتظار", + "@subscriptionStatusPendingLabel": {}, + "subscriptionStatusCreatedLabel": "مخلوق", + "@subscriptionStatusCreatedLabel": {}, + "subscriptionStatusTimeoutLabel": "نفذ الوقت", + "@subscriptionStatusTimeoutLabel": {}, + "subscriptionStatusUnknownLabel": "مجهول", + "@subscriptionStatusUnknownLabel": {}, + "subscriptionDoctorinaContributor": "مساهم في دكتورينا", + "@subscriptionDoctorinaContributor": {}, + "subscriptionRenews": "يجدد", + "@subscriptionRenews": {}, + "subscriptionCancelButton": "إلغاء الاشتراك", + "@subscriptionCancelButton": {}, + "subscriptionAreYouSureDialogTitle": "هل أنت متأكد؟", + "@subscriptionAreYouSureDialogTitle": {}, + "subscriptionAreYouSureDialogText": "دعمكم الشهري يُبقي \"دكتورينا\" مجانيًا لمن يعتمدون عليه ولكنهم غير قادرين على الدفع.\n\nيُغطي اشتراككم ما لا يقل عن ١٠ استشارات مجانية شهريًا.\n\nإذا تركتم الخدمة، فسيقل عدد المرضى الذين يحصلون على المساعدة التي يحتاجونها.", + "@subscriptionAreYouSureDialogText": {}, + "subscriptionAreYouSureDialogKeepButton": "الحفاظ على الاشتراك", + "@subscriptionAreYouSureDialogKeepButton": {}, + "subscriptionAreYouSureDialogCancelButton": "إلغاء على أية حال", + "@subscriptionAreYouSureDialogCancelButton": {}, + "subscriptionYourMonthlySupportCanceledNotification": "لقد تم إلغاء الدعم الشهري الخاص بك بنجاح.", + "@subscriptionYourMonthlySupportCanceledNotification": {}, + "subscriptionMalformed": "بيانات الاشتراك غير صحيحة", + "@subscriptionMalformed": {}, + "subscriptionSignUpForMonthlySupportButton": "قم بالتسجيل للحصول على الدعم الشهري حتى يظهر هنا.", + "@subscriptionSignUpForMonthlySupportButton": {}, + "subscriptionNoSubscriptionsYet": "لا يوجد اشتراكات حتى الآن", + "@subscriptionNoSubscriptionsYet": {}, + "subscriptionCreatedAtDateLabel": "تاريخ الاشتراك", + "@subscriptionCreatedAtDateLabel": {}, + "subscriptionExpiresAtDateLabel": "تنتهي صلاحيتها", + "@subscriptionExpiresAtDateLabel": {}, + "subscriptionSubscriptionIdLabel": "معرف الاشتراك", + "@subscriptionSubscriptionIdLabel": {}, + "subscriptionProductIdLabel": "معرف المنتج", + "@subscriptionProductIdLabel": {}, + "subscriptionDialogOkButton": "نعم", + "@subscriptionDialogOkButton": {}, + "errorProcessDonationTitle": "لم نتمكن من متابعة الدفع الخاص بك", + "@errorProcessDonationTitle": {}, + "errorProcessDonationSubtitle": "حدث خطأ أثناء الدفع. يُرجى المحاولة مرة أخرى.", + "@errorProcessDonationSubtitle": {}, + "errorProcessDonationRetryButton": "إعادة المحاولة", + "@errorProcessDonationRetryButton": {}, + "processingDonationTitle": "معالجة الدفع", + "@processingDonationTitle": {}, + "processingDonationStripeSubtitle": "ستتمكن من إكمال عملية الشراء الخاصة بك على صفحة الدفع الآمنة الخاصة بـ Stripe.", + "@processingDonationStripeSubtitle": {} +} \ No newline at end of file diff --git a/example/lib/src/arbs/pay/example_bn.arb b/example/lib/src/arbs/pay/example_bn.arb new file mode 100644 index 0000000..3439b5f --- /dev/null +++ b/example/lib/src/arbs/pay/example_bn.arb @@ -0,0 +1,173 @@ +{ + "@@locale": "bn", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "পেমেন্ট", + "@title": { + "description": "Заголовок экрана" + }, + "exampleButton": "বোতাম উদাহরণ", + "@exampleButton": { + "description": "Пример кнопки" + }, + "donationYesItsAllGoodButton": "হ্যাঁ, এটা সব ভাল!", + "@donationYesItsAllGoodButton": { + "description": "Кнопка доната после рекомендаций" + }, + "everyContributionHealsTitle": "প্রতিটি অবদান আরোগ্য!", + "@everyContributionHealsTitle": {}, + "ifThisHelpedYouConsiderSupportingSubtitle": "আপনার অবদান প্রয়োজনে অন্যদের জন্য বিনামূল্যে পরামর্শ তহবিল সাহায্য করে.", + "@ifThisHelpedYouConsiderSupportingSubtitle": {}, + "payWhatFeelsRightLabel": "যা সঠিক মনে হয় তাই পরিশোধ করুন,", + "@payWhatFeelsRightLabel": {}, + "orKeepUsingDoctorinaForFreeLabel": "অথবা বিনামূল্যে ডক্টরিনা ব্যবহার করা চালিয়ে যান, যারা দিতে বেছে নিয়েছেন তাদের ধন্যবাদ।", + "@orKeepUsingDoctorinaForFreeLabel": {}, + "oneTimeLabel": "ওয়ান-টাইম", + "@oneTimeLabel": {}, + "monthlyLabel": "মাসিক", + "@monthlyLabel": {}, + "chooseMonthlyDonationAmountLabel": "মাসিক অনুদান পরিমাণ চয়ন করুন", + "@chooseMonthlyDonationAmountLabel": {}, + "subscriptionNoAmount": "আপনি একটি মাসিক পরিকল্পনার সদস্যতা নিতে চলেছেন৷", + "@subscriptionNoAmount": { + "description": "Сумма подписки еще не выбрана" + }, + "subscriptionAmount": "আপনি {amount}/মাসের জন্য একটি মাসিক প্ল্যানে সদস্যতা নিচ্ছেন।", + "@subscriptionAmount": { + "description": "Subscription info text with amount", + "placeholders": { + "amount": { + "type": "String", + "example": "9.99", + "description": "Monthly subscription amount" + } + } + }, + "subscriptionInfo": "ক্রয়ের নিশ্চিতকরণে আপনার অ্যাকাউন্টে অর্থ প্রদান করা হবে। সাবস্ক্রিপশন স্বয়ংক্রিয়ভাবে প্রতি মাসে পুনর্নবীকরণ হয় যদি না বর্তমান মেয়াদ শেষ হওয়ার কমপক্ষে 24 ঘন্টা আগে স্বয়ংক্রিয় পুনর্নবীকরণ বন্ধ করা হয়। আপনি আপনার অ্যাকাউন্ট সেটিংসে যেকোনো সময় আপনার সদস্যতা পরিচালনা বা বাতিল করতে পারেন। এগিয়ে যাওয়ার মাধ্যমে, আপনি আমাদের {termsOfService} এবং {privacyPolicy}-এ সম্মত হন।", + "@subscriptionInfo": { + "description": "Subscription info text with amount, Terms of Service and Privacy Policy placeholders as tappable spans.", + "placeholders": { + "termsOfService": { + "type": "String", + "example": "", + "description": "Clickable span for Terms of Service" + }, + "privacyPolicy": { + "type": "String", + "example": "", + "description": "Clickable span for Privacy Policy" + } + } + }, + "chooseOneTimeDonationAmountLabel": "এককালীন অনুদানের পরিমাণ চয়ন করুন", + "@chooseOneTimeDonationAmountLabel": {}, + "mostPeopleGiveHint": "বেশিরভাগ লোক $7-$15 দেয়", + "@mostPeopleGiveHint": {}, + "selectCurrencyTooltip": "মুদ্রা নির্বাচন করুন", + "@selectCurrencyTooltip": {}, + "processingPaymentSemantics": "পেমেন্ট প্রক্রিয়াকরণ", + "@processingPaymentSemantics": {}, + "processingOneTimePaymentSemantics": "{currency} {amount}-এর এককালীন পেমেন্ট প্রক্রিয়া করা হচ্ছে", + "@processingOneTimePaymentSemantics": { + "description": "Shown when processing a one-time payment, with currency code and amount placeholders.", + "placeholders": { + "currency": { + "type": "String", + "example": "USD", + "description": "Currency code, e.g. USD, EUR, GBP" + }, + "amount": { + "type": "String", + "example": "49.99", + "description": "Payment amount formatted to two decimal places" + } + } + }, + "processingMonthlyPaymentSemantics": "{amount} মাসিক পেমেন্ট প্রক্রিয়া করা হচ্ছে", + "@processingMonthlyPaymentSemantics": { + "description": "Shown when processing a monthly payment with amount placeholder.", + "placeholders": { + "amount": { + "type": "String", + "example": "9.99", + "description": "Monthly payment amount formatted to two decimal places" + } + } + }, + "thankYouTitle": "ধন্যবাদ!", + "@thankYouTitle": {}, + "thankYouSubtitle": "এখন আরও বেশি লোক বিনামূল্যে পরামর্শ পাবে — আপনার সমর্থন সত্যিই অমূল্য।", + "@thankYouSubtitle": {}, + "youContributedLabel": "আপনি অবদান রেখেছেন:", + "@youContributedLabel": {}, + "perMonth": "/ মাস", + "@perMonth": {}, + "returnToTheMainScreenButton": "মূল পর্দায় ফিরে যান", + "@returnToTheMainScreenButton": {}, + "termsOfServiceLabel": "পরিষেবার শর্তাবলী", + "@termsOfServiceLabel": {}, + "privacyPolicyLabel": "গোপনীয়তা নীতি", + "@privacyPolicyLabel": {}, + "donateButton": "দান করুন", + "@donateButton": {}, + "manageSubscriptionTitle": "সদস্যতা পরিচালনা করুন", + "@manageSubscriptionTitle": {}, + "subscriptionStatusActiveLabel": "সক্রিয়", + "@subscriptionStatusActiveLabel": {}, + "subscriptionStatusCanceledLabel": "বাতিল", + "@subscriptionStatusCanceledLabel": {}, + "subscriptionStatusPausedLabel": "বিরতি দেওয়া হয়েছে", + "@subscriptionStatusPausedLabel": {}, + "subscriptionStatusPendingLabel": "মুলতুবি", + "@subscriptionStatusPendingLabel": {}, + "subscriptionStatusCreatedLabel": "তৈরি হয়েছে", + "@subscriptionStatusCreatedLabel": {}, + "subscriptionStatusTimeoutLabel": "টাইম আউট", + "@subscriptionStatusTimeoutLabel": {}, + "subscriptionStatusUnknownLabel": "অজানা", + "@subscriptionStatusUnknownLabel": {}, + "subscriptionDoctorinaContributor": "ডক্টরিনা অবদানকারী", + "@subscriptionDoctorinaContributor": {}, + "subscriptionRenews": "রিনিউজ", + "@subscriptionRenews": {}, + "subscriptionCancelButton": "সদস্যতা বাতিল করুন", + "@subscriptionCancelButton": {}, + "subscriptionAreYouSureDialogTitle": "আপনি কি নিশ্চিত?", + "@subscriptionAreYouSureDialogTitle": {}, + "subscriptionAreYouSureDialogText": "আপনার মাসিক সহায়তা এমন লোকদের জন্য ডক্টরিনাকে বিনামূল্যে রাখে যারা এটির উপর নির্ভর করে কিন্তু অর্থ প্রদানের সামর্থ্য রাখে না। \n\nআপনার সদস্যতা তহবিল প্রতি মাসে অন্তত 10 বিনামূল্যে পরামর্শ.\n
আপনি চলে গেলে, কম রোগী তাদের প্রয়োজনীয় সহায়তা পাবেন।", + "@subscriptionAreYouSureDialogText": {}, + "subscriptionAreYouSureDialogKeepButton": "সাবস্ক্রিপশন রাখুন", + "@subscriptionAreYouSureDialogKeepButton": {}, + "subscriptionAreYouSureDialogCancelButton": "যাইহোক বাতিল করুন", + "@subscriptionAreYouSureDialogCancelButton": {}, + "subscriptionYourMonthlySupportCanceledNotification": "আপনার মাসিক সমর্থন \nসফলভাবে বাতিল করা হয়েছে।", + "@subscriptionYourMonthlySupportCanceledNotification": {}, + "subscriptionMalformed": "ভুল সাবস্ক্রিপশন ডেটা", + "@subscriptionMalformed": {}, + "subscriptionSignUpForMonthlySupportButton": "এটি এখানে উপস্থিত হওয়ার জন্য মাসিক সহায়তার জন্য সাইন আপ করুন৷", + "@subscriptionSignUpForMonthlySupportButton": {}, + "subscriptionNoSubscriptionsYet": "এখনো কোনো সদস্যতা নেই", + "@subscriptionNoSubscriptionsYet": {}, + "subscriptionCreatedAtDateLabel": "সদস্যতা তারিখ", + "@subscriptionCreatedAtDateLabel": {}, + "subscriptionExpiresAtDateLabel": "মেয়াদ শেষ", + "@subscriptionExpiresAtDateLabel": {}, + "subscriptionSubscriptionIdLabel": "সাবস্ক্রিপশন আইডি", + "@subscriptionSubscriptionIdLabel": {}, + "subscriptionProductIdLabel": "পণ্য আইডি", + "@subscriptionProductIdLabel": {}, + "subscriptionDialogOkButton": "ঠিক আছে", + "@subscriptionDialogOkButton": {}, + "errorProcessDonationTitle": "আমরা আপনার পেমেন্ট এগোতে পারিনি", + "@errorProcessDonationTitle": {}, + "errorProcessDonationSubtitle": "পেমেন্টে কিছু ভুল হয়েছে।\nআবার চেষ্টা করুন.", + "@errorProcessDonationSubtitle": {}, + "errorProcessDonationRetryButton": "আবার চেষ্টা করুন", + "@errorProcessDonationRetryButton": {}, + "processingDonationTitle": "পেমেন্ট প্রক্রিয়াকরণ", + "@processingDonationTitle": {}, + "processingDonationStripeSubtitle": "আপনি স্ট্রাইপের নিরাপদ চেকআউট পৃষ্ঠায় আপনার কেনাকাটা সম্পূর্ণ করবেন।", + "@processingDonationStripeSubtitle": {} +} \ No newline at end of file diff --git a/example/lib/src/arbs/pay/example_de.arb b/example/lib/src/arbs/pay/example_de.arb index f194c66..857fde5 100644 --- a/example/lib/src/arbs/pay/example_de.arb +++ b/example/lib/src/arbs/pay/example_de.arb @@ -1,7 +1,7 @@ { "@@locale": "de", "@@author": "example@gmail.com", - "@@last_modified": "2025-06-04T15:18:15.787321Z", + "@@last_modified": "2025-08-26T14:28:36.220548Z", "@@comment": "Generated from Google Sheets", "@@context": "From Google Sheets", "title": "Zahlung", @@ -11,5 +11,163 @@ "exampleButton": "Schaltflächenbeispiel", "@exampleButton": { "description": "Пример кнопки" - } + }, + "donationYesItsAllGoodButton": "Ja, alles gut!", + "@donationYesItsAllGoodButton": { + "description": "Кнопка доната после рекомендаций" + }, + "everyContributionHealsTitle": "Jeder Beitrag heilt!", + "@everyContributionHealsTitle": {}, + "ifThisHelpedYouConsiderSupportingSubtitle": "Ihr Beitrag hilft dabei, kostenlose medizinische Beratung für Bedürftige zu ermöglichen.", + "@ifThisHelpedYouConsiderSupportingSubtitle": {}, + "payWhatFeelsRightLabel": "Zahlen Sie, was sich richtig anfühlt –", + "@payWhatFeelsRightLabel": {}, + "orKeepUsingDoctorinaForFreeLabel": "oder nutzen Sie Doctorina weiterhin kostenlos, dank der Großzügigkeit anderer.", + "@orKeepUsingDoctorinaForFreeLabel": {}, + "oneTimeLabel": "Einmalig", + "@oneTimeLabel": {}, + "monthlyLabel": "Monatlich", + "@monthlyLabel": {}, + "chooseMonthlyDonationAmountLabel": "Wählen Sie den monatlichen Spendenbetrag", + "@chooseMonthlyDonationAmountLabel": {}, + "subscriptionNoAmount": "Sie sind dabei, einen Monatsplan zu abonnieren.", + "@subscriptionNoAmount": { + "description": "Сумма подписки еще не выбрана" + }, + "subscriptionAmount": "Sie abonnieren ein Monatsabonnement für {amount}/Monat.", + "@subscriptionAmount": { + "description": "Subscription info text with amount", + "placeholders": { + "amount": { + "type": "String", + "example": "9.99", + "description": "Monthly subscription amount" + } + } + }, + "subscriptionInfo": "Die Zahlung wird Ihrem Konto nach Kaufbestätigung belastet. Das Abonnement verlängert sich automatisch jeden Monat, sofern die automatische Verlängerung nicht mindestens 24 Stunden vor Ablauf des aktuellen Zeitraums deaktiviert wird. Sie können Ihr Abonnement jederzeit in Ihren Kontoeinstellungen verwalten oder kündigen. Indem Sie fortfahren, stimmen Sie unseren {termsOfService} und {privacyPolicy} zu.", + "@subscriptionInfo": { + "description": "Subscription info text with amount, Terms of Service and Privacy Policy placeholders as tappable spans.", + "placeholders": { + "termsOfService": { + "type": "String", + "example": "", + "description": "Clickable span for Terms of Service" + }, + "privacyPolicy": { + "type": "String", + "example": "", + "description": "Clickable span for Privacy Policy" + } + } + }, + "chooseOneTimeDonationAmountLabel": "Wählen Sie den einmaligen Spendenbetrag", + "@chooseOneTimeDonationAmountLabel": {}, + "mostPeopleGiveHint": "Die meisten Leute geben 7–15 $", + "@mostPeopleGiveHint": {}, + "selectCurrencyTooltip": "Währung wählen", + "@selectCurrencyTooltip": {}, + "processingPaymentSemantics": "Zahlungsabwicklung", + "@processingPaymentSemantics": {}, + "processingOneTimePaymentSemantics": "Verarbeite eine einmalige Zahlung von {currency} {amount}", + "@processingOneTimePaymentSemantics": { + "description": "Shown when processing a one-time payment, with currency code and amount placeholders.", + "placeholders": { + "currency": { + "type": "String", + "example": "USD", + "description": "Currency code, e.g. USD, EUR, GBP" + }, + "amount": { + "type": "String", + "example": "49.99", + "description": "Payment amount formatted to two decimal places" + } + } + }, + "processingMonthlyPaymentSemantics": "Monatliche Zahlung von {amount} wird bearbeitet", + "@processingMonthlyPaymentSemantics": { + "description": "Shown when processing a monthly payment with amount placeholder.", + "placeholders": { + "amount": { + "type": "String", + "example": "9.99", + "description": "Monthly payment amount formatted to two decimal places" + } + } + }, + "thankYouTitle": "Danke!", + "@thankYouTitle": {}, + "thankYouSubtitle": "Dank Ihrer Unterstützung können nun noch mehr Menschen kostenlose Beratung erhalten – Ihr Beitrag ist von unschätzbarem Wert.", + "@thankYouSubtitle": {}, + "youContributedLabel": "Sie haben gespendet:", + "@youContributedLabel": {}, + "perMonth": "/ Monat", + "@perMonth": {}, + "returnToTheMainScreenButton": "Zurück zum Hauptbildschirm", + "@returnToTheMainScreenButton": {}, + "termsOfServiceLabel": "Servicebedingungen", + "@termsOfServiceLabel": {}, + "privacyPolicyLabel": "Datenschutzrichtlinie", + "@privacyPolicyLabel": {}, + "donateButton": "Spenden", + "@donateButton": {}, + "manageSubscriptionTitle": "Abonnement verwalten", + "@manageSubscriptionTitle": {}, + "subscriptionStatusActiveLabel": "Aktiv", + "@subscriptionStatusActiveLabel": {}, + "subscriptionStatusCanceledLabel": "Abgesagt", + "@subscriptionStatusCanceledLabel": {}, + "subscriptionStatusPausedLabel": "Angehalten", + "@subscriptionStatusPausedLabel": {}, + "subscriptionStatusPendingLabel": "Ausstehend", + "@subscriptionStatusPendingLabel": {}, + "subscriptionStatusCreatedLabel": "Erstellt", + "@subscriptionStatusCreatedLabel": {}, + "subscriptionStatusTimeoutLabel": "Time-out", + "@subscriptionStatusTimeoutLabel": {}, + "subscriptionStatusUnknownLabel": "Unbekannt", + "@subscriptionStatusUnknownLabel": {}, + "subscriptionDoctorinaContributor": "Doctorina-Mitarbeiter", + "@subscriptionDoctorinaContributor": {}, + "subscriptionRenews": "Erneuert", + "@subscriptionRenews": {}, + "subscriptionCancelButton": "Abonnement kündigen", + "@subscriptionCancelButton": {}, + "subscriptionAreYouSureDialogTitle": "Bist du sicher?", + "@subscriptionAreYouSureDialogTitle": {}, + "subscriptionAreYouSureDialogText": "Mit Ihrer monatlichen Unterstützung bleibt Doctorina für Menschen, die darauf angewiesen sind, sich die Kosten aber nicht leisten können, kostenlos.\n\nIhr Abonnement ermöglicht mindestens 10 kostenlose Konsultationen pro Monat.\nWenn Sie aussteigen, erhalten weniger Patienten die benötigte Hilfe.", + "@subscriptionAreYouSureDialogText": {}, + "subscriptionAreYouSureDialogKeepButton": "Abonnement behalten", + "@subscriptionAreYouSureDialogKeepButton": {}, + "subscriptionAreYouSureDialogCancelButton": "Trotzdem abbrechen", + "@subscriptionAreYouSureDialogCancelButton": {}, + "subscriptionYourMonthlySupportCanceledNotification": "Ihr monatlicher Support wurde erfolgreich gekündigt.", + "@subscriptionYourMonthlySupportCanceledNotification": {}, + "subscriptionMalformed": "Falsche Abonnementdaten", + "@subscriptionMalformed": {}, + "subscriptionSignUpForMonthlySupportButton": "Melden Sie sich für den monatlichen Support an, damit er hier angezeigt wird.", + "@subscriptionSignUpForMonthlySupportButton": {}, + "subscriptionNoSubscriptionsYet": "Noch keine Abonnements", + "@subscriptionNoSubscriptionsYet": {}, + "subscriptionCreatedAtDateLabel": "Abonnementdatum", + "@subscriptionCreatedAtDateLabel": {}, + "subscriptionExpiresAtDateLabel": "Läuft ab", + "@subscriptionExpiresAtDateLabel": {}, + "subscriptionSubscriptionIdLabel": "Abonnement-ID", + "@subscriptionSubscriptionIdLabel": {}, + "subscriptionProductIdLabel": "Produkt-ID", + "@subscriptionProductIdLabel": {}, + "subscriptionDialogOkButton": "OK", + "@subscriptionDialogOkButton": {}, + "errorProcessDonationTitle": "Wir konnten Ihre Zahlung nicht durchführen", + "@errorProcessDonationTitle": {}, + "errorProcessDonationSubtitle": "Bei der Zahlung ist ein Fehler aufgetreten.\nBitte versuchen Sie es erneut.", + "@errorProcessDonationSubtitle": {}, + "errorProcessDonationRetryButton": "Wiederholen", + "@errorProcessDonationRetryButton": {}, + "processingDonationTitle": "Zahlungsabwicklung", + "@processingDonationTitle": {}, + "processingDonationStripeSubtitle": "Sie schließen Ihren Einkauf auf der sicheren Checkout-Seite von Stripe ab.", + "@processingDonationStripeSubtitle": {} } \ No newline at end of file diff --git a/example/lib/src/arbs/pay/example_en.arb b/example/lib/src/arbs/pay/example_en.arb index 2f8cc20..c835ff8 100644 --- a/example/lib/src/arbs/pay/example_en.arb +++ b/example/lib/src/arbs/pay/example_en.arb @@ -1,7 +1,7 @@ { "@@locale": "en", "@@author": "example@gmail.com", - "@@last_modified": "2025-06-04T15:18:15.787321Z", + "@@last_modified": "2025-08-26T14:28:36.220548Z", "@@comment": "Generated from Google Sheets", "@@context": "From Google Sheets", "title": "Payment", @@ -11,5 +11,163 @@ "exampleButton": "Button example", "@exampleButton": { "description": "Пример кнопки" - } + }, + "donationYesItsAllGoodButton": "Yes, it's all good!", + "@donationYesItsAllGoodButton": { + "description": "Кнопка доната после рекомендаций" + }, + "everyContributionHealsTitle": "Every contribution heals!", + "@everyContributionHealsTitle": {}, + "ifThisHelpedYouConsiderSupportingSubtitle": "Your contribution helps fund free advice for others in need.", + "@ifThisHelpedYouConsiderSupportingSubtitle": {}, + "payWhatFeelsRightLabel": "Pay what feels right,", + "@payWhatFeelsRightLabel": {}, + "orKeepUsingDoctorinaForFreeLabel": "or keep using Doctorina for free, thanks to others who chose to give.", + "@orKeepUsingDoctorinaForFreeLabel": {}, + "oneTimeLabel": "One-Time", + "@oneTimeLabel": {}, + "monthlyLabel": "Monthly", + "@monthlyLabel": {}, + "chooseMonthlyDonationAmountLabel": "Choose monthly donation amount", + "@chooseMonthlyDonationAmountLabel": {}, + "subscriptionNoAmount": "You are about to subscribe to a monthly plan.", + "@subscriptionNoAmount": { + "description": "Сумма подписки еще не выбрана" + }, + "subscriptionAmount": "You are subscribing to a monthly plan for {amount}/month.", + "@subscriptionAmount": { + "description": "Subscription info text with amount", + "placeholders": { + "amount": { + "type": "String", + "example": "9.99", + "description": "Monthly subscription amount" + } + } + }, + "subscriptionInfo": "Payment will be charged to your account at confirmation of purchase. The subscription automatically renews every month unless auto-renew is turned off at least 24 hours before the end of the current period. You can manage or cancel your subscription anytime in your account settings. By proceeding, you agree to our {termsOfService} and {privacyPolicy}.", + "@subscriptionInfo": { + "description": "Subscription info text with amount, Terms of Service and Privacy Policy placeholders as tappable spans.", + "placeholders": { + "termsOfService": { + "type": "String", + "example": "", + "description": "Clickable span for Terms of Service" + }, + "privacyPolicy": { + "type": "String", + "example": "", + "description": "Clickable span for Privacy Policy" + } + } + }, + "chooseOneTimeDonationAmountLabel": "Choose one-time donation amount", + "@chooseOneTimeDonationAmountLabel": {}, + "mostPeopleGiveHint": "Most people give $7–$15", + "@mostPeopleGiveHint": {}, + "selectCurrencyTooltip": "Select currency", + "@selectCurrencyTooltip": {}, + "processingPaymentSemantics": "Processing payment", + "@processingPaymentSemantics": {}, + "processingOneTimePaymentSemantics": "Processing one-time payment of {currency} {amount}", + "@processingOneTimePaymentSemantics": { + "description": "Shown when processing a one-time payment, with currency code and amount placeholders.", + "placeholders": { + "currency": { + "type": "String", + "example": "USD", + "description": "Currency code, e.g. USD, EUR, GBP" + }, + "amount": { + "type": "String", + "example": "49.99", + "description": "Payment amount formatted to two decimal places" + } + } + }, + "processingMonthlyPaymentSemantics": "Processing monthly payment of {amount}", + "@processingMonthlyPaymentSemantics": { + "description": "Shown when processing a monthly payment with amount placeholder.", + "placeholders": { + "amount": { + "type": "String", + "example": "9.99", + "description": "Monthly payment amount formatted to two decimal places" + } + } + }, + "thankYouTitle": "Thank you!", + "@thankYouTitle": {}, + "thankYouSubtitle": "Now even more people will receive free advice — your support is truly invaluable.", + "@thankYouSubtitle": {}, + "youContributedLabel": "You contributed:", + "@youContributedLabel": {}, + "perMonth": "/ month", + "@perMonth": {}, + "returnToTheMainScreenButton": "Return to the main screen", + "@returnToTheMainScreenButton": {}, + "termsOfServiceLabel": "Terms Of Service", + "@termsOfServiceLabel": {}, + "privacyPolicyLabel": "Privacy Policy", + "@privacyPolicyLabel": {}, + "donateButton": "Donate", + "@donateButton": {}, + "manageSubscriptionTitle": "Manage subscription", + "@manageSubscriptionTitle": {}, + "subscriptionStatusActiveLabel": "Active", + "@subscriptionStatusActiveLabel": {}, + "subscriptionStatusCanceledLabel": "Canceled", + "@subscriptionStatusCanceledLabel": {}, + "subscriptionStatusPausedLabel": "Paused", + "@subscriptionStatusPausedLabel": {}, + "subscriptionStatusPendingLabel": "Pending", + "@subscriptionStatusPendingLabel": {}, + "subscriptionStatusCreatedLabel": "Created", + "@subscriptionStatusCreatedLabel": {}, + "subscriptionStatusTimeoutLabel": "Timeout", + "@subscriptionStatusTimeoutLabel": {}, + "subscriptionStatusUnknownLabel": "Unknown", + "@subscriptionStatusUnknownLabel": {}, + "subscriptionDoctorinaContributor": "Doctorina contributor", + "@subscriptionDoctorinaContributor": {}, + "subscriptionRenews": "Renews", + "@subscriptionRenews": {}, + "subscriptionCancelButton": "Cancel subscription", + "@subscriptionCancelButton": {}, + "subscriptionAreYouSureDialogTitle": "Are you sure?", + "@subscriptionAreYouSureDialogTitle": {}, + "subscriptionAreYouSureDialogText": "Your monthly support keeps Doctorina free for people who rely on it but can’t afford to pay. \n\nYour subscription funds at least 10 free consultations each month.\n
If you leave, fewer patients will get the help they need.", + "@subscriptionAreYouSureDialogText": {}, + "subscriptionAreYouSureDialogKeepButton": "Keep subscription", + "@subscriptionAreYouSureDialogKeepButton": {}, + "subscriptionAreYouSureDialogCancelButton": "Cancel anyway", + "@subscriptionAreYouSureDialogCancelButton": {}, + "subscriptionYourMonthlySupportCanceledNotification": "Your Monthly support \nhas been successfully canceled.", + "@subscriptionYourMonthlySupportCanceledNotification": {}, + "subscriptionMalformed": "Incorrect subscription data", + "@subscriptionMalformed": {}, + "subscriptionSignUpForMonthlySupportButton": "Sign up for monthly support to have it appear here.", + "@subscriptionSignUpForMonthlySupportButton": {}, + "subscriptionNoSubscriptionsYet": "No subscriptions yet", + "@subscriptionNoSubscriptionsYet": {}, + "subscriptionCreatedAtDateLabel": "Subscription date", + "@subscriptionCreatedAtDateLabel": {}, + "subscriptionExpiresAtDateLabel": "Expires", + "@subscriptionExpiresAtDateLabel": {}, + "subscriptionSubscriptionIdLabel": "Subscription ID", + "@subscriptionSubscriptionIdLabel": {}, + "subscriptionProductIdLabel": "Product ID", + "@subscriptionProductIdLabel": {}, + "subscriptionDialogOkButton": "Ok", + "@subscriptionDialogOkButton": {}, + "errorProcessDonationTitle": "We couldn’t proceed your payment", + "@errorProcessDonationTitle": {}, + "errorProcessDonationSubtitle": "Something went wrong with the payment.\nPlease try again.", + "@errorProcessDonationSubtitle": {}, + "errorProcessDonationRetryButton": "Retry", + "@errorProcessDonationRetryButton": {}, + "processingDonationTitle": "Processing payment", + "@processingDonationTitle": {}, + "processingDonationStripeSubtitle": "You’ll complete your purchase on Stripe’s secure checkout page.", + "@processingDonationStripeSubtitle": {} } \ No newline at end of file diff --git a/example/lib/src/arbs/pay/example_es.arb b/example/lib/src/arbs/pay/example_es.arb index ff5a456..9d54923 100644 --- a/example/lib/src/arbs/pay/example_es.arb +++ b/example/lib/src/arbs/pay/example_es.arb @@ -1,7 +1,7 @@ { "@@locale": "es", "@@author": "example@gmail.com", - "@@last_modified": "2025-06-04T15:18:15.787321Z", + "@@last_modified": "2025-08-26T14:28:36.220548Z", "@@comment": "Generated from Google Sheets", "@@context": "From Google Sheets", "title": "Pago", @@ -11,5 +11,163 @@ "exampleButton": "Ejemplo de botón", "@exampleButton": { "description": "Пример кнопки" - } + }, + "donationYesItsAllGoodButton": "¡Sí, está todo bien!", + "@donationYesItsAllGoodButton": { + "description": "Кнопка доната после рекомендаций" + }, + "everyContributionHealsTitle": "¡Cada aporte sana!", + "@everyContributionHealsTitle": {}, + "ifThisHelpedYouConsiderSupportingSubtitle": "Tu contribución ayuda a ofrecer asesoría médica gratuita a quienes más lo necesitan.", + "@ifThisHelpedYouConsiderSupportingSubtitle": {}, + "payWhatFeelsRightLabel": "Paga lo que consideres justo,", + "@payWhatFeelsRightLabel": {}, + "orKeepUsingDoctorinaForFreeLabel": "o sigue usando Doctorina gratis, gracias a quienes decidieron apoyar con una donación.", + "@orKeepUsingDoctorinaForFreeLabel": {}, + "oneTimeLabel": "Una sola vez", + "@oneTimeLabel": {}, + "monthlyLabel": "Mensual", + "@monthlyLabel": {}, + "chooseMonthlyDonationAmountLabel": "Elija el monto de la donación mensual", + "@chooseMonthlyDonationAmountLabel": {}, + "subscriptionNoAmount": "Estás a punto de suscribirte a un plan mensual.", + "@subscriptionNoAmount": { + "description": "Сумма подписки еще не выбрана" + }, + "subscriptionAmount": "Te suscribes a un plan mensual por {amount} al mes.", + "@subscriptionAmount": { + "description": "Subscription info text with amount", + "placeholders": { + "amount": { + "type": "String", + "example": "9.99", + "description": "Monthly subscription amount" + } + } + }, + "subscriptionInfo": "El pago se cargará a tu cuenta al confirmar la compra. La suscripción se renueva automáticamente cada mes, a menos que la desactives al menos 24 horas antes del final del periodo actual. Puedes gestionar o cancelar tu suscripción en cualquier momento desde la configuración de tu cuenta. Al continuar, aceptas nuestros {termsOfService} y {privacyPolicy}.", + "@subscriptionInfo": { + "description": "Subscription info text with amount, Terms of Service and Privacy Policy placeholders as tappable spans.", + "placeholders": { + "termsOfService": { + "type": "String", + "example": "", + "description": "Clickable span for Terms of Service" + }, + "privacyPolicy": { + "type": "String", + "example": "", + "description": "Clickable span for Privacy Policy" + } + } + }, + "chooseOneTimeDonationAmountLabel": "Elija el monto de la donación única", + "@chooseOneTimeDonationAmountLabel": {}, + "mostPeopleGiveHint": "La mayoría de la gente dona entre $7 y $15.", + "@mostPeopleGiveHint": {}, + "selectCurrencyTooltip": "Seleccionar moneda", + "@selectCurrencyTooltip": {}, + "processingPaymentSemantics": "Procesando pago", + "@processingPaymentSemantics": {}, + "processingOneTimePaymentSemantics": "Procesando pago único de {currency} {amount}", + "@processingOneTimePaymentSemantics": { + "description": "Shown when processing a one-time payment, with currency code and amount placeholders.", + "placeholders": { + "currency": { + "type": "String", + "example": "USD", + "description": "Currency code, e.g. USD, EUR, GBP" + }, + "amount": { + "type": "String", + "example": "49.99", + "description": "Payment amount formatted to two decimal places" + } + } + }, + "processingMonthlyPaymentSemantics": "Procesando pago mensual de {amount}", + "@processingMonthlyPaymentSemantics": { + "description": "Shown when processing a monthly payment with amount placeholder.", + "placeholders": { + "amount": { + "type": "String", + "example": "9.99", + "description": "Monthly payment amount formatted to two decimal places" + } + } + }, + "thankYouTitle": "¡Gracias!", + "@thankYouTitle": {}, + "thankYouSubtitle": "Ahora, aún más personas recibirán asesoramiento gratuito: su apoyo es verdaderamente invaluable.", + "@thankYouSubtitle": {}, + "youContributedLabel": "Usted contribuyó:", + "@youContributedLabel": {}, + "perMonth": "/ mes", + "@perMonth": {}, + "returnToTheMainScreenButton": "Regresar a la pantalla principal", + "@returnToTheMainScreenButton": {}, + "termsOfServiceLabel": "Condiciones de servicio", + "@termsOfServiceLabel": {}, + "privacyPolicyLabel": "política de privacidad", + "@privacyPolicyLabel": {}, + "donateButton": "Donar", + "@donateButton": {}, + "manageSubscriptionTitle": "Administrar suscripción", + "@manageSubscriptionTitle": {}, + "subscriptionStatusActiveLabel": "Activo", + "@subscriptionStatusActiveLabel": {}, + "subscriptionStatusCanceledLabel": "Cancelado", + "@subscriptionStatusCanceledLabel": {}, + "subscriptionStatusPausedLabel": "En pausa", + "@subscriptionStatusPausedLabel": {}, + "subscriptionStatusPendingLabel": "Pendiente", + "@subscriptionStatusPendingLabel": {}, + "subscriptionStatusCreatedLabel": "Creado", + "@subscriptionStatusCreatedLabel": {}, + "subscriptionStatusTimeoutLabel": "Se acabó el tiempo", + "@subscriptionStatusTimeoutLabel": {}, + "subscriptionStatusUnknownLabel": "Desconocido", + "@subscriptionStatusUnknownLabel": {}, + "subscriptionDoctorinaContributor": "Colaborador de Doctorina", + "@subscriptionDoctorinaContributor": {}, + "subscriptionRenews": "Renueva", + "@subscriptionRenews": {}, + "subscriptionCancelButton": "Cancelar suscripción", + "@subscriptionCancelButton": {}, + "subscriptionAreYouSureDialogTitle": "¿Está seguro?", + "@subscriptionAreYouSureDialogTitle": {}, + "subscriptionAreYouSureDialogText": "Tu apoyo mensual mantiene Doctorina gratis para quienes dependen de ella pero no pueden pagarla.\n\nTu suscripción financia al menos 10 consultas gratuitas al mes.\nSi te vas, menos pacientes recibirán la ayuda que necesitan.", + "@subscriptionAreYouSureDialogText": {}, + "subscriptionAreYouSureDialogKeepButton": "Mantener suscripción", + "@subscriptionAreYouSureDialogKeepButton": {}, + "subscriptionAreYouSureDialogCancelButton": "Cancelar de todos modos", + "@subscriptionAreYouSureDialogCancelButton": {}, + "subscriptionYourMonthlySupportCanceledNotification": "Su apoyo mensual\nha sido cancelado exitosamente.", + "@subscriptionYourMonthlySupportCanceledNotification": {}, + "subscriptionMalformed": "Datos de suscripción incorrectos", + "@subscriptionMalformed": {}, + "subscriptionSignUpForMonthlySupportButton": "Regístrate para recibir soporte mensual para que aparezca aquí.", + "@subscriptionSignUpForMonthlySupportButton": {}, + "subscriptionNoSubscriptionsYet": "Aún no hay suscripciones", + "@subscriptionNoSubscriptionsYet": {}, + "subscriptionCreatedAtDateLabel": "Fecha de suscripción", + "@subscriptionCreatedAtDateLabel": {}, + "subscriptionExpiresAtDateLabel": "Caduca", + "@subscriptionExpiresAtDateLabel": {}, + "subscriptionSubscriptionIdLabel": "ID de suscripción", + "@subscriptionSubscriptionIdLabel": {}, + "subscriptionProductIdLabel": "Identificación del producto", + "@subscriptionProductIdLabel": {}, + "subscriptionDialogOkButton": "De acuerdo", + "@subscriptionDialogOkButton": {}, + "errorProcessDonationTitle": "No pudimos procesar su pago", + "@errorProcessDonationTitle": {}, + "errorProcessDonationSubtitle": "Se produjo un error con el pago. Inténtalo de nuevo.", + "@errorProcessDonationSubtitle": {}, + "errorProcessDonationRetryButton": "Rever", + "@errorProcessDonationRetryButton": {}, + "processingDonationTitle": "Procesando pago", + "@processingDonationTitle": {}, + "processingDonationStripeSubtitle": "Completarás tu compra en la página de pago segura de Stripe.", + "@processingDonationStripeSubtitle": {} } \ No newline at end of file diff --git a/example/lib/src/arbs/pay/example_fr.arb b/example/lib/src/arbs/pay/example_fr.arb new file mode 100644 index 0000000..0655a97 --- /dev/null +++ b/example/lib/src/arbs/pay/example_fr.arb @@ -0,0 +1,173 @@ +{ + "@@locale": "fr", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "Paiement", + "@title": { + "description": "Заголовок экрана" + }, + "exampleButton": "Exemple de bouton", + "@exampleButton": { + "description": "Пример кнопки" + }, + "donationYesItsAllGoodButton": "Oui, tout va bien !", + "@donationYesItsAllGoodButton": { + "description": "Кнопка доната после рекомендаций" + }, + "everyContributionHealsTitle": "Chaque contribution guérit !", + "@everyContributionHealsTitle": {}, + "ifThisHelpedYouConsiderSupportingSubtitle": "Votre contribution aide à financer des conseils gratuits pour les autres dans le besoin.", + "@ifThisHelpedYouConsiderSupportingSubtitle": {}, + "payWhatFeelsRightLabel": "Payez ce qui vous semble juste,", + "@payWhatFeelsRightLabel": {}, + "orKeepUsingDoctorinaForFreeLabel": "ou continuez à utiliser Doctorina gratuitement, grâce aux autres qui ont choisi de donner.", + "@orKeepUsingDoctorinaForFreeLabel": {}, + "oneTimeLabel": "Une fois", + "@oneTimeLabel": {}, + "monthlyLabel": "Mensuel", + "@monthlyLabel": {}, + "chooseMonthlyDonationAmountLabel": "Choisissez le montant du don mensuel", + "@chooseMonthlyDonationAmountLabel": {}, + "subscriptionNoAmount": "Vous êtes sur le point de souscrire à un forfait mensuel.", + "@subscriptionNoAmount": { + "description": "Сумма подписки еще не выбрана" + }, + "subscriptionAmount": "Vous souscrivez à un forfait mensuel de {amount}/mois.", + "@subscriptionAmount": { + "description": "Subscription info text with amount", + "placeholders": { + "amount": { + "type": "String", + "example": "9.99", + "description": "Monthly subscription amount" + } + } + }, + "subscriptionInfo": "Le paiement sera débité de votre compte lors de la confirmation de l'achat. L'abonnement est automatiquement renouvelé chaque mois, sauf si le renouvellement automatique est désactivé au moins 24 heures avant la fin de la période en cours. Vous pouvez gérer ou résilier votre abonnement à tout moment dans les paramètres de votre compte. En continuant, vous acceptez nos {termsOfService} et notre {privacyPolicy}.", + "@subscriptionInfo": { + "description": "Subscription info text with amount, Terms of Service and Privacy Policy placeholders as tappable spans.", + "placeholders": { + "termsOfService": { + "type": "String", + "example": "", + "description": "Clickable span for Terms of Service" + }, + "privacyPolicy": { + "type": "String", + "example": "", + "description": "Clickable span for Privacy Policy" + } + } + }, + "chooseOneTimeDonationAmountLabel": "Choisissez le montant du don unique", + "@chooseOneTimeDonationAmountLabel": {}, + "mostPeopleGiveHint": "La plupart des gens donnent entre 7 et 15 $", + "@mostPeopleGiveHint": {}, + "selectCurrencyTooltip": "Sélectionnez la devise", + "@selectCurrencyTooltip": {}, + "processingPaymentSemantics": "Traitement des paiements", + "@processingPaymentSemantics": {}, + "processingOneTimePaymentSemantics": "Traitement d'un paiement unique de {currency} {amount}", + "@processingOneTimePaymentSemantics": { + "description": "Shown when processing a one-time payment, with currency code and amount placeholders.", + "placeholders": { + "currency": { + "type": "String", + "example": "USD", + "description": "Currency code, e.g. USD, EUR, GBP" + }, + "amount": { + "type": "String", + "example": "49.99", + "description": "Payment amount formatted to two decimal places" + } + } + }, + "processingMonthlyPaymentSemantics": "Traitement du paiement mensuel de {amount}", + "@processingMonthlyPaymentSemantics": { + "description": "Shown when processing a monthly payment with amount placeholder.", + "placeholders": { + "amount": { + "type": "String", + "example": "9.99", + "description": "Monthly payment amount formatted to two decimal places" + } + } + }, + "thankYouTitle": "Merci!", + "@thankYouTitle": {}, + "thankYouSubtitle": "Désormais, encore plus de personnes bénéficieront de conseils gratuits : votre soutien est vraiment précieux.", + "@thankYouSubtitle": {}, + "youContributedLabel": "Vous avez contribué :", + "@youContributedLabel": {}, + "perMonth": "/ mois", + "@perMonth": {}, + "returnToTheMainScreenButton": "Retour à l'écran principal", + "@returnToTheMainScreenButton": {}, + "termsOfServiceLabel": "Conditions d'utilisation", + "@termsOfServiceLabel": {}, + "privacyPolicyLabel": "politique de confidentialité", + "@privacyPolicyLabel": {}, + "donateButton": "Faire un don", + "@donateButton": {}, + "manageSubscriptionTitle": "Gérer l'abonnement", + "@manageSubscriptionTitle": {}, + "subscriptionStatusActiveLabel": "Actif", + "@subscriptionStatusActiveLabel": {}, + "subscriptionStatusCanceledLabel": "Annulé", + "@subscriptionStatusCanceledLabel": {}, + "subscriptionStatusPausedLabel": "En pause", + "@subscriptionStatusPausedLabel": {}, + "subscriptionStatusPendingLabel": "En attente", + "@subscriptionStatusPendingLabel": {}, + "subscriptionStatusCreatedLabel": "Créé", + "@subscriptionStatusCreatedLabel": {}, + "subscriptionStatusTimeoutLabel": "Temps mort", + "@subscriptionStatusTimeoutLabel": {}, + "subscriptionStatusUnknownLabel": "Inconnu", + "@subscriptionStatusUnknownLabel": {}, + "subscriptionDoctorinaContributor": "Contributeur de Doctorina", + "@subscriptionDoctorinaContributor": {}, + "subscriptionRenews": "Renouvelle", + "@subscriptionRenews": {}, + "subscriptionCancelButton": "Annuler l'abonnement", + "@subscriptionCancelButton": {}, + "subscriptionAreYouSureDialogTitle": "Es-tu sûr?", + "@subscriptionAreYouSureDialogTitle": {}, + "subscriptionAreYouSureDialogText": "Votre soutien mensuel permet à Doctorina d'être gratuit pour les personnes qui en dépendent mais n'ont pas les moyens de payer.\n\nVotre abonnement finance au moins 10 consultations gratuites par mois.\nSi vous vous désabonnez, moins de patients recevront l'aide dont ils ont besoin.", + "@subscriptionAreYouSureDialogText": {}, + "subscriptionAreYouSureDialogKeepButton": "Garder l'abonnement", + "@subscriptionAreYouSureDialogKeepButton": {}, + "subscriptionAreYouSureDialogCancelButton": "Annuler quand même", + "@subscriptionAreYouSureDialogCancelButton": {}, + "subscriptionYourMonthlySupportCanceledNotification": "Votre abonnement mensuel a bien été annulé.", + "@subscriptionYourMonthlySupportCanceledNotification": {}, + "subscriptionMalformed": "Données d'abonnement incorrectes", + "@subscriptionMalformed": {}, + "subscriptionSignUpForMonthlySupportButton": "Inscrivez-vous au soutien mensuel pour le faire apparaître ici.", + "@subscriptionSignUpForMonthlySupportButton": {}, + "subscriptionNoSubscriptionsYet": "Pas encore d'abonnement", + "@subscriptionNoSubscriptionsYet": {}, + "subscriptionCreatedAtDateLabel": "Date d'abonnement", + "@subscriptionCreatedAtDateLabel": {}, + "subscriptionExpiresAtDateLabel": "Expire", + "@subscriptionExpiresAtDateLabel": {}, + "subscriptionSubscriptionIdLabel": "ID d'abonnement", + "@subscriptionSubscriptionIdLabel": {}, + "subscriptionProductIdLabel": "ID du produit", + "@subscriptionProductIdLabel": {}, + "subscriptionDialogOkButton": "D'accord", + "@subscriptionDialogOkButton": {}, + "errorProcessDonationTitle": "Nous n'avons pas pu traiter votre paiement", + "@errorProcessDonationTitle": {}, + "errorProcessDonationSubtitle": "Une erreur s'est produite lors du paiement. Veuillez réessayer.", + "@errorProcessDonationSubtitle": {}, + "errorProcessDonationRetryButton": "Réessayer", + "@errorProcessDonationRetryButton": {}, + "processingDonationTitle": "Traitement des paiements", + "@processingDonationTitle": {}, + "processingDonationStripeSubtitle": "Vous finaliserez votre achat sur la page de paiement sécurisée de Stripe.", + "@processingDonationStripeSubtitle": {} +} \ No newline at end of file diff --git a/example/lib/src/arbs/pay/example_hi.arb b/example/lib/src/arbs/pay/example_hi.arb new file mode 100644 index 0000000..d32a4d5 --- /dev/null +++ b/example/lib/src/arbs/pay/example_hi.arb @@ -0,0 +1,173 @@ +{ + "@@locale": "hi", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "भुगतान", + "@title": { + "description": "Заголовок экрана" + }, + "exampleButton": "बटन उदाहरण", + "@exampleButton": { + "description": "Пример кнопки" + }, + "donationYesItsAllGoodButton": "हाँ, सब ठीक है!", + "@donationYesItsAllGoodButton": { + "description": "Кнопка доната после рекомендаций" + }, + "everyContributionHealsTitle": "हर योगदान से स्वास्थ्य लाभ होता है!", + "@everyContributionHealsTitle": {}, + "ifThisHelpedYouConsiderSupportingSubtitle": "आपके योगदान से जरूरतमंद लोगों को मुफ्त सलाह देने में मदद मिलती है।", + "@ifThisHelpedYouConsiderSupportingSubtitle": {}, + "payWhatFeelsRightLabel": "जो उचित लगे, वही भुगतान करें,", + "@payWhatFeelsRightLabel": {}, + "orKeepUsingDoctorinaForFreeLabel": "या फिर डॉक्टरिना का निःशुल्क उपयोग करते रहें, उन लोगों का धन्यवाद जिन्होंने इसे देने का निर्णय लिया।", + "@orKeepUsingDoctorinaForFreeLabel": {}, + "oneTimeLabel": "वन टाइम", + "@oneTimeLabel": {}, + "monthlyLabel": "महीने के", + "@monthlyLabel": {}, + "chooseMonthlyDonationAmountLabel": "मासिक दान राशि चुनें", + "@chooseMonthlyDonationAmountLabel": {}, + "subscriptionNoAmount": "आप मासिक योजना की सदस्यता लेने वाले हैं।", + "@subscriptionNoAmount": { + "description": "Сумма подписки еще не выбрана" + }, + "subscriptionAmount": "आप {amount}/माह की मासिक योजना की सदस्यता ले रहे हैं।", + "@subscriptionAmount": { + "description": "Subscription info text with amount", + "placeholders": { + "amount": { + "type": "String", + "example": "9.99", + "description": "Monthly subscription amount" + } + } + }, + "subscriptionInfo": "खरीदारी की पुष्टि होने पर आपके खाते से भुगतान लिया जाएगा। सदस्यता हर महीने स्वतः नवीनीकृत हो जाती है, जब तक कि वर्तमान अवधि समाप्त होने से कम से कम 24 घंटे पहले स्वतः नवीनीकरण बंद न कर दिया जाए। आप अपनी खाता सेटिंग में कभी भी अपनी सदस्यता प्रबंधित या रद्द कर सकते हैं। आगे बढ़कर, आप हमारी {termsOfService} और {privacyPolicy} से सहमत होते हैं।", + "@subscriptionInfo": { + "description": "Subscription info text with amount, Terms of Service and Privacy Policy placeholders as tappable spans.", + "placeholders": { + "termsOfService": { + "type": "String", + "example": "", + "description": "Clickable span for Terms of Service" + }, + "privacyPolicy": { + "type": "String", + "example": "", + "description": "Clickable span for Privacy Policy" + } + } + }, + "chooseOneTimeDonationAmountLabel": "एकमुश्त दान राशि चुनें", + "@chooseOneTimeDonationAmountLabel": {}, + "mostPeopleGiveHint": "अधिकांश लोग $7–$15 देते हैं", + "@mostPeopleGiveHint": {}, + "selectCurrencyTooltip": "मुद्रा चुनें", + "@selectCurrencyTooltip": {}, + "processingPaymentSemantics": "संसाधन संबंधी भुगतान", + "@processingPaymentSemantics": {}, + "processingOneTimePaymentSemantics": "{currency} {amount} का एकमुश्त भुगतान संसाधित किया जा रहा है", + "@processingOneTimePaymentSemantics": { + "description": "Shown when processing a one-time payment, with currency code and amount placeholders.", + "placeholders": { + "currency": { + "type": "String", + "example": "USD", + "description": "Currency code, e.g. USD, EUR, GBP" + }, + "amount": { + "type": "String", + "example": "49.99", + "description": "Payment amount formatted to two decimal places" + } + } + }, + "processingMonthlyPaymentSemantics": "{amount} का मासिक भुगतान संसाधित किया जा रहा है", + "@processingMonthlyPaymentSemantics": { + "description": "Shown when processing a monthly payment with amount placeholder.", + "placeholders": { + "amount": { + "type": "String", + "example": "9.99", + "description": "Monthly payment amount formatted to two decimal places" + } + } + }, + "thankYouTitle": "धन्यवाद!", + "@thankYouTitle": {}, + "thankYouSubtitle": "अब और भी अधिक लोगों को निःशुल्क सलाह मिलेगी - आपका सहयोग सचमुच अमूल्य है।", + "@thankYouSubtitle": {}, + "youContributedLabel": "आपने योगदान दिया:", + "@youContributedLabel": {}, + "perMonth": "/ महीना", + "@perMonth": {}, + "returnToTheMainScreenButton": "मुख्य स्क्रीन पर लौटें", + "@returnToTheMainScreenButton": {}, + "termsOfServiceLabel": "सेवा की शर्तें", + "@termsOfServiceLabel": {}, + "privacyPolicyLabel": "गोपनीयता नीति", + "@privacyPolicyLabel": {}, + "donateButton": "दान करें", + "@donateButton": {}, + "manageSubscriptionTitle": "सदस्यता प्रबंधित करें", + "@manageSubscriptionTitle": {}, + "subscriptionStatusActiveLabel": "सक्रिय", + "@subscriptionStatusActiveLabel": {}, + "subscriptionStatusCanceledLabel": "रद्द", + "@subscriptionStatusCanceledLabel": {}, + "subscriptionStatusPausedLabel": "रुका हुआ", + "@subscriptionStatusPausedLabel": {}, + "subscriptionStatusPendingLabel": "लंबित", + "@subscriptionStatusPendingLabel": {}, + "subscriptionStatusCreatedLabel": "बनाया था", + "@subscriptionStatusCreatedLabel": {}, + "subscriptionStatusTimeoutLabel": "समय समाप्ति", + "@subscriptionStatusTimeoutLabel": {}, + "subscriptionStatusUnknownLabel": "अज्ञात", + "@subscriptionStatusUnknownLabel": {}, + "subscriptionDoctorinaContributor": "डॉक्टरिना योगदानकर्ता", + "@subscriptionDoctorinaContributor": {}, + "subscriptionRenews": "नवीनिकृत", + "@subscriptionRenews": {}, + "subscriptionCancelButton": "सदस्यता रद्द करें", + "@subscriptionCancelButton": {}, + "subscriptionAreYouSureDialogTitle": "क्या आपको यकीन है?", + "@subscriptionAreYouSureDialogTitle": {}, + "subscriptionAreYouSureDialogText": "आपके मासिक सहयोग से डॉक्टरिना उन लोगों के लिए मुफ़्त है जो इस पर निर्भर हैं लेकिन भुगतान नहीं कर सकते।\n\nआपकी सदस्यता से हर महीने कम से कम 10 मुफ़्त परामर्श मिलते हैं।\nअगर आप इसे छोड़ देते हैं, तो कम मरीज़ों को ज़रूरी मदद मिल पाएगी।", + "@subscriptionAreYouSureDialogText": {}, + "subscriptionAreYouSureDialogKeepButton": "सदस्यता बनाए रखें", + "@subscriptionAreYouSureDialogKeepButton": {}, + "subscriptionAreYouSureDialogCancelButton": "फिर भी रद्द करें", + "@subscriptionAreYouSureDialogCancelButton": {}, + "subscriptionYourMonthlySupportCanceledNotification": "आपका मासिक समर्थन\nसफलतापूर्वक रद्द कर दिया गया है।", + "@subscriptionYourMonthlySupportCanceledNotification": {}, + "subscriptionMalformed": "गलत सदस्यता डेटा", + "@subscriptionMalformed": {}, + "subscriptionSignUpForMonthlySupportButton": "मासिक सहायता के लिए साइन अप करें ताकि यह यहां प्रदर्शित हो सके।", + "@subscriptionSignUpForMonthlySupportButton": {}, + "subscriptionNoSubscriptionsYet": "अभी तक कोई सदस्यता नहीं", + "@subscriptionNoSubscriptionsYet": {}, + "subscriptionCreatedAtDateLabel": "सदस्यता तिथि", + "@subscriptionCreatedAtDateLabel": {}, + "subscriptionExpiresAtDateLabel": "समय-सीमा समाप्त", + "@subscriptionExpiresAtDateLabel": {}, + "subscriptionSubscriptionIdLabel": "सदस्यता आईडी", + "@subscriptionSubscriptionIdLabel": {}, + "subscriptionProductIdLabel": "उत्पाद आयडी", + "@subscriptionProductIdLabel": {}, + "subscriptionDialogOkButton": "ठीक है", + "@subscriptionDialogOkButton": {}, + "errorProcessDonationTitle": "हम आपका भुगतान आगे नहीं बढ़ा सके", + "@errorProcessDonationTitle": {}, + "errorProcessDonationSubtitle": "भुगतान में कुछ गड़बड़ी हुई है।\nकृपया पुनः प्रयास करें।", + "@errorProcessDonationSubtitle": {}, + "errorProcessDonationRetryButton": "पुन: प्रयास करें", + "@errorProcessDonationRetryButton": {}, + "processingDonationTitle": "संसाधन संबंधी भुगतान", + "@processingDonationTitle": {}, + "processingDonationStripeSubtitle": "आप अपनी खरीदारी Stripe के सुरक्षित चेकआउट पृष्ठ पर पूरी करेंगे।", + "@processingDonationStripeSubtitle": {} +} \ No newline at end of file diff --git a/example/lib/src/arbs/pay/example_it.arb b/example/lib/src/arbs/pay/example_it.arb new file mode 100644 index 0000000..d8f7eda --- /dev/null +++ b/example/lib/src/arbs/pay/example_it.arb @@ -0,0 +1,173 @@ +{ + "@@locale": "it", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "Pagamento", + "@title": { + "description": "Заголовок экрана" + }, + "exampleButton": "Esempio di pulsante", + "@exampleButton": { + "description": "Пример кнопки" + }, + "donationYesItsAllGoodButton": "Sì, va tutto bene!", + "@donationYesItsAllGoodButton": { + "description": "Кнопка доната после рекомендаций" + }, + "everyContributionHealsTitle": "Ogni contributo guarisce!", + "@everyContributionHealsTitle": {}, + "ifThisHelpedYouConsiderSupportingSubtitle": "Il tuo contributo aiuta a finanziare la consulenza gratuita per altre persone bisognose.", + "@ifThisHelpedYouConsiderSupportingSubtitle": {}, + "payWhatFeelsRightLabel": "Paga quello che ritieni giusto,", + "@payWhatFeelsRightLabel": {}, + "orKeepUsingDoctorinaForFreeLabel": "oppure continua a usare Doctorina gratuitamente, grazie ad altri che hanno scelto di donare.", + "@orKeepUsingDoctorinaForFreeLabel": {}, + "oneTimeLabel": "Una volta", + "@oneTimeLabel": {}, + "monthlyLabel": "Mensile", + "@monthlyLabel": {}, + "chooseMonthlyDonationAmountLabel": "Scegli l'importo della donazione mensile", + "@chooseMonthlyDonationAmountLabel": {}, + "subscriptionNoAmount": "Stai per sottoscrivere un abbonamento mensile.", + "@subscriptionNoAmount": { + "description": "Сумма подписки еще не выбрана" + }, + "subscriptionAmount": "Stai sottoscrivendo un abbonamento mensile per {amount}/mese.", + "@subscriptionAmount": { + "description": "Subscription info text with amount", + "placeholders": { + "amount": { + "type": "String", + "example": "9.99", + "description": "Monthly subscription amount" + } + } + }, + "subscriptionInfo": "Il pagamento verrà addebitato sul tuo account alla conferma dell'acquisto. L'abbonamento si rinnova automaticamente ogni mese, a meno che il rinnovo automatico non venga disattivato almeno 24 ore prima della fine del periodo in corso. Puoi gestire o annullare l'abbonamento in qualsiasi momento nelle impostazioni del tuo account. Procedendo, accetti i nostri {termsOfService} e la {privacyPolicy}.", + "@subscriptionInfo": { + "description": "Subscription info text with amount, Terms of Service and Privacy Policy placeholders as tappable spans.", + "placeholders": { + "termsOfService": { + "type": "String", + "example": "", + "description": "Clickable span for Terms of Service" + }, + "privacyPolicy": { + "type": "String", + "example": "", + "description": "Clickable span for Privacy Policy" + } + } + }, + "chooseOneTimeDonationAmountLabel": "Scegli l'importo della donazione una tantum", + "@chooseOneTimeDonationAmountLabel": {}, + "mostPeopleGiveHint": "La maggior parte delle persone dona dai 7 ai 15 dollari", + "@mostPeopleGiveHint": {}, + "selectCurrencyTooltip": "Seleziona la valuta", + "@selectCurrencyTooltip": {}, + "processingPaymentSemantics": "Elaborazione del pagamento", + "@processingPaymentSemantics": {}, + "processingOneTimePaymentSemantics": "Elaborazione di un pagamento una tantum di {currency} {amount}", + "@processingOneTimePaymentSemantics": { + "description": "Shown when processing a one-time payment, with currency code and amount placeholders.", + "placeholders": { + "currency": { + "type": "String", + "example": "USD", + "description": "Currency code, e.g. USD, EUR, GBP" + }, + "amount": { + "type": "String", + "example": "49.99", + "description": "Payment amount formatted to two decimal places" + } + } + }, + "processingMonthlyPaymentSemantics": "Elaborazione del pagamento mensile di {amount}", + "@processingMonthlyPaymentSemantics": { + "description": "Shown when processing a monthly payment with amount placeholder.", + "placeholders": { + "amount": { + "type": "String", + "example": "9.99", + "description": "Monthly payment amount formatted to two decimal places" + } + } + }, + "thankYouTitle": "Grazie!", + "@thankYouTitle": {}, + "thankYouSubtitle": "Ora ancora più persone riceveranno consulenza gratuita: il vostro supporto è davvero inestimabile.", + "@thankYouSubtitle": {}, + "youContributedLabel": "Hai contribuito:", + "@youContributedLabel": {}, + "perMonth": "/ mese", + "@perMonth": {}, + "returnToTheMainScreenButton": "Torna alla schermata principale", + "@returnToTheMainScreenButton": {}, + "termsOfServiceLabel": "Termini di servizio", + "@termsOfServiceLabel": {}, + "privacyPolicyLabel": "politica sulla riservatezza", + "@privacyPolicyLabel": {}, + "donateButton": "Donare", + "@donateButton": {}, + "manageSubscriptionTitle": "Gestisci l'abbonamento", + "@manageSubscriptionTitle": {}, + "subscriptionStatusActiveLabel": "Attivo", + "@subscriptionStatusActiveLabel": {}, + "subscriptionStatusCanceledLabel": "Annullato", + "@subscriptionStatusCanceledLabel": {}, + "subscriptionStatusPausedLabel": "In pausa", + "@subscriptionStatusPausedLabel": {}, + "subscriptionStatusPendingLabel": "In attesa di", + "@subscriptionStatusPendingLabel": {}, + "subscriptionStatusCreatedLabel": "Creato", + "@subscriptionStatusCreatedLabel": {}, + "subscriptionStatusTimeoutLabel": "Tempo scaduto", + "@subscriptionStatusTimeoutLabel": {}, + "subscriptionStatusUnknownLabel": "Sconosciuto", + "@subscriptionStatusUnknownLabel": {}, + "subscriptionDoctorinaContributor": "Collaboratore di Doctorina", + "@subscriptionDoctorinaContributor": {}, + "subscriptionRenews": "Rinnova", + "@subscriptionRenews": {}, + "subscriptionCancelButton": "Annulla abbonamento", + "@subscriptionCancelButton": {}, + "subscriptionAreYouSureDialogTitle": "Sei sicuro?", + "@subscriptionAreYouSureDialogTitle": {}, + "subscriptionAreYouSureDialogText": "Il tuo contributo mensile mantiene Doctorina gratuito per le persone che ne fanno affidamento ma non possono permettersi di pagare.\n\nIl tuo abbonamento finanzia almeno 10 consulenze gratuite ogni mese.\nSe abbandoni l'abbonamento, meno pazienti riceveranno l'assistenza di cui hanno bisogno.", + "@subscriptionAreYouSureDialogText": {}, + "subscriptionAreYouSureDialogKeepButton": "Mantieni l'abbonamento", + "@subscriptionAreYouSureDialogKeepButton": {}, + "subscriptionAreYouSureDialogCancelButton": "Annulla comunque", + "@subscriptionAreYouSureDialogCancelButton": {}, + "subscriptionYourMonthlySupportCanceledNotification": "Il tuo supporto mensile\nè stato annullato con successo.", + "@subscriptionYourMonthlySupportCanceledNotification": {}, + "subscriptionMalformed": "Dati di abbonamento errati", + "@subscriptionMalformed": {}, + "subscriptionSignUpForMonthlySupportButton": "Iscriviti al supporto mensile per vederlo apparire qui.", + "@subscriptionSignUpForMonthlySupportButton": {}, + "subscriptionNoSubscriptionsYet": "Nessun abbonamento ancora", + "@subscriptionNoSubscriptionsYet": {}, + "subscriptionCreatedAtDateLabel": "Data di sottoscrizione", + "@subscriptionCreatedAtDateLabel": {}, + "subscriptionExpiresAtDateLabel": "Scade", + "@subscriptionExpiresAtDateLabel": {}, + "subscriptionSubscriptionIdLabel": "ID abbonamento", + "@subscriptionSubscriptionIdLabel": {}, + "subscriptionProductIdLabel": "ID prodotto", + "@subscriptionProductIdLabel": {}, + "subscriptionDialogOkButton": "OK", + "@subscriptionDialogOkButton": {}, + "errorProcessDonationTitle": "Non siamo riusciti a procedere con il pagamento", + "@errorProcessDonationTitle": {}, + "errorProcessDonationSubtitle": "Si è verificato un errore durante il pagamento.\nRiprova.", + "@errorProcessDonationSubtitle": {}, + "errorProcessDonationRetryButton": "Riprova", + "@errorProcessDonationRetryButton": {}, + "processingDonationTitle": "Elaborazione del pagamento", + "@processingDonationTitle": {}, + "processingDonationStripeSubtitle": "Completerai il tuo acquisto sulla pagina di pagamento sicura di Stripe.", + "@processingDonationStripeSubtitle": {} +} \ No newline at end of file diff --git a/example/lib/src/arbs/pay/example_ko.arb b/example/lib/src/arbs/pay/example_ko.arb new file mode 100644 index 0000000..1a6ad62 --- /dev/null +++ b/example/lib/src/arbs/pay/example_ko.arb @@ -0,0 +1,173 @@ +{ + "@@locale": "ko", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "지불", + "@title": { + "description": "Заголовок экрана" + }, + "exampleButton": "버튼 예시", + "@exampleButton": { + "description": "Пример кнопки" + }, + "donationYesItsAllGoodButton": "네, 다 괜찮아요!", + "@donationYesItsAllGoodButton": { + "description": "Кнопка доната после рекомендаций" + }, + "everyContributionHealsTitle": "모든 기여는 치유를 가져다줍니다!", + "@everyContributionHealsTitle": {}, + "ifThisHelpedYouConsiderSupportingSubtitle": "귀하의 기부금은 도움이 필요한 다른 사람들에게 무료 상담을 제공하는 데 도움이 됩니다.", + "@ifThisHelpedYouConsiderSupportingSubtitle": {}, + "payWhatFeelsRightLabel": "옳다고 생각되는 금액을 지불하세요.", + "@payWhatFeelsRightLabel": {}, + "orKeepUsingDoctorinaForFreeLabel": "또는 다른 사람들이 기부를 선택했기 때문에 Doctorina를 계속 무료로 사용할 수 있습니다.", + "@orKeepUsingDoctorinaForFreeLabel": {}, + "oneTimeLabel": "일회성", + "@oneTimeLabel": {}, + "monthlyLabel": "월간 간행물", + "@monthlyLabel": {}, + "chooseMonthlyDonationAmountLabel": "월 기부 금액을 선택하세요", + "@chooseMonthlyDonationAmountLabel": {}, + "subscriptionNoAmount": "월간 요금제를 구독하려고 합니다.", + "@subscriptionNoAmount": { + "description": "Сумма подписки еще не выбрана" + }, + "subscriptionAmount": "{amount}/월에 월간 요금제를 구독하고 있습니다.", + "@subscriptionAmount": { + "description": "Subscription info text with amount", + "placeholders": { + "amount": { + "type": "String", + "example": "9.99", + "description": "Monthly subscription amount" + } + } + }, + "subscriptionInfo": "구매 확인 시 계정으로 요금이 청구됩니다. 현재 구독 기간 종료 최소 24시간 전에 자동 갱신을 해제하지 않으면 구독은 매달 자동으로 갱신됩니다. 계정 설정에서 언제든지 구독을 관리하거나 취소할 수 있습니다. 계속 진행하시면 {termsOfService} 및 {privacyPolicy}에 동의하는 것으로 간주됩니다.", + "@subscriptionInfo": { + "description": "Subscription info text with amount, Terms of Service and Privacy Policy placeholders as tappable spans.", + "placeholders": { + "termsOfService": { + "type": "String", + "example": "", + "description": "Clickable span for Terms of Service" + }, + "privacyPolicy": { + "type": "String", + "example": "", + "description": "Clickable span for Privacy Policy" + } + } + }, + "chooseOneTimeDonationAmountLabel": "일회 기부 금액을 선택하세요", + "@chooseOneTimeDonationAmountLabel": {}, + "mostPeopleGiveHint": "대부분의 사람들은 $7~$15를 기부합니다.", + "@mostPeopleGiveHint": {}, + "selectCurrencyTooltip": "통화 선택", + "@selectCurrencyTooltip": {}, + "processingPaymentSemantics": "결제 처리 중", + "@processingPaymentSemantics": {}, + "processingOneTimePaymentSemantics": "{currency} {amount}의 일회성 결제 처리 중", + "@processingOneTimePaymentSemantics": { + "description": "Shown when processing a one-time payment, with currency code and amount placeholders.", + "placeholders": { + "currency": { + "type": "String", + "example": "USD", + "description": "Currency code, e.g. USD, EUR, GBP" + }, + "amount": { + "type": "String", + "example": "49.99", + "description": "Payment amount formatted to two decimal places" + } + } + }, + "processingMonthlyPaymentSemantics": "{amount}의 월별 지불 처리 중", + "@processingMonthlyPaymentSemantics": { + "description": "Shown when processing a monthly payment with amount placeholder.", + "placeholders": { + "amount": { + "type": "String", + "example": "9.99", + "description": "Monthly payment amount formatted to two decimal places" + } + } + }, + "thankYouTitle": "감사합니다!", + "@thankYouTitle": {}, + "thankYouSubtitle": "이제 더 많은 사람들이 무료 상담을 받게 될 것입니다. 여러분의 지원은 정말 귀중합니다.", + "@thankYouSubtitle": {}, + "youContributedLabel": "귀하의 기여:", + "@youContributedLabel": {}, + "perMonth": "/ 월", + "@perMonth": {}, + "returnToTheMainScreenButton": "메인 화면으로 돌아가기", + "@returnToTheMainScreenButton": {}, + "termsOfServiceLabel": "서비스 약관", + "@termsOfServiceLabel": {}, + "privacyPolicyLabel": "개인정보 보호정책", + "@privacyPolicyLabel": {}, + "donateButton": "기부하기", + "@donateButton": {}, + "manageSubscriptionTitle": "구독 관리", + "@manageSubscriptionTitle": {}, + "subscriptionStatusActiveLabel": "활동적인", + "@subscriptionStatusActiveLabel": {}, + "subscriptionStatusCanceledLabel": "취소", + "@subscriptionStatusCanceledLabel": {}, + "subscriptionStatusPausedLabel": "일시 중지됨", + "@subscriptionStatusPausedLabel": {}, + "subscriptionStatusPendingLabel": "보류 중", + "@subscriptionStatusPendingLabel": {}, + "subscriptionStatusCreatedLabel": "생성됨", + "@subscriptionStatusCreatedLabel": {}, + "subscriptionStatusTimeoutLabel": "타임아웃", + "@subscriptionStatusTimeoutLabel": {}, + "subscriptionStatusUnknownLabel": "알려지지 않은", + "@subscriptionStatusUnknownLabel": {}, + "subscriptionDoctorinaContributor": "닥터리나 기고자", + "@subscriptionDoctorinaContributor": {}, + "subscriptionRenews": "갱신하다", + "@subscriptionRenews": {}, + "subscriptionCancelButton": "구독 취소", + "@subscriptionCancelButton": {}, + "subscriptionAreYouSureDialogTitle": "정말이에요?", + "@subscriptionAreYouSureDialogTitle": {}, + "subscriptionAreYouSureDialogText": "월간 후원을 통해 Doctorina를 무료로 이용하실 수 있습니다. 부담스러운 분들을 위해 Doctorina를 무료로 제공해 드립니다.\n\n구독을 통해 매달 최소 10회의 무료 상담을 받으실 수 있습니다.\n구독을 중단하시면 필요한 도움을 받을 수 있는 환자가 줄어들게 됩니다.", + "@subscriptionAreYouSureDialogText": {}, + "subscriptionAreYouSureDialogKeepButton": "구독 유지", + "@subscriptionAreYouSureDialogKeepButton": {}, + "subscriptionAreYouSureDialogCancelButton": "어쨌든 취소하세요", + "@subscriptionAreYouSureDialogCancelButton": {}, + "subscriptionYourMonthlySupportCanceledNotification": "월간 지원이\n취소되었습니다.", + "@subscriptionYourMonthlySupportCanceledNotification": {}, + "subscriptionMalformed": "잘못된 구독 데이터", + "@subscriptionMalformed": {}, + "subscriptionSignUpForMonthlySupportButton": "여기에 표시되려면 월별 지원에 가입하세요.", + "@subscriptionSignUpForMonthlySupportButton": {}, + "subscriptionNoSubscriptionsYet": "아직 구독이 없습니다", + "@subscriptionNoSubscriptionsYet": {}, + "subscriptionCreatedAtDateLabel": "구독 날짜", + "@subscriptionCreatedAtDateLabel": {}, + "subscriptionExpiresAtDateLabel": "만료", + "@subscriptionExpiresAtDateLabel": {}, + "subscriptionSubscriptionIdLabel": "구독 ID", + "@subscriptionSubscriptionIdLabel": {}, + "subscriptionProductIdLabel": "제품 ID", + "@subscriptionProductIdLabel": {}, + "subscriptionDialogOkButton": "좋아요", + "@subscriptionDialogOkButton": {}, + "errorProcessDonationTitle": "결제를 진행할 수 없습니다.", + "@errorProcessDonationTitle": {}, + "errorProcessDonationSubtitle": "결제 과정에서 문제가 발생했습니다.\n다시 시도해 주세요.", + "@errorProcessDonationSubtitle": {}, + "errorProcessDonationRetryButton": "다시 해 보다", + "@errorProcessDonationRetryButton": {}, + "processingDonationTitle": "결제 처리 중", + "@processingDonationTitle": {}, + "processingDonationStripeSubtitle": "Stripe의 안전한 결제 페이지에서 구매를 완료하세요.", + "@processingDonationStripeSubtitle": {} +} \ No newline at end of file diff --git a/example/lib/src/arbs/pay/example_pt.arb b/example/lib/src/arbs/pay/example_pt.arb new file mode 100644 index 0000000..5d8b017 --- /dev/null +++ b/example/lib/src/arbs/pay/example_pt.arb @@ -0,0 +1,173 @@ +{ + "@@locale": "pt", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "Pagamento", + "@title": { + "description": "Заголовок экрана" + }, + "exampleButton": "Exemplo de botão", + "@exampleButton": { + "description": "Пример кнопки" + }, + "donationYesItsAllGoodButton": "Sim, está tudo bem!", + "@donationYesItsAllGoodButton": { + "description": "Кнопка доната после рекомендаций" + }, + "everyContributionHealsTitle": "Toda contribuição cura!", + "@everyContributionHealsTitle": {}, + "ifThisHelpedYouConsiderSupportingSubtitle": "Sua contribuição ajuda a financiar aconselhamento gratuito para outras pessoas necessitadas.", + "@ifThisHelpedYouConsiderSupportingSubtitle": {}, + "payWhatFeelsRightLabel": "Pague o que achar certo,", + "@payWhatFeelsRightLabel": {}, + "orKeepUsingDoctorinaForFreeLabel": "ou continue usando o Doctorina gratuitamente, graças a outros que escolheram doar.", + "@orKeepUsingDoctorinaForFreeLabel": {}, + "oneTimeLabel": "Única vez", + "@oneTimeLabel": {}, + "monthlyLabel": "Mensal", + "@monthlyLabel": {}, + "chooseMonthlyDonationAmountLabel": "Escolha o valor da doação mensal", + "@chooseMonthlyDonationAmountLabel": {}, + "subscriptionNoAmount": "Você está prestes a assinar um plano mensal.", + "@subscriptionNoAmount": { + "description": "Сумма подписки еще не выбрана" + }, + "subscriptionAmount": "Você está assinando um plano mensal de {amount}/mês.", + "@subscriptionAmount": { + "description": "Subscription info text with amount", + "placeholders": { + "amount": { + "type": "String", + "example": "9.99", + "description": "Monthly subscription amount" + } + } + }, + "subscriptionInfo": "O pagamento será cobrado em sua conta na confirmação da compra. A assinatura é renovada automaticamente todos os meses, a menos que a renovação automática seja desativada pelo menos 24 horas antes do final do período atual. Você pode gerenciar ou cancelar sua assinatura a qualquer momento nas configurações da sua conta. Ao prosseguir, você concorda com nossos {termsOfService} e {privacyPolicy}.", + "@subscriptionInfo": { + "description": "Subscription info text with amount, Terms of Service and Privacy Policy placeholders as tappable spans.", + "placeholders": { + "termsOfService": { + "type": "String", + "example": "", + "description": "Clickable span for Terms of Service" + }, + "privacyPolicy": { + "type": "String", + "example": "", + "description": "Clickable span for Privacy Policy" + } + } + }, + "chooseOneTimeDonationAmountLabel": "Escolha o valor da doação única", + "@chooseOneTimeDonationAmountLabel": {}, + "mostPeopleGiveHint": "A maioria das pessoas doa de US$ 7 a US$ 15", + "@mostPeopleGiveHint": {}, + "selectCurrencyTooltip": "Selecione a moeda", + "@selectCurrencyTooltip": {}, + "processingPaymentSemantics": "Processando pagamento", + "@processingPaymentSemantics": {}, + "processingOneTimePaymentSemantics": "Processando pagamento único de {currency} {amount}", + "@processingOneTimePaymentSemantics": { + "description": "Shown when processing a one-time payment, with currency code and amount placeholders.", + "placeholders": { + "currency": { + "type": "String", + "example": "USD", + "description": "Currency code, e.g. USD, EUR, GBP" + }, + "amount": { + "type": "String", + "example": "49.99", + "description": "Payment amount formatted to two decimal places" + } + } + }, + "processingMonthlyPaymentSemantics": "Processando pagamento mensal de {amount}", + "@processingMonthlyPaymentSemantics": { + "description": "Shown when processing a monthly payment with amount placeholder.", + "placeholders": { + "amount": { + "type": "String", + "example": "9.99", + "description": "Monthly payment amount formatted to two decimal places" + } + } + }, + "thankYouTitle": "Obrigado!", + "@thankYouTitle": {}, + "thankYouSubtitle": "Agora, ainda mais pessoas receberão aconselhamento gratuito — seu apoio é realmente inestimável.", + "@thankYouSubtitle": {}, + "youContributedLabel": "Você contribuiu:", + "@youContributedLabel": {}, + "perMonth": "/ mês", + "@perMonth": {}, + "returnToTheMainScreenButton": "Voltar para a tela principal", + "@returnToTheMainScreenButton": {}, + "termsOfServiceLabel": "Termos de Serviço", + "@termsOfServiceLabel": {}, + "privacyPolicyLabel": "política de Privacidade", + "@privacyPolicyLabel": {}, + "donateButton": "Doar", + "@donateButton": {}, + "manageSubscriptionTitle": "Gerenciar assinatura", + "@manageSubscriptionTitle": {}, + "subscriptionStatusActiveLabel": "Ativo", + "@subscriptionStatusActiveLabel": {}, + "subscriptionStatusCanceledLabel": "Cancelado", + "@subscriptionStatusCanceledLabel": {}, + "subscriptionStatusPausedLabel": "Pausado", + "@subscriptionStatusPausedLabel": {}, + "subscriptionStatusPendingLabel": "Pendente", + "@subscriptionStatusPendingLabel": {}, + "subscriptionStatusCreatedLabel": "Criado", + "@subscriptionStatusCreatedLabel": {}, + "subscriptionStatusTimeoutLabel": "Tempo esgotado", + "@subscriptionStatusTimeoutLabel": {}, + "subscriptionStatusUnknownLabel": "Desconhecido", + "@subscriptionStatusUnknownLabel": {}, + "subscriptionDoctorinaContributor": "Colaborador da Doctorina", + "@subscriptionDoctorinaContributor": {}, + "subscriptionRenews": "Renova", + "@subscriptionRenews": {}, + "subscriptionCancelButton": "Cancelar assinatura", + "@subscriptionCancelButton": {}, + "subscriptionAreYouSureDialogTitle": "Tem certeza?", + "@subscriptionAreYouSureDialogTitle": {}, + "subscriptionAreYouSureDialogText": "Seu apoio mensal mantém o Doctorina gratuito para pessoas que dependem dele, mas não podem pagar.\n\nSua assinatura financia pelo menos 10 consultas gratuitas por mês.\nSe você sair, menos pacientes receberão a ajuda de que precisam.", + "@subscriptionAreYouSureDialogText": {}, + "subscriptionAreYouSureDialogKeepButton": "Manter assinatura", + "@subscriptionAreYouSureDialogKeepButton": {}, + "subscriptionAreYouSureDialogCancelButton": "Cancelar mesmo assim", + "@subscriptionAreYouSureDialogCancelButton": {}, + "subscriptionYourMonthlySupportCanceledNotification": "Seu suporte mensal\nfoi cancelado com sucesso.", + "@subscriptionYourMonthlySupportCanceledNotification": {}, + "subscriptionMalformed": "Dados de assinatura incorretos", + "@subscriptionMalformed": {}, + "subscriptionSignUpForMonthlySupportButton": "Cadastre-se para receber suporte mensal para que ele apareça aqui.", + "@subscriptionSignUpForMonthlySupportButton": {}, + "subscriptionNoSubscriptionsYet": "Nenhuma assinatura ainda", + "@subscriptionNoSubscriptionsYet": {}, + "subscriptionCreatedAtDateLabel": "Data de assinatura", + "@subscriptionCreatedAtDateLabel": {}, + "subscriptionExpiresAtDateLabel": "Expira", + "@subscriptionExpiresAtDateLabel": {}, + "subscriptionSubscriptionIdLabel": "ID da assinatura", + "@subscriptionSubscriptionIdLabel": {}, + "subscriptionProductIdLabel": "ID do produto", + "@subscriptionProductIdLabel": {}, + "subscriptionDialogOkButton": "OK", + "@subscriptionDialogOkButton": {}, + "errorProcessDonationTitle": "Não foi possível prosseguir com o seu pagamento", + "@errorProcessDonationTitle": {}, + "errorProcessDonationSubtitle": "Ocorreu um erro com o pagamento.\nTente novamente.", + "@errorProcessDonationSubtitle": {}, + "errorProcessDonationRetryButton": "Tentar novamente", + "@errorProcessDonationRetryButton": {}, + "processingDonationTitle": "Processando pagamento", + "@processingDonationTitle": {}, + "processingDonationStripeSubtitle": "Você concluirá sua compra na página de checkout segura do Stripe.", + "@processingDonationStripeSubtitle": {} +} \ No newline at end of file diff --git a/example/lib/src/arbs/pay/example_pt_BR.arb b/example/lib/src/arbs/pay/example_pt_BR.arb new file mode 100644 index 0000000..95ff6ad --- /dev/null +++ b/example/lib/src/arbs/pay/example_pt_BR.arb @@ -0,0 +1,173 @@ +{ + "@@locale": "pt_BR", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "Pagamento", + "@title": { + "description": "Заголовок экрана" + }, + "exampleButton": "Exemplo de botão", + "@exampleButton": { + "description": "Пример кнопки" + }, + "donationYesItsAllGoodButton": "Sim, está tudo bem!", + "@donationYesItsAllGoodButton": { + "description": "Кнопка доната после рекомендаций" + }, + "everyContributionHealsTitle": "Toda contribuição cura!", + "@everyContributionHealsTitle": {}, + "ifThisHelpedYouConsiderSupportingSubtitle": "Sua contribuição ajuda a financiar aconselhamento gratuito para outras pessoas necessitadas.", + "@ifThisHelpedYouConsiderSupportingSubtitle": {}, + "payWhatFeelsRightLabel": "Pague o que achar certo,", + "@payWhatFeelsRightLabel": {}, + "orKeepUsingDoctorinaForFreeLabel": "ou continue usando o Doctorina gratuitamente, graças a outros que escolheram doar.", + "@orKeepUsingDoctorinaForFreeLabel": {}, + "oneTimeLabel": "Única vez", + "@oneTimeLabel": {}, + "monthlyLabel": "Mensal", + "@monthlyLabel": {}, + "chooseMonthlyDonationAmountLabel": "Escolha o valor da doação mensal", + "@chooseMonthlyDonationAmountLabel": {}, + "subscriptionNoAmount": "Você está prestes a assinar um plano mensal.", + "@subscriptionNoAmount": { + "description": "Сумма подписки еще не выбрана" + }, + "subscriptionAmount": "Você está assinando um plano mensal de {amount}/mês.", + "@subscriptionAmount": { + "description": "Subscription info text with amount", + "placeholders": { + "amount": { + "type": "String", + "example": "9.99", + "description": "Monthly subscription amount" + } + } + }, + "subscriptionInfo": "O pagamento será cobrado em sua conta na confirmação da compra. A assinatura é renovada automaticamente todos os meses, a menos que a renovação automática seja desativada pelo menos 24 horas antes do final do período atual. Você pode gerenciar ou cancelar sua assinatura a qualquer momento nas configurações da sua conta. Ao prosseguir, você concorda com nossos {termsOfService} e {privacyPolicy}.", + "@subscriptionInfo": { + "description": "Subscription info text with amount, Terms of Service and Privacy Policy placeholders as tappable spans.", + "placeholders": { + "termsOfService": { + "type": "String", + "example": "", + "description": "Clickable span for Terms of Service" + }, + "privacyPolicy": { + "type": "String", + "example": "", + "description": "Clickable span for Privacy Policy" + } + } + }, + "chooseOneTimeDonationAmountLabel": "Escolha o valor da doação única", + "@chooseOneTimeDonationAmountLabel": {}, + "mostPeopleGiveHint": "A maioria das pessoas doa de US$ 7 a US$ 15", + "@mostPeopleGiveHint": {}, + "selectCurrencyTooltip": "Selecione a moeda", + "@selectCurrencyTooltip": {}, + "processingPaymentSemantics": "Processando pagamento", + "@processingPaymentSemantics": {}, + "processingOneTimePaymentSemantics": "Processando pagamento único de {currency} {amount}", + "@processingOneTimePaymentSemantics": { + "description": "Shown when processing a one-time payment, with currency code and amount placeholders.", + "placeholders": { + "currency": { + "type": "String", + "example": "USD", + "description": "Currency code, e.g. USD, EUR, GBP" + }, + "amount": { + "type": "String", + "example": "49.99", + "description": "Payment amount formatted to two decimal places" + } + } + }, + "processingMonthlyPaymentSemantics": "Processando pagamento mensal de {amount}", + "@processingMonthlyPaymentSemantics": { + "description": "Shown when processing a monthly payment with amount placeholder.", + "placeholders": { + "amount": { + "type": "String", + "example": "9.99", + "description": "Monthly payment amount formatted to two decimal places" + } + } + }, + "thankYouTitle": "Obrigado!", + "@thankYouTitle": {}, + "thankYouSubtitle": "Agora, ainda mais pessoas receberão aconselhamento gratuito — seu apoio é realmente inestimável.", + "@thankYouSubtitle": {}, + "youContributedLabel": "Você contribuiu:", + "@youContributedLabel": {}, + "perMonth": "/ mês", + "@perMonth": {}, + "returnToTheMainScreenButton": "Voltar para a tela principal", + "@returnToTheMainScreenButton": {}, + "termsOfServiceLabel": "Termos de Serviço", + "@termsOfServiceLabel": {}, + "privacyPolicyLabel": "política de Privacidade", + "@privacyPolicyLabel": {}, + "donateButton": "Doar", + "@donateButton": {}, + "manageSubscriptionTitle": "Gerenciar assinatura", + "@manageSubscriptionTitle": {}, + "subscriptionStatusActiveLabel": "Ativo", + "@subscriptionStatusActiveLabel": {}, + "subscriptionStatusCanceledLabel": "Cancelado", + "@subscriptionStatusCanceledLabel": {}, + "subscriptionStatusPausedLabel": "Pausado", + "@subscriptionStatusPausedLabel": {}, + "subscriptionStatusPendingLabel": "Pendente", + "@subscriptionStatusPendingLabel": {}, + "subscriptionStatusCreatedLabel": "Criado", + "@subscriptionStatusCreatedLabel": {}, + "subscriptionStatusTimeoutLabel": "Tempo esgotado", + "@subscriptionStatusTimeoutLabel": {}, + "subscriptionStatusUnknownLabel": "Desconhecido", + "@subscriptionStatusUnknownLabel": {}, + "subscriptionDoctorinaContributor": "Colaborador da Doctorina", + "@subscriptionDoctorinaContributor": {}, + "subscriptionRenews": "Renova", + "@subscriptionRenews": {}, + "subscriptionCancelButton": "Cancelar assinatura", + "@subscriptionCancelButton": {}, + "subscriptionAreYouSureDialogTitle": "Tem certeza?", + "@subscriptionAreYouSureDialogTitle": {}, + "subscriptionAreYouSureDialogText": "Seu apoio mensal mantém o Doctorina gratuito para pessoas que dependem dele, mas não podem pagar.\n\nSua assinatura financia pelo menos 10 consultas gratuitas por mês.\nSe você sair, menos pacientes receberão a ajuda de que precisam.", + "@subscriptionAreYouSureDialogText": {}, + "subscriptionAreYouSureDialogKeepButton": "Manter assinatura", + "@subscriptionAreYouSureDialogKeepButton": {}, + "subscriptionAreYouSureDialogCancelButton": "Cancelar mesmo assim", + "@subscriptionAreYouSureDialogCancelButton": {}, + "subscriptionYourMonthlySupportCanceledNotification": "Seu suporte mensal\nfoi cancelado com sucesso.", + "@subscriptionYourMonthlySupportCanceledNotification": {}, + "subscriptionMalformed": "Dados de assinatura incorretos", + "@subscriptionMalformed": {}, + "subscriptionSignUpForMonthlySupportButton": "Cadastre-se para receber suporte mensal para que ele apareça aqui.", + "@subscriptionSignUpForMonthlySupportButton": {}, + "subscriptionNoSubscriptionsYet": "Nenhuma assinatura ainda", + "@subscriptionNoSubscriptionsYet": {}, + "subscriptionCreatedAtDateLabel": "Data de assinatura", + "@subscriptionCreatedAtDateLabel": {}, + "subscriptionExpiresAtDateLabel": "Expira", + "@subscriptionExpiresAtDateLabel": {}, + "subscriptionSubscriptionIdLabel": "ID da assinatura", + "@subscriptionSubscriptionIdLabel": {}, + "subscriptionProductIdLabel": "ID do produto", + "@subscriptionProductIdLabel": {}, + "subscriptionDialogOkButton": "OK", + "@subscriptionDialogOkButton": {}, + "errorProcessDonationTitle": "Não foi possível prosseguir com o seu pagamento", + "@errorProcessDonationTitle": {}, + "errorProcessDonationSubtitle": "Ocorreu um erro com o pagamento.\nTente novamente.", + "@errorProcessDonationSubtitle": {}, + "errorProcessDonationRetryButton": "Tentar novamente", + "@errorProcessDonationRetryButton": {}, + "processingDonationTitle": "Processando pagamento", + "@processingDonationTitle": {}, + "processingDonationStripeSubtitle": "Você concluirá sua compra na página de checkout segura do Stripe.", + "@processingDonationStripeSubtitle": {} +} \ No newline at end of file diff --git a/example/lib/src/arbs/pay/example_ru.arb b/example/lib/src/arbs/pay/example_ru.arb index 931ccc3..28620eb 100644 --- a/example/lib/src/arbs/pay/example_ru.arb +++ b/example/lib/src/arbs/pay/example_ru.arb @@ -1,7 +1,7 @@ { "@@locale": "ru", "@@author": "example@gmail.com", - "@@last_modified": "2025-06-04T15:18:15.787321Z", + "@@last_modified": "2025-08-26T14:28:36.220548Z", "@@comment": "Generated from Google Sheets", "@@context": "From Google Sheets", "title": "Оплата", @@ -11,5 +11,163 @@ "exampleButton": "Пример кнопки", "@exampleButton": { "description": "Пример кнопки" - } + }, + "donationYesItsAllGoodButton": "Да, все хорошо!", + "@donationYesItsAllGoodButton": { + "description": "Кнопка доната после рекомендаций" + }, + "everyContributionHealsTitle": "Каждый вклад лечит!", + "@everyContributionHealsTitle": {}, + "ifThisHelpedYouConsiderSupportingSubtitle": "Ваш вклад поможет финансировать бесплатные консультации для других нуждающихся.", + "@ifThisHelpedYouConsiderSupportingSubtitle": {}, + "payWhatFeelsRightLabel": "Платите столько, сколько считаете нужным,", + "@payWhatFeelsRightLabel": {}, + "orKeepUsingDoctorinaForFreeLabel": "или продолжайте пользоваться Doctorina бесплатно, благодаря другим, кто решил пожертвовать.", + "@orKeepUsingDoctorinaForFreeLabel": {}, + "oneTimeLabel": "Один раз", + "@oneTimeLabel": {}, + "monthlyLabel": "Ежемесячно", + "@monthlyLabel": {}, + "chooseMonthlyDonationAmountLabel": "Выберите сумму ежемесячного пожертвования", + "@chooseMonthlyDonationAmountLabel": {}, + "subscriptionNoAmount": "Вы собираетесь оформить подписку на ежемесячный план.", + "@subscriptionNoAmount": { + "description": "Сумма подписки еще не выбрана" + }, + "subscriptionAmount": "Вы оформляете ежемесячную подписку на {amount}/месяц.", + "@subscriptionAmount": { + "description": "Subscription info text with amount", + "placeholders": { + "amount": { + "type": "String", + "example": "9.99", + "description": "Monthly subscription amount" + } + } + }, + "subscriptionInfo": "Оплата будет списана с вашего счёта при подтверждении покупки. Подписка автоматически продлевается каждый месяц, если автоматическое продление не будет отключено как минимум за 24 часа до окончания текущего периода. Вы можете управлять подпиской или отменить её в любое время в настройках своей учётной записи. Продолжая, вы соглашаетесь с нашими {termsOfService} и {privacyPolicy}.", + "@subscriptionInfo": { + "description": "Subscription info text with amount, Terms of Service and Privacy Policy placeholders as tappable spans.", + "placeholders": { + "termsOfService": { + "type": "String", + "example": "", + "description": "Clickable span for Terms of Service" + }, + "privacyPolicy": { + "type": "String", + "example": "", + "description": "Clickable span for Privacy Policy" + } + } + }, + "chooseOneTimeDonationAmountLabel": "Выберите сумму единовременного пожертвования", + "@chooseOneTimeDonationAmountLabel": {}, + "mostPeopleGiveHint": "Большинство людей дают 7–15 долларов", + "@mostPeopleGiveHint": {}, + "selectCurrencyTooltip": "Выберите валюту", + "@selectCurrencyTooltip": {}, + "processingPaymentSemantics": "Обработка платежа", + "@processingPaymentSemantics": {}, + "processingOneTimePaymentSemantics": "Обработка единовременного платежа в размере {currency} {amount}", + "@processingOneTimePaymentSemantics": { + "description": "Shown when processing a one-time payment, with currency code and amount placeholders.", + "placeholders": { + "currency": { + "type": "String", + "example": "USD", + "description": "Currency code, e.g. USD, EUR, GBP" + }, + "amount": { + "type": "String", + "example": "49.99", + "description": "Payment amount formatted to two decimal places" + } + } + }, + "processingMonthlyPaymentSemantics": "Обработка ежемесячного платежа в размере {amount}", + "@processingMonthlyPaymentSemantics": { + "description": "Shown when processing a monthly payment with amount placeholder.", + "placeholders": { + "amount": { + "type": "String", + "example": "9.99", + "description": "Monthly payment amount formatted to two decimal places" + } + } + }, + "thankYouTitle": "Спасибо!", + "@thankYouTitle": {}, + "thankYouSubtitle": "Теперь еще больше людей получат бесплатные консультации — ваша поддержка действительно бесценна.", + "@thankYouSubtitle": {}, + "youContributedLabel": "Вы внесли свой вклад:", + "@youContributedLabel": {}, + "perMonth": "/ месяц", + "@perMonth": {}, + "returnToTheMainScreenButton": "Вернуться на главный экран", + "@returnToTheMainScreenButton": {}, + "termsOfServiceLabel": "Условия обслуживания", + "@termsOfServiceLabel": {}, + "privacyPolicyLabel": "политика конфиденциальности", + "@privacyPolicyLabel": {}, + "donateButton": "Пожертвовать", + "@donateButton": {}, + "manageSubscriptionTitle": "Управление подпиской", + "@manageSubscriptionTitle": {}, + "subscriptionStatusActiveLabel": "Активна", + "@subscriptionStatusActiveLabel": {}, + "subscriptionStatusCanceledLabel": "Отменена", + "@subscriptionStatusCanceledLabel": {}, + "subscriptionStatusPausedLabel": "Приостановлена", + "@subscriptionStatusPausedLabel": {}, + "subscriptionStatusPendingLabel": "В ожидании", + "@subscriptionStatusPendingLabel": {}, + "subscriptionStatusCreatedLabel": "Создана", + "@subscriptionStatusCreatedLabel": {}, + "subscriptionStatusTimeoutLabel": "Тайм-аут", + "@subscriptionStatusTimeoutLabel": {}, + "subscriptionStatusUnknownLabel": "Неизвестно", + "@subscriptionStatusUnknownLabel": {}, + "subscriptionDoctorinaContributor": "Участник Doctorina", + "@subscriptionDoctorinaContributor": {}, + "subscriptionRenews": "Обновляется", + "@subscriptionRenews": {}, + "subscriptionCancelButton": "Отменить подписку", + "@subscriptionCancelButton": {}, + "subscriptionAreYouSureDialogTitle": "Вы уверены?", + "@subscriptionAreYouSureDialogTitle": {}, + "subscriptionAreYouSureDialogText": "Ваша ежемесячная поддержка позволяет людям, которые пользуются Doctorina, но не могут позволить себе платить, получать бесплатную подписку.\n\nВаша подписка покрывает как минимум 10 бесплатных консультаций в месяц.\nЕсли вы откажетесь от услуг, меньше пациентов получат необходимую им помощь.", + "@subscriptionAreYouSureDialogText": {}, + "subscriptionAreYouSureDialogKeepButton": "Сохранить подписку", + "@subscriptionAreYouSureDialogKeepButton": {}, + "subscriptionAreYouSureDialogCancelButton": "Отменить в любом случае", + "@subscriptionAreYouSureDialogCancelButton": {}, + "subscriptionYourMonthlySupportCanceledNotification": "Ваша ежемесячная поддержка\nбыла успешно отменена.", + "@subscriptionYourMonthlySupportCanceledNotification": {}, + "subscriptionMalformed": "Некорректные данные подписки", + "@subscriptionMalformed": {}, + "subscriptionSignUpForMonthlySupportButton": "Оформите ежемесячную поддержку, чтобы она появилась здесь.", + "@subscriptionSignUpForMonthlySupportButton": {}, + "subscriptionNoSubscriptionsYet": "Подписок пока нет", + "@subscriptionNoSubscriptionsYet": {}, + "subscriptionCreatedAtDateLabel": "Дата оформления подписки", + "@subscriptionCreatedAtDateLabel": {}, + "subscriptionExpiresAtDateLabel": "Истекает", + "@subscriptionExpiresAtDateLabel": {}, + "subscriptionSubscriptionIdLabel": "Идентификатор подписки", + "@subscriptionSubscriptionIdLabel": {}, + "subscriptionProductIdLabel": "Идентификатор продукта", + "@subscriptionProductIdLabel": {}, + "subscriptionDialogOkButton": "Хорошо", + "@subscriptionDialogOkButton": {}, + "errorProcessDonationTitle": "Мы не смогли обработать ваш платеж", + "@errorProcessDonationTitle": {}, + "errorProcessDonationSubtitle": "Произошла ошибка при оплате.\nПопробуйте ещё раз.", + "@errorProcessDonationSubtitle": {}, + "errorProcessDonationRetryButton": "Повторить попытку", + "@errorProcessDonationRetryButton": {}, + "processingDonationTitle": "Обработка платежа", + "@processingDonationTitle": {}, + "processingDonationStripeSubtitle": "Покупку можно завершить на защищенной странице оформления заказа Stripe.", + "@processingDonationStripeSubtitle": {} } \ No newline at end of file diff --git a/example/lib/src/arbs/pay/example_zh.arb b/example/lib/src/arbs/pay/example_zh.arb new file mode 100644 index 0000000..4f5991e --- /dev/null +++ b/example/lib/src/arbs/pay/example_zh.arb @@ -0,0 +1,173 @@ +{ + "@@locale": "zh", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "支付", + "@title": { + "description": "Заголовок экрана" + }, + "exampleButton": "按钮示例", + "@exampleButton": { + "description": "Пример кнопки" + }, + "donationYesItsAllGoodButton": "是的,一切都很好!", + "@donationYesItsAllGoodButton": { + "description": "Кнопка доната после рекомендаций" + }, + "everyContributionHealsTitle": "每一次贡献都会带来治愈!", + "@everyContributionHealsTitle": {}, + "ifThisHelpedYouConsiderSupportingSubtitle": "您的捐款有助于为有需要的人提供免费建议。", + "@ifThisHelpedYouConsiderSupportingSubtitle": {}, + "payWhatFeelsRightLabel": "支付合适的费用,", + "@payWhatFeelsRightLabel": {}, + "orKeepUsingDoctorinaForFreeLabel": "或者继续免费使用 Doctorina,感谢其他选择捐赠的人。", + "@orKeepUsingDoctorinaForFreeLabel": {}, + "oneTimeLabel": "一度", + "@oneTimeLabel": {}, + "monthlyLabel": "每月", + "@monthlyLabel": {}, + "chooseMonthlyDonationAmountLabel": "选择每月捐款金额", + "@chooseMonthlyDonationAmountLabel": {}, + "subscriptionNoAmount": "您即将订阅月度计划。", + "@subscriptionNoAmount": { + "description": "Сумма подписки еще не выбрана" + }, + "subscriptionAmount": "您正在订阅每月 {amount} 的月度计划。", + "@subscriptionAmount": { + "description": "Subscription info text with amount", + "placeholders": { + "amount": { + "type": "String", + "example": "9.99", + "description": "Monthly subscription amount" + } + } + }, + "subscriptionInfo": "确认购买后,款项将从您的账户中扣除。除非在当前订阅期结束前至少 24 小时关闭自动续订,否则订阅将每月自动续订。您可以随时在账户设置中管理或取消订阅。继续操作即表示您同意我们的{termsOfService}和{privacyPolicy}。", + "@subscriptionInfo": { + "description": "Subscription info text with amount, Terms of Service and Privacy Policy placeholders as tappable spans.", + "placeholders": { + "termsOfService": { + "type": "String", + "example": "", + "description": "Clickable span for Terms of Service" + }, + "privacyPolicy": { + "type": "String", + "example": "", + "description": "Clickable span for Privacy Policy" + } + } + }, + "chooseOneTimeDonationAmountLabel": "选择一次性捐款金额", + "@chooseOneTimeDonationAmountLabel": {}, + "mostPeopleGiveHint": "大多数人捐赠 7 至 15 美元", + "@mostPeopleGiveHint": {}, + "selectCurrencyTooltip": "选择货币", + "@selectCurrencyTooltip": {}, + "processingPaymentSemantics": "处理付款", + "@processingPaymentSemantics": {}, + "processingOneTimePaymentSemantics": "正在处理一次性付款 {currency} {amount}", + "@processingOneTimePaymentSemantics": { + "description": "Shown when processing a one-time payment, with currency code and amount placeholders.", + "placeholders": { + "currency": { + "type": "String", + "example": "USD", + "description": "Currency code, e.g. USD, EUR, GBP" + }, + "amount": { + "type": "String", + "example": "49.99", + "description": "Payment amount formatted to two decimal places" + } + } + }, + "processingMonthlyPaymentSemantics": "处理每月 {amount} 的付款", + "@processingMonthlyPaymentSemantics": { + "description": "Shown when processing a monthly payment with amount placeholder.", + "placeholders": { + "amount": { + "type": "String", + "example": "9.99", + "description": "Monthly payment amount formatted to two decimal places" + } + } + }, + "thankYouTitle": "谢谢你!", + "@thankYouTitle": {}, + "thankYouSubtitle": "现在将有更多的人获得免费建议——您的支持确实非常宝贵。", + "@thankYouSubtitle": {}, + "youContributedLabel": "您贡献了:", + "@youContributedLabel": {}, + "perMonth": "/ 月", + "@perMonth": {}, + "returnToTheMainScreenButton": "返回主屏幕", + "@returnToTheMainScreenButton": {}, + "termsOfServiceLabel": "服务条款", + "@termsOfServiceLabel": {}, + "privacyPolicyLabel": "隐私政策", + "@privacyPolicyLabel": {}, + "donateButton": "捐", + "@donateButton": {}, + "manageSubscriptionTitle": "管理订阅", + "@manageSubscriptionTitle": {}, + "subscriptionStatusActiveLabel": "积极的", + "@subscriptionStatusActiveLabel": {}, + "subscriptionStatusCanceledLabel": "取消", + "@subscriptionStatusCanceledLabel": {}, + "subscriptionStatusPausedLabel": "已暂停", + "@subscriptionStatusPausedLabel": {}, + "subscriptionStatusPendingLabel": "待办的", + "@subscriptionStatusPendingLabel": {}, + "subscriptionStatusCreatedLabel": "创建", + "@subscriptionStatusCreatedLabel": {}, + "subscriptionStatusTimeoutLabel": "暂停", + "@subscriptionStatusTimeoutLabel": {}, + "subscriptionStatusUnknownLabel": "未知", + "@subscriptionStatusUnknownLabel": {}, + "subscriptionDoctorinaContributor": "Doctorina 撰稿人", + "@subscriptionDoctorinaContributor": {}, + "subscriptionRenews": "续订", + "@subscriptionRenews": {}, + "subscriptionCancelButton": "取消订阅", + "@subscriptionCancelButton": {}, + "subscriptionAreYouSureDialogTitle": "你确定吗?", + "@subscriptionAreYouSureDialogTitle": {}, + "subscriptionAreYouSureDialogText": "您的每月支持将使那些依赖 Doctorina 但无力支付的患者能够免费使用。\n\n您的订阅费用每月至少可支持 10 次免费咨询。\n如果您离开,获得所需帮助的患者将会减少。", + "@subscriptionAreYouSureDialogText": {}, + "subscriptionAreYouSureDialogKeepButton": "保持订阅", + "@subscriptionAreYouSureDialogKeepButton": {}, + "subscriptionAreYouSureDialogCancelButton": "仍然取消", + "@subscriptionAreYouSureDialogCancelButton": {}, + "subscriptionYourMonthlySupportCanceledNotification": "您的每月支持已成功取消。", + "@subscriptionYourMonthlySupportCanceledNotification": {}, + "subscriptionMalformed": "订阅数据不正确", + "@subscriptionMalformed": {}, + "subscriptionSignUpForMonthlySupportButton": "注册每月支持以使其出现在这里。", + "@subscriptionSignUpForMonthlySupportButton": {}, + "subscriptionNoSubscriptionsYet": "尚未订阅", + "@subscriptionNoSubscriptionsYet": {}, + "subscriptionCreatedAtDateLabel": "订阅日期", + "@subscriptionCreatedAtDateLabel": {}, + "subscriptionExpiresAtDateLabel": "过期", + "@subscriptionExpiresAtDateLabel": {}, + "subscriptionSubscriptionIdLabel": "订阅 ID", + "@subscriptionSubscriptionIdLabel": {}, + "subscriptionProductIdLabel": "产品 ID", + "@subscriptionProductIdLabel": {}, + "subscriptionDialogOkButton": "好的", + "@subscriptionDialogOkButton": {}, + "errorProcessDonationTitle": "我们无法继续您的付款", + "@errorProcessDonationTitle": {}, + "errorProcessDonationSubtitle": "付款出现问题。\n请重试。", + "@errorProcessDonationSubtitle": {}, + "errorProcessDonationRetryButton": "重试", + "@errorProcessDonationRetryButton": {}, + "processingDonationTitle": "处理付款", + "@processingDonationTitle": {}, + "processingDonationStripeSubtitle": "您将在 Stripe 的安全结账页面上完成购买。", + "@processingDonationStripeSubtitle": {} +} \ No newline at end of file diff --git a/example/lib/src/arbs/pay/example_zh_CN.arb b/example/lib/src/arbs/pay/example_zh_CN.arb new file mode 100644 index 0000000..2b7026d --- /dev/null +++ b/example/lib/src/arbs/pay/example_zh_CN.arb @@ -0,0 +1,173 @@ +{ + "@@locale": "zh_CN", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "支付", + "@title": { + "description": "Заголовок экрана" + }, + "exampleButton": "按钮示例", + "@exampleButton": { + "description": "Пример кнопки" + }, + "donationYesItsAllGoodButton": "是的,一切都很好!", + "@donationYesItsAllGoodButton": { + "description": "Кнопка доната после рекомендаций" + }, + "everyContributionHealsTitle": "每一次贡献都会带来治愈!", + "@everyContributionHealsTitle": {}, + "ifThisHelpedYouConsiderSupportingSubtitle": "您的捐款有助于为有需要的人提供免费建议。", + "@ifThisHelpedYouConsiderSupportingSubtitle": {}, + "payWhatFeelsRightLabel": "支付合适的费用,", + "@payWhatFeelsRightLabel": {}, + "orKeepUsingDoctorinaForFreeLabel": "或者继续免费使用 Doctorina,感谢其他选择捐赠的人。", + "@orKeepUsingDoctorinaForFreeLabel": {}, + "oneTimeLabel": "一度", + "@oneTimeLabel": {}, + "monthlyLabel": "每月", + "@monthlyLabel": {}, + "chooseMonthlyDonationAmountLabel": "选择每月捐款金额", + "@chooseMonthlyDonationAmountLabel": {}, + "subscriptionNoAmount": "您即将订阅月度计划。", + "@subscriptionNoAmount": { + "description": "Сумма подписки еще не выбрана" + }, + "subscriptionAmount": "您正在订阅每月 {amount} 的月度计划。", + "@subscriptionAmount": { + "description": "Subscription info text with amount", + "placeholders": { + "amount": { + "type": "String", + "example": "9.99", + "description": "Monthly subscription amount" + } + } + }, + "subscriptionInfo": "确认购买后,款项将从您的账户中扣除。除非在当前订阅期结束前至少 24 小时关闭自动续订,否则订阅将每月自动续订。您可以随时在账户设置中管理或取消订阅。继续操作即表示您同意我们的{termsOfService}和{privacyPolicy}。", + "@subscriptionInfo": { + "description": "Subscription info text with amount, Terms of Service and Privacy Policy placeholders as tappable spans.", + "placeholders": { + "termsOfService": { + "type": "String", + "example": "", + "description": "Clickable span for Terms of Service" + }, + "privacyPolicy": { + "type": "String", + "example": "", + "description": "Clickable span for Privacy Policy" + } + } + }, + "chooseOneTimeDonationAmountLabel": "选择一次性捐款金额", + "@chooseOneTimeDonationAmountLabel": {}, + "mostPeopleGiveHint": "大多数人捐赠 7 至 15 美元", + "@mostPeopleGiveHint": {}, + "selectCurrencyTooltip": "选择货币", + "@selectCurrencyTooltip": {}, + "processingPaymentSemantics": "处理付款", + "@processingPaymentSemantics": {}, + "processingOneTimePaymentSemantics": "正在处理一次性付款 {currency} {amount}", + "@processingOneTimePaymentSemantics": { + "description": "Shown when processing a one-time payment, with currency code and amount placeholders.", + "placeholders": { + "currency": { + "type": "String", + "example": "USD", + "description": "Currency code, e.g. USD, EUR, GBP" + }, + "amount": { + "type": "String", + "example": "49.99", + "description": "Payment amount formatted to two decimal places" + } + } + }, + "processingMonthlyPaymentSemantics": "处理每月 {amount} 的付款", + "@processingMonthlyPaymentSemantics": { + "description": "Shown when processing a monthly payment with amount placeholder.", + "placeholders": { + "amount": { + "type": "String", + "example": "9.99", + "description": "Monthly payment amount formatted to two decimal places" + } + } + }, + "thankYouTitle": "谢谢你!", + "@thankYouTitle": {}, + "thankYouSubtitle": "现在将有更多的人获得免费建议——您的支持确实非常宝贵。", + "@thankYouSubtitle": {}, + "youContributedLabel": "您贡献了:", + "@youContributedLabel": {}, + "perMonth": "/ 月", + "@perMonth": {}, + "returnToTheMainScreenButton": "返回主屏幕", + "@returnToTheMainScreenButton": {}, + "termsOfServiceLabel": "服务条款", + "@termsOfServiceLabel": {}, + "privacyPolicyLabel": "隐私政策", + "@privacyPolicyLabel": {}, + "donateButton": "捐", + "@donateButton": {}, + "manageSubscriptionTitle": "管理订阅", + "@manageSubscriptionTitle": {}, + "subscriptionStatusActiveLabel": "积极的", + "@subscriptionStatusActiveLabel": {}, + "subscriptionStatusCanceledLabel": "取消", + "@subscriptionStatusCanceledLabel": {}, + "subscriptionStatusPausedLabel": "已暂停", + "@subscriptionStatusPausedLabel": {}, + "subscriptionStatusPendingLabel": "待办的", + "@subscriptionStatusPendingLabel": {}, + "subscriptionStatusCreatedLabel": "创建", + "@subscriptionStatusCreatedLabel": {}, + "subscriptionStatusTimeoutLabel": "暂停", + "@subscriptionStatusTimeoutLabel": {}, + "subscriptionStatusUnknownLabel": "未知", + "@subscriptionStatusUnknownLabel": {}, + "subscriptionDoctorinaContributor": "Doctorina 撰稿人", + "@subscriptionDoctorinaContributor": {}, + "subscriptionRenews": "续订", + "@subscriptionRenews": {}, + "subscriptionCancelButton": "取消订阅", + "@subscriptionCancelButton": {}, + "subscriptionAreYouSureDialogTitle": "你确定吗?", + "@subscriptionAreYouSureDialogTitle": {}, + "subscriptionAreYouSureDialogText": "您的每月支持将使那些依赖 Doctorina 但无力支付的患者能够免费使用。\n\n您的订阅费用每月至少可支持 10 次免费咨询。\n如果您离开,获得所需帮助的患者将会减少。", + "@subscriptionAreYouSureDialogText": {}, + "subscriptionAreYouSureDialogKeepButton": "保持订阅", + "@subscriptionAreYouSureDialogKeepButton": {}, + "subscriptionAreYouSureDialogCancelButton": "仍然取消", + "@subscriptionAreYouSureDialogCancelButton": {}, + "subscriptionYourMonthlySupportCanceledNotification": "您的每月支持已成功取消。", + "@subscriptionYourMonthlySupportCanceledNotification": {}, + "subscriptionMalformed": "订阅数据不正确", + "@subscriptionMalformed": {}, + "subscriptionSignUpForMonthlySupportButton": "注册每月支持以使其出现在这里。", + "@subscriptionSignUpForMonthlySupportButton": {}, + "subscriptionNoSubscriptionsYet": "尚未订阅", + "@subscriptionNoSubscriptionsYet": {}, + "subscriptionCreatedAtDateLabel": "订阅日期", + "@subscriptionCreatedAtDateLabel": {}, + "subscriptionExpiresAtDateLabel": "过期", + "@subscriptionExpiresAtDateLabel": {}, + "subscriptionSubscriptionIdLabel": "订阅 ID", + "@subscriptionSubscriptionIdLabel": {}, + "subscriptionProductIdLabel": "产品 ID", + "@subscriptionProductIdLabel": {}, + "subscriptionDialogOkButton": "好的", + "@subscriptionDialogOkButton": {}, + "errorProcessDonationTitle": "我们无法继续您的付款", + "@errorProcessDonationTitle": {}, + "errorProcessDonationSubtitle": "付款出现问题。\n请重试。", + "@errorProcessDonationSubtitle": {}, + "errorProcessDonationRetryButton": "重试", + "@errorProcessDonationRetryButton": {}, + "processingDonationTitle": "处理付款", + "@processingDonationTitle": {}, + "processingDonationStripeSubtitle": "您将在 Stripe 的安全结账页面上完成购买。", + "@processingDonationStripeSubtitle": {} +} \ No newline at end of file diff --git a/example/lib/src/arbs/settings/example_ar.arb b/example/lib/src/arbs/settings/example_ar.arb new file mode 100644 index 0000000..8e6cf7d --- /dev/null +++ b/example/lib/src/arbs/settings/example_ar.arb @@ -0,0 +1,91 @@ +{ + "@@locale": "ar", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "إعدادات الحساب", + "@title": { + "description": "Заголовок экрана" + }, + "sectionClearAllChatsTitle": "مسح جميع الدردشات", + "@sectionClearAllChatsTitle": { + "description": "Заголовок карточки" + }, + "sectionClearAllChatsSubtitle": "سيؤدي هذا إلى حذف سجل الدردشة الخاص بك بشكل دائم.", + "@sectionClearAllChatsSubtitle": { + "description": "Подзаголовок карточки" + }, + "sectionClearAllChatsButton": "مسح جميع الدردشات", + "@sectionClearAllChatsButton": { + "description": "Надпись на кнопке" + }, + "sectionClearAllChatsEmailTheme": "مسح جميع الدردشات", + "@sectionClearAllChatsEmailTheme": { + "description": "Тема e-mail письма" + }, + "sectionDeleteAccountTitle": "حذف الحساب", + "@sectionDeleteAccountTitle": { + "description": "Заголовок карточки" + }, + "sectionDeleteAccountSubtitle": "إن حذف حسابك هو إجراء دائم ولا يمكن التراجع عنه.", + "@sectionDeleteAccountSubtitle": { + "description": "Подзаголовок карточки" + }, + "sectionDeleteAccountButton": "يمسح", + "@sectionDeleteAccountButton": { + "description": "Надпись на кнопке" + }, + "sectionDeleteAccountTheme": "حذف الحساب", + "@sectionDeleteAccountTheme": { + "description": "Тема e-mail письма" + }, + "sectionLogOutTitle": "تسجيل الخروج", + "@sectionLogOutTitle": { + "description": "Заголовок карточки" + }, + "sectionLogOutSubtitle": "سيتم تسجيل خروجك من حسابك.", + "@sectionLogOutSubtitle": { + "description": "Подзаголовок карточки" + }, + "sectionLogOutButton": "تسجيل الخروج", + "@sectionLogOutButton": { + "description": "Надпись на кнопке" + }, + "sendBugReportButton": "إرسال تقرير عن الخطأ", + "@sendBugReportButton": {}, + "sectionSendMessageWithShiftEnterTitle": "أرسل رسالة باستخدام [⏎ Enter]", + "@sectionSendMessageWithShiftEnterTitle": {}, + "sectionSendMessageWithShiftEnterSubtitle": "أرسل رسالة باستخدام [⏎ Enter] وسطر جديد باستخدام [Shift] + [⏎ Enter]", + "@sectionSendMessageWithShiftEnterSubtitle": {}, + "sectionSelectLocaleTitle": "لغة", + "@sectionSelectLocaleTitle": {}, + "sectionSelectLocaleSubtitle": "حدد اللغة المفضلة لديك لواجهة التطبيق", + "@sectionSelectLocaleSubtitle": {}, + "sectionSwitchThemeTitle": "الوضع المظلم", + "@sectionSwitchThemeTitle": {}, + "sectionSwitchThemeSubtitle": "قم بتمكين الوضع المظلم للحصول على تجربة مشاهدة مريحة في الإضاءة المنخفضة", + "@sectionSwitchThemeSubtitle": {}, + "sectionLogsTitle": "السجلات", + "@sectionLogsTitle": {}, + "sectionLogsSubtitle": "عرض وإدارة سجلات التطبيق للتصحيح", + "@sectionLogsSubtitle": {}, + "doneButton": "منتهي", + "@doneButton": {}, + "bugReportDialogTitle": "تقرير الأخطاء", + "@bugReportDialogTitle": {}, + "bugReportDialogHintText": "يرجى وصف الخطأ الذي واجهته", + "@bugReportDialogHintText": {}, + "attachFilesButtonTooltip": "إرفاق الملفات", + "@attachFilesButtonTooltip": {}, + "filePickerError": "فشل في اختيار الملفات", + "@filePickerError": {}, + "emptyBugReportError": "الرجاء إدخال تقرير الخطأ أولاً", + "@emptyBugReportError": {}, + "failedToSendBugReportError": "فشل في إرسال تقرير الخطأ", + "@failedToSendBugReportError": {}, + "sectionManageSubscriptionTitle": "إدارة الاشتراك", + "@sectionManageSubscriptionTitle": {}, + "sectionManageSubscriptionSubtitle": "إدارة إعدادات اشتراكك", + "@sectionManageSubscriptionSubtitle": {} +} \ No newline at end of file diff --git a/example/lib/src/arbs/settings/example_bn.arb b/example/lib/src/arbs/settings/example_bn.arb new file mode 100644 index 0000000..1f486e8 --- /dev/null +++ b/example/lib/src/arbs/settings/example_bn.arb @@ -0,0 +1,91 @@ +{ + "@@locale": "bn", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "অ্যাকাউন্ট সেটিংস", + "@title": { + "description": "Заголовок экрана" + }, + "sectionClearAllChatsTitle": "সমস্ত চ্যাট সাফ করুন", + "@sectionClearAllChatsTitle": { + "description": "Заголовок карточки" + }, + "sectionClearAllChatsSubtitle": "এটি স্থায়ীভাবে আপনার চ্যাট ইতিহাস মুছে ফেলবে।", + "@sectionClearAllChatsSubtitle": { + "description": "Подзаголовок карточки" + }, + "sectionClearAllChatsButton": "সমস্ত চ্যাট সাফ করুন", + "@sectionClearAllChatsButton": { + "description": "Надпись на кнопке" + }, + "sectionClearAllChatsEmailTheme": "সমস্ত চ্যাট সাফ করুন", + "@sectionClearAllChatsEmailTheme": { + "description": "Тема e-mail письма" + }, + "sectionDeleteAccountTitle": "অ্যাকাউন্ট মুছুন", + "@sectionDeleteAccountTitle": { + "description": "Заголовок карточки" + }, + "sectionDeleteAccountSubtitle": "আপনার অ্যাকাউন্ট মুছে ফেলা একটি স্থায়ী কাজ এবং পূর্বাবস্থায় ফেরানো যাবে না।", + "@sectionDeleteAccountSubtitle": { + "description": "Подзаголовок карточки" + }, + "sectionDeleteAccountButton": "মুছুন", + "@sectionDeleteAccountButton": { + "description": "Надпись на кнопке" + }, + "sectionDeleteAccountTheme": "অ্যাকাউন্ট মুছুন", + "@sectionDeleteAccountTheme": { + "description": "Тема e-mail письма" + }, + "sectionLogOutTitle": "সাইন আউট", + "@sectionLogOutTitle": { + "description": "Заголовок карточки" + }, + "sectionLogOutSubtitle": "আপনি আপনার অ্যাকাউন্ট থেকে সাইন আউট করা হবে.", + "@sectionLogOutSubtitle": { + "description": "Подзаголовок карточки" + }, + "sectionLogOutButton": "সাইন আউট", + "@sectionLogOutButton": { + "description": "Надпись на кнопке" + }, + "sendBugReportButton": "বাগ রিপোর্ট পাঠান", + "@sendBugReportButton": {}, + "sectionSendMessageWithShiftEnterTitle": "[⏎ Enter] দিয়ে বার্তা পাঠান", + "@sectionSendMessageWithShiftEnterTitle": {}, + "sectionSendMessageWithShiftEnterSubtitle": "[⏎ Enter] দিয়ে একটি বার্তা পাঠান এবং [Shift] + [⏎ Enter] দিয়ে একটি নতুন লাইন পাঠান", + "@sectionSendMessageWithShiftEnterSubtitle": {}, + "sectionSelectLocaleTitle": "ভাষা", + "@sectionSelectLocaleTitle": {}, + "sectionSelectLocaleSubtitle": "অ্যাপ ইন্টারফেসের জন্য আপনার পছন্দের ভাষা নির্বাচন করুন", + "@sectionSelectLocaleSubtitle": {}, + "sectionSwitchThemeTitle": "ডার্ক মোড", + "@sectionSwitchThemeTitle": {}, + "sectionSwitchThemeSubtitle": "কম আলোতে আরামদায়ক দেখার অভিজ্ঞতার জন্য অন্ধকার মোড সক্ষম করুন", + "@sectionSwitchThemeSubtitle": {}, + "sectionLogsTitle": "লগ", + "@sectionLogsTitle": {}, + "sectionLogsSubtitle": "ডিবাগিংয়ের জন্য অ্যাপ্লিকেশন লগগুলি দেখুন এবং পরিচালনা করুন৷", + "@sectionLogsSubtitle": {}, + "doneButton": "সম্পন্ন", + "@doneButton": {}, + "bugReportDialogTitle": "বাগ রিপোর্ট", + "@bugReportDialogTitle": {}, + "bugReportDialogHintText": "আপনি সম্মুখীন বাগ বর্ণনা করুন", + "@bugReportDialogHintText": {}, + "attachFilesButtonTooltip": "ফাইল সংযুক্ত করুন", + "@attachFilesButtonTooltip": {}, + "filePickerError": "ফাইল বাছাই করতে ব্যর্থ হয়েছে", + "@filePickerError": {}, + "emptyBugReportError": "অনুগ্রহ করে প্রথমে একটি বাগ রিপোর্ট লিখুন", + "@emptyBugReportError": {}, + "failedToSendBugReportError": "বাগ রিপোর্ট পাঠাতে ব্যর্থ হয়েছে", + "@failedToSendBugReportError": {}, + "sectionManageSubscriptionTitle": "সদস্যতা পরিচালনা করুন", + "@sectionManageSubscriptionTitle": {}, + "sectionManageSubscriptionSubtitle": "আপনার সদস্যতা সেটিংস পরিচালনা করুন", + "@sectionManageSubscriptionSubtitle": {} +} \ No newline at end of file diff --git a/example/lib/src/arbs/settings/example_de.arb b/example/lib/src/arbs/settings/example_de.arb index 4a6c07d..ac28159 100644 --- a/example/lib/src/arbs/settings/example_de.arb +++ b/example/lib/src/arbs/settings/example_de.arb @@ -1,7 +1,7 @@ { "@@locale": "de", "@@author": "example@gmail.com", - "@@last_modified": "2025-06-04T15:18:15.787321Z", + "@@last_modified": "2025-08-26T14:28:36.220548Z", "@@comment": "Generated from Google Sheets", "@@context": "From Google Sheets", "title": "Kontoeinstellungen", @@ -51,5 +51,41 @@ "sectionLogOutButton": "Abmelden", "@sectionLogOutButton": { "description": "Надпись на кнопке" - } + }, + "sendBugReportButton": "Fehlerbericht senden", + "@sendBugReportButton": {}, + "sectionSendMessageWithShiftEnterTitle": "Nachricht senden mit [⏎ Enter]", + "@sectionSendMessageWithShiftEnterTitle": {}, + "sectionSendMessageWithShiftEnterSubtitle": "Senden Sie eine Nachricht mit [⏎ Enter] und eine neue Zeile mit [Shift] + [⏎ Enter]", + "@sectionSendMessageWithShiftEnterSubtitle": {}, + "sectionSelectLocaleTitle": "Sprache", + "@sectionSelectLocaleTitle": {}, + "sectionSelectLocaleSubtitle": "Wählen Sie Ihre bevorzugte Sprache für die App-Oberfläche", + "@sectionSelectLocaleSubtitle": {}, + "sectionSwitchThemeTitle": "Dunkler Modus", + "@sectionSwitchThemeTitle": {}, + "sectionSwitchThemeSubtitle": "Aktivieren Sie den Dunkelmodus für ein angenehmes Seherlebnis bei schwachem Licht", + "@sectionSwitchThemeSubtitle": {}, + "sectionLogsTitle": "Protokolle", + "@sectionLogsTitle": {}, + "sectionLogsSubtitle": "Anzeigen und Verwalten von Anwendungsprotokollen zum Debuggen", + "@sectionLogsSubtitle": {}, + "doneButton": "Erledigt", + "@doneButton": {}, + "bugReportDialogTitle": "Fehlerbericht", + "@bugReportDialogTitle": {}, + "bugReportDialogHintText": "Bitte beschreiben Sie den aufgetretenen Fehler", + "@bugReportDialogHintText": {}, + "attachFilesButtonTooltip": "Dateien anhängen", + "@attachFilesButtonTooltip": {}, + "filePickerError": "Fehler beim Auswählen der Dateien", + "@filePickerError": {}, + "emptyBugReportError": "Bitte geben Sie zuerst einen Fehlerbericht ein", + "@emptyBugReportError": {}, + "failedToSendBugReportError": "Fehlerbericht konnte nicht gesendet werden", + "@failedToSendBugReportError": {}, + "sectionManageSubscriptionTitle": "Abonnement verwalten", + "@sectionManageSubscriptionTitle": {}, + "sectionManageSubscriptionSubtitle": "Verwalten Sie Ihre Abonnementeinstellungen", + "@sectionManageSubscriptionSubtitle": {} } \ No newline at end of file diff --git a/example/lib/src/arbs/settings/example_en.arb b/example/lib/src/arbs/settings/example_en.arb index 12a23af..6b7c4a6 100644 --- a/example/lib/src/arbs/settings/example_en.arb +++ b/example/lib/src/arbs/settings/example_en.arb @@ -1,7 +1,7 @@ { "@@locale": "en", "@@author": "example@gmail.com", - "@@last_modified": "2025-06-04T15:18:15.787321Z", + "@@last_modified": "2025-08-26T14:28:36.220548Z", "@@comment": "Generated from Google Sheets", "@@context": "From Google Sheets", "title": "Account Settings", @@ -51,5 +51,41 @@ "sectionLogOutButton": "Sign Out", "@sectionLogOutButton": { "description": "Надпись на кнопке" - } + }, + "sendBugReportButton": "Send Bug Report", + "@sendBugReportButton": {}, + "sectionSendMessageWithShiftEnterTitle": "Send message with [⏎ Enter]", + "@sectionSendMessageWithShiftEnterTitle": {}, + "sectionSendMessageWithShiftEnterSubtitle": "Send a message with [⏎ Enter] and a new line with [Shift] + [⏎ Enter]", + "@sectionSendMessageWithShiftEnterSubtitle": {}, + "sectionSelectLocaleTitle": "Language", + "@sectionSelectLocaleTitle": {}, + "sectionSelectLocaleSubtitle": "Select your preferred language for the app interface", + "@sectionSelectLocaleSubtitle": {}, + "sectionSwitchThemeTitle": "Dark mode", + "@sectionSwitchThemeTitle": {}, + "sectionSwitchThemeSubtitle": "Enable dark mode for a comfortable viewing experience in low light", + "@sectionSwitchThemeSubtitle": {}, + "sectionLogsTitle": "Logs", + "@sectionLogsTitle": {}, + "sectionLogsSubtitle": "View and manage application logs for debugging", + "@sectionLogsSubtitle": {}, + "doneButton": "Done", + "@doneButton": {}, + "bugReportDialogTitle": "Bug Report", + "@bugReportDialogTitle": {}, + "bugReportDialogHintText": "Please describe the bug you encountered", + "@bugReportDialogHintText": {}, + "attachFilesButtonTooltip": "Attach files", + "@attachFilesButtonTooltip": {}, + "filePickerError": "Failed to pick files", + "@filePickerError": {}, + "emptyBugReportError": "Please enter a bug report first", + "@emptyBugReportError": {}, + "failedToSendBugReportError": "Failed to send bug report", + "@failedToSendBugReportError": {}, + "sectionManageSubscriptionTitle": "Manage subscription", + "@sectionManageSubscriptionTitle": {}, + "sectionManageSubscriptionSubtitle": "Manage your subscription settings", + "@sectionManageSubscriptionSubtitle": {} } \ No newline at end of file diff --git a/example/lib/src/arbs/settings/example_es.arb b/example/lib/src/arbs/settings/example_es.arb index 9c3c716..ec4424e 100644 --- a/example/lib/src/arbs/settings/example_es.arb +++ b/example/lib/src/arbs/settings/example_es.arb @@ -1,7 +1,7 @@ { "@@locale": "es", "@@author": "example@gmail.com", - "@@last_modified": "2025-06-04T15:18:15.787321Z", + "@@last_modified": "2025-08-26T14:28:36.220548Z", "@@comment": "Generated from Google Sheets", "@@context": "From Google Sheets", "title": "Ajustes", @@ -51,5 +51,41 @@ "sectionLogOutButton": "Cerrar sesión", "@sectionLogOutButton": { "description": "Надпись на кнопке" - } + }, + "sendBugReportButton": "Enviar informe de error", + "@sendBugReportButton": {}, + "sectionSendMessageWithShiftEnterTitle": "Enviar mensaje con [⏎ Enter]", + "@sectionSendMessageWithShiftEnterTitle": {}, + "sectionSendMessageWithShiftEnterSubtitle": "Envía un mensaje con [⏎ Enter] y una nueva línea con [Shift] + [⏎ Enter]", + "@sectionSendMessageWithShiftEnterSubtitle": {}, + "sectionSelectLocaleTitle": "Idioma", + "@sectionSelectLocaleTitle": {}, + "sectionSelectLocaleSubtitle": "Seleccione su idioma preferido para la interfaz de la aplicación", + "@sectionSelectLocaleSubtitle": {}, + "sectionSwitchThemeTitle": "Modo oscuro", + "@sectionSwitchThemeTitle": {}, + "sectionSwitchThemeSubtitle": "Habilite el modo oscuro para una experiencia de visualización cómoda con poca luz.", + "@sectionSwitchThemeSubtitle": {}, + "sectionLogsTitle": "Registros", + "@sectionLogsTitle": {}, + "sectionLogsSubtitle": "Ver y administrar registros de aplicaciones para depuración", + "@sectionLogsSubtitle": {}, + "doneButton": "Hecho", + "@doneButton": {}, + "bugReportDialogTitle": "Informe de errores", + "@bugReportDialogTitle": {}, + "bugReportDialogHintText": "Por favor describe el error que encontraste", + "@bugReportDialogHintText": {}, + "attachFilesButtonTooltip": "Adjuntar archivos", + "@attachFilesButtonTooltip": {}, + "filePickerError": "No se pudieron seleccionar los archivos", + "@filePickerError": {}, + "emptyBugReportError": "Por favor, primero ingrese un informe de error", + "@emptyBugReportError": {}, + "failedToSendBugReportError": "No se pudo enviar el informe de error", + "@failedToSendBugReportError": {}, + "sectionManageSubscriptionTitle": "Administrar suscripción", + "@sectionManageSubscriptionTitle": {}, + "sectionManageSubscriptionSubtitle": "Administrar la configuración de su suscripción", + "@sectionManageSubscriptionSubtitle": {} } \ No newline at end of file diff --git a/example/lib/src/arbs/settings/example_fr.arb b/example/lib/src/arbs/settings/example_fr.arb new file mode 100644 index 0000000..1a5fc4a --- /dev/null +++ b/example/lib/src/arbs/settings/example_fr.arb @@ -0,0 +1,91 @@ +{ + "@@locale": "fr", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "Paramètres du compte", + "@title": { + "description": "Заголовок экрана" + }, + "sectionClearAllChatsTitle": "Effacer toutes les discussions", + "@sectionClearAllChatsTitle": { + "description": "Заголовок карточки" + }, + "sectionClearAllChatsSubtitle": "Cela supprimera définitivement votre historique de discussion.", + "@sectionClearAllChatsSubtitle": { + "description": "Подзаголовок карточки" + }, + "sectionClearAllChatsButton": "Effacer toutes les discussions", + "@sectionClearAllChatsButton": { + "description": "Надпись на кнопке" + }, + "sectionClearAllChatsEmailTheme": "Effacer toutes les discussions", + "@sectionClearAllChatsEmailTheme": { + "description": "Тема e-mail письма" + }, + "sectionDeleteAccountTitle": "Supprimer le compte", + "@sectionDeleteAccountTitle": { + "description": "Заголовок карточки" + }, + "sectionDeleteAccountSubtitle": "La suppression de votre compte est une action permanente et ne peut pas être annulée.", + "@sectionDeleteAccountSubtitle": { + "description": "Подзаголовок карточки" + }, + "sectionDeleteAccountButton": "Supprimer", + "@sectionDeleteAccountButton": { + "description": "Надпись на кнопке" + }, + "sectionDeleteAccountTheme": "Supprimer le compte", + "@sectionDeleteAccountTheme": { + "description": "Тема e-mail письма" + }, + "sectionLogOutTitle": "Se déconnecter", + "@sectionLogOutTitle": { + "description": "Заголовок карточки" + }, + "sectionLogOutSubtitle": "Vous serez déconnecté de votre compte.", + "@sectionLogOutSubtitle": { + "description": "Подзаголовок карточки" + }, + "sectionLogOutButton": "Se déconnecter", + "@sectionLogOutButton": { + "description": "Надпись на кнопке" + }, + "sendBugReportButton": "Envoyer un rapport de bogue", + "@sendBugReportButton": {}, + "sectionSendMessageWithShiftEnterTitle": "Envoyer un message avec [⏎ Entrée]", + "@sectionSendMessageWithShiftEnterTitle": {}, + "sectionSendMessageWithShiftEnterSubtitle": "Envoyer un message avec [⏎ Entrée] et une nouvelle ligne avec [Maj] + [⏎ Entrée]", + "@sectionSendMessageWithShiftEnterSubtitle": {}, + "sectionSelectLocaleTitle": "Langue", + "@sectionSelectLocaleTitle": {}, + "sectionSelectLocaleSubtitle": "Sélectionnez votre langue préférée pour l'interface de l'application", + "@sectionSelectLocaleSubtitle": {}, + "sectionSwitchThemeTitle": "Mode sombre", + "@sectionSwitchThemeTitle": {}, + "sectionSwitchThemeSubtitle": "Activez le mode sombre pour une expérience de visionnage confortable en basse lumière", + "@sectionSwitchThemeSubtitle": {}, + "sectionLogsTitle": "Journaux", + "@sectionLogsTitle": {}, + "sectionLogsSubtitle": "Afficher et gérer les journaux d'application pour le débogage", + "@sectionLogsSubtitle": {}, + "doneButton": "Fait", + "@doneButton": {}, + "bugReportDialogTitle": "Rapport de bogue", + "@bugReportDialogTitle": {}, + "bugReportDialogHintText": "Veuillez décrire le bug que vous avez rencontré", + "@bugReportDialogHintText": {}, + "attachFilesButtonTooltip": "Joindre des fichiers", + "@attachFilesButtonTooltip": {}, + "filePickerError": "Échec de la sélection des fichiers", + "@filePickerError": {}, + "emptyBugReportError": "Veuillez d'abord saisir un rapport de bogue", + "@emptyBugReportError": {}, + "failedToSendBugReportError": "Échec de l'envoi du rapport de bogue", + "@failedToSendBugReportError": {}, + "sectionManageSubscriptionTitle": "Gérer l'abonnement", + "@sectionManageSubscriptionTitle": {}, + "sectionManageSubscriptionSubtitle": "Gérez vos paramètres d'abonnement", + "@sectionManageSubscriptionSubtitle": {} +} \ No newline at end of file diff --git a/example/lib/src/arbs/settings/example_hi.arb b/example/lib/src/arbs/settings/example_hi.arb new file mode 100644 index 0000000..81149fc --- /dev/null +++ b/example/lib/src/arbs/settings/example_hi.arb @@ -0,0 +1,91 @@ +{ + "@@locale": "hi", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "अकाउंट सेटिंग", + "@title": { + "description": "Заголовок экрана" + }, + "sectionClearAllChatsTitle": "सभी चैट साफ़ करें", + "@sectionClearAllChatsTitle": { + "description": "Заголовок карточки" + }, + "sectionClearAllChatsSubtitle": "इससे आपका चैट इतिहास स्थायी रूप से मिट जाएगा।", + "@sectionClearAllChatsSubtitle": { + "description": "Подзаголовок карточки" + }, + "sectionClearAllChatsButton": "सभी चैट साफ़ करें", + "@sectionClearAllChatsButton": { + "description": "Надпись на кнопке" + }, + "sectionClearAllChatsEmailTheme": "सभी चैट साफ़ करें", + "@sectionClearAllChatsEmailTheme": { + "description": "Тема e-mail письма" + }, + "sectionDeleteAccountTitle": "खाता हटा दो", + "@sectionDeleteAccountTitle": { + "description": "Заголовок карточки" + }, + "sectionDeleteAccountSubtitle": "अपना खाता हटाना एक स्थायी कार्रवाई है और इसे पूर्ववत नहीं किया जा सकता.", + "@sectionDeleteAccountSubtitle": { + "description": "Подзаголовок карточки" + }, + "sectionDeleteAccountButton": "मिटाना", + "@sectionDeleteAccountButton": { + "description": "Надпись на кнопке" + }, + "sectionDeleteAccountTheme": "खाता हटा दो", + "@sectionDeleteAccountTheme": { + "description": "Тема e-mail письма" + }, + "sectionLogOutTitle": "साइन आउट", + "@sectionLogOutTitle": { + "description": "Заголовок карточки" + }, + "sectionLogOutSubtitle": "आप अपने खाते से साइन आउट हो जाएंगे.", + "@sectionLogOutSubtitle": { + "description": "Подзаголовок карточки" + }, + "sectionLogOutButton": "साइन आउट", + "@sectionLogOutButton": { + "description": "Надпись на кнопке" + }, + "sendBugReportButton": "बग रिपोर्ट भेजें", + "@sendBugReportButton": {}, + "sectionSendMessageWithShiftEnterTitle": "[⏎ Enter] के साथ संदेश भेजें", + "@sectionSendMessageWithShiftEnterTitle": {}, + "sectionSendMessageWithShiftEnterSubtitle": "[⏎ Enter] के साथ एक संदेश और [Shift] + [⏎ Enter] के साथ एक नई पंक्ति भेजें", + "@sectionSendMessageWithShiftEnterSubtitle": {}, + "sectionSelectLocaleTitle": "भाषा", + "@sectionSelectLocaleTitle": {}, + "sectionSelectLocaleSubtitle": "ऐप इंटरफ़ेस के लिए अपनी पसंदीदा भाषा चुनें", + "@sectionSelectLocaleSubtitle": {}, + "sectionSwitchThemeTitle": "डार्क मोड", + "@sectionSwitchThemeTitle": {}, + "sectionSwitchThemeSubtitle": "कम रोशनी में आरामदायक दृश्य अनुभव के लिए डार्क मोड सक्षम करें", + "@sectionSwitchThemeSubtitle": {}, + "sectionLogsTitle": "लॉग्स", + "@sectionLogsTitle": {}, + "sectionLogsSubtitle": "डिबगिंग के लिए एप्लिकेशन लॉग देखें और प्रबंधित करें", + "@sectionLogsSubtitle": {}, + "doneButton": "हो गया", + "@doneButton": {}, + "bugReportDialogTitle": "बग रिपोर्ट", + "@bugReportDialogTitle": {}, + "bugReportDialogHintText": "कृपया उस बग का वर्णन करें जिसका आपने सामना किया", + "@bugReportDialogHintText": {}, + "attachFilesButtonTooltip": "फ़ाइलों को संलग्न करें", + "@attachFilesButtonTooltip": {}, + "filePickerError": "फ़ाइलें चुनने में विफल", + "@filePickerError": {}, + "emptyBugReportError": "कृपया पहले एक बग रिपोर्ट दर्ज करें", + "@emptyBugReportError": {}, + "failedToSendBugReportError": "बग रिपोर्ट भेजने में विफल", + "@failedToSendBugReportError": {}, + "sectionManageSubscriptionTitle": "सदस्यता प्रबंधित करें", + "@sectionManageSubscriptionTitle": {}, + "sectionManageSubscriptionSubtitle": "अपनी सदस्यता सेटिंग प्रबंधित करें", + "@sectionManageSubscriptionSubtitle": {} +} \ No newline at end of file diff --git a/example/lib/src/arbs/settings/example_it.arb b/example/lib/src/arbs/settings/example_it.arb new file mode 100644 index 0000000..cc42a3c --- /dev/null +++ b/example/lib/src/arbs/settings/example_it.arb @@ -0,0 +1,91 @@ +{ + "@@locale": "it", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "Impostazioni dell'account", + "@title": { + "description": "Заголовок экрана" + }, + "sectionClearAllChatsTitle": "Cancella tutte le chat", + "@sectionClearAllChatsTitle": { + "description": "Заголовок карточки" + }, + "sectionClearAllChatsSubtitle": "Questa operazione eliminerà definitivamente la cronologia della chat.", + "@sectionClearAllChatsSubtitle": { + "description": "Подзаголовок карточки" + }, + "sectionClearAllChatsButton": "Cancella tutte le chat", + "@sectionClearAllChatsButton": { + "description": "Надпись на кнопке" + }, + "sectionClearAllChatsEmailTheme": "Cancella tutte le chat", + "@sectionClearAllChatsEmailTheme": { + "description": "Тема e-mail письма" + }, + "sectionDeleteAccountTitle": "Elimina account", + "@sectionDeleteAccountTitle": { + "description": "Заголовок карточки" + }, + "sectionDeleteAccountSubtitle": "L'eliminazione del tuo account è un'azione permanente e non può essere annullata.", + "@sectionDeleteAccountSubtitle": { + "description": "Подзаголовок карточки" + }, + "sectionDeleteAccountButton": "Eliminare", + "@sectionDeleteAccountButton": { + "description": "Надпись на кнопке" + }, + "sectionDeleteAccountTheme": "Elimina account", + "@sectionDeleteAccountTheme": { + "description": "Тема e-mail письма" + }, + "sectionLogOutTitle": "Disconnessione", + "@sectionLogOutTitle": { + "description": "Заголовок карточки" + }, + "sectionLogOutSubtitle": "Verrai disconnesso dal tuo account.", + "@sectionLogOutSubtitle": { + "description": "Подзаголовок карточки" + }, + "sectionLogOutButton": "Disconnessione", + "@sectionLogOutButton": { + "description": "Надпись на кнопке" + }, + "sendBugReportButton": "Invia segnalazione bug", + "@sendBugReportButton": {}, + "sectionSendMessageWithShiftEnterTitle": "Invia messaggio con [⏎ Invio]", + "@sectionSendMessageWithShiftEnterTitle": {}, + "sectionSendMessageWithShiftEnterSubtitle": "Invia un messaggio con [⏎ Invio] e una nuova riga con [Maiusc] + [⏎ Invio]", + "@sectionSendMessageWithShiftEnterSubtitle": {}, + "sectionSelectLocaleTitle": "Lingua", + "@sectionSelectLocaleTitle": {}, + "sectionSelectLocaleSubtitle": "Seleziona la lingua preferita per l'interfaccia dell'app", + "@sectionSelectLocaleSubtitle": {}, + "sectionSwitchThemeTitle": "Modalità scura", + "@sectionSwitchThemeTitle": {}, + "sectionSwitchThemeSubtitle": "Abilita la modalità scura per un'esperienza visiva confortevole in condizioni di scarsa illuminazione", + "@sectionSwitchThemeSubtitle": {}, + "sectionLogsTitle": "Registri", + "@sectionLogsTitle": {}, + "sectionLogsSubtitle": "Visualizza e gestisci i registri delle applicazioni per il debug", + "@sectionLogsSubtitle": {}, + "doneButton": "Fatto", + "@doneButton": {}, + "bugReportDialogTitle": "Segnalazione di bug", + "@bugReportDialogTitle": {}, + "bugReportDialogHintText": "Descrivi il bug che hai riscontrato", + "@bugReportDialogHintText": {}, + "attachFilesButtonTooltip": "Allega file", + "@attachFilesButtonTooltip": {}, + "filePickerError": "Impossibile selezionare i file", + "@filePickerError": {}, + "emptyBugReportError": "Inserisci prima una segnalazione di bug", + "@emptyBugReportError": {}, + "failedToSendBugReportError": "Impossibile inviare la segnalazione di bug", + "@failedToSendBugReportError": {}, + "sectionManageSubscriptionTitle": "Gestisci l'abbonamento", + "@sectionManageSubscriptionTitle": {}, + "sectionManageSubscriptionSubtitle": "Gestisci le impostazioni del tuo abbonamento", + "@sectionManageSubscriptionSubtitle": {} +} \ No newline at end of file diff --git a/example/lib/src/arbs/settings/example_ko.arb b/example/lib/src/arbs/settings/example_ko.arb new file mode 100644 index 0000000..93c7d51 --- /dev/null +++ b/example/lib/src/arbs/settings/example_ko.arb @@ -0,0 +1,91 @@ +{ + "@@locale": "ko", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "계정 설정", + "@title": { + "description": "Заголовок экрана" + }, + "sectionClearAllChatsTitle": "모든 채팅 지우기", + "@sectionClearAllChatsTitle": { + "description": "Заголовок карточки" + }, + "sectionClearAllChatsSubtitle": "이렇게 하면 채팅 기록이 영구적으로 삭제됩니다.", + "@sectionClearAllChatsSubtitle": { + "description": "Подзаголовок карточки" + }, + "sectionClearAllChatsButton": "모든 채팅 지우기", + "@sectionClearAllChatsButton": { + "description": "Надпись на кнопке" + }, + "sectionClearAllChatsEmailTheme": "모든 채팅 지우기", + "@sectionClearAllChatsEmailTheme": { + "description": "Тема e-mail письма" + }, + "sectionDeleteAccountTitle": "계정 삭제", + "@sectionDeleteAccountTitle": { + "description": "Заголовок карточки" + }, + "sectionDeleteAccountSubtitle": "계정 삭제는 영구적인 작업이며 취소할 수 없습니다.", + "@sectionDeleteAccountSubtitle": { + "description": "Подзаголовок карточки" + }, + "sectionDeleteAccountButton": "삭제", + "@sectionDeleteAccountButton": { + "description": "Надпись на кнопке" + }, + "sectionDeleteAccountTheme": "계정 삭제", + "@sectionDeleteAccountTheme": { + "description": "Тема e-mail письма" + }, + "sectionLogOutTitle": "로그아웃", + "@sectionLogOutTitle": { + "description": "Заголовок карточки" + }, + "sectionLogOutSubtitle": "귀하의 계정에서 로그아웃됩니다.", + "@sectionLogOutSubtitle": { + "description": "Подзаголовок карточки" + }, + "sectionLogOutButton": "로그아웃", + "@sectionLogOutButton": { + "description": "Надпись на кнопке" + }, + "sendBugReportButton": "버그 리포트 보내기", + "@sendBugReportButton": {}, + "sectionSendMessageWithShiftEnterTitle": "[⏎ Enter]로 메시지를 보내세요", + "@sectionSendMessageWithShiftEnterTitle": {}, + "sectionSendMessageWithShiftEnterSubtitle": "[⏎ Enter]로 메시지를 보내고 [Shift] + [⏎ Enter]로 새 줄을 보냅니다.", + "@sectionSendMessageWithShiftEnterSubtitle": {}, + "sectionSelectLocaleTitle": "언어", + "@sectionSelectLocaleTitle": {}, + "sectionSelectLocaleSubtitle": "앱 인터페이스에 대한 기본 언어를 선택하세요", + "@sectionSelectLocaleSubtitle": {}, + "sectionSwitchThemeTitle": "다크 모드", + "@sectionSwitchThemeTitle": {}, + "sectionSwitchThemeSubtitle": "어두운 곳에서도 편안한 시청 환경을 위해 다크 모드를 활성화하세요.", + "@sectionSwitchThemeSubtitle": {}, + "sectionLogsTitle": "로그", + "@sectionLogsTitle": {}, + "sectionLogsSubtitle": "디버깅을 위한 애플리케이션 로그 보기 및 관리", + "@sectionLogsSubtitle": {}, + "doneButton": "완료", + "@doneButton": {}, + "bugReportDialogTitle": "버그 리포트", + "@bugReportDialogTitle": {}, + "bugReportDialogHintText": "발생한 버그를 설명해 주세요.", + "@bugReportDialogHintText": {}, + "attachFilesButtonTooltip": "파일 첨부", + "@attachFilesButtonTooltip": {}, + "filePickerError": "파일을 선택하지 못했습니다", + "@filePickerError": {}, + "emptyBugReportError": "먼저 버그 리포트를 입력하세요", + "@emptyBugReportError": {}, + "failedToSendBugReportError": "버그 보고서를 보내지 못했습니다.", + "@failedToSendBugReportError": {}, + "sectionManageSubscriptionTitle": "구독 관리", + "@sectionManageSubscriptionTitle": {}, + "sectionManageSubscriptionSubtitle": "구독 설정 관리", + "@sectionManageSubscriptionSubtitle": {} +} \ No newline at end of file diff --git a/example/lib/src/arbs/settings/example_pt.arb b/example/lib/src/arbs/settings/example_pt.arb new file mode 100644 index 0000000..c777f85 --- /dev/null +++ b/example/lib/src/arbs/settings/example_pt.arb @@ -0,0 +1,91 @@ +{ + "@@locale": "pt", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "Configurações de Conta", + "@title": { + "description": "Заголовок экрана" + }, + "sectionClearAllChatsTitle": "Limpar todos os chats", + "@sectionClearAllChatsTitle": { + "description": "Заголовок карточки" + }, + "sectionClearAllChatsSubtitle": "Isso excluirá permanentemente seu histórico de bate-papo.", + "@sectionClearAllChatsSubtitle": { + "description": "Подзаголовок карточки" + }, + "sectionClearAllChatsButton": "Limpar todos os chats", + "@sectionClearAllChatsButton": { + "description": "Надпись на кнопке" + }, + "sectionClearAllChatsEmailTheme": "Limpar todos os chats", + "@sectionClearAllChatsEmailTheme": { + "description": "Тема e-mail письма" + }, + "sectionDeleteAccountTitle": "Excluir conta", + "@sectionDeleteAccountTitle": { + "description": "Заголовок карточки" + }, + "sectionDeleteAccountSubtitle": "Excluir sua conta é uma ação permanente e não pode ser desfeita.", + "@sectionDeleteAccountSubtitle": { + "description": "Подзаголовок карточки" + }, + "sectionDeleteAccountButton": "Excluir", + "@sectionDeleteAccountButton": { + "description": "Надпись на кнопке" + }, + "sectionDeleteAccountTheme": "Excluir conta", + "@sectionDeleteAccountTheme": { + "description": "Тема e-mail письма" + }, + "sectionLogOutTitle": "Sair", + "@sectionLogOutTitle": { + "description": "Заголовок карточки" + }, + "sectionLogOutSubtitle": "Você será desconectado da sua conta.", + "@sectionLogOutSubtitle": { + "description": "Подзаголовок карточки" + }, + "sectionLogOutButton": "Sair", + "@sectionLogOutButton": { + "description": "Надпись на кнопке" + }, + "sendBugReportButton": "Enviar relatório de bug", + "@sendBugReportButton": {}, + "sectionSendMessageWithShiftEnterTitle": "Enviar mensagem com [⏎ Enter]", + "@sectionSendMessageWithShiftEnterTitle": {}, + "sectionSendMessageWithShiftEnterSubtitle": "Envie uma mensagem com [⏎ Enter] e uma nova linha com [Shift] + [⏎ Enter]", + "@sectionSendMessageWithShiftEnterSubtitle": {}, + "sectionSelectLocaleTitle": "Linguagem", + "@sectionSelectLocaleTitle": {}, + "sectionSelectLocaleSubtitle": "Selecione seu idioma preferido para a interface do aplicativo", + "@sectionSelectLocaleSubtitle": {}, + "sectionSwitchThemeTitle": "Modo escuro", + "@sectionSwitchThemeTitle": {}, + "sectionSwitchThemeSubtitle": "Ative o modo escuro para uma experiência de visualização confortável com pouca luz", + "@sectionSwitchThemeSubtitle": {}, + "sectionLogsTitle": "Registros", + "@sectionLogsTitle": {}, + "sectionLogsSubtitle": "Visualizar e gerenciar logs de aplicativos para depuração", + "@sectionLogsSubtitle": {}, + "doneButton": "Feito", + "@doneButton": {}, + "bugReportDialogTitle": "Relatório de bug", + "@bugReportDialogTitle": {}, + "bugReportDialogHintText": "Por favor descreva o bug que você encontrou", + "@bugReportDialogHintText": {}, + "attachFilesButtonTooltip": "Anexar arquivos", + "@attachFilesButtonTooltip": {}, + "filePickerError": "Falha ao selecionar arquivos", + "@filePickerError": {}, + "emptyBugReportError": "Por favor, insira um relatório de bug primeiro", + "@emptyBugReportError": {}, + "failedToSendBugReportError": "Falha ao enviar relatório de bug", + "@failedToSendBugReportError": {}, + "sectionManageSubscriptionTitle": "Gerenciar assinatura", + "@sectionManageSubscriptionTitle": {}, + "sectionManageSubscriptionSubtitle": "Gerencie suas configurações de assinatura", + "@sectionManageSubscriptionSubtitle": {} +} \ No newline at end of file diff --git a/example/lib/src/arbs/settings/example_pt_BR.arb b/example/lib/src/arbs/settings/example_pt_BR.arb new file mode 100644 index 0000000..31652c0 --- /dev/null +++ b/example/lib/src/arbs/settings/example_pt_BR.arb @@ -0,0 +1,91 @@ +{ + "@@locale": "pt_BR", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "Configurações de Conta", + "@title": { + "description": "Заголовок экрана" + }, + "sectionClearAllChatsTitle": "Limpar todos os chats", + "@sectionClearAllChatsTitle": { + "description": "Заголовок карточки" + }, + "sectionClearAllChatsSubtitle": "Isso excluirá permanentemente seu histórico de bate-papo.", + "@sectionClearAllChatsSubtitle": { + "description": "Подзаголовок карточки" + }, + "sectionClearAllChatsButton": "Limpar todos os chats", + "@sectionClearAllChatsButton": { + "description": "Надпись на кнопке" + }, + "sectionClearAllChatsEmailTheme": "Limpar todos os chats", + "@sectionClearAllChatsEmailTheme": { + "description": "Тема e-mail письма" + }, + "sectionDeleteAccountTitle": "Excluir conta", + "@sectionDeleteAccountTitle": { + "description": "Заголовок карточки" + }, + "sectionDeleteAccountSubtitle": "Excluir sua conta é uma ação permanente e não pode ser desfeita.", + "@sectionDeleteAccountSubtitle": { + "description": "Подзаголовок карточки" + }, + "sectionDeleteAccountButton": "Excluir", + "@sectionDeleteAccountButton": { + "description": "Надпись на кнопке" + }, + "sectionDeleteAccountTheme": "Excluir conta", + "@sectionDeleteAccountTheme": { + "description": "Тема e-mail письма" + }, + "sectionLogOutTitle": "Sair", + "@sectionLogOutTitle": { + "description": "Заголовок карточки" + }, + "sectionLogOutSubtitle": "Você será desconectado da sua conta.", + "@sectionLogOutSubtitle": { + "description": "Подзаголовок карточки" + }, + "sectionLogOutButton": "Sair", + "@sectionLogOutButton": { + "description": "Надпись на кнопке" + }, + "sendBugReportButton": "Enviar relatório de bug", + "@sendBugReportButton": {}, + "sectionSendMessageWithShiftEnterTitle": "Enviar mensagem com [⏎ Enter]", + "@sectionSendMessageWithShiftEnterTitle": {}, + "sectionSendMessageWithShiftEnterSubtitle": "Envie uma mensagem com [⏎ Enter] e uma nova linha com [Shift] + [⏎ Enter]", + "@sectionSendMessageWithShiftEnterSubtitle": {}, + "sectionSelectLocaleTitle": "Linguagem", + "@sectionSelectLocaleTitle": {}, + "sectionSelectLocaleSubtitle": "Selecione seu idioma preferido para a interface do aplicativo", + "@sectionSelectLocaleSubtitle": {}, + "sectionSwitchThemeTitle": "Modo escuro", + "@sectionSwitchThemeTitle": {}, + "sectionSwitchThemeSubtitle": "Ative o modo escuro para uma experiência de visualização confortável com pouca luz", + "@sectionSwitchThemeSubtitle": {}, + "sectionLogsTitle": "Registros", + "@sectionLogsTitle": {}, + "sectionLogsSubtitle": "Visualizar e gerenciar logs de aplicativos para depuração", + "@sectionLogsSubtitle": {}, + "doneButton": "Feito", + "@doneButton": {}, + "bugReportDialogTitle": "Relatório de bug", + "@bugReportDialogTitle": {}, + "bugReportDialogHintText": "Por favor descreva o bug que você encontrou", + "@bugReportDialogHintText": {}, + "attachFilesButtonTooltip": "Anexar arquivos", + "@attachFilesButtonTooltip": {}, + "filePickerError": "Falha ao selecionar arquivos", + "@filePickerError": {}, + "emptyBugReportError": "Por favor, insira um relatório de bug primeiro", + "@emptyBugReportError": {}, + "failedToSendBugReportError": "Falha ao enviar relatório de bug", + "@failedToSendBugReportError": {}, + "sectionManageSubscriptionTitle": "Gerenciar assinatura", + "@sectionManageSubscriptionTitle": {}, + "sectionManageSubscriptionSubtitle": "Gerencie suas configurações de assinatura", + "@sectionManageSubscriptionSubtitle": {} +} \ No newline at end of file diff --git a/example/lib/src/arbs/settings/example_ru.arb b/example/lib/src/arbs/settings/example_ru.arb index 9d37c8a..d2a5b3b 100644 --- a/example/lib/src/arbs/settings/example_ru.arb +++ b/example/lib/src/arbs/settings/example_ru.arb @@ -1,7 +1,7 @@ { "@@locale": "ru", "@@author": "example@gmail.com", - "@@last_modified": "2025-06-04T15:18:15.787321Z", + "@@last_modified": "2025-08-26T14:28:36.220548Z", "@@comment": "Generated from Google Sheets", "@@context": "From Google Sheets", "title": "Настройки", @@ -51,5 +51,41 @@ "sectionLogOutButton": "Выйти из аккаунта", "@sectionLogOutButton": { "description": "Надпись на кнопке" - } + }, + "sendBugReportButton": "Отправить отчет об ошибке", + "@sendBugReportButton": {}, + "sectionSendMessageWithShiftEnterTitle": "Отправить сообщение с помощью [⏎ Enter]", + "@sectionSendMessageWithShiftEnterTitle": {}, + "sectionSendMessageWithShiftEnterSubtitle": "Отправьте сообщение с помощью [⏎ Enter] и создайте новую строку с помощью [Shift] + [⏎ Enter]", + "@sectionSendMessageWithShiftEnterSubtitle": {}, + "sectionSelectLocaleTitle": "Язык", + "@sectionSelectLocaleTitle": {}, + "sectionSelectLocaleSubtitle": "Выберите язык интерфейса приложения", + "@sectionSelectLocaleSubtitle": {}, + "sectionSwitchThemeTitle": "Темный режим", + "@sectionSwitchThemeTitle": {}, + "sectionSwitchThemeSubtitle": "Включите темный режим для комфортного просмотра при слабом освещении.", + "@sectionSwitchThemeSubtitle": {}, + "sectionLogsTitle": "Логи", + "@sectionLogsTitle": {}, + "sectionLogsSubtitle": "Просмотр и управление журналами приложений для отладки", + "@sectionLogsSubtitle": {}, + "doneButton": "Готово", + "@doneButton": {}, + "bugReportDialogTitle": "Отчет об ошибке", + "@bugReportDialogTitle": {}, + "bugReportDialogHintText": "Опишите ошибку, с которой вы столкнулись.", + "@bugReportDialogHintText": {}, + "attachFilesButtonTooltip": "Прикрепить файлы", + "@attachFilesButtonTooltip": {}, + "filePickerError": "Не удалось выбрать файлы", + "@filePickerError": {}, + "emptyBugReportError": "Пожалуйста, сначала отправьте отчет об ошибке", + "@emptyBugReportError": {}, + "failedToSendBugReportError": "Не удалось отправить отчет об ошибке", + "@failedToSendBugReportError": {}, + "sectionManageSubscriptionTitle": "Управление подпиской", + "@sectionManageSubscriptionTitle": {}, + "sectionManageSubscriptionSubtitle": "Управляйте настройками подписки", + "@sectionManageSubscriptionSubtitle": {} } \ No newline at end of file diff --git a/example/lib/src/arbs/settings/example_zh.arb b/example/lib/src/arbs/settings/example_zh.arb new file mode 100644 index 0000000..83a934e --- /dev/null +++ b/example/lib/src/arbs/settings/example_zh.arb @@ -0,0 +1,91 @@ +{ + "@@locale": "zh", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "帐户设置", + "@title": { + "description": "Заголовок экрана" + }, + "sectionClearAllChatsTitle": "清除所有聊天", + "@sectionClearAllChatsTitle": { + "description": "Заголовок карточки" + }, + "sectionClearAllChatsSubtitle": "这将永久删除您的聊天记录。", + "@sectionClearAllChatsSubtitle": { + "description": "Подзаголовок карточки" + }, + "sectionClearAllChatsButton": "清除所有聊天", + "@sectionClearAllChatsButton": { + "description": "Надпись на кнопке" + }, + "sectionClearAllChatsEmailTheme": "清除所有聊天", + "@sectionClearAllChatsEmailTheme": { + "description": "Тема e-mail письма" + }, + "sectionDeleteAccountTitle": "删除帐户", + "@sectionDeleteAccountTitle": { + "description": "Заголовок карточки" + }, + "sectionDeleteAccountSubtitle": "删除您的帐户是永久性操作,无法撤消。", + "@sectionDeleteAccountSubtitle": { + "description": "Подзаголовок карточки" + }, + "sectionDeleteAccountButton": "删除", + "@sectionDeleteAccountButton": { + "description": "Надпись на кнопке" + }, + "sectionDeleteAccountTheme": "删除帐户", + "@sectionDeleteAccountTheme": { + "description": "Тема e-mail письма" + }, + "sectionLogOutTitle": "登出", + "@sectionLogOutTitle": { + "description": "Заголовок карточки" + }, + "sectionLogOutSubtitle": "您将退出您的帐户。", + "@sectionLogOutSubtitle": { + "description": "Подзаголовок карточки" + }, + "sectionLogOutButton": "登出", + "@sectionLogOutButton": { + "description": "Надпись на кнопке" + }, + "sendBugReportButton": "发送错误报告", + "@sendBugReportButton": {}, + "sectionSendMessageWithShiftEnterTitle": "使用 [⏎ Enter] 发送消息", + "@sectionSendMessageWithShiftEnterTitle": {}, + "sectionSendMessageWithShiftEnterSubtitle": "使用 [⏎ Enter] 发送消息,使用 [Shift] + [⏎ Enter] 换行", + "@sectionSendMessageWithShiftEnterSubtitle": {}, + "sectionSelectLocaleTitle": "语言", + "@sectionSelectLocaleTitle": {}, + "sectionSelectLocaleSubtitle": "选择应用程序界面的首选语言", + "@sectionSelectLocaleSubtitle": {}, + "sectionSwitchThemeTitle": "黑暗模式", + "@sectionSwitchThemeTitle": {}, + "sectionSwitchThemeSubtitle": "启用暗模式,在弱光环境下获得舒适的观看体验", + "@sectionSwitchThemeSubtitle": {}, + "sectionLogsTitle": "日志", + "@sectionLogsTitle": {}, + "sectionLogsSubtitle": "查看和管理应用程序日志以进行调试", + "@sectionLogsSubtitle": {}, + "doneButton": "完毕", + "@doneButton": {}, + "bugReportDialogTitle": "错误报告", + "@bugReportDialogTitle": {}, + "bugReportDialogHintText": "请描述您遇到的bug", + "@bugReportDialogHintText": {}, + "attachFilesButtonTooltip": "附加文件", + "@attachFilesButtonTooltip": {}, + "filePickerError": "选择文件失败", + "@filePickerError": {}, + "emptyBugReportError": "请先输入错误报告", + "@emptyBugReportError": {}, + "failedToSendBugReportError": "无法发送错误报告", + "@failedToSendBugReportError": {}, + "sectionManageSubscriptionTitle": "管理订阅", + "@sectionManageSubscriptionTitle": {}, + "sectionManageSubscriptionSubtitle": "管理您的订阅设置", + "@sectionManageSubscriptionSubtitle": {} +} \ No newline at end of file diff --git a/example/lib/src/arbs/settings/example_zh_CN.arb b/example/lib/src/arbs/settings/example_zh_CN.arb new file mode 100644 index 0000000..eb7b293 --- /dev/null +++ b/example/lib/src/arbs/settings/example_zh_CN.arb @@ -0,0 +1,91 @@ +{ + "@@locale": "zh_CN", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "帐户设置", + "@title": { + "description": "Заголовок экрана" + }, + "sectionClearAllChatsTitle": "清除所有聊天", + "@sectionClearAllChatsTitle": { + "description": "Заголовок карточки" + }, + "sectionClearAllChatsSubtitle": "这将永久删除您的聊天记录。", + "@sectionClearAllChatsSubtitle": { + "description": "Подзаголовок карточки" + }, + "sectionClearAllChatsButton": "清除所有聊天", + "@sectionClearAllChatsButton": { + "description": "Надпись на кнопке" + }, + "sectionClearAllChatsEmailTheme": "清除所有聊天", + "@sectionClearAllChatsEmailTheme": { + "description": "Тема e-mail письма" + }, + "sectionDeleteAccountTitle": "删除帐户", + "@sectionDeleteAccountTitle": { + "description": "Заголовок карточки" + }, + "sectionDeleteAccountSubtitle": "删除您的帐户是永久性操作,无法撤消。", + "@sectionDeleteAccountSubtitle": { + "description": "Подзаголовок карточки" + }, + "sectionDeleteAccountButton": "删除", + "@sectionDeleteAccountButton": { + "description": "Надпись на кнопке" + }, + "sectionDeleteAccountTheme": "删除帐户", + "@sectionDeleteAccountTheme": { + "description": "Тема e-mail письма" + }, + "sectionLogOutTitle": "登出", + "@sectionLogOutTitle": { + "description": "Заголовок карточки" + }, + "sectionLogOutSubtitle": "您将退出您的帐户。", + "@sectionLogOutSubtitle": { + "description": "Подзаголовок карточки" + }, + "sectionLogOutButton": "登出", + "@sectionLogOutButton": { + "description": "Надпись на кнопке" + }, + "sendBugReportButton": "发送错误报告", + "@sendBugReportButton": {}, + "sectionSendMessageWithShiftEnterTitle": "使用 [⏎ Enter] 发送消息", + "@sectionSendMessageWithShiftEnterTitle": {}, + "sectionSendMessageWithShiftEnterSubtitle": "使用 [⏎ Enter] 发送消息,使用 [Shift] + [⏎ Enter] 换行", + "@sectionSendMessageWithShiftEnterSubtitle": {}, + "sectionSelectLocaleTitle": "语言", + "@sectionSelectLocaleTitle": {}, + "sectionSelectLocaleSubtitle": "选择应用程序界面的首选语言", + "@sectionSelectLocaleSubtitle": {}, + "sectionSwitchThemeTitle": "黑暗模式", + "@sectionSwitchThemeTitle": {}, + "sectionSwitchThemeSubtitle": "启用暗模式,在弱光环境下获得舒适的观看体验", + "@sectionSwitchThemeSubtitle": {}, + "sectionLogsTitle": "日志", + "@sectionLogsTitle": {}, + "sectionLogsSubtitle": "查看和管理应用程序日志以进行调试", + "@sectionLogsSubtitle": {}, + "doneButton": "完毕", + "@doneButton": {}, + "bugReportDialogTitle": "错误报告", + "@bugReportDialogTitle": {}, + "bugReportDialogHintText": "请描述您遇到的bug", + "@bugReportDialogHintText": {}, + "attachFilesButtonTooltip": "附加文件", + "@attachFilesButtonTooltip": {}, + "filePickerError": "选择文件失败", + "@filePickerError": {}, + "emptyBugReportError": "请先输入错误报告", + "@emptyBugReportError": {}, + "failedToSendBugReportError": "无法发送错误报告", + "@failedToSendBugReportError": {}, + "sectionManageSubscriptionTitle": "管理订阅", + "@sectionManageSubscriptionTitle": {}, + "sectionManageSubscriptionSubtitle": "管理您的订阅设置", + "@sectionManageSubscriptionSubtitle": {} +} \ No newline at end of file diff --git a/example/lib/src/arbs/sign_up/example_ar.arb b/example/lib/src/arbs/sign_up/example_ar.arb new file mode 100644 index 0000000..4a7bd16 --- /dev/null +++ b/example/lib/src/arbs/sign_up/example_ar.arb @@ -0,0 +1,109 @@ +{ + "@@locale": "ar", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "تسجيل الدخول", + "@title": {}, + "logIn": "تسجيل الدخول", + "@logIn": {}, + "password": "كلمة المرور", + "@password": {}, + "changeNumber": "تغيير الرقم", + "@changeNumber": {}, + "forgotPassword": "هل نسيت كلمة السر؟", + "@forgotPassword": {}, + "forgotPasswordEnterYourEmailAddress": "أدخل عنوان بريدك الإلكتروني وسنرسل لك رابطًا لإعادة تعيين كلمة المرور الخاصة بك.", + "@forgotPasswordEnterYourEmailAddress": {}, + "rememberYourPasswordQuestion": "تذكر كلمة المرور الخاصة بك؟", + "@rememberYourPasswordQuestion": {}, + "backToLoginButton": "لدي كلمة مرور", + "@backToLoginButton": {}, + "continueButton": "يكمل", + "@continueButton": {}, + "passwordResetEmailSentSnackBar": "تم إرسال بريد إلكتروني لإعادة تعيين كلمة المرور", + "@passwordResetEmailSentSnackBar": {}, + "resetPasswordButton": "إعادة تعيين كلمة المرور", + "@resetPasswordButton": {}, + "confirmCodeButton": "تأكيد الرمز", + "@confirmCodeButton": {}, + "startUsingDoctorinaTodaySubtitle": "ابدأ باستخدام Doctorina اليوم", + "@startUsingDoctorinaTodaySubtitle": {}, + "orDivider": "أو", + "@orDivider": { + "description": "Разделитель ---ИЛИ--- между кнопками" + }, + "enterPasswordForEmailHint": "أدخل كلمة المرور الخاصة بك", + "@enterPasswordForEmailHint": {}, + "showPasswordHint": "إظهار كلمة المرور", + "@showPasswordHint": {}, + "obscurePasswordHint": "كلمة مرور غامضة", + "@obscurePasswordHint": {}, + "clearLoginTooltip": "مسح تسجيل الدخول", + "@clearLoginTooltip": {}, + "emailOrPhoneLabel": "البريد الإلكتروني أو الهاتف", + "@emailOrPhoneLabel": {}, + "emailOrPhoneLabelExample": "name@gmail.com أو +1234567890", + "@emailOrPhoneLabelExample": {}, + "emailOrPhoneHint": "أدخل البريد الإلكتروني أو رقم الهاتف", + "@emailOrPhoneHint": {}, + "pleaseAcceptTheAgreementsToContinueSnackBar": "يرجى قبول الاتفاقيات للاستمرار.", + "@pleaseAcceptTheAgreementsToContinueSnackBar": {}, + "consentToTheProcessingOfPersonalData": "أوافق على معالجة البيانات الشخصية،", + "@consentToTheProcessingOfPersonalData": { + "description": "На конце запятая" + }, + "consentTheUseOf": "استخدام", + "@consentTheUseOf": {}, + "consentCookies": "ملفات تعريف الارتباط", + "@consentCookies": {}, + "consentAgreeToThe": "، أوافق على", + "@consentAgreeToThe": { + "description": "В начале запятая" + }, + "consentTermsAndConditions": "الشروط والأحكام", + "@consentTermsAndConditions": {}, + "consentAndAcknowledgeThe": "، والاعتراف", + "@consentAndAcknowledgeThe": { + "description": "В начале запятая" + }, + "consentPrivacyPolicy": "سياسة الخصوصية", + "@consentPrivacyPolicy": {}, + "consentDot": ".", + "@consentDot": { + "description": "Точка на конце соглашения" + }, + "acknowledgeMyConsultation": "أقر بأن استشارتي تتم مع الذكاء الاصطناعي وليس مع أخصائي طبي مرخص.", + "@acknowledgeMyConsultation": {}, + "logOutDialogTitle": "تسجيل الخروج", + "@logOutDialogTitle": { + "description": "Диалог выхода, заголовок" + }, + "logOutDialogContent": "هل أنت متأكد من تسجيل الخروج؟", + "@logOutDialogContent": { + "description": "Диалог выхода, текст" + }, + "logOutDialogCancelButton": "يلغي", + "@logOutDialogCancelButton": { + "description": "Диалог выхода, кнопка отмены" + }, + "logOutDialogLogOutButton": "نعم، تسجيل الخروج", + "@logOutDialogLogOutButton": { + "description": "Диалог выхода, кнопка выйти" + }, + "resendCodeButton": "إعادة إرسال الرمز", + "@resendCodeButton": { + "description": "Кнопка отправить код заного" + }, + "resendCodeTimer": "إعادة إرسال الرمز ({timer})", + "@resendCodeTimer": { + "description": "Таймер для повторной отправки кода", + "placeholders": { + "timer": { + "type": "String", + "example": "0:00" + } + } + } +} \ No newline at end of file diff --git a/example/lib/src/arbs/sign_up/example_bn.arb b/example/lib/src/arbs/sign_up/example_bn.arb new file mode 100644 index 0000000..b12d0ee --- /dev/null +++ b/example/lib/src/arbs/sign_up/example_bn.arb @@ -0,0 +1,109 @@ +{ + "@@locale": "bn", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "সাইন ইন করুন", + "@title": {}, + "logIn": "লগ ইন করুন", + "@logIn": {}, + "password": "পাসওয়ার্ড", + "@password": {}, + "changeNumber": "নম্বর পরিবর্তন করুন", + "@changeNumber": {}, + "forgotPassword": "পাসওয়ার্ড ভুলে গেছেন?", + "@forgotPassword": {}, + "forgotPasswordEnterYourEmailAddress": "আপনার ইমেল ঠিকানা লিখুন, এবং আমরা আপনাকে আপনার পাসওয়ার্ড পুনরায় সেট করার জন্য একটি লিঙ্ক পাঠাব।", + "@forgotPasswordEnterYourEmailAddress": {}, + "rememberYourPasswordQuestion": "আপনার পাসওয়ার্ড মনে আছে?", + "@rememberYourPasswordQuestion": {}, + "backToLoginButton": "আমার কাছে একটি পাসওয়ার্ড আছে", + "@backToLoginButton": {}, + "continueButton": "চালিয়ে যান", + "@continueButton": {}, + "passwordResetEmailSentSnackBar": "পাসওয়ার্ড রিসেট ইমেল পাঠানো হয়েছে", + "@passwordResetEmailSentSnackBar": {}, + "resetPasswordButton": "পাসওয়ার্ড রিসেট করুন", + "@resetPasswordButton": {}, + "confirmCodeButton": "কোড নিশ্চিত করুন", + "@confirmCodeButton": {}, + "startUsingDoctorinaTodaySubtitle": "আজই ডক্টরিনা ব্যবহার করা শুরু করুন", + "@startUsingDoctorinaTodaySubtitle": {}, + "orDivider": "বা", + "@orDivider": { + "description": "Разделитель ---ИЛИ--- между кнопками" + }, + "enterPasswordForEmailHint": "আপনার পাসওয়ার্ড লিখুন", + "@enterPasswordForEmailHint": {}, + "showPasswordHint": "পাসওয়ার্ড দেখান", + "@showPasswordHint": {}, + "obscurePasswordHint": "অস্পষ্ট পাসওয়ার্ড", + "@obscurePasswordHint": {}, + "clearLoginTooltip": "সাফ লগইন", + "@clearLoginTooltip": {}, + "emailOrPhoneLabel": "ইমেইল বা ফোন", + "@emailOrPhoneLabel": {}, + "emailOrPhoneLabelExample": "name@gmail.com বা +1234567890", + "@emailOrPhoneLabelExample": {}, + "emailOrPhoneHint": "ইমেল বা ফোন নম্বর লিখুন", + "@emailOrPhoneHint": {}, + "pleaseAcceptTheAgreementsToContinueSnackBar": "চালিয়ে যেতে চুক্তি স্বীকার করুন.", + "@pleaseAcceptTheAgreementsToContinueSnackBar": {}, + "consentToTheProcessingOfPersonalData": "আমি ব্যক্তিগত তথ্য প্রক্রিয়াকরণে সম্মতি জানাই,", + "@consentToTheProcessingOfPersonalData": { + "description": "На конце запятая" + }, + "consentTheUseOf": "এর ব্যবহার", + "@consentTheUseOf": {}, + "consentCookies": "কুকিজ", + "@consentCookies": {}, + "consentAgreeToThe": ", রাজি", + "@consentAgreeToThe": { + "description": "В начале запятая" + }, + "consentTermsAndConditions": "শর্তাবলী", + "@consentTermsAndConditions": {}, + "consentAndAcknowledgeThe": ", এবং স্বীকার করুন ", + "@consentAndAcknowledgeThe": { + "description": "В начале запятая" + }, + "consentPrivacyPolicy": "গোপনীয়তা নীতি", + "@consentPrivacyPolicy": {}, + "consentDot": ".", + "@consentDot": { + "description": "Точка на конце соглашения" + }, + "acknowledgeMyConsultation": "আমি স্বীকার করি যে আমার পরামর্শ একজন AI এর সাথে এবং লাইসেন্সপ্রাপ্ত মেডিকেল পেশাদার নয়।", + "@acknowledgeMyConsultation": {}, + "logOutDialogTitle": "লগ আউট করুন", + "@logOutDialogTitle": { + "description": "Диалог выхода, заголовок" + }, + "logOutDialogContent": "আপনি লগ আউট করতে নিশ্চিত?", + "@logOutDialogContent": { + "description": "Диалог выхода, текст" + }, + "logOutDialogCancelButton": "বাতিল করুন", + "@logOutDialogCancelButton": { + "description": "Диалог выхода, кнопка отмены" + }, + "logOutDialogLogOutButton": "হ্যাঁ, লগ আউট করুন", + "@logOutDialogLogOutButton": { + "description": "Диалог выхода, кнопка выйти" + }, + "resendCodeButton": "কোড আবার পাঠান", + "@resendCodeButton": { + "description": "Кнопка отправить код заного" + }, + "resendCodeTimer": "কোড আবার পাঠান ({timer})", + "@resendCodeTimer": { + "description": "Таймер для повторной отправки кода", + "placeholders": { + "timer": { + "type": "String", + "example": "0:00" + } + } + } +} \ No newline at end of file diff --git a/example/lib/src/arbs/sign_up/example_de.arb b/example/lib/src/arbs/sign_up/example_de.arb index 2501487..49ab90c 100644 --- a/example/lib/src/arbs/sign_up/example_de.arb +++ b/example/lib/src/arbs/sign_up/example_de.arb @@ -1,7 +1,7 @@ { "@@locale": "de", "@@author": "example@gmail.com", - "@@last_modified": "2025-06-04T15:18:15.787321Z", + "@@last_modified": "2025-08-26T14:28:36.220548Z", "@@comment": "Generated from Google Sheets", "@@context": "From Google Sheets", "title": "Anmelden", @@ -91,5 +91,19 @@ "logOutDialogLogOutButton": "Ja, abmelden", "@logOutDialogLogOutButton": { "description": "Диалог выхода, кнопка выйти" + }, + "resendCodeButton": "Code erneut senden", + "@resendCodeButton": { + "description": "Кнопка отправить код заного" + }, + "resendCodeTimer": "Code erneut senden ({timer})", + "@resendCodeTimer": { + "description": "Таймер для повторной отправки кода", + "placeholders": { + "timer": { + "type": "String", + "example": "0:00" + } + } } } \ No newline at end of file diff --git a/example/lib/src/arbs/sign_up/example_en.arb b/example/lib/src/arbs/sign_up/example_en.arb index ea12f4f..31732f0 100644 --- a/example/lib/src/arbs/sign_up/example_en.arb +++ b/example/lib/src/arbs/sign_up/example_en.arb @@ -1,7 +1,7 @@ { "@@locale": "en", "@@author": "example@gmail.com", - "@@last_modified": "2025-06-04T15:18:15.787321Z", + "@@last_modified": "2025-08-26T14:28:36.220548Z", "@@comment": "Generated from Google Sheets", "@@context": "From Google Sheets", "title": "Sign In", @@ -91,5 +91,19 @@ "logOutDialogLogOutButton": "Yes, log out", "@logOutDialogLogOutButton": { "description": "Диалог выхода, кнопка выйти" + }, + "resendCodeButton": "Resend code", + "@resendCodeButton": { + "description": "Кнопка отправить код заного" + }, + "resendCodeTimer": "Resend code ({timer})", + "@resendCodeTimer": { + "description": "Таймер для повторной отправки кода", + "placeholders": { + "timer": { + "type": "String", + "example": "0:00" + } + } } } \ No newline at end of file diff --git a/example/lib/src/arbs/sign_up/example_es.arb b/example/lib/src/arbs/sign_up/example_es.arb index b49e892..44d42ae 100644 --- a/example/lib/src/arbs/sign_up/example_es.arb +++ b/example/lib/src/arbs/sign_up/example_es.arb @@ -1,7 +1,7 @@ { "@@locale": "es", "@@author": "example@gmail.com", - "@@last_modified": "2025-06-04T15:18:15.787321Z", + "@@last_modified": "2025-08-26T14:28:36.220548Z", "@@comment": "Generated from Google Sheets", "@@context": "From Google Sheets", "title": "Iniciar sesión", @@ -91,5 +91,19 @@ "logOutDialogLogOutButton": "Sí, cerrar sesión", "@logOutDialogLogOutButton": { "description": "Диалог выхода, кнопка выйти" + }, + "resendCodeButton": "Reenviar código", + "@resendCodeButton": { + "description": "Кнопка отправить код заного" + }, + "resendCodeTimer": "Reenviar código ({timer})", + "@resendCodeTimer": { + "description": "Таймер для повторной отправки кода", + "placeholders": { + "timer": { + "type": "String", + "example": "0:00" + } + } } } \ No newline at end of file diff --git a/example/lib/src/arbs/sign_up/example_fr.arb b/example/lib/src/arbs/sign_up/example_fr.arb new file mode 100644 index 0000000..ef385c0 --- /dev/null +++ b/example/lib/src/arbs/sign_up/example_fr.arb @@ -0,0 +1,109 @@ +{ + "@@locale": "fr", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "Se connecter", + "@title": {}, + "logIn": "Se connecter", + "@logIn": {}, + "password": "Mot de passe", + "@password": {}, + "changeNumber": "Changer de numéro", + "@changeNumber": {}, + "forgotPassword": "Mot de passe oublié?", + "@forgotPassword": {}, + "forgotPasswordEnterYourEmailAddress": "Entrez votre adresse e-mail et nous vous enverrons un lien pour réinitialiser votre mot de passe.", + "@forgotPasswordEnterYourEmailAddress": {}, + "rememberYourPasswordQuestion": "Vous vous souvenez de votre mot de passe ?", + "@rememberYourPasswordQuestion": {}, + "backToLoginButton": "J'ai un mot de passe", + "@backToLoginButton": {}, + "continueButton": "Continuer", + "@continueButton": {}, + "passwordResetEmailSentSnackBar": "E-mail de réinitialisation du mot de passe envoyé", + "@passwordResetEmailSentSnackBar": {}, + "resetPasswordButton": "Réinitialiser le mot de passe", + "@resetPasswordButton": {}, + "confirmCodeButton": "Confirmer le code", + "@confirmCodeButton": {}, + "startUsingDoctorinaTodaySubtitle": "Commencez à utiliser Doctorina dès aujourd'hui", + "@startUsingDoctorinaTodaySubtitle": {}, + "orDivider": "OU", + "@orDivider": { + "description": "Разделитель ---ИЛИ--- между кнопками" + }, + "enterPasswordForEmailHint": "Entrez votre mot de passe", + "@enterPasswordForEmailHint": {}, + "showPasswordHint": "Afficher le mot de passe", + "@showPasswordHint": {}, + "obscurePasswordHint": "Mot de passe obscur", + "@obscurePasswordHint": {}, + "clearLoginTooltip": "Effacer la connexion", + "@clearLoginTooltip": {}, + "emailOrPhoneLabel": "Courriel ou téléphone", + "@emailOrPhoneLabel": {}, + "emailOrPhoneLabelExample": "nom@gmail.com ou +1234567890", + "@emailOrPhoneLabelExample": {}, + "emailOrPhoneHint": "Entrez l'e-mail ou le numéro de téléphone", + "@emailOrPhoneHint": {}, + "pleaseAcceptTheAgreementsToContinueSnackBar": "Veuillez accepter les accords pour continuer.", + "@pleaseAcceptTheAgreementsToContinueSnackBar": {}, + "consentToTheProcessingOfPersonalData": "Je consens au traitement des données personnelles,", + "@consentToTheProcessingOfPersonalData": { + "description": "На конце запятая" + }, + "consentTheUseOf": "l'utilisation de", + "@consentTheUseOf": {}, + "consentCookies": "cookies", + "@consentCookies": {}, + "consentAgreeToThe": ", acceptez le", + "@consentAgreeToThe": { + "description": "В начале запятая" + }, + "consentTermsAndConditions": "termes et conditions", + "@consentTermsAndConditions": {}, + "consentAndAcknowledgeThe": ", et reconnaissons le", + "@consentAndAcknowledgeThe": { + "description": "В начале запятая" + }, + "consentPrivacyPolicy": "politique de confidentialité", + "@consentPrivacyPolicy": {}, + "consentDot": ".", + "@consentDot": { + "description": "Точка на конце соглашения" + }, + "acknowledgeMyConsultation": "Je reconnais que ma consultation est effectuée avec une IA et non avec un professionnel de la santé agréé.", + "@acknowledgeMyConsultation": {}, + "logOutDialogTitle": "Se déconnecter", + "@logOutDialogTitle": { + "description": "Диалог выхода, заголовок" + }, + "logOutDialogContent": "Êtes-vous sûr de vouloir vous déconnecter ?", + "@logOutDialogContent": { + "description": "Диалог выхода, текст" + }, + "logOutDialogCancelButton": "Annuler", + "@logOutDialogCancelButton": { + "description": "Диалог выхода, кнопка отмены" + }, + "logOutDialogLogOutButton": "Oui, déconnectez-vous", + "@logOutDialogLogOutButton": { + "description": "Диалог выхода, кнопка выйти" + }, + "resendCodeButton": "Renvoyer le code", + "@resendCodeButton": { + "description": "Кнопка отправить код заного" + }, + "resendCodeTimer": "Renvoyer le code ({timer})", + "@resendCodeTimer": { + "description": "Таймер для повторной отправки кода", + "placeholders": { + "timer": { + "type": "String", + "example": "0:00" + } + } + } +} \ No newline at end of file diff --git a/example/lib/src/arbs/sign_up/example_hi.arb b/example/lib/src/arbs/sign_up/example_hi.arb new file mode 100644 index 0000000..29f89ab --- /dev/null +++ b/example/lib/src/arbs/sign_up/example_hi.arb @@ -0,0 +1,109 @@ +{ + "@@locale": "hi", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "दाखिल करना", + "@title": {}, + "logIn": "लॉग इन करें", + "@logIn": {}, + "password": "पासवर्ड", + "@password": {}, + "changeNumber": "अंक बदलो", + "@changeNumber": {}, + "forgotPassword": "पासवर्ड भूल गए?", + "@forgotPassword": {}, + "forgotPasswordEnterYourEmailAddress": "अपना ईमेल पता दर्ज करें, और हम आपको अपना पासवर्ड रीसेट करने के लिए एक लिंक भेजेंगे।", + "@forgotPasswordEnterYourEmailAddress": {}, + "rememberYourPasswordQuestion": "अपना पासवर्ड याद रखें?", + "@rememberYourPasswordQuestion": {}, + "backToLoginButton": "मेरे पास एक पासवर्ड है", + "@backToLoginButton": {}, + "continueButton": "जारी रखना", + "@continueButton": {}, + "passwordResetEmailSentSnackBar": "पासवर्ड रीसेट ईमेल भेजा गया", + "@passwordResetEmailSentSnackBar": {}, + "resetPasswordButton": "पासवर्ड रीसेट", + "@resetPasswordButton": {}, + "confirmCodeButton": "कोड की पुष्टि करें", + "@confirmCodeButton": {}, + "startUsingDoctorinaTodaySubtitle": "आज ही डॉक्टरिना का उपयोग शुरू करें", + "@startUsingDoctorinaTodaySubtitle": {}, + "orDivider": "या", + "@orDivider": { + "description": "Разделитель ---ИЛИ--- между кнопками" + }, + "enterPasswordForEmailHint": "अपना कूटशब्द भरें", + "@enterPasswordForEmailHint": {}, + "showPasswordHint": "पासवर्ड दिखाए", + "@showPasswordHint": {}, + "obscurePasswordHint": "अस्पष्ट पासवर्ड", + "@obscurePasswordHint": {}, + "clearLoginTooltip": "लॉगिन साफ़ करें", + "@clearLoginTooltip": {}, + "emailOrPhoneLabel": "ईमेल या फ़ोन", + "@emailOrPhoneLabel": {}, + "emailOrPhoneLabelExample": "name@gmail.com या +1234567890", + "@emailOrPhoneLabelExample": {}, + "emailOrPhoneHint": "ईमेल या फ़ोन नंबर दर्ज करें", + "@emailOrPhoneHint": {}, + "pleaseAcceptTheAgreementsToContinueSnackBar": "कृपया आगे बढ़ने के लिए समझौते को स्वीकार करें।", + "@pleaseAcceptTheAgreementsToContinueSnackBar": {}, + "consentToTheProcessingOfPersonalData": "मैं व्यक्तिगत डेटा के प्रसंस्करण के लिए सहमति देता/देती हूँ,", + "@consentToTheProcessingOfPersonalData": { + "description": "На конце запятая" + }, + "consentTheUseOf": "का उपयोग", + "@consentTheUseOf": {}, + "consentCookies": "कुकीज़", + "@consentCookies": {}, + "consentAgreeToThe": ", इस बात से सहमत हैं", + "@consentAgreeToThe": { + "description": "В начале запятая" + }, + "consentTermsAndConditions": "नियम और शर्तें", + "@consentTermsAndConditions": {}, + "consentAndAcknowledgeThe": ", और स्वीकार करते हैं", + "@consentAndAcknowledgeThe": { + "description": "В начале запятая" + }, + "consentPrivacyPolicy": "गोपनीयता नीति", + "@consentPrivacyPolicy": {}, + "consentDot": ".", + "@consentDot": { + "description": "Точка на конце соглашения" + }, + "acknowledgeMyConsultation": "मैं स्वीकार करता हूं कि मेरा परामर्श एक एआई के साथ है, न कि किसी लाइसेंस प्राप्त चिकित्सा पेशेवर के साथ।", + "@acknowledgeMyConsultation": {}, + "logOutDialogTitle": "लॉग आउट", + "@logOutDialogTitle": { + "description": "Диалог выхода, заголовок" + }, + "logOutDialogContent": "क्या आप लॉग आउट करने के लिए आश्वस्त हैं?", + "@logOutDialogContent": { + "description": "Диалог выхода, текст" + }, + "logOutDialogCancelButton": "रद्द करना", + "@logOutDialogCancelButton": { + "description": "Диалог выхода, кнопка отмены" + }, + "logOutDialogLogOutButton": "हाँ, लॉग आउट करें", + "@logOutDialogLogOutButton": { + "description": "Диалог выхода, кнопка выйти" + }, + "resendCodeButton": "पुन: कोड भेजे", + "@resendCodeButton": { + "description": "Кнопка отправить код заного" + }, + "resendCodeTimer": "कोड पुनः भेजें ({timer})", + "@resendCodeTimer": { + "description": "Таймер для повторной отправки кода", + "placeholders": { + "timer": { + "type": "String", + "example": "0:00" + } + } + } +} \ No newline at end of file diff --git a/example/lib/src/arbs/sign_up/example_it.arb b/example/lib/src/arbs/sign_up/example_it.arb new file mode 100644 index 0000000..90b1dbf --- /dev/null +++ b/example/lib/src/arbs/sign_up/example_it.arb @@ -0,0 +1,109 @@ +{ + "@@locale": "it", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "Registrazione", + "@title": {}, + "logIn": "Login", + "@logIn": {}, + "password": "Password", + "@password": {}, + "changeNumber": "Cambia numero", + "@changeNumber": {}, + "forgotPassword": "Ha dimenticato la password?", + "@forgotPassword": {}, + "forgotPasswordEnterYourEmailAddress": "Inserisci il tuo indirizzo email e ti invieremo un link per reimpostare la password.", + "@forgotPasswordEnterYourEmailAddress": {}, + "rememberYourPasswordQuestion": "Ricordi la tua password?", + "@rememberYourPasswordQuestion": {}, + "backToLoginButton": "Ho una password", + "@backToLoginButton": {}, + "continueButton": "Continuare", + "@continueButton": {}, + "passwordResetEmailSentSnackBar": "Email di reimpostazione password inviata", + "@passwordResetEmailSentSnackBar": {}, + "resetPasswordButton": "Reimposta password", + "@resetPasswordButton": {}, + "confirmCodeButton": "Conferma il codice", + "@confirmCodeButton": {}, + "startUsingDoctorinaTodaySubtitle": "Inizia a usare Doctorina oggi stesso", + "@startUsingDoctorinaTodaySubtitle": {}, + "orDivider": "O", + "@orDivider": { + "description": "Разделитель ---ИЛИ--- между кнопками" + }, + "enterPasswordForEmailHint": "Inserisci la tua password", + "@enterPasswordForEmailHint": {}, + "showPasswordHint": "Mostra password", + "@showPasswordHint": {}, + "obscurePasswordHint": "Password oscura", + "@obscurePasswordHint": {}, + "clearLoginTooltip": "Cancella accesso", + "@clearLoginTooltip": {}, + "emailOrPhoneLabel": "E-mail o telefono", + "@emailOrPhoneLabel": {}, + "emailOrPhoneLabelExample": "nome@gmail.com o +1234567890", + "@emailOrPhoneLabelExample": {}, + "emailOrPhoneHint": "Inserisci l'email o il numero di telefono", + "@emailOrPhoneHint": {}, + "pleaseAcceptTheAgreementsToContinueSnackBar": "Per continuare, accetta gli accordi.", + "@pleaseAcceptTheAgreementsToContinueSnackBar": {}, + "consentToTheProcessingOfPersonalData": "Acconsento al trattamento dei dati personali,", + "@consentToTheProcessingOfPersonalData": { + "description": "На конце запятая" + }, + "consentTheUseOf": "l'uso di", + "@consentTheUseOf": {}, + "consentCookies": "biscotti", + "@consentCookies": {}, + "consentAgreeToThe": ", accettare il", + "@consentAgreeToThe": { + "description": "В начале запятая" + }, + "consentTermsAndConditions": "Termini e Condizioni", + "@consentTermsAndConditions": {}, + "consentAndAcknowledgeThe": "e riconoscere il", + "@consentAndAcknowledgeThe": { + "description": "В начале запятая" + }, + "consentPrivacyPolicy": "politica sulla riservatezza", + "@consentPrivacyPolicy": {}, + "consentDot": ".", + "@consentDot": { + "description": "Точка на конце соглашения" + }, + "acknowledgeMyConsultation": "Dichiaro di essere consapevole che la mia consulenza è rivolta a un IA e non a un professionista medico autorizzato.", + "@acknowledgeMyConsultation": {}, + "logOutDialogTitle": "Disconnetti", + "@logOutDialogTitle": { + "description": "Диалог выхода, заголовок" + }, + "logOutDialogContent": "Vuoi davvero uscire?", + "@logOutDialogContent": { + "description": "Диалог выхода, текст" + }, + "logOutDialogCancelButton": "Cancellare", + "@logOutDialogCancelButton": { + "description": "Диалог выхода, кнопка отмены" + }, + "logOutDialogLogOutButton": "Sì, esci", + "@logOutDialogLogOutButton": { + "description": "Диалог выхода, кнопка выйти" + }, + "resendCodeButton": "Invia nuovamente il codice", + "@resendCodeButton": { + "description": "Кнопка отправить код заного" + }, + "resendCodeTimer": "Invia nuovamente il codice ({timer})", + "@resendCodeTimer": { + "description": "Таймер для повторной отправки кода", + "placeholders": { + "timer": { + "type": "String", + "example": "0:00" + } + } + } +} \ No newline at end of file diff --git a/example/lib/src/arbs/sign_up/example_ko.arb b/example/lib/src/arbs/sign_up/example_ko.arb new file mode 100644 index 0000000..f3b7c7a --- /dev/null +++ b/example/lib/src/arbs/sign_up/example_ko.arb @@ -0,0 +1,109 @@ +{ + "@@locale": "ko", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "로그인", + "@title": {}, + "logIn": "로그인", + "@logIn": {}, + "password": "비밀번호", + "@password": {}, + "changeNumber": "번호 변경", + "@changeNumber": {}, + "forgotPassword": "비밀번호를 잊으셨나요?", + "@forgotPassword": {}, + "forgotPasswordEnterYourEmailAddress": "이메일 주소를 입력하시면 비밀번호 재설정 링크를 보내드립니다.", + "@forgotPasswordEnterYourEmailAddress": {}, + "rememberYourPasswordQuestion": "비밀번호를 기억하세요?", + "@rememberYourPasswordQuestion": {}, + "backToLoginButton": "비밀번호가 있어요", + "@backToLoginButton": {}, + "continueButton": "계속하다", + "@continueButton": {}, + "passwordResetEmailSentSnackBar": "비밀번호 재설정 이메일이 전송되었습니다.", + "@passwordResetEmailSentSnackBar": {}, + "resetPasswordButton": "비밀번호 재설정", + "@resetPasswordButton": {}, + "confirmCodeButton": "코드 확인", + "@confirmCodeButton": {}, + "startUsingDoctorinaTodaySubtitle": "오늘부터 Doctorina를 사용해보세요", + "@startUsingDoctorinaTodaySubtitle": {}, + "orDivider": "또는", + "@orDivider": { + "description": "Разделитель ---ИЛИ--- между кнопками" + }, + "enterPasswordForEmailHint": "비밀번호를 입력하세요", + "@enterPasswordForEmailHint": {}, + "showPasswordHint": "비밀번호 표시", + "@showPasswordHint": {}, + "obscurePasswordHint": "모호한 비밀번호", + "@obscurePasswordHint": {}, + "clearLoginTooltip": "로그인 지우기", + "@clearLoginTooltip": {}, + "emailOrPhoneLabel": "이메일 또는 전화", + "@emailOrPhoneLabel": {}, + "emailOrPhoneLabelExample": "name@gmail.com 또는 +1234567890", + "@emailOrPhoneLabelExample": {}, + "emailOrPhoneHint": "이메일 또는 전화번호를 입력하세요", + "@emailOrPhoneHint": {}, + "pleaseAcceptTheAgreementsToContinueSnackBar": "계속하려면 계약에 동의해 주세요.", + "@pleaseAcceptTheAgreementsToContinueSnackBar": {}, + "consentToTheProcessingOfPersonalData": "개인정보 처리에 동의합니다.", + "@consentToTheProcessingOfPersonalData": { + "description": "На конце запятая" + }, + "consentTheUseOf": "의 사용", + "@consentTheUseOf": {}, + "consentCookies": "쿠키", + "@consentCookies": {}, + "consentAgreeToThe": ", 동의합니다", + "@consentAgreeToThe": { + "description": "В начале запятая" + }, + "consentTermsAndConditions": "이용 약관", + "@consentTermsAndConditions": {}, + "consentAndAcknowledgeThe": ", 그리고 인정합니다", + "@consentAndAcknowledgeThe": { + "description": "В начале запятая" + }, + "consentPrivacyPolicy": "개인정보 보호정책", + "@consentPrivacyPolicy": {}, + "consentDot": ".", + "@consentDot": { + "description": "Точка на конце соглашения" + }, + "acknowledgeMyConsultation": "저는 상담을 AI와 진행하며, 면허를 소지한 의료 전문가와 진행하지 않는다는 점을 인정합니다.", + "@acknowledgeMyConsultation": {}, + "logOutDialogTitle": "로그아웃", + "@logOutDialogTitle": { + "description": "Диалог выхода, заголовок" + }, + "logOutDialogContent": "로그아웃 하시겠습니까?", + "@logOutDialogContent": { + "description": "Диалог выхода, текст" + }, + "logOutDialogCancelButton": "취소", + "@logOutDialogCancelButton": { + "description": "Диалог выхода, кнопка отмены" + }, + "logOutDialogLogOutButton": "네, 로그아웃합니다", + "@logOutDialogLogOutButton": { + "description": "Диалог выхода, кнопка выйти" + }, + "resendCodeButton": "코드 재전송", + "@resendCodeButton": { + "description": "Кнопка отправить код заного" + }, + "resendCodeTimer": "코드 재전송 ({timer})", + "@resendCodeTimer": { + "description": "Таймер для повторной отправки кода", + "placeholders": { + "timer": { + "type": "String", + "example": "0:00" + } + } + } +} \ No newline at end of file diff --git a/example/lib/src/arbs/sign_up/example_pt.arb b/example/lib/src/arbs/sign_up/example_pt.arb new file mode 100644 index 0000000..1095390 --- /dev/null +++ b/example/lib/src/arbs/sign_up/example_pt.arb @@ -0,0 +1,109 @@ +{ + "@@locale": "pt", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "Entrar", + "@title": {}, + "logIn": "Conecte-se", + "@logIn": {}, + "password": "Senha", + "@password": {}, + "changeNumber": "Alterar número", + "@changeNumber": {}, + "forgotPassword": "Esqueceu sua senha?", + "@forgotPassword": {}, + "forgotPasswordEnterYourEmailAddress": "Digite seu endereço de e-mail e lhe enviaremos um link para redefinir sua senha.", + "@forgotPasswordEnterYourEmailAddress": {}, + "rememberYourPasswordQuestion": "Lembra da sua senha?", + "@rememberYourPasswordQuestion": {}, + "backToLoginButton": "Eu tenho uma senha", + "@backToLoginButton": {}, + "continueButton": "Continuar", + "@continueButton": {}, + "passwordResetEmailSentSnackBar": "E-mail de redefinição de senha enviado", + "@passwordResetEmailSentSnackBar": {}, + "resetPasswordButton": "Redefinir senha", + "@resetPasswordButton": {}, + "confirmCodeButton": "Confirmar código", + "@confirmCodeButton": {}, + "startUsingDoctorinaTodaySubtitle": "Comece a usar Doctorina hoje mesmo", + "@startUsingDoctorinaTodaySubtitle": {}, + "orDivider": "OU", + "@orDivider": { + "description": "Разделитель ---ИЛИ--- между кнопками" + }, + "enterPasswordForEmailHint": "Digite sua senha", + "@enterPasswordForEmailHint": {}, + "showPasswordHint": "Mostrar senha", + "@showPasswordHint": {}, + "obscurePasswordHint": "Senha obscura", + "@obscurePasswordHint": {}, + "clearLoginTooltip": "Limpar login", + "@clearLoginTooltip": {}, + "emailOrPhoneLabel": "E-mail ou telefone", + "@emailOrPhoneLabel": {}, + "emailOrPhoneLabelExample": "nome@gmail.com ou +1234567890", + "@emailOrPhoneLabelExample": {}, + "emailOrPhoneHint": "Digite e-mail ou número de telefone", + "@emailOrPhoneHint": {}, + "pleaseAcceptTheAgreementsToContinueSnackBar": "Por favor, aceite os acordos para continuar.", + "@pleaseAcceptTheAgreementsToContinueSnackBar": {}, + "consentToTheProcessingOfPersonalData": "Eu concordo com o processamento de dados pessoais,", + "@consentToTheProcessingOfPersonalData": { + "description": "На конце запятая" + }, + "consentTheUseOf": "o uso de", + "@consentTheUseOf": {}, + "consentCookies": "biscoitos", + "@consentCookies": {}, + "consentAgreeToThe": ", concorda com o", + "@consentAgreeToThe": { + "description": "В начале запятая" + }, + "consentTermsAndConditions": "termos e Condições", + "@consentTermsAndConditions": {}, + "consentAndAcknowledgeThe": ", e reconhecer o", + "@consentAndAcknowledgeThe": { + "description": "В начале запятая" + }, + "consentPrivacyPolicy": "política de Privacidade", + "@consentPrivacyPolicy": {}, + "consentDot": ".", + "@consentDot": { + "description": "Точка на конце соглашения" + }, + "acknowledgeMyConsultation": "Reconheço que minha consulta é com uma IA e não com um profissional médico licenciado.", + "@acknowledgeMyConsultation": {}, + "logOutDialogTitle": "Sair", + "@logOutDialogTitle": { + "description": "Диалог выхода, заголовок" + }, + "logOutDialogContent": "Tem certeza de que deseja sair?", + "@logOutDialogContent": { + "description": "Диалог выхода, текст" + }, + "logOutDialogCancelButton": "Cancelar", + "@logOutDialogCancelButton": { + "description": "Диалог выхода, кнопка отмены" + }, + "logOutDialogLogOutButton": "Sim, sair", + "@logOutDialogLogOutButton": { + "description": "Диалог выхода, кнопка выйти" + }, + "resendCodeButton": "Reenviar código", + "@resendCodeButton": { + "description": "Кнопка отправить код заного" + }, + "resendCodeTimer": "Reenviar código ({timer})", + "@resendCodeTimer": { + "description": "Таймер для повторной отправки кода", + "placeholders": { + "timer": { + "type": "String", + "example": "0:00" + } + } + } +} \ No newline at end of file diff --git a/example/lib/src/arbs/sign_up/example_pt_BR.arb b/example/lib/src/arbs/sign_up/example_pt_BR.arb new file mode 100644 index 0000000..443a6f9 --- /dev/null +++ b/example/lib/src/arbs/sign_up/example_pt_BR.arb @@ -0,0 +1,109 @@ +{ + "@@locale": "pt_BR", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "Entrar", + "@title": {}, + "logIn": "Conecte-se", + "@logIn": {}, + "password": "Senha", + "@password": {}, + "changeNumber": "Alterar número", + "@changeNumber": {}, + "forgotPassword": "Esqueceu sua senha?", + "@forgotPassword": {}, + "forgotPasswordEnterYourEmailAddress": "Digite seu endereço de e-mail e lhe enviaremos um link para redefinir sua senha.", + "@forgotPasswordEnterYourEmailAddress": {}, + "rememberYourPasswordQuestion": "Lembra da sua senha?", + "@rememberYourPasswordQuestion": {}, + "backToLoginButton": "Eu tenho uma senha", + "@backToLoginButton": {}, + "continueButton": "Continuar", + "@continueButton": {}, + "passwordResetEmailSentSnackBar": "E-mail de redefinição de senha enviado", + "@passwordResetEmailSentSnackBar": {}, + "resetPasswordButton": "Redefinir senha", + "@resetPasswordButton": {}, + "confirmCodeButton": "Confirmar código", + "@confirmCodeButton": {}, + "startUsingDoctorinaTodaySubtitle": "Comece a usar Doctorina hoje mesmo", + "@startUsingDoctorinaTodaySubtitle": {}, + "orDivider": "OU", + "@orDivider": { + "description": "Разделитель ---ИЛИ--- между кнопками" + }, + "enterPasswordForEmailHint": "Digite sua senha", + "@enterPasswordForEmailHint": {}, + "showPasswordHint": "Mostrar senha", + "@showPasswordHint": {}, + "obscurePasswordHint": "Senha obscura", + "@obscurePasswordHint": {}, + "clearLoginTooltip": "Limpar login", + "@clearLoginTooltip": {}, + "emailOrPhoneLabel": "E-mail ou telefone", + "@emailOrPhoneLabel": {}, + "emailOrPhoneLabelExample": "nome@gmail.com ou +1234567890", + "@emailOrPhoneLabelExample": {}, + "emailOrPhoneHint": "Digite e-mail ou número de telefone", + "@emailOrPhoneHint": {}, + "pleaseAcceptTheAgreementsToContinueSnackBar": "Por favor, aceite os acordos para continuar.", + "@pleaseAcceptTheAgreementsToContinueSnackBar": {}, + "consentToTheProcessingOfPersonalData": "Eu concordo com o processamento de dados pessoais,", + "@consentToTheProcessingOfPersonalData": { + "description": "На конце запятая" + }, + "consentTheUseOf": "o uso de", + "@consentTheUseOf": {}, + "consentCookies": "biscoitos", + "@consentCookies": {}, + "consentAgreeToThe": ", concorda com o", + "@consentAgreeToThe": { + "description": "В начале запятая" + }, + "consentTermsAndConditions": "termos e Condições", + "@consentTermsAndConditions": {}, + "consentAndAcknowledgeThe": ", e reconhecer o", + "@consentAndAcknowledgeThe": { + "description": "В начале запятая" + }, + "consentPrivacyPolicy": "política de Privacidade", + "@consentPrivacyPolicy": {}, + "consentDot": ".", + "@consentDot": { + "description": "Точка на конце соглашения" + }, + "acknowledgeMyConsultation": "Reconheço que minha consulta é com uma IA e não com um profissional médico licenciado.", + "@acknowledgeMyConsultation": {}, + "logOutDialogTitle": "Sair", + "@logOutDialogTitle": { + "description": "Диалог выхода, заголовок" + }, + "logOutDialogContent": "Tem certeza de que deseja sair?", + "@logOutDialogContent": { + "description": "Диалог выхода, текст" + }, + "logOutDialogCancelButton": "Cancelar", + "@logOutDialogCancelButton": { + "description": "Диалог выхода, кнопка отмены" + }, + "logOutDialogLogOutButton": "Sim, sair", + "@logOutDialogLogOutButton": { + "description": "Диалог выхода, кнопка выйти" + }, + "resendCodeButton": "Reenviar código", + "@resendCodeButton": { + "description": "Кнопка отправить код заного" + }, + "resendCodeTimer": "Reenviar código ({timer})", + "@resendCodeTimer": { + "description": "Таймер для повторной отправки кода", + "placeholders": { + "timer": { + "type": "String", + "example": "0:00" + } + } + } +} \ No newline at end of file diff --git a/example/lib/src/arbs/sign_up/example_ru.arb b/example/lib/src/arbs/sign_up/example_ru.arb index 50444ec..28809f9 100644 --- a/example/lib/src/arbs/sign_up/example_ru.arb +++ b/example/lib/src/arbs/sign_up/example_ru.arb @@ -1,7 +1,7 @@ { "@@locale": "ru", "@@author": "example@gmail.com", - "@@last_modified": "2025-06-04T15:18:15.787321Z", + "@@last_modified": "2025-08-26T14:28:36.220548Z", "@@comment": "Generated from Google Sheets", "@@context": "From Google Sheets", "title": "Вход в аккаунт", @@ -91,5 +91,19 @@ "logOutDialogLogOutButton": "Да, выйти", "@logOutDialogLogOutButton": { "description": "Диалог выхода, кнопка выйти" + }, + "resendCodeButton": "Отправить код повторно", + "@resendCodeButton": { + "description": "Кнопка отправить код заного" + }, + "resendCodeTimer": "Отправить код повторно ({timer})", + "@resendCodeTimer": { + "description": "Таймер для повторной отправки кода", + "placeholders": { + "timer": { + "type": "String", + "example": "0:00" + } + } } } \ No newline at end of file diff --git a/example/lib/src/arbs/sign_up/example_zh.arb b/example/lib/src/arbs/sign_up/example_zh.arb new file mode 100644 index 0000000..ee1221c --- /dev/null +++ b/example/lib/src/arbs/sign_up/example_zh.arb @@ -0,0 +1,109 @@ +{ + "@@locale": "zh", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "登入", + "@title": {}, + "logIn": "登录", + "@logIn": {}, + "password": "密码", + "@password": {}, + "changeNumber": "更改号码", + "@changeNumber": {}, + "forgotPassword": "忘记密码?", + "@forgotPassword": {}, + "forgotPasswordEnterYourEmailAddress": "输入您的电子邮件地址,我们将向您发送重置密码的链接。", + "@forgotPasswordEnterYourEmailAddress": {}, + "rememberYourPasswordQuestion": "记住密码了吗?", + "@rememberYourPasswordQuestion": {}, + "backToLoginButton": "我有密码", + "@backToLoginButton": {}, + "continueButton": "继续", + "@continueButton": {}, + "passwordResetEmailSentSnackBar": "密码重置电子邮件已发送", + "@passwordResetEmailSentSnackBar": {}, + "resetPasswordButton": "重置密码", + "@resetPasswordButton": {}, + "confirmCodeButton": "确认码", + "@confirmCodeButton": {}, + "startUsingDoctorinaTodaySubtitle": "立即开始使用 Doctorina", + "@startUsingDoctorinaTodaySubtitle": {}, + "orDivider": "或者", + "@orDivider": { + "description": "Разделитель ---ИЛИ--- между кнопками" + }, + "enterPasswordForEmailHint": "输入您的密码", + "@enterPasswordForEmailHint": {}, + "showPasswordHint": "显示密码", + "@showPasswordHint": {}, + "obscurePasswordHint": "模糊密码", + "@obscurePasswordHint": {}, + "clearLoginTooltip": "清除登录信息", + "@clearLoginTooltip": {}, + "emailOrPhoneLabel": "电子邮件或电话", + "@emailOrPhoneLabel": {}, + "emailOrPhoneLabelExample": "name@gmail.com 或 +1234567890", + "@emailOrPhoneLabelExample": {}, + "emailOrPhoneHint": "输入电子邮件或电话号码", + "@emailOrPhoneHint": {}, + "pleaseAcceptTheAgreementsToContinueSnackBar": "请接受协议以继续。", + "@pleaseAcceptTheAgreementsToContinueSnackBar": {}, + "consentToTheProcessingOfPersonalData": "我同意处理个人数据,", + "@consentToTheProcessingOfPersonalData": { + "description": "На конце запятая" + }, + "consentTheUseOf": "使用", + "@consentTheUseOf": {}, + "consentCookies": "曲奇饼", + "@consentCookies": {}, + "consentAgreeToThe": ",同意", + "@consentAgreeToThe": { + "description": "В начале запятая" + }, + "consentTermsAndConditions": "条款和条件", + "@consentTermsAndConditions": {}, + "consentAndAcknowledgeThe": ",并承认", + "@consentAndAcknowledgeThe": { + "description": "В начале запятая" + }, + "consentPrivacyPolicy": "隐私政策", + "@consentPrivacyPolicy": {}, + "consentDot": "。", + "@consentDot": { + "description": "Точка на конце соглашения" + }, + "acknowledgeMyConsultation": "我承认我的咨询对象是人工智能,而不是有执照的医疗专业人员。", + "@acknowledgeMyConsultation": {}, + "logOutDialogTitle": "登出", + "@logOutDialogTitle": { + "description": "Диалог выхода, заголовок" + }, + "logOutDialogContent": "您确定要退出吗?", + "@logOutDialogContent": { + "description": "Диалог выхода, текст" + }, + "logOutDialogCancelButton": "取消", + "@logOutDialogCancelButton": { + "description": "Диалог выхода, кнопка отмены" + }, + "logOutDialogLogOutButton": "是的,退出", + "@logOutDialogLogOutButton": { + "description": "Диалог выхода, кнопка выйти" + }, + "resendCodeButton": "重新发送代码", + "@resendCodeButton": { + "description": "Кнопка отправить код заного" + }, + "resendCodeTimer": "重新发送代码 ({timer})", + "@resendCodeTimer": { + "description": "Таймер для повторной отправки кода", + "placeholders": { + "timer": { + "type": "String", + "example": "0:00" + } + } + } +} \ No newline at end of file diff --git a/example/lib/src/arbs/sign_up/example_zh_CN.arb b/example/lib/src/arbs/sign_up/example_zh_CN.arb new file mode 100644 index 0000000..b7ac37f --- /dev/null +++ b/example/lib/src/arbs/sign_up/example_zh_CN.arb @@ -0,0 +1,109 @@ +{ + "@@locale": "zh_CN", + "@@author": "example@gmail.com", + "@@last_modified": "2025-08-26T14:28:36.220548Z", + "@@comment": "Generated from Google Sheets", + "@@context": "From Google Sheets", + "title": "登入", + "@title": {}, + "logIn": "登录", + "@logIn": {}, + "password": "密码", + "@password": {}, + "changeNumber": "更改号码", + "@changeNumber": {}, + "forgotPassword": "忘记密码?", + "@forgotPassword": {}, + "forgotPasswordEnterYourEmailAddress": "输入您的电子邮件地址,我们将向您发送重置密码的链接。", + "@forgotPasswordEnterYourEmailAddress": {}, + "rememberYourPasswordQuestion": "记住密码了吗?", + "@rememberYourPasswordQuestion": {}, + "backToLoginButton": "我有密码", + "@backToLoginButton": {}, + "continueButton": "继续", + "@continueButton": {}, + "passwordResetEmailSentSnackBar": "密码重置电子邮件已发送", + "@passwordResetEmailSentSnackBar": {}, + "resetPasswordButton": "重置密码", + "@resetPasswordButton": {}, + "confirmCodeButton": "确认码", + "@confirmCodeButton": {}, + "startUsingDoctorinaTodaySubtitle": "立即开始使用 Doctorina", + "@startUsingDoctorinaTodaySubtitle": {}, + "orDivider": "或者", + "@orDivider": { + "description": "Разделитель ---ИЛИ--- между кнопками" + }, + "enterPasswordForEmailHint": "输入您的密码", + "@enterPasswordForEmailHint": {}, + "showPasswordHint": "显示密码", + "@showPasswordHint": {}, + "obscurePasswordHint": "模糊密码", + "@obscurePasswordHint": {}, + "clearLoginTooltip": "清除登录信息", + "@clearLoginTooltip": {}, + "emailOrPhoneLabel": "电子邮件或电话", + "@emailOrPhoneLabel": {}, + "emailOrPhoneLabelExample": "name@gmail.com 或 +1234567890", + "@emailOrPhoneLabelExample": {}, + "emailOrPhoneHint": "输入电子邮件或电话号码", + "@emailOrPhoneHint": {}, + "pleaseAcceptTheAgreementsToContinueSnackBar": "请接受协议以继续。", + "@pleaseAcceptTheAgreementsToContinueSnackBar": {}, + "consentToTheProcessingOfPersonalData": "我同意处理个人数据,", + "@consentToTheProcessingOfPersonalData": { + "description": "На конце запятая" + }, + "consentTheUseOf": "使用", + "@consentTheUseOf": {}, + "consentCookies": "曲奇饼", + "@consentCookies": {}, + "consentAgreeToThe": ",同意", + "@consentAgreeToThe": { + "description": "В начале запятая" + }, + "consentTermsAndConditions": "条款和条件", + "@consentTermsAndConditions": {}, + "consentAndAcknowledgeThe": ",并承认", + "@consentAndAcknowledgeThe": { + "description": "В начале запятая" + }, + "consentPrivacyPolicy": "隐私政策", + "@consentPrivacyPolicy": {}, + "consentDot": "。", + "@consentDot": { + "description": "Точка на конце соглашения" + }, + "acknowledgeMyConsultation": "我承认我的咨询对象是人工智能,而不是有执照的医疗专业人员。", + "@acknowledgeMyConsultation": {}, + "logOutDialogTitle": "登出", + "@logOutDialogTitle": { + "description": "Диалог выхода, заголовок" + }, + "logOutDialogContent": "您确定要退出吗?", + "@logOutDialogContent": { + "description": "Диалог выхода, текст" + }, + "logOutDialogCancelButton": "取消", + "@logOutDialogCancelButton": { + "description": "Диалог выхода, кнопка отмены" + }, + "logOutDialogLogOutButton": "是的,退出", + "@logOutDialogLogOutButton": { + "description": "Диалог выхода, кнопка выйти" + }, + "resendCodeButton": "重新发送代码", + "@resendCodeButton": { + "description": "Кнопка отправить код заного" + }, + "resendCodeTimer": "重新发送代码 ({timer})", + "@resendCodeTimer": { + "description": "Таймер для повторной отправки кода", + "placeholders": { + "timer": { + "type": "String", + "example": "0:00" + } + } + } +} \ No newline at end of file diff --git a/example/lib/src/generated/app/app_localization.dart b/example/lib/src/generated/app/app_localization.dart index 0056da7..d91935c 100644 --- a/example/lib/src/generated/app/app_localization.dart +++ b/example/lib/src/generated/app/app_localization.dart @@ -6,10 +6,18 @@ import 'package:flutter/widgets.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:intl/intl.dart' as intl; +import 'app_localization_ar.dart'; +import 'app_localization_bn.dart'; import 'app_localization_de.dart'; import 'app_localization_en.dart'; import 'app_localization_es.dart'; +import 'app_localization_fr.dart'; +import 'app_localization_hi.dart'; +import 'app_localization_it.dart'; +import 'app_localization_ko.dart'; +import 'app_localization_pt.dart'; import 'app_localization_ru.dart'; +import 'app_localization_zh.dart'; // ignore_for_file: type=lint @@ -97,10 +105,20 @@ abstract class AppLocalization { /// A list of this localizations delegate's supported locales. static const List supportedLocales = [ + Locale('ar'), + Locale('bn'), Locale('de'), Locale('en'), Locale('es'), - Locale('ru') + Locale('fr'), + Locale('hi'), + Locale('it'), + Locale('ko'), + Locale('pt'), + Locale('pt', 'BR'), + Locale('ru'), + Locale('zh'), + Locale('zh', 'CN') ]; /// No description provided for @title. @@ -156,24 +174,72 @@ class _AppLocalizationDelegate extends LocalizationsDelegate { } @override - bool isSupported(Locale locale) => - ['de', 'en', 'es', 'ru'].contains(locale.languageCode); + bool isSupported(Locale locale) => [ + 'ar', + 'bn', + 'de', + 'en', + 'es', + 'fr', + 'hi', + 'it', + 'ko', + 'pt', + 'ru', + 'zh' + ].contains(locale.languageCode); @override bool shouldReload(_AppLocalizationDelegate old) => false; } AppLocalization lookupAppLocalization(Locale locale) { + // Lookup logic when language+country codes are specified. + switch (locale.languageCode) { + case 'pt': + { + switch (locale.countryCode) { + case 'BR': + return AppLocalizationPtBr(); + } + break; + } + case 'zh': + { + switch (locale.countryCode) { + case 'CN': + return AppLocalizationZhCn(); + } + break; + } + } + // Lookup logic when only language code is specified. switch (locale.languageCode) { + case 'ar': + return AppLocalizationAr(); + case 'bn': + return AppLocalizationBn(); case 'de': return AppLocalizationDe(); case 'en': return AppLocalizationEn(); case 'es': return AppLocalizationEs(); + case 'fr': + return AppLocalizationFr(); + case 'hi': + return AppLocalizationHi(); + case 'it': + return AppLocalizationIt(); + case 'ko': + return AppLocalizationKo(); + case 'pt': + return AppLocalizationPt(); case 'ru': return AppLocalizationRu(); + case 'zh': + return AppLocalizationZh(); } throw FlutterError( diff --git a/example/lib/src/generated/app/app_localization_ar.dart b/example/lib/src/generated/app/app_localization_ar.dart new file mode 100644 index 0000000..17f8329 --- /dev/null +++ b/example/lib/src/generated/app/app_localization_ar.dart @@ -0,0 +1,37 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'app_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Arabic (`ar`). +class AppLocalizationAr extends AppLocalization { + AppLocalizationAr([String locale = 'ar']) : super(locale); + + @override + String get title => 'دكتورينا'; + + @override + String get checkVersionUpdateNowButton => 'التحديث الآن'; + + @override + String get checkVersionMaybeLaterButton => 'ربما في وقت لاحق'; + + @override + String get checkVersionUpdateOptionalTitle => 'تحديث جديد متاح'; + + @override + String get checkVersionUpdateRequiredTitle => 'التحديث مطلوب'; + + @override + String checkVersionUpdateOptionalText(String version) { + return 'يتوفر إصدار جديد (v$version) من التطبيق. يُرجى التحديث للاستمرار في الاستخدام للحصول على أفضل تجربة.'; + } + + @override + String checkVersionUpdateRequiredText(String version) { + return 'للمتابعة، يُرجى تحديث التطبيق. يتضمن هذا التحديث إصلاحات وتحسينات مهمة.'; + } +} diff --git a/example/lib/src/generated/app/app_localization_bn.dart b/example/lib/src/generated/app/app_localization_bn.dart new file mode 100644 index 0000000..29b2492 --- /dev/null +++ b/example/lib/src/generated/app/app_localization_bn.dart @@ -0,0 +1,37 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'app_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Bengali Bangla (`bn`). +class AppLocalizationBn extends AppLocalization { + AppLocalizationBn([String locale = 'bn']) : super(locale); + + @override + String get title => 'ডক্টরিনা'; + + @override + String get checkVersionUpdateNowButton => 'এখনই আপডেট করুন'; + + @override + String get checkVersionMaybeLaterButton => 'হয়তো পরে'; + + @override + String get checkVersionUpdateOptionalTitle => 'নতুন আপডেট উপলব্ধ'; + + @override + String get checkVersionUpdateRequiredTitle => 'আপডেট প্রয়োজন'; + + @override + String checkVersionUpdateOptionalText(String version) { + return 'অ্যাপটির একটি নতুন সংস্করণ (v$version) উপলব্ধ৷ সেরা অভিজ্ঞতার জন্য চালিয়ে যেতে অনুগ্রহ করে আপডেট করুন।'; + } + + @override + String checkVersionUpdateRequiredText(String version) { + return 'চালিয়ে যেতে, অনুগ্রহ করে অ্যাপটি আপডেট করুন। এই আপডেটে গুরুত্বপূর্ণ সংশোধন এবং উন্নতি অন্তর্ভুক্ত রয়েছে।'; + } +} diff --git a/example/lib/src/generated/app/app_localization_fr.dart b/example/lib/src/generated/app/app_localization_fr.dart new file mode 100644 index 0000000..a496a75 --- /dev/null +++ b/example/lib/src/generated/app/app_localization_fr.dart @@ -0,0 +1,38 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'app_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for French (`fr`). +class AppLocalizationFr extends AppLocalization { + AppLocalizationFr([String locale = 'fr']) : super(locale); + + @override + String get title => 'Docteure'; + + @override + String get checkVersionUpdateNowButton => 'Mettre à jour maintenant'; + + @override + String get checkVersionMaybeLaterButton => 'Peut-être plus tard'; + + @override + String get checkVersionUpdateOptionalTitle => + 'Nouvelle mise à jour disponible'; + + @override + String get checkVersionUpdateRequiredTitle => 'Mise à jour requise'; + + @override + String checkVersionUpdateOptionalText(String version) { + return 'Une nouvelle version (v$version) de l\'application est disponible. Veuillez la mettre à jour pour profiter d\'une expérience optimale.'; + } + + @override + String checkVersionUpdateRequiredText(String version) { + return 'Pour continuer, veuillez mettre à jour l\'application. Cette mise à jour inclut des correctifs et améliorations importants.'; + } +} diff --git a/example/lib/src/generated/app/app_localization_hi.dart b/example/lib/src/generated/app/app_localization_hi.dart new file mode 100644 index 0000000..c9082b6 --- /dev/null +++ b/example/lib/src/generated/app/app_localization_hi.dart @@ -0,0 +1,37 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'app_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Hindi (`hi`). +class AppLocalizationHi extends AppLocalization { + AppLocalizationHi([String locale = 'hi']) : super(locale); + + @override + String get title => 'डॉक्टरिना'; + + @override + String get checkVersionUpdateNowButton => 'अभी अद्यतन करें'; + + @override + String get checkVersionMaybeLaterButton => 'शायद बाद में'; + + @override + String get checkVersionUpdateOptionalTitle => 'नया अपडेट उपलब्ध है'; + + @override + String get checkVersionUpdateRequiredTitle => 'अद्यतन आवश्यक है'; + + @override + String checkVersionUpdateOptionalText(String version) { + return 'ऐप का नया संस्करण (v$version) उपलब्ध है। कृपया बेहतर अनुभव के लिए इसे अपडेट करते रहें।'; + } + + @override + String checkVersionUpdateRequiredText(String version) { + return 'जारी रखने के लिए, कृपया ऐप अपडेट करें। इस अपडेट में महत्वपूर्ण सुधार और सुधार शामिल हैं।'; + } +} diff --git a/example/lib/src/generated/app/app_localization_it.dart b/example/lib/src/generated/app/app_localization_it.dart new file mode 100644 index 0000000..c32d526 --- /dev/null +++ b/example/lib/src/generated/app/app_localization_it.dart @@ -0,0 +1,38 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'app_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Italian (`it`). +class AppLocalizationIt extends AppLocalization { + AppLocalizationIt([String locale = 'it']) : super(locale); + + @override + String get title => 'Dottoressa'; + + @override + String get checkVersionUpdateNowButton => 'Aggiorna ora'; + + @override + String get checkVersionMaybeLaterButton => 'Forse più tardi'; + + @override + String get checkVersionUpdateOptionalTitle => + 'Nuovo aggiornamento disponibile'; + + @override + String get checkVersionUpdateRequiredTitle => 'Aggiornamento richiesto'; + + @override + String checkVersionUpdateOptionalText(String version) { + return 'È disponibile una nuova versione (v$version) dell\'app. Aggiornala per continuare a usufruire della migliore esperienza possibile.'; + } + + @override + String checkVersionUpdateRequiredText(String version) { + return 'Per continuare, aggiorna l\'app. Questo aggiornamento include importanti correzioni e miglioramenti.'; + } +} diff --git a/example/lib/src/generated/app/app_localization_ko.dart b/example/lib/src/generated/app/app_localization_ko.dart new file mode 100644 index 0000000..b73cdc9 --- /dev/null +++ b/example/lib/src/generated/app/app_localization_ko.dart @@ -0,0 +1,37 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'app_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Korean (`ko`). +class AppLocalizationKo extends AppLocalization { + AppLocalizationKo([String locale = 'ko']) : super(locale); + + @override + String get title => '닥터리나'; + + @override + String get checkVersionUpdateNowButton => '지금 업데이트'; + + @override + String get checkVersionMaybeLaterButton => '아마도 나중에'; + + @override + String get checkVersionUpdateOptionalTitle => '새로운 업데이트가 제공됩니다'; + + @override + String get checkVersionUpdateRequiredTitle => '업데이트가 필요합니다'; + + @override + String checkVersionUpdateOptionalText(String version) { + return '앱의 새 버전(v$version)이 출시되었습니다. 최상의 환경을 위해 계속 사용하려면 업데이트해 주세요.'; + } + + @override + String checkVersionUpdateRequiredText(String version) { + return '계속하려면 앱을 업데이트하세요. 이 업데이트에는 중요한 수정 사항과 개선 사항이 포함되어 있습니다.'; + } +} diff --git a/example/lib/src/generated/app/app_localization_pt.dart b/example/lib/src/generated/app/app_localization_pt.dart new file mode 100644 index 0000000..1399e12 --- /dev/null +++ b/example/lib/src/generated/app/app_localization_pt.dart @@ -0,0 +1,67 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'app_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Portuguese (`pt`). +class AppLocalizationPt extends AppLocalization { + AppLocalizationPt([String locale = 'pt']) : super(locale); + + @override + String get title => 'Doutora'; + + @override + String get checkVersionUpdateNowButton => 'Atualizar agora'; + + @override + String get checkVersionMaybeLaterButton => 'Talvez mais tarde'; + + @override + String get checkVersionUpdateOptionalTitle => 'Nova atualização disponível'; + + @override + String get checkVersionUpdateRequiredTitle => 'Atualização necessária'; + + @override + String checkVersionUpdateOptionalText(String version) { + return 'Uma nova versão (v$version) do aplicativo está disponível. Atualize para continuar e ter a melhor experiência.'; + } + + @override + String checkVersionUpdateRequiredText(String version) { + return 'Para continuar, atualize o aplicativo. Esta atualização inclui correções e melhorias importantes.'; + } +} + +/// The translations for Portuguese, as used in Brazil (`pt_BR`). +class AppLocalizationPtBr extends AppLocalizationPt { + AppLocalizationPtBr() : super('pt_BR'); + + @override + String get title => 'Doutora'; + + @override + String get checkVersionUpdateNowButton => 'Atualizar agora'; + + @override + String get checkVersionMaybeLaterButton => 'Talvez mais tarde'; + + @override + String get checkVersionUpdateOptionalTitle => 'Nova atualização disponível'; + + @override + String get checkVersionUpdateRequiredTitle => 'Atualização necessária'; + + @override + String checkVersionUpdateOptionalText(String version) { + return 'Uma nova versão (v$version) do aplicativo está disponível. Atualize para continuar e ter a melhor experiência.'; + } + + @override + String checkVersionUpdateRequiredText(String version) { + return 'Para continuar, atualize o aplicativo. Esta atualização inclui correções e melhorias importantes.'; + } +} diff --git a/example/lib/src/generated/app/app_localization_zh.dart b/example/lib/src/generated/app/app_localization_zh.dart new file mode 100644 index 0000000..834cafe --- /dev/null +++ b/example/lib/src/generated/app/app_localization_zh.dart @@ -0,0 +1,67 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'app_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Chinese (`zh`). +class AppLocalizationZh extends AppLocalization { + AppLocalizationZh([String locale = 'zh']) : super(locale); + + @override + String get title => '医生丽娜'; + + @override + String get checkVersionUpdateNowButton => '立即更新'; + + @override + String get checkVersionMaybeLaterButton => '也许以后'; + + @override + String get checkVersionUpdateOptionalTitle => '有新更新可用'; + + @override + String get checkVersionUpdateRequiredTitle => '需要更新'; + + @override + String checkVersionUpdateOptionalText(String version) { + return '该应用有新版本 (v$version) 可用。请更新以获取最佳体验。'; + } + + @override + String checkVersionUpdateRequiredText(String version) { + return '要继续,请更新应用。此更新包含重要的修复和改进。'; + } +} + +/// The translations for Chinese, as used in China (`zh_CN`). +class AppLocalizationZhCn extends AppLocalizationZh { + AppLocalizationZhCn() : super('zh_CN'); + + @override + String get title => '医生丽娜'; + + @override + String get checkVersionUpdateNowButton => '立即更新'; + + @override + String get checkVersionMaybeLaterButton => '也许以后'; + + @override + String get checkVersionUpdateOptionalTitle => '有新更新可用'; + + @override + String get checkVersionUpdateRequiredTitle => '需要更新'; + + @override + String checkVersionUpdateOptionalText(String version) { + return '该应用有新版本 (v$version) 可用。请更新以获取最佳体验。'; + } + + @override + String checkVersionUpdateRequiredText(String version) { + return '要继续,请更新应用。此更新包含重要的修复和改进。'; + } +} diff --git a/example/lib/src/generated/chat/chat_localization.dart b/example/lib/src/generated/chat/chat_localization.dart index 62cbe68..2d25cc6 100644 --- a/example/lib/src/generated/chat/chat_localization.dart +++ b/example/lib/src/generated/chat/chat_localization.dart @@ -6,10 +6,18 @@ import 'package:flutter/widgets.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:intl/intl.dart' as intl; +import 'chat_localization_ar.dart'; +import 'chat_localization_bn.dart'; import 'chat_localization_de.dart'; import 'chat_localization_en.dart'; import 'chat_localization_es.dart'; +import 'chat_localization_fr.dart'; +import 'chat_localization_hi.dart'; +import 'chat_localization_it.dart'; +import 'chat_localization_ko.dart'; +import 'chat_localization_pt.dart'; import 'chat_localization_ru.dart'; +import 'chat_localization_zh.dart'; // ignore_for_file: type=lint @@ -97,10 +105,20 @@ abstract class ChatLocalization { /// A list of this localizations delegate's supported locales. static const List supportedLocales = [ + Locale('ar'), + Locale('bn'), Locale('de'), Locale('en'), Locale('es'), - Locale('ru') + Locale('fr'), + Locale('hi'), + Locale('it'), + Locale('ko'), + Locale('pt'), + Locale('pt', 'BR'), + Locale('ru'), + Locale('zh'), + Locale('zh', 'CN') ]; /// No description provided for @title. @@ -451,6 +469,54 @@ abstract class ChatLocalization { /// In en, this message translates to: /// **'Export to PDF'** String get chatActionButtonTooltipExportSummary; + + /// Надпись в меню для выбора из галлереи + /// + /// In en, this message translates to: + /// **'Photos'** + String get chatPickerPhotos; + + /// Надпись в меню для прикрепления фото с помощью камеры + /// + /// In en, this message translates to: + /// **'Camera'** + String get chatPickerCamera; + + /// Надпись в меню для выбора файлов + /// + /// In en, this message translates to: + /// **'Files'** + String get chatPickerFiles; + + /// No description provided for @chatRecommendationYIAG. + /// + /// In en, this message translates to: + /// **'Hope that helped! Was this explanation useful to you?'** + String get chatRecommendationYIAG; + + /// Кнопка отображаемая после финальных рекомендаций, для пользователей без подписки + /// + /// In en, this message translates to: + /// **'Yes, it\'s all good!'** + String get chatRecommendationButtonDonate; + + /// No description provided for @chatHistoryTitle. + /// + /// In en, this message translates to: + /// **'Chat History'** + String get chatHistoryTitle; + + /// No description provided for @failedToRetrieveChatSummary. + /// + /// In en, this message translates to: + /// **'Failed to retrieve chat summary'** + String get failedToRetrieveChatSummary; + + /// No description provided for @chatSummaryCopiedToClipboard. + /// + /// In en, this message translates to: + /// **'Chat summary copied to clipboard'** + String get chatSummaryCopiedToClipboard; } class _ChatLocalizationDelegate @@ -463,24 +529,72 @@ class _ChatLocalizationDelegate } @override - bool isSupported(Locale locale) => - ['de', 'en', 'es', 'ru'].contains(locale.languageCode); + bool isSupported(Locale locale) => [ + 'ar', + 'bn', + 'de', + 'en', + 'es', + 'fr', + 'hi', + 'it', + 'ko', + 'pt', + 'ru', + 'zh' + ].contains(locale.languageCode); @override bool shouldReload(_ChatLocalizationDelegate old) => false; } ChatLocalization lookupChatLocalization(Locale locale) { + // Lookup logic when language+country codes are specified. + switch (locale.languageCode) { + case 'pt': + { + switch (locale.countryCode) { + case 'BR': + return ChatLocalizationPtBr(); + } + break; + } + case 'zh': + { + switch (locale.countryCode) { + case 'CN': + return ChatLocalizationZhCn(); + } + break; + } + } + // Lookup logic when only language code is specified. switch (locale.languageCode) { + case 'ar': + return ChatLocalizationAr(); + case 'bn': + return ChatLocalizationBn(); case 'de': return ChatLocalizationDe(); case 'en': return ChatLocalizationEn(); case 'es': return ChatLocalizationEs(); + case 'fr': + return ChatLocalizationFr(); + case 'hi': + return ChatLocalizationHi(); + case 'it': + return ChatLocalizationIt(); + case 'ko': + return ChatLocalizationKo(); + case 'pt': + return ChatLocalizationPt(); case 'ru': return ChatLocalizationRu(); + case 'zh': + return ChatLocalizationZh(); } throw FlutterError( diff --git a/example/lib/src/generated/chat/chat_localization_ar.dart b/example/lib/src/generated/chat/chat_localization_ar.dart new file mode 100644 index 0000000..0db1ca7 --- /dev/null +++ b/example/lib/src/generated/chat/chat_localization_ar.dart @@ -0,0 +1,216 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'chat_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Arabic (`ar`). +class ChatLocalizationAr extends ChatLocalization { + ChatLocalizationAr([String locale = 'ar']) : super(locale); + + @override + String get title => 'محادثة'; + + @override + String get drawerTooltipNotifications => 'إشعارات'; + + @override + String get drawerTooltipHelp => 'يساعد'; + + @override + String get drawerTooltipClose => 'يغلق'; + + @override + String get drawerSectionTitleAccount => 'حساب'; + + @override + String get drawerSectionProfile => 'حساب تعريفي'; + + @override + String get drawerSectionAccountSettings => 'إعدادات الحساب'; + + @override + String get drawerSectionDonateToSupport => 'تبرع لدعم'; + + @override + String get drawerSectionSubscription => 'الاشتراك'; + + @override + String get drawerSectionTitleChats => 'الدردشات'; + + @override + String get drawerSectionChatHistory => 'سجل الدردشة'; + + @override + String get drawerSectionAttachedDocuments => 'المستندات المرفقة'; + + @override + String get drawerSectionTitleHowToUse => 'كيفية الاستخدام'; + + @override + String get drawerSectionVideoTutorials => 'دروس الفيديو'; + + @override + String get drawerSectionTitleLegal => 'قانوني'; + + @override + String get drawerSectionContactUs => 'اتصل بنا'; + + @override + String get drawerSectionBugReport => 'تقرير الأخطاء'; + + @override + String get drawerSectionTermsAndConditions => 'الشروط والأحكام'; + + @override + String get drawerSectionPrivacyPolicy => 'سياسة الخصوصية'; + + @override + String get drawerSectionTitleFeedback => 'تعليق'; + + @override + String get drawerSectionRateApp => 'تقييم التطبيق'; + + @override + String get drawerSectionShareWithFriends => 'شارك مع الأصدقاء'; + + @override + String get drawerButtonLogOut => 'تسجيل الخروج'; + + @override + String get drawerBannerHelpOthersReceiveMedicalCare => + 'مساعدة الآخرين على تلقي الرعاية الطبية'; + + @override + String get drawerPlaceholderUser => 'مستخدم'; + + @override + String get drawerSubscriptionLabelPremiumFeaturesWithDoctorina => + 'ميزات مميزة مع دكتورينا'; + + @override + String get drawerSubscriptionButtonGetPremiumFeatures => 'يحصل'; + + @override + String get drawerLabelJoinUs => 'انضم إلينا'; + + @override + String get drawerTooltipVersion => 'إصدار التطبيق:'; + + @override + String get chatInputHintEnterMessage => 'أدخل الرسالة'; + + @override + String get chatInputTooltipAttachFile => 'إرفاق الملف'; + + @override + String get chatInputTooltipDictateMessage => 'إملاء الرسالة'; + + @override + String get chatInputTooltipSendMessage => 'إرسال رسالة'; + + @override + String get chatListSnackBarErrorFailedToFetchMessages => 'فشل في جلب الرسائل'; + + @override + String get chatListLabelErrorFailedToFetchMessagesPleaseTryAgain => + 'تعذّر جلب الرسائل. يُرجى المحاولة مجددًا.'; + + @override + String get chatListTooltipFetchMessages => 'جلب الرسائل'; + + @override + String get chatListLabelNoMessagesAvailable => + 'لا توجد رسائل متاحة. يُرجى إرسال رسالة لبدء المحادثة.'; + + @override + String get chatListHasConnection => 'متصل'; + + @override + String get chatListNoConnection => 'لا يوجد اتصال'; + + @override + String get chatActionButtonTooltipSearch => 'يبحث'; + + @override + String get chatActionButtonTooltipFavorites => 'المفضلة'; + + @override + String get chatActionButtonTooltipDownload => 'تحميل'; + + @override + String get chatActionButtonTooltipPrintPdf => 'طباعة ملف PDF'; + + @override + String get chatActionButtonTooltipShareWithFriends => 'شارك مع الأصدقاء'; + + @override + String get chatActionButtonTooltipNewChat => 'دردشة جديدة'; + + @override + String get chatActionButtonTooltipChatList => 'حدد الدردشة'; + + @override + String get chatActionButtonTooltipShowDrawer => 'عرض الدرج'; + + @override + String get chatLabelNoChatAvailableRefresh => + 'لا توجد محادثات متاحة. يُرجى تحديث الصفحة أو إنشاء محادثة جديدة.'; + + @override + String get chatButtonRefreshChats => 'تحديث الدردشات'; + + @override + String get chatButtonCreateNewChat => 'إنشاء دردشة جديدة'; + + @override + String get chatContextMenuCopyMessage => 'نسخ النص'; + + @override + String get chatStatusProcessingMessages => 'جاري الكتابة... لحظة...'; + + @override + String get chatNoConnectionLabel => 'يرجى التحقق من اتصالك بالإنترنت'; + + @override + String get chatErrorMessageAlreadyProcessed => 'يتم معالجة الرسالة الآن.'; + + @override + String get chatErrorMessageTooLong => 'الرسالة طويلة جداً.'; + + @override + String get chatRemoveAttachmentTooltip => 'إزالة المرفق'; + + @override + String get chatStatusFailedMessage => 'فشل في معالجة الرسالة'; + + @override + String get chatActionButtonTooltipExportSummary => 'تصدير إلى PDF'; + + @override + String get chatPickerPhotos => 'الصور'; + + @override + String get chatPickerCamera => 'آلة تصوير'; + + @override + String get chatPickerFiles => 'الملفات'; + + @override + String get chatRecommendationYIAG => + 'آمل أن يكون هذا مفيدًا! هل كان هذا الشرح مفيدًا لك؟'; + + @override + String get chatRecommendationButtonDonate => 'نعم، كل شيء جيد!'; + + @override + String get chatHistoryTitle => 'سجل الدردشة'; + + @override + String get failedToRetrieveChatSummary => 'فشل في استرداد ملخص الدردشة'; + + @override + String get chatSummaryCopiedToClipboard => 'تم نسخ ملخص الدردشة إلى الحافظة'; +} diff --git a/example/lib/src/generated/chat/chat_localization_bn.dart b/example/lib/src/generated/chat/chat_localization_bn.dart new file mode 100644 index 0000000..2d6f8c2 --- /dev/null +++ b/example/lib/src/generated/chat/chat_localization_bn.dart @@ -0,0 +1,222 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'chat_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Bengali Bangla (`bn`). +class ChatLocalizationBn extends ChatLocalization { + ChatLocalizationBn([String locale = 'bn']) : super(locale); + + @override + String get title => 'চ্যাট'; + + @override + String get drawerTooltipNotifications => 'বিজ্ঞপ্তি'; + + @override + String get drawerTooltipHelp => 'সাহায্য'; + + @override + String get drawerTooltipClose => 'বন্ধ'; + + @override + String get drawerSectionTitleAccount => 'হিসাব'; + + @override + String get drawerSectionProfile => 'প্রোফাইল'; + + @override + String get drawerSectionAccountSettings => 'অ্যাকাউন্ট সেটিংস'; + + @override + String get drawerSectionDonateToSupport => 'সমর্থন দান'; + + @override + String get drawerSectionSubscription => 'সাবস্ক্রিপশন'; + + @override + String get drawerSectionTitleChats => 'চ্যাট'; + + @override + String get drawerSectionChatHistory => 'চ্যাট ইতিহাস'; + + @override + String get drawerSectionAttachedDocuments => 'সংযুক্ত নথি'; + + @override + String get drawerSectionTitleHowToUse => 'কিভাবে ব্যবহার করবেন'; + + @override + String get drawerSectionVideoTutorials => 'ভিডিও টিউটোরিয়াল'; + + @override + String get drawerSectionTitleLegal => 'আইনি'; + + @override + String get drawerSectionContactUs => 'আমাদের সাথে যোগাযোগ করুন'; + + @override + String get drawerSectionBugReport => 'বাগ রিপোর্ট'; + + @override + String get drawerSectionTermsAndConditions => 'শর্তাবলী'; + + @override + String get drawerSectionPrivacyPolicy => 'গোপনীয়তা নীতি'; + + @override + String get drawerSectionTitleFeedback => 'প্রতিক্রিয়া'; + + @override + String get drawerSectionRateApp => 'অ্যাপকে রেট দিন'; + + @override + String get drawerSectionShareWithFriends => 'বন্ধুদের সাথে শেয়ার করুন'; + + @override + String get drawerButtonLogOut => 'লগ আউট করুন'; + + @override + String get drawerBannerHelpOthersReceiveMedicalCare => + 'অন্যদের চিকিৎসা সেবা পেতে সাহায্য করুন'; + + @override + String get drawerPlaceholderUser => 'ব্যবহারকারী'; + + @override + String get drawerSubscriptionLabelPremiumFeaturesWithDoctorina => + 'প্রিমিয়াম বৈশিষ্ট্য\nডক্টরিনার সাথে'; + + @override + String get drawerSubscriptionButtonGetPremiumFeatures => 'পান'; + + @override + String get drawerLabelJoinUs => 'আমাদের সাথে যোগ দিন'; + + @override + String get drawerTooltipVersion => 'অ্যাপ সংস্করণ:'; + + @override + String get chatInputHintEnterMessage => 'বার্তা লিখুন'; + + @override + String get chatInputTooltipAttachFile => 'ফাইল সংযুক্ত করুন'; + + @override + String get chatInputTooltipDictateMessage => 'বার্তা লিখুন'; + + @override + String get chatInputTooltipSendMessage => 'বার্তা পাঠান'; + + @override + String get chatListSnackBarErrorFailedToFetchMessages => + 'বার্তাগুলি আনতে ব্যর্থ হয়েছে৷'; + + @override + String get chatListLabelErrorFailedToFetchMessagesPleaseTryAgain => + 'বার্তাগুলি আনতে ব্যর্থ হয়েছে৷ আবার চেষ্টা করুন.'; + + @override + String get chatListTooltipFetchMessages => 'বার্তা আনুন'; + + @override + String get chatListLabelNoMessagesAvailable => + 'কোন বার্তা উপলব্ধ নেই.\nকথোপকথন শুরু করতে একটি বার্তা পাঠান.'; + + @override + String get chatListHasConnection => 'সংযুক্ত'; + + @override + String get chatListNoConnection => 'সংযোগ নেই'; + + @override + String get chatActionButtonTooltipSearch => 'অনুসন্ধান করুন'; + + @override + String get chatActionButtonTooltipFavorites => 'প্রিয়'; + + @override + String get chatActionButtonTooltipDownload => 'ডাউনলোড করুন'; + + @override + String get chatActionButtonTooltipPrintPdf => 'পিডিএফ প্রিন্ট করুন'; + + @override + String get chatActionButtonTooltipShareWithFriends => + 'বন্ধুদের সাথে শেয়ার করুন'; + + @override + String get chatActionButtonTooltipNewChat => 'নতুন আড্ডা'; + + @override + String get chatActionButtonTooltipChatList => 'চ্যাট নির্বাচন করুন'; + + @override + String get chatActionButtonTooltipShowDrawer => 'ড্রয়ার দেখান'; + + @override + String get chatLabelNoChatAvailableRefresh => + 'কোন চ্যাট উপলব্ধ. অনুগ্রহ করে রিফ্রেশ করুন বা একটি নতুন চ্যাট তৈরি করুন৷'; + + @override + String get chatButtonRefreshChats => 'চ্যাট রিফ্রেশ করুন'; + + @override + String get chatButtonCreateNewChat => 'নতুন চ্যাট তৈরি করুন'; + + @override + String get chatContextMenuCopyMessage => 'পাঠ্য অনুলিপি করুন'; + + @override + String get chatStatusProcessingMessages => + 'টাইপ করা হচ্ছে...\nমাত্র এক মুহূর্ত...'; + + @override + String get chatNoConnectionLabel => 'আপনার ইন্টারনেট সংযোগ পরীক্ষা করুন'; + + @override + String get chatErrorMessageAlreadyProcessed => + 'বার্তাটি ইতিমধ্যেই প্রক্রিয়া করা হচ্ছে।'; + + @override + String get chatErrorMessageTooLong => 'বার্তাটি খুব দীর্ঘ৷'; + + @override + String get chatRemoveAttachmentTooltip => 'সংযুক্তি সরান'; + + @override + String get chatStatusFailedMessage => 'বার্তা প্রক্রিয়া করতে ব্যর্থ হয়েছে'; + + @override + String get chatActionButtonTooltipExportSummary => 'PDF এ রপ্তানি করুন'; + + @override + String get chatPickerPhotos => 'ফটো'; + + @override + String get chatPickerCamera => 'ক্যামেরা'; + + @override + String get chatPickerFiles => 'ফাইল'; + + @override + String get chatRecommendationYIAG => + 'আশা করি যে সাহায্য করেছে! এই ব্যাখ্যা আপনার জন্য দরকারী ছিল?'; + + @override + String get chatRecommendationButtonDonate => 'হ্যাঁ, এটা সব ভাল!'; + + @override + String get chatHistoryTitle => 'চ্যাট ইতিহাস'; + + @override + String get failedToRetrieveChatSummary => + 'চ্যাটের সারাংশ পুনরুদ্ধার করতে ব্যর্থ হয়েছে৷'; + + @override + String get chatSummaryCopiedToClipboard => + 'চ্যাটের সারাংশ ক্লিপবোর্ডে কপি করা হয়েছে'; +} diff --git a/example/lib/src/generated/chat/chat_localization_de.dart b/example/lib/src/generated/chat/chat_localization_de.dart index 27d45bc..65e60bb 100644 --- a/example/lib/src/generated/chat/chat_localization_de.dart +++ b/example/lib/src/generated/chat/chat_localization_de.dart @@ -155,7 +155,7 @@ class ChatLocalizationDe extends ChatLocalization { String get chatActionButtonTooltipChatList => 'Chat auswählen'; @override - String get chatActionButtonTooltipShowDrawer => 'Show drawer'; + String get chatActionButtonTooltipShowDrawer => 'Schublade anzeigen'; @override String get chatLabelNoChatAvailableRefresh => @@ -193,4 +193,31 @@ class ChatLocalizationDe extends ChatLocalization { @override String get chatActionButtonTooltipExportSummary => 'Als PDF exportieren'; + + @override + String get chatPickerPhotos => 'Fotos'; + + @override + String get chatPickerCamera => 'Kamera'; + + @override + String get chatPickerFiles => 'Dateien'; + + @override + String get chatRecommendationYIAG => + 'Hoffe, das hat geholfen! War diese Erklärung für Sie hilfreich?'; + + @override + String get chatRecommendationButtonDonate => 'Ja, alles gut!'; + + @override + String get chatHistoryTitle => 'Chatverlauf'; + + @override + String get failedToRetrieveChatSummary => + 'Chat-Zusammenfassung konnte nicht abgerufen werden'; + + @override + String get chatSummaryCopiedToClipboard => + 'Chat-Zusammenfassung in die Zwischenablage kopiert'; } diff --git a/example/lib/src/generated/chat/chat_localization_en.dart b/example/lib/src/generated/chat/chat_localization_en.dart index 0996f4f..10323ca 100644 --- a/example/lib/src/generated/chat/chat_localization_en.dart +++ b/example/lib/src/generated/chat/chat_localization_en.dart @@ -190,4 +190,29 @@ class ChatLocalizationEn extends ChatLocalization { @override String get chatActionButtonTooltipExportSummary => 'Export to PDF'; + + @override + String get chatPickerPhotos => 'Photos'; + + @override + String get chatPickerCamera => 'Camera'; + + @override + String get chatPickerFiles => 'Files'; + + @override + String get chatRecommendationYIAG => + 'Hope that helped! Was this explanation useful to you?'; + + @override + String get chatRecommendationButtonDonate => 'Yes, it\'s all good!'; + + @override + String get chatHistoryTitle => 'Chat History'; + + @override + String get failedToRetrieveChatSummary => 'Failed to retrieve chat summary'; + + @override + String get chatSummaryCopiedToClipboard => 'Chat summary copied to clipboard'; } diff --git a/example/lib/src/generated/chat/chat_localization_es.dart b/example/lib/src/generated/chat/chat_localization_es.dart index 50c8398..8b6fae5 100644 --- a/example/lib/src/generated/chat/chat_localization_es.dart +++ b/example/lib/src/generated/chat/chat_localization_es.dart @@ -154,7 +154,7 @@ class ChatLocalizationEs extends ChatLocalization { String get chatActionButtonTooltipChatList => 'Seleccionar chat'; @override - String get chatActionButtonTooltipShowDrawer => 'Show drawer'; + String get chatActionButtonTooltipShowDrawer => 'Mostrar cajón'; @override String get chatLabelNoChatAvailableRefresh => @@ -191,4 +191,31 @@ class ChatLocalizationEs extends ChatLocalization { @override String get chatActionButtonTooltipExportSummary => 'Exportar a PDF'; + + @override + String get chatPickerPhotos => 'Fotos'; + + @override + String get chatPickerCamera => 'Cámara'; + + @override + String get chatPickerFiles => 'Archivos'; + + @override + String get chatRecommendationYIAG => + '¡Espero que te haya servido! ¿Te resultó útil esta explicación?'; + + @override + String get chatRecommendationButtonDonate => '¡Sí, está todo bien!'; + + @override + String get chatHistoryTitle => 'Historial de chat'; + + @override + String get failedToRetrieveChatSummary => + 'No se pudo recuperar el resumen del chat'; + + @override + String get chatSummaryCopiedToClipboard => + 'Resumen del chat copiado al portapapeles'; } diff --git a/example/lib/src/generated/chat/chat_localization_fr.dart b/example/lib/src/generated/chat/chat_localization_fr.dart new file mode 100644 index 0000000..b0b256b --- /dev/null +++ b/example/lib/src/generated/chat/chat_localization_fr.dart @@ -0,0 +1,222 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'chat_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for French (`fr`). +class ChatLocalizationFr extends ChatLocalization { + ChatLocalizationFr([String locale = 'fr']) : super(locale); + + @override + String get title => 'Chat'; + + @override + String get drawerTooltipNotifications => 'Notifications'; + + @override + String get drawerTooltipHelp => 'Aide'; + + @override + String get drawerTooltipClose => 'Fermer'; + + @override + String get drawerSectionTitleAccount => 'Compte'; + + @override + String get drawerSectionProfile => 'Profil'; + + @override + String get drawerSectionAccountSettings => 'Paramètres du compte'; + + @override + String get drawerSectionDonateToSupport => 'Faites un don pour soutenir'; + + @override + String get drawerSectionSubscription => 'Abonnement'; + + @override + String get drawerSectionTitleChats => 'Chats'; + + @override + String get drawerSectionChatHistory => 'Historique des discussions'; + + @override + String get drawerSectionAttachedDocuments => 'Documents joints'; + + @override + String get drawerSectionTitleHowToUse => 'Comment utiliser'; + + @override + String get drawerSectionVideoTutorials => 'Tutoriels vidéo'; + + @override + String get drawerSectionTitleLegal => 'Légal'; + + @override + String get drawerSectionContactUs => 'Contactez-nous'; + + @override + String get drawerSectionBugReport => 'Rapport de bogue'; + + @override + String get drawerSectionTermsAndConditions => 'Conditions générales'; + + @override + String get drawerSectionPrivacyPolicy => 'politique de confidentialité'; + + @override + String get drawerSectionTitleFeedback => 'Retour'; + + @override + String get drawerSectionRateApp => 'Évaluer l\'application'; + + @override + String get drawerSectionShareWithFriends => 'Partager avec des amis'; + + @override + String get drawerButtonLogOut => 'Se déconnecter'; + + @override + String get drawerBannerHelpOthersReceiveMedicalCare => + 'Aider les autres à recevoir des soins médicaux'; + + @override + String get drawerPlaceholderUser => 'Utilisateur'; + + @override + String get drawerSubscriptionLabelPremiumFeaturesWithDoctorina => + 'Fonctionnalités Premium\navec Doctorina'; + + @override + String get drawerSubscriptionButtonGetPremiumFeatures => 'Obtenir'; + + @override + String get drawerLabelJoinUs => 'Rejoignez-nous'; + + @override + String get drawerTooltipVersion => 'Version de l\'application :'; + + @override + String get chatInputHintEnterMessage => 'Entrez un message'; + + @override + String get chatInputTooltipAttachFile => 'Joindre un fichier'; + + @override + String get chatInputTooltipDictateMessage => 'Dicter un message'; + + @override + String get chatInputTooltipSendMessage => 'Envoyer un message'; + + @override + String get chatListSnackBarErrorFailedToFetchMessages => + 'Échec de la récupération des messages'; + + @override + String get chatListLabelErrorFailedToFetchMessagesPleaseTryAgain => + 'Échec de la récupération des messages. Veuillez réessayer.'; + + @override + String get chatListTooltipFetchMessages => 'Récupérer des messages'; + + @override + String get chatListLabelNoMessagesAvailable => + 'Aucun message disponible. Veuillez envoyer un message pour démarrer la conversation.'; + + @override + String get chatListHasConnection => 'Connecté'; + + @override + String get chatListNoConnection => 'Aucune connexion'; + + @override + String get chatActionButtonTooltipSearch => 'Recherche'; + + @override + String get chatActionButtonTooltipFavorites => 'Favoris'; + + @override + String get chatActionButtonTooltipDownload => 'Télécharger'; + + @override + String get chatActionButtonTooltipPrintPdf => 'Imprimer PDF'; + + @override + String get chatActionButtonTooltipShareWithFriends => + 'Partager avec des amis'; + + @override + String get chatActionButtonTooltipNewChat => 'Nouveau chat'; + + @override + String get chatActionButtonTooltipChatList => 'Sélectionnez Chat'; + + @override + String get chatActionButtonTooltipShowDrawer => 'Afficher le tiroir'; + + @override + String get chatLabelNoChatAvailableRefresh => + 'Aucun chat disponible. Veuillez actualiser la page ou créer un nouveau chat.'; + + @override + String get chatButtonRefreshChats => 'Actualiser les discussions'; + + @override + String get chatButtonCreateNewChat => 'Créer un nouveau chat'; + + @override + String get chatContextMenuCopyMessage => 'Copier le texte'; + + @override + String get chatStatusProcessingMessages => 'Je tape...\nUn instant...'; + + @override + String get chatNoConnectionLabel => + 'Veuillez vérifier votre connexion Internet'; + + @override + String get chatErrorMessageAlreadyProcessed => + 'Le message est déjà en cours de traitement.'; + + @override + String get chatErrorMessageTooLong => 'Le message est trop long.'; + + @override + String get chatRemoveAttachmentTooltip => 'Supprimer la pièce jointe'; + + @override + String get chatStatusFailedMessage => 'Échec du traitement du message'; + + @override + String get chatActionButtonTooltipExportSummary => 'Exporter au format PDF'; + + @override + String get chatPickerPhotos => 'Photos'; + + @override + String get chatPickerCamera => 'Caméra'; + + @override + String get chatPickerFiles => 'Fichiers'; + + @override + String get chatRecommendationYIAG => + 'J\'espère que cela vous a aidé ! Cette explication vous a-t-elle été utile ?'; + + @override + String get chatRecommendationButtonDonate => 'Oui, tout va bien !'; + + @override + String get chatHistoryTitle => 'Historique des discussions'; + + @override + String get failedToRetrieveChatSummary => + 'Échec de la récupération du résumé de la discussion'; + + @override + String get chatSummaryCopiedToClipboard => + 'Résumé de la discussion copié dans le presse-papiers'; +} diff --git a/example/lib/src/generated/chat/chat_localization_hi.dart b/example/lib/src/generated/chat/chat_localization_hi.dart new file mode 100644 index 0000000..cd3e9d3 --- /dev/null +++ b/example/lib/src/generated/chat/chat_localization_hi.dart @@ -0,0 +1,220 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'chat_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Hindi (`hi`). +class ChatLocalizationHi extends ChatLocalization { + ChatLocalizationHi([String locale = 'hi']) : super(locale); + + @override + String get title => 'बात करना'; + + @override + String get drawerTooltipNotifications => 'सूचनाएं'; + + @override + String get drawerTooltipHelp => 'मदद'; + + @override + String get drawerTooltipClose => 'बंद करना'; + + @override + String get drawerSectionTitleAccount => 'खाता'; + + @override + String get drawerSectionProfile => 'प्रोफ़ाइल'; + + @override + String get drawerSectionAccountSettings => 'अकाउंट सेटिंग'; + + @override + String get drawerSectionDonateToSupport => 'समर्थन के लिए दान करें'; + + @override + String get drawerSectionSubscription => 'सदस्यता'; + + @override + String get drawerSectionTitleChats => 'चैट'; + + @override + String get drawerSectionChatHistory => 'चैट का इतिहास'; + + @override + String get drawerSectionAttachedDocuments => 'संलग्न दस्तावेज़'; + + @override + String get drawerSectionTitleHowToUse => 'का उपयोग कैसे करें'; + + @override + String get drawerSectionVideoTutorials => 'वीडियो ट्यूटोरियल'; + + @override + String get drawerSectionTitleLegal => 'कानूनी'; + + @override + String get drawerSectionContactUs => 'हमसे संपर्क करें'; + + @override + String get drawerSectionBugReport => 'बग रिपोर्ट'; + + @override + String get drawerSectionTermsAndConditions => 'नियम एवं शर्तें'; + + @override + String get drawerSectionPrivacyPolicy => 'गोपनीयता नीति'; + + @override + String get drawerSectionTitleFeedback => 'प्रतिक्रिया'; + + @override + String get drawerSectionRateApp => 'एप्प का मूल्यांकन'; + + @override + String get drawerSectionShareWithFriends => 'दोस्तों के साथ बांटें'; + + @override + String get drawerButtonLogOut => 'लॉग आउट'; + + @override + String get drawerBannerHelpOthersReceiveMedicalCare => + 'दूसरों को चिकित्सा देखभाल प्राप्त करने में सहायता करें'; + + @override + String get drawerPlaceholderUser => 'उपयोगकर्ता'; + + @override + String get drawerSubscriptionLabelPremiumFeaturesWithDoctorina => + 'प्रीमियम सुविधाएँ\nडॉक्टरिना के साथ'; + + @override + String get drawerSubscriptionButtonGetPremiumFeatures => 'पाना'; + + @override + String get drawerLabelJoinUs => 'हमसे जुड़ें'; + + @override + String get drawerTooltipVersion => 'एप्लिकेशन वेरीज़न:'; + + @override + String get chatInputHintEnterMessage => 'संदेश दर्ज करें'; + + @override + String get chatInputTooltipAttachFile => 'फ़ाइल जोड़ें'; + + @override + String get chatInputTooltipDictateMessage => 'संदेश लिखवाएँ'; + + @override + String get chatInputTooltipSendMessage => 'मेसेज भेजें'; + + @override + String get chatListSnackBarErrorFailedToFetchMessages => + 'संदेश प्राप्त करने में विफल'; + + @override + String get chatListLabelErrorFailedToFetchMessagesPleaseTryAgain => + 'संदेश प्राप्त करने में विफल. कृपया पुनः प्रयास करें.'; + + @override + String get chatListTooltipFetchMessages => 'संदेश प्राप्त करें'; + + @override + String get chatListLabelNoMessagesAvailable => + 'कोई संदेश उपलब्ध नहीं है।\nकृपया बातचीत शुरू करने के लिए एक संदेश भेजें।'; + + @override + String get chatListHasConnection => 'जुड़े हुए'; + + @override + String get chatListNoConnection => 'कोई कनेक्शन नहीं'; + + @override + String get chatActionButtonTooltipSearch => 'खोज'; + + @override + String get chatActionButtonTooltipFavorites => 'पसंदीदा'; + + @override + String get chatActionButtonTooltipDownload => 'डाउनलोड करना'; + + @override + String get chatActionButtonTooltipPrintPdf => 'पीडीएफ प्रिंट करें'; + + @override + String get chatActionButtonTooltipShareWithFriends => 'दोस्तों के साथ बांटें'; + + @override + String get chatActionButtonTooltipNewChat => 'नई चैट'; + + @override + String get chatActionButtonTooltipChatList => 'चैट चुनें'; + + @override + String get chatActionButtonTooltipShowDrawer => 'दराज दिखाएँ'; + + @override + String get chatLabelNoChatAvailableRefresh => + 'कोई चैट उपलब्ध नहीं है। कृपया रीफ़्रेश करें या नई चैट बनाएँ।'; + + @override + String get chatButtonRefreshChats => 'चैट रीफ़्रेश करें'; + + @override + String get chatButtonCreateNewChat => 'नई चैट बनाएँ'; + + @override + String get chatContextMenuCopyMessage => 'पाठ की प्रतिलिपि बनाएँ'; + + @override + String get chatStatusProcessingMessages => + 'टाइप कर रहा हूँ...\nज़रा रुकिए...'; + + @override + String get chatNoConnectionLabel => 'कृपया अपने इंटरनेट कनेक्शन की जाँच करें'; + + @override + String get chatErrorMessageAlreadyProcessed => + 'संदेश पर अभी कार्रवाई चल रही है।'; + + @override + String get chatErrorMessageTooLong => 'संदेश बहुत लंबा है.'; + + @override + String get chatRemoveAttachmentTooltip => 'अनुलग्नक हटाएँ'; + + @override + String get chatStatusFailedMessage => 'संदेश संसाधित करने में विफल'; + + @override + String get chatActionButtonTooltipExportSummary => 'PDF में निर्यात करें'; + + @override + String get chatPickerPhotos => 'तस्वीरें'; + + @override + String get chatPickerCamera => 'कैमरा'; + + @override + String get chatPickerFiles => 'फ़ाइलें'; + + @override + String get chatRecommendationYIAG => + 'उम्मीद है इससे मदद मिली होगी! क्या यह स्पष्टीकरण आपके लिए उपयोगी था?'; + + @override + String get chatRecommendationButtonDonate => 'हाँ, सब ठीक है!'; + + @override + String get chatHistoryTitle => 'चैट का इतिहास'; + + @override + String get failedToRetrieveChatSummary => 'चैट सारांश प्राप्त करने में विफल'; + + @override + String get chatSummaryCopiedToClipboard => + 'चैट सारांश क्लिपबोर्ड पर कॉपी किया गया'; +} diff --git a/example/lib/src/generated/chat/chat_localization_it.dart b/example/lib/src/generated/chat/chat_localization_it.dart new file mode 100644 index 0000000..e77ad11 --- /dev/null +++ b/example/lib/src/generated/chat/chat_localization_it.dart @@ -0,0 +1,222 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'chat_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Italian (`it`). +class ChatLocalizationIt extends ChatLocalization { + ChatLocalizationIt([String locale = 'it']) : super(locale); + + @override + String get title => 'Chiacchierata'; + + @override + String get drawerTooltipNotifications => 'Notifiche'; + + @override + String get drawerTooltipHelp => 'Aiuto'; + + @override + String get drawerTooltipClose => 'Vicino'; + + @override + String get drawerSectionTitleAccount => 'Account'; + + @override + String get drawerSectionProfile => 'Profilo'; + + @override + String get drawerSectionAccountSettings => 'Impostazioni dell\'account'; + + @override + String get drawerSectionDonateToSupport => 'Dona per sostenere'; + + @override + String get drawerSectionSubscription => 'Sottoscrizione'; + + @override + String get drawerSectionTitleChats => 'Chat'; + + @override + String get drawerSectionChatHistory => 'Cronologia chat'; + + @override + String get drawerSectionAttachedDocuments => 'Documenti allegati'; + + @override + String get drawerSectionTitleHowToUse => 'Come usare'; + + @override + String get drawerSectionVideoTutorials => 'Video tutorial'; + + @override + String get drawerSectionTitleLegal => 'Legal'; + + @override + String get drawerSectionContactUs => 'Contattaci'; + + @override + String get drawerSectionBugReport => 'Segnalazione di bug'; + + @override + String get drawerSectionTermsAndConditions => 'Termini e condizioni'; + + @override + String get drawerSectionPrivacyPolicy => 'politica sulla riservatezza'; + + @override + String get drawerSectionTitleFeedback => 'Feedback'; + + @override + String get drawerSectionRateApp => 'Valuta l\'app'; + + @override + String get drawerSectionShareWithFriends => 'Condividi con gli amici'; + + @override + String get drawerButtonLogOut => 'Disconnetti'; + + @override + String get drawerBannerHelpOthersReceiveMedicalCare => + 'Aiuta gli altri a ricevere assistenza medica'; + + @override + String get drawerPlaceholderUser => 'Utente'; + + @override + String get drawerSubscriptionLabelPremiumFeaturesWithDoctorina => + 'Funzionalità Premium\ncon Doctorina'; + + @override + String get drawerSubscriptionButtonGetPremiumFeatures => 'Ottenere'; + + @override + String get drawerLabelJoinUs => 'Unisciti a noi'; + + @override + String get drawerTooltipVersion => 'Versione dell\'app:'; + + @override + String get chatInputHintEnterMessage => 'Inserisci il messaggio'; + + @override + String get chatInputTooltipAttachFile => 'Allega file'; + + @override + String get chatInputTooltipDictateMessage => 'Dettare il messaggio'; + + @override + String get chatInputTooltipSendMessage => 'Invia messaggio'; + + @override + String get chatListSnackBarErrorFailedToFetchMessages => + 'Impossibile recuperare i messaggi'; + + @override + String get chatListLabelErrorFailedToFetchMessagesPleaseTryAgain => + 'Impossibile recuperare i messaggi. Riprova.'; + + @override + String get chatListTooltipFetchMessages => 'Recupera i messaggi'; + + @override + String get chatListLabelNoMessagesAvailable => + 'Nessun messaggio disponibile.\nInvia un messaggio per iniziare la conversazione.'; + + @override + String get chatListHasConnection => 'Collegato'; + + @override + String get chatListNoConnection => 'Nessuna connessione'; + + @override + String get chatActionButtonTooltipSearch => 'Ricerca'; + + @override + String get chatActionButtonTooltipFavorites => 'Preferiti'; + + @override + String get chatActionButtonTooltipDownload => 'Scaricamento'; + + @override + String get chatActionButtonTooltipPrintPdf => 'Stampa PDF'; + + @override + String get chatActionButtonTooltipShareWithFriends => + 'Condividi con gli amici'; + + @override + String get chatActionButtonTooltipNewChat => 'Nuova chat'; + + @override + String get chatActionButtonTooltipChatList => 'Seleziona Chat'; + + @override + String get chatActionButtonTooltipShowDrawer => 'Mostra cassetto'; + + @override + String get chatLabelNoChatAvailableRefresh => + 'Nessuna chat disponibile. Aggiorna la chat o creane una nuova.'; + + @override + String get chatButtonRefreshChats => 'Aggiorna le chat'; + + @override + String get chatButtonCreateNewChat => 'Crea una nuova chat'; + + @override + String get chatContextMenuCopyMessage => 'Copia il testo'; + + @override + String get chatStatusProcessingMessages => 'Sto scrivendo...\nUn attimo...'; + + @override + String get chatNoConnectionLabel => + 'Si prega di controllare la connessione Internet'; + + @override + String get chatErrorMessageAlreadyProcessed => + 'Il messaggio è già in fase di elaborazione.'; + + @override + String get chatErrorMessageTooLong => 'Il messaggio è troppo lungo.'; + + @override + String get chatRemoveAttachmentTooltip => 'Rimuovi allegato'; + + @override + String get chatStatusFailedMessage => 'Impossibile elaborare il messaggio'; + + @override + String get chatActionButtonTooltipExportSummary => 'Esporta in PDF'; + + @override + String get chatPickerPhotos => 'Foto'; + + @override + String get chatPickerCamera => 'Telecamera'; + + @override + String get chatPickerFiles => 'File'; + + @override + String get chatRecommendationYIAG => + 'Spero che ti sia stato utile! Questa spiegazione ti è stata utile?'; + + @override + String get chatRecommendationButtonDonate => 'Sì, va tutto bene!'; + + @override + String get chatHistoryTitle => 'Cronologia chat'; + + @override + String get failedToRetrieveChatSummary => + 'Impossibile recuperare il riepilogo della chat'; + + @override + String get chatSummaryCopiedToClipboard => + 'Riepilogo della chat copiato negli appunti'; +} diff --git a/example/lib/src/generated/chat/chat_localization_ko.dart b/example/lib/src/generated/chat/chat_localization_ko.dart new file mode 100644 index 0000000..fc03e39 --- /dev/null +++ b/example/lib/src/generated/chat/chat_localization_ko.dart @@ -0,0 +1,215 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'chat_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Korean (`ko`). +class ChatLocalizationKo extends ChatLocalization { + ChatLocalizationKo([String locale = 'ko']) : super(locale); + + @override + String get title => '채팅'; + + @override + String get drawerTooltipNotifications => '알림'; + + @override + String get drawerTooltipHelp => '돕다'; + + @override + String get drawerTooltipClose => '닫다'; + + @override + String get drawerSectionTitleAccount => '계정'; + + @override + String get drawerSectionProfile => '윤곽'; + + @override + String get drawerSectionAccountSettings => '계정 설정'; + + @override + String get drawerSectionDonateToSupport => '지원에 기부하세요'; + + @override + String get drawerSectionSubscription => '신청'; + + @override + String get drawerSectionTitleChats => '채팅'; + + @override + String get drawerSectionChatHistory => '채팅 기록'; + + @override + String get drawerSectionAttachedDocuments => '첨부 문서'; + + @override + String get drawerSectionTitleHowToUse => '사용 방법'; + + @override + String get drawerSectionVideoTutorials => '비디오 튜토리얼'; + + @override + String get drawerSectionTitleLegal => '합법적인'; + + @override + String get drawerSectionContactUs => '문의하기'; + + @override + String get drawerSectionBugReport => '버그 리포트'; + + @override + String get drawerSectionTermsAndConditions => '이용 약관'; + + @override + String get drawerSectionPrivacyPolicy => '개인정보 보호정책'; + + @override + String get drawerSectionTitleFeedback => '피드백'; + + @override + String get drawerSectionRateApp => '앱 평가'; + + @override + String get drawerSectionShareWithFriends => '친구들과 공유하세요'; + + @override + String get drawerButtonLogOut => '로그아웃'; + + @override + String get drawerBannerHelpOthersReceiveMedicalCare => + '다른 사람들이 의료 서비스를 받을 수 있도록 도와주세요'; + + @override + String get drawerPlaceholderUser => '사용자'; + + @override + String get drawerSubscriptionLabelPremiumFeaturesWithDoctorina => + '프리미엄 기능\nDoctorina와 함께'; + + @override + String get drawerSubscriptionButtonGetPremiumFeatures => '얻다'; + + @override + String get drawerLabelJoinUs => '우리와 함께하세요'; + + @override + String get drawerTooltipVersion => '앱 버전:'; + + @override + String get chatInputHintEnterMessage => '메시지 입력'; + + @override + String get chatInputTooltipAttachFile => '파일 첨부'; + + @override + String get chatInputTooltipDictateMessage => '메시지 받아쓰기'; + + @override + String get chatInputTooltipSendMessage => '메시지 보내기'; + + @override + String get chatListSnackBarErrorFailedToFetchMessages => '메시지를 가져오지 못했습니다'; + + @override + String get chatListLabelErrorFailedToFetchMessagesPleaseTryAgain => + '메시지를 가져오지 못했습니다. 다시 시도해 주세요.'; + + @override + String get chatListTooltipFetchMessages => '메시지 가져오기'; + + @override + String get chatListLabelNoMessagesAvailable => + '사용 가능한 메시지가 없습니다.\n대화를 시작하려면 메시지를 보내주세요.'; + + @override + String get chatListHasConnection => '연결됨'; + + @override + String get chatListNoConnection => '연결 없음'; + + @override + String get chatActionButtonTooltipSearch => '찾다'; + + @override + String get chatActionButtonTooltipFavorites => '즐겨찾기'; + + @override + String get chatActionButtonTooltipDownload => '다운로드'; + + @override + String get chatActionButtonTooltipPrintPdf => 'PDF 인쇄'; + + @override + String get chatActionButtonTooltipShareWithFriends => '친구들과 공유하세요'; + + @override + String get chatActionButtonTooltipNewChat => '새로운 채팅'; + + @override + String get chatActionButtonTooltipChatList => '채팅 선택'; + + @override + String get chatActionButtonTooltipShowDrawer => '서랍 표시'; + + @override + String get chatLabelNoChatAvailableRefresh => + '채팅이 없습니다. 새로고침하거나 새 채팅을 만들어 주세요.'; + + @override + String get chatButtonRefreshChats => '채팅 새로고침'; + + @override + String get chatButtonCreateNewChat => '새로운 채팅 만들기'; + + @override + String get chatContextMenuCopyMessage => '텍스트 복사'; + + @override + String get chatStatusProcessingMessages => '타이핑 중...\n잠깐만요...'; + + @override + String get chatNoConnectionLabel => '인터넷 연결을 확인해 주세요'; + + @override + String get chatErrorMessageAlreadyProcessed => '해당 메시지는 현재 처리 중입니다.'; + + @override + String get chatErrorMessageTooLong => '메시지가 너무 깁니다.'; + + @override + String get chatRemoveAttachmentTooltip => '첨부 파일 제거'; + + @override + String get chatStatusFailedMessage => '메시지 처리에 실패했습니다'; + + @override + String get chatActionButtonTooltipExportSummary => 'PDF로 내보내기'; + + @override + String get chatPickerPhotos => '사진'; + + @override + String get chatPickerCamera => '카메라'; + + @override + String get chatPickerFiles => '파일'; + + @override + String get chatRecommendationYIAG => '도움이 되었기를 바랍니다! 이 설명이 도움이 되셨나요?'; + + @override + String get chatRecommendationButtonDonate => '네, 다 괜찮아요!'; + + @override + String get chatHistoryTitle => '채팅 기록'; + + @override + String get failedToRetrieveChatSummary => '채팅 요약을 검색하지 못했습니다.'; + + @override + String get chatSummaryCopiedToClipboard => '채팅 요약이 클립보드에 복사되었습니다.'; +} diff --git a/example/lib/src/generated/chat/chat_localization_pt.dart b/example/lib/src/generated/chat/chat_localization_pt.dart new file mode 100644 index 0000000..6c11e0d --- /dev/null +++ b/example/lib/src/generated/chat/chat_localization_pt.dart @@ -0,0 +1,437 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'chat_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Portuguese (`pt`). +class ChatLocalizationPt extends ChatLocalization { + ChatLocalizationPt([String locale = 'pt']) : super(locale); + + @override + String get title => 'Bater papo'; + + @override + String get drawerTooltipNotifications => 'Notificações'; + + @override + String get drawerTooltipHelp => 'Ajuda'; + + @override + String get drawerTooltipClose => 'Fechar'; + + @override + String get drawerSectionTitleAccount => 'Conta'; + + @override + String get drawerSectionProfile => 'Perfil'; + + @override + String get drawerSectionAccountSettings => 'Configurações de Conta'; + + @override + String get drawerSectionDonateToSupport => 'Doe para apoiar'; + + @override + String get drawerSectionSubscription => 'Subscrição'; + + @override + String get drawerSectionTitleChats => 'Bate-papos'; + + @override + String get drawerSectionChatHistory => 'Histórico de bate-papo'; + + @override + String get drawerSectionAttachedDocuments => 'Documentos anexados'; + + @override + String get drawerSectionTitleHowToUse => 'Como usar'; + + @override + String get drawerSectionVideoTutorials => 'Tutoriais em vídeo'; + + @override + String get drawerSectionTitleLegal => 'Jurídico'; + + @override + String get drawerSectionContactUs => 'Contate-nos'; + + @override + String get drawerSectionBugReport => 'Relatório de bug'; + + @override + String get drawerSectionTermsAndConditions => 'Termos e Condições'; + + @override + String get drawerSectionPrivacyPolicy => 'política de Privacidade'; + + @override + String get drawerSectionTitleFeedback => 'Opinião'; + + @override + String get drawerSectionRateApp => 'Avalie o aplicativo'; + + @override + String get drawerSectionShareWithFriends => 'Compartilhe com amigos'; + + @override + String get drawerButtonLogOut => 'Sair'; + + @override + String get drawerBannerHelpOthersReceiveMedicalCare => + 'Ajude outras pessoas a receber cuidados médicos'; + + @override + String get drawerPlaceholderUser => 'Usuário'; + + @override + String get drawerSubscriptionLabelPremiumFeaturesWithDoctorina => + 'Recursos Premium\ncom Doctorina'; + + @override + String get drawerSubscriptionButtonGetPremiumFeatures => 'Pegar'; + + @override + String get drawerLabelJoinUs => 'Junte-se a nós'; + + @override + String get drawerTooltipVersion => 'Versão do aplicativo:'; + + @override + String get chatInputHintEnterMessage => 'Digite a mensagem'; + + @override + String get chatInputTooltipAttachFile => 'Anexar arquivo'; + + @override + String get chatInputTooltipDictateMessage => 'Ditar mensagem'; + + @override + String get chatInputTooltipSendMessage => 'Enviar mensagem'; + + @override + String get chatListSnackBarErrorFailedToFetchMessages => + 'Falha ao buscar mensagens'; + + @override + String get chatListLabelErrorFailedToFetchMessagesPleaseTryAgain => + 'Falha ao buscar mensagens. Tente novamente.'; + + @override + String get chatListTooltipFetchMessages => 'Buscar mensagens'; + + @override + String get chatListLabelNoMessagesAvailable => + 'Nenhuma mensagem disponível.\nEnvie uma mensagem para iniciar a conversa.'; + + @override + String get chatListHasConnection => 'Conectado'; + + @override + String get chatListNoConnection => 'Sem conexão'; + + @override + String get chatActionButtonTooltipSearch => 'Procurar'; + + @override + String get chatActionButtonTooltipFavorites => 'Favoritos'; + + @override + String get chatActionButtonTooltipDownload => 'Download'; + + @override + String get chatActionButtonTooltipPrintPdf => 'Imprimir PDF'; + + @override + String get chatActionButtonTooltipShareWithFriends => + 'Compartilhe com amigos'; + + @override + String get chatActionButtonTooltipNewChat => 'Novo bate-papo'; + + @override + String get chatActionButtonTooltipChatList => 'Selecione Bate-papo'; + + @override + String get chatActionButtonTooltipShowDrawer => 'Mostrar gaveta'; + + @override + String get chatLabelNoChatAvailableRefresh => + 'Nenhum chat disponível. Atualize ou crie um novo chat.'; + + @override + String get chatButtonRefreshChats => 'Atualizar chats'; + + @override + String get chatButtonCreateNewChat => 'Criar novo chat'; + + @override + String get chatContextMenuCopyMessage => 'Copiar texto'; + + @override + String get chatStatusProcessingMessages => 'Digitando...\nSó um momento...'; + + @override + String get chatNoConnectionLabel => + 'Por favor, verifique sua conexão com a internet'; + + @override + String get chatErrorMessageAlreadyProcessed => + 'A mensagem já está sendo processada neste momento.'; + + @override + String get chatErrorMessageTooLong => 'A mensagem é muito longa.'; + + @override + String get chatRemoveAttachmentTooltip => 'Remover anexo'; + + @override + String get chatStatusFailedMessage => 'Falha ao processar a mensagem'; + + @override + String get chatActionButtonTooltipExportSummary => 'Exportar para PDF'; + + @override + String get chatPickerPhotos => 'Fotos'; + + @override + String get chatPickerCamera => 'Câmera'; + + @override + String get chatPickerFiles => 'Arquivos'; + + @override + String get chatRecommendationYIAG => + 'Espero ter ajudado! Esta explicação foi útil para você?'; + + @override + String get chatRecommendationButtonDonate => 'Sim, está tudo bem!'; + + @override + String get chatHistoryTitle => 'Histórico de bate-papo'; + + @override + String get failedToRetrieveChatSummary => + 'Falha ao recuperar o resumo do bate-papo'; + + @override + String get chatSummaryCopiedToClipboard => + 'Resumo do bate-papo copiado para a área de transferência'; +} + +/// The translations for Portuguese, as used in Brazil (`pt_BR`). +class ChatLocalizationPtBr extends ChatLocalizationPt { + ChatLocalizationPtBr() : super('pt_BR'); + + @override + String get title => 'Bater papo'; + + @override + String get drawerTooltipNotifications => 'Notificações'; + + @override + String get drawerTooltipHelp => 'Ajuda'; + + @override + String get drawerTooltipClose => 'Fechar'; + + @override + String get drawerSectionTitleAccount => 'Conta'; + + @override + String get drawerSectionProfile => 'Perfil'; + + @override + String get drawerSectionAccountSettings => 'Configurações de Conta'; + + @override + String get drawerSectionDonateToSupport => 'Doe para apoiar'; + + @override + String get drawerSectionSubscription => 'Subscrição'; + + @override + String get drawerSectionTitleChats => 'Bate-papos'; + + @override + String get drawerSectionChatHistory => 'Histórico de bate-papo'; + + @override + String get drawerSectionAttachedDocuments => 'Documentos anexados'; + + @override + String get drawerSectionTitleHowToUse => 'Como usar'; + + @override + String get drawerSectionVideoTutorials => 'Tutoriais em vídeo'; + + @override + String get drawerSectionTitleLegal => 'Jurídico'; + + @override + String get drawerSectionContactUs => 'Contate-nos'; + + @override + String get drawerSectionBugReport => 'Relatório de bug'; + + @override + String get drawerSectionTermsAndConditions => 'Termos e Condições'; + + @override + String get drawerSectionPrivacyPolicy => 'política de Privacidade'; + + @override + String get drawerSectionTitleFeedback => 'Opinião'; + + @override + String get drawerSectionRateApp => 'Avalie o aplicativo'; + + @override + String get drawerSectionShareWithFriends => 'Compartilhe com amigos'; + + @override + String get drawerButtonLogOut => 'Sair'; + + @override + String get drawerBannerHelpOthersReceiveMedicalCare => + 'Ajude outras pessoas a receber cuidados médicos'; + + @override + String get drawerPlaceholderUser => 'Usuário'; + + @override + String get drawerSubscriptionLabelPremiumFeaturesWithDoctorina => + 'Recursos Premium\ncom Doctorina'; + + @override + String get drawerSubscriptionButtonGetPremiumFeatures => 'Pegar'; + + @override + String get drawerLabelJoinUs => 'Junte-se a nós'; + + @override + String get drawerTooltipVersion => 'Versão do aplicativo:'; + + @override + String get chatInputHintEnterMessage => 'Digite a mensagem'; + + @override + String get chatInputTooltipAttachFile => 'Anexar arquivo'; + + @override + String get chatInputTooltipDictateMessage => 'Ditar mensagem'; + + @override + String get chatInputTooltipSendMessage => 'Enviar mensagem'; + + @override + String get chatListSnackBarErrorFailedToFetchMessages => + 'Falha ao buscar mensagens'; + + @override + String get chatListLabelErrorFailedToFetchMessagesPleaseTryAgain => + 'Falha ao buscar mensagens. Tente novamente.'; + + @override + String get chatListTooltipFetchMessages => 'Buscar mensagens'; + + @override + String get chatListLabelNoMessagesAvailable => + 'Nenhuma mensagem disponível.\nEnvie uma mensagem para iniciar a conversa.'; + + @override + String get chatListHasConnection => 'Conectado'; + + @override + String get chatListNoConnection => 'Sem conexão'; + + @override + String get chatActionButtonTooltipSearch => 'Procurar'; + + @override + String get chatActionButtonTooltipFavorites => 'Favoritos'; + + @override + String get chatActionButtonTooltipDownload => 'Download'; + + @override + String get chatActionButtonTooltipPrintPdf => 'Imprimir PDF'; + + @override + String get chatActionButtonTooltipShareWithFriends => + 'Compartilhe com amigos'; + + @override + String get chatActionButtonTooltipNewChat => 'Novo bate-papo'; + + @override + String get chatActionButtonTooltipChatList => 'Selecione Bate-papo'; + + @override + String get chatActionButtonTooltipShowDrawer => 'Mostrar gaveta'; + + @override + String get chatLabelNoChatAvailableRefresh => + 'Nenhum chat disponível. Atualize ou crie um novo chat.'; + + @override + String get chatButtonRefreshChats => 'Atualizar chats'; + + @override + String get chatButtonCreateNewChat => 'Criar novo chat'; + + @override + String get chatContextMenuCopyMessage => 'Copiar texto'; + + @override + String get chatStatusProcessingMessages => 'Digitando...\nSó um momento...'; + + @override + String get chatNoConnectionLabel => + 'Por favor, verifique sua conexão com a internet'; + + @override + String get chatErrorMessageAlreadyProcessed => + 'A mensagem já está sendo processada neste momento.'; + + @override + String get chatErrorMessageTooLong => 'A mensagem é muito longa.'; + + @override + String get chatRemoveAttachmentTooltip => 'Remover anexo'; + + @override + String get chatStatusFailedMessage => 'Falha ao processar a mensagem'; + + @override + String get chatActionButtonTooltipExportSummary => 'Exportar para PDF'; + + @override + String get chatPickerPhotos => 'Fotos'; + + @override + String get chatPickerCamera => 'Câmera'; + + @override + String get chatPickerFiles => 'Arquivos'; + + @override + String get chatRecommendationYIAG => + 'Espero ter ajudado! Esta explicação foi útil para você?'; + + @override + String get chatRecommendationButtonDonate => 'Sim, está tudo bem!'; + + @override + String get chatHistoryTitle => 'Histórico de bate-papo'; + + @override + String get failedToRetrieveChatSummary => + 'Falha ao recuperar o resumo do bate-papo'; + + @override + String get chatSummaryCopiedToClipboard => + 'Resumo do bate-papo copiado para a área de transferência'; +} diff --git a/example/lib/src/generated/chat/chat_localization_ru.dart b/example/lib/src/generated/chat/chat_localization_ru.dart index 00dd234..b608995 100644 --- a/example/lib/src/generated/chat/chat_localization_ru.dart +++ b/example/lib/src/generated/chat/chat_localization_ru.dart @@ -191,4 +191,30 @@ class ChatLocalizationRu extends ChatLocalization { @override String get chatActionButtonTooltipExportSummary => 'Экспортировать в PDF'; + + @override + String get chatPickerPhotos => 'Фотографии'; + + @override + String get chatPickerCamera => 'Камера'; + + @override + String get chatPickerFiles => 'Файлы'; + + @override + String get chatRecommendationYIAG => + 'Надеюсь, это помогло! Было ли это объяснение вам полезным?'; + + @override + String get chatRecommendationButtonDonate => 'Да, все хорошо!'; + + @override + String get chatHistoryTitle => 'История чата'; + + @override + String get failedToRetrieveChatSummary => 'Не удалось получить сводку чата'; + + @override + String get chatSummaryCopiedToClipboard => + 'Сводка чата скопирована в буфер обмена'; } diff --git a/example/lib/src/generated/chat/chat_localization_zh.dart b/example/lib/src/generated/chat/chat_localization_zh.dart new file mode 100644 index 0000000..538bacb --- /dev/null +++ b/example/lib/src/generated/chat/chat_localization_zh.dart @@ -0,0 +1,417 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'chat_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Chinese (`zh`). +class ChatLocalizationZh extends ChatLocalization { + ChatLocalizationZh([String locale = 'zh']) : super(locale); + + @override + String get title => '聊天'; + + @override + String get drawerTooltipNotifications => '通知'; + + @override + String get drawerTooltipHelp => '帮助'; + + @override + String get drawerTooltipClose => '关闭'; + + @override + String get drawerSectionTitleAccount => '帐户'; + + @override + String get drawerSectionProfile => '轮廓'; + + @override + String get drawerSectionAccountSettings => '帐户设置'; + + @override + String get drawerSectionDonateToSupport => '捐款支持'; + + @override + String get drawerSectionSubscription => '订阅'; + + @override + String get drawerSectionTitleChats => '聊天'; + + @override + String get drawerSectionChatHistory => '聊天记录'; + + @override + String get drawerSectionAttachedDocuments => '附件'; + + @override + String get drawerSectionTitleHowToUse => '如何使用'; + + @override + String get drawerSectionVideoTutorials => '视频教程'; + + @override + String get drawerSectionTitleLegal => '合法的'; + + @override + String get drawerSectionContactUs => '联系我们'; + + @override + String get drawerSectionBugReport => '错误报告'; + + @override + String get drawerSectionTermsAndConditions => '条款和条件'; + + @override + String get drawerSectionPrivacyPolicy => '隐私政策'; + + @override + String get drawerSectionTitleFeedback => '反馈'; + + @override + String get drawerSectionRateApp => '评价应用程序'; + + @override + String get drawerSectionShareWithFriends => '与朋友分享'; + + @override + String get drawerButtonLogOut => '登出'; + + @override + String get drawerBannerHelpOthersReceiveMedicalCare => '帮助他人获得医疗服务'; + + @override + String get drawerPlaceholderUser => '用户'; + + @override + String get drawerSubscriptionLabelPremiumFeaturesWithDoctorina => + 'Doctorina 的高级功能'; + + @override + String get drawerSubscriptionButtonGetPremiumFeatures => '得到'; + + @override + String get drawerLabelJoinUs => '加入我们'; + + @override + String get drawerTooltipVersion => '应用程序版本:'; + + @override + String get chatInputHintEnterMessage => '输入消息'; + + @override + String get chatInputTooltipAttachFile => '附加文件'; + + @override + String get chatInputTooltipDictateMessage => '口述信息'; + + @override + String get chatInputTooltipSendMessage => '发送消息'; + + @override + String get chatListSnackBarErrorFailedToFetchMessages => '无法获取消息'; + + @override + String get chatListLabelErrorFailedToFetchMessagesPleaseTryAgain => + '无法获取消息。请重试。'; + + @override + String get chatListTooltipFetchMessages => '获取消息'; + + @override + String get chatListLabelNoMessagesAvailable => '没有可用的消息。\n请发送消息以开始对话。'; + + @override + String get chatListHasConnection => '已连接'; + + @override + String get chatListNoConnection => '无连接'; + + @override + String get chatActionButtonTooltipSearch => '搜索'; + + @override + String get chatActionButtonTooltipFavorites => '收藏夹'; + + @override + String get chatActionButtonTooltipDownload => '下载'; + + @override + String get chatActionButtonTooltipPrintPdf => '打印PDF'; + + @override + String get chatActionButtonTooltipShareWithFriends => '与朋友分享'; + + @override + String get chatActionButtonTooltipNewChat => '新聊天'; + + @override + String get chatActionButtonTooltipChatList => '选择“聊天”'; + + @override + String get chatActionButtonTooltipShowDrawer => '显示抽屉'; + + @override + String get chatLabelNoChatAvailableRefresh => '没有可用的聊天。请刷新或创建新的聊天。'; + + @override + String get chatButtonRefreshChats => '刷新聊天'; + + @override + String get chatButtonCreateNewChat => '创建新聊天'; + + @override + String get chatContextMenuCopyMessage => '复制文本'; + + @override + String get chatStatusProcessingMessages => '正在输入...\n请稍等...'; + + @override + String get chatNoConnectionLabel => '请检查您的互联网连接'; + + @override + String get chatErrorMessageAlreadyProcessed => '该消息目前正在处理中。'; + + @override + String get chatErrorMessageTooLong => '消息太长。'; + + @override + String get chatRemoveAttachmentTooltip => '删除附件'; + + @override + String get chatStatusFailedMessage => '无法处理消息'; + + @override + String get chatActionButtonTooltipExportSummary => '导出为 PDF'; + + @override + String get chatPickerPhotos => '照片'; + + @override + String get chatPickerCamera => '相机'; + + @override + String get chatPickerFiles => '文件'; + + @override + String get chatRecommendationYIAG => '希望以上内容对您有所帮助!这个解释对您有帮助吗?'; + + @override + String get chatRecommendationButtonDonate => '是的,一切都很好!'; + + @override + String get chatHistoryTitle => '聊天记录'; + + @override + String get failedToRetrieveChatSummary => '无法检索聊天摘要'; + + @override + String get chatSummaryCopiedToClipboard => '聊天摘要已复制到剪贴板'; +} + +/// The translations for Chinese, as used in China (`zh_CN`). +class ChatLocalizationZhCn extends ChatLocalizationZh { + ChatLocalizationZhCn() : super('zh_CN'); + + @override + String get title => '聊天'; + + @override + String get drawerTooltipNotifications => '通知'; + + @override + String get drawerTooltipHelp => '帮助'; + + @override + String get drawerTooltipClose => '关闭'; + + @override + String get drawerSectionTitleAccount => '帐户'; + + @override + String get drawerSectionProfile => '轮廓'; + + @override + String get drawerSectionAccountSettings => '帐户设置'; + + @override + String get drawerSectionDonateToSupport => '捐款支持'; + + @override + String get drawerSectionSubscription => '订阅'; + + @override + String get drawerSectionTitleChats => '聊天'; + + @override + String get drawerSectionChatHistory => '聊天记录'; + + @override + String get drawerSectionAttachedDocuments => '附件'; + + @override + String get drawerSectionTitleHowToUse => '如何使用'; + + @override + String get drawerSectionVideoTutorials => '视频教程'; + + @override + String get drawerSectionTitleLegal => '合法的'; + + @override + String get drawerSectionContactUs => '联系我们'; + + @override + String get drawerSectionBugReport => '错误报告'; + + @override + String get drawerSectionTermsAndConditions => '条款和条件'; + + @override + String get drawerSectionPrivacyPolicy => '隐私政策'; + + @override + String get drawerSectionTitleFeedback => '反馈'; + + @override + String get drawerSectionRateApp => '评价应用程序'; + + @override + String get drawerSectionShareWithFriends => '与朋友分享'; + + @override + String get drawerButtonLogOut => '登出'; + + @override + String get drawerBannerHelpOthersReceiveMedicalCare => '帮助他人获得医疗服务'; + + @override + String get drawerPlaceholderUser => '用户'; + + @override + String get drawerSubscriptionLabelPremiumFeaturesWithDoctorina => + 'Doctorina 的高级功能'; + + @override + String get drawerSubscriptionButtonGetPremiumFeatures => '得到'; + + @override + String get drawerLabelJoinUs => '加入我们'; + + @override + String get drawerTooltipVersion => '应用程序版本:'; + + @override + String get chatInputHintEnterMessage => '输入消息'; + + @override + String get chatInputTooltipAttachFile => '附加文件'; + + @override + String get chatInputTooltipDictateMessage => '口述信息'; + + @override + String get chatInputTooltipSendMessage => '发送消息'; + + @override + String get chatListSnackBarErrorFailedToFetchMessages => '无法获取消息'; + + @override + String get chatListLabelErrorFailedToFetchMessagesPleaseTryAgain => + '无法获取消息。请重试。'; + + @override + String get chatListTooltipFetchMessages => '获取消息'; + + @override + String get chatListLabelNoMessagesAvailable => '没有可用的消息。\n请发送消息以开始对话。'; + + @override + String get chatListHasConnection => '已连接'; + + @override + String get chatListNoConnection => '无连接'; + + @override + String get chatActionButtonTooltipSearch => '搜索'; + + @override + String get chatActionButtonTooltipFavorites => '收藏夹'; + + @override + String get chatActionButtonTooltipDownload => '下载'; + + @override + String get chatActionButtonTooltipPrintPdf => '打印PDF'; + + @override + String get chatActionButtonTooltipShareWithFriends => '与朋友分享'; + + @override + String get chatActionButtonTooltipNewChat => '新聊天'; + + @override + String get chatActionButtonTooltipChatList => '选择“聊天”'; + + @override + String get chatActionButtonTooltipShowDrawer => '显示抽屉'; + + @override + String get chatLabelNoChatAvailableRefresh => '没有可用的聊天。请刷新或创建新的聊天。'; + + @override + String get chatButtonRefreshChats => '刷新聊天'; + + @override + String get chatButtonCreateNewChat => '创建新聊天'; + + @override + String get chatContextMenuCopyMessage => '复制文本'; + + @override + String get chatStatusProcessingMessages => '正在输入...\n请稍等...'; + + @override + String get chatNoConnectionLabel => '请检查您的互联网连接'; + + @override + String get chatErrorMessageAlreadyProcessed => '该消息目前正在处理中。'; + + @override + String get chatErrorMessageTooLong => '消息太长。'; + + @override + String get chatRemoveAttachmentTooltip => '删除附件'; + + @override + String get chatStatusFailedMessage => '无法处理消息'; + + @override + String get chatActionButtonTooltipExportSummary => '导出为 PDF'; + + @override + String get chatPickerPhotos => '照片'; + + @override + String get chatPickerCamera => '相机'; + + @override + String get chatPickerFiles => '文件'; + + @override + String get chatRecommendationYIAG => '希望以上内容对您有所帮助!这个解释对您有帮助吗?'; + + @override + String get chatRecommendationButtonDonate => '是的,一切都很好!'; + + @override + String get chatHistoryTitle => '聊天记录'; + + @override + String get failedToRetrieveChatSummary => '无法检索聊天摘要'; + + @override + String get chatSummaryCopiedToClipboard => '聊天摘要已复制到剪贴板'; +} diff --git a/example/lib/src/generated/errors/errors_localization.dart b/example/lib/src/generated/errors/errors_localization.dart index b103267..d8da98d 100644 --- a/example/lib/src/generated/errors/errors_localization.dart +++ b/example/lib/src/generated/errors/errors_localization.dart @@ -6,10 +6,18 @@ import 'package:flutter/widgets.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:intl/intl.dart' as intl; +import 'errors_localization_ar.dart'; +import 'errors_localization_bn.dart'; import 'errors_localization_de.dart'; import 'errors_localization_en.dart'; import 'errors_localization_es.dart'; +import 'errors_localization_fr.dart'; +import 'errors_localization_hi.dart'; +import 'errors_localization_it.dart'; +import 'errors_localization_ko.dart'; +import 'errors_localization_pt.dart'; import 'errors_localization_ru.dart'; +import 'errors_localization_zh.dart'; // ignore_for_file: type=lint @@ -97,10 +105,20 @@ abstract class ErrorsLocalization { /// A list of this localizations delegate's supported locales. static const List supportedLocales = [ + Locale('ar'), + Locale('bn'), Locale('de'), Locale('en'), Locale('es'), - Locale('ru') + Locale('fr'), + Locale('hi'), + Locale('it'), + Locale('ko'), + Locale('pt'), + Locale('pt', 'BR'), + Locale('ru'), + Locale('zh'), + Locale('zh', 'CN') ]; /// Ошибка @@ -139,24 +157,72 @@ class _ErrorsLocalizationDelegate } @override - bool isSupported(Locale locale) => - ['de', 'en', 'es', 'ru'].contains(locale.languageCode); + bool isSupported(Locale locale) => [ + 'ar', + 'bn', + 'de', + 'en', + 'es', + 'fr', + 'hi', + 'it', + 'ko', + 'pt', + 'ru', + 'zh' + ].contains(locale.languageCode); @override bool shouldReload(_ErrorsLocalizationDelegate old) => false; } ErrorsLocalization lookupErrorsLocalization(Locale locale) { + // Lookup logic when language+country codes are specified. + switch (locale.languageCode) { + case 'pt': + { + switch (locale.countryCode) { + case 'BR': + return ErrorsLocalizationPtBr(); + } + break; + } + case 'zh': + { + switch (locale.countryCode) { + case 'CN': + return ErrorsLocalizationZhCn(); + } + break; + } + } + // Lookup logic when only language code is specified. switch (locale.languageCode) { + case 'ar': + return ErrorsLocalizationAr(); + case 'bn': + return ErrorsLocalizationBn(); case 'de': return ErrorsLocalizationDe(); case 'en': return ErrorsLocalizationEn(); case 'es': return ErrorsLocalizationEs(); + case 'fr': + return ErrorsLocalizationFr(); + case 'hi': + return ErrorsLocalizationHi(); + case 'it': + return ErrorsLocalizationIt(); + case 'ko': + return ErrorsLocalizationKo(); + case 'pt': + return ErrorsLocalizationPt(); case 'ru': return ErrorsLocalizationRu(); + case 'zh': + return ErrorsLocalizationZh(); } throw FlutterError( diff --git a/example/lib/src/generated/errors/errors_localization_ar.dart b/example/lib/src/generated/errors/errors_localization_ar.dart new file mode 100644 index 0000000..d80cfb7 --- /dev/null +++ b/example/lib/src/generated/errors/errors_localization_ar.dart @@ -0,0 +1,57 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'errors_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Arabic (`ar`). +class ErrorsLocalizationAr extends ErrorsLocalization { + ErrorsLocalizationAr([String locale = 'ar']) : super(locale); + + @override + String get error => 'حدث خطأ'; + + @override + String get unexpectedError => 'حدث خطأ غير متوقع'; + + @override + String authErrorMessages(String errorCode) { + String _temp0 = intl.Intl.selectLogic( + errorCode, + { + 'passwordLengthError': 'Password should be at least 6 characters', + 'invalidEmailOrPhoneNumberError': + 'Please provide valid email or a phone number in the international format. Examples: me@example.com and +1234567890987', + 'invalidEmailError': 'Email is not valid', + 'operationNotAllowedError': 'Operation is not allowed', + 'weakPasswordError': 'Password is too weak', + 'userTokenExpiredError': 'User token expired', + 'invalidPhoneNumberError': + 'Please provide phone numbers in the international format, starting with + and the country code.', + 'invalidActionCodeError': 'Action code is not valid', + 'networkRequestFailedError': 'Network request failed', + 'tooManyRequestsError': 'Too many requests', + 'acceptTermsAndConditionsError': + 'Please accept the terms and conditions and acknowledge the privacy policy.', + 'acceptAIConsentError': + 'Please acknowledge that consultations are with an AI and not a licensed medical professional.', + 'emailOrPhoneError': 'Email or phone error', + 'passwordError': 'Password error', + 'unknownError': 'Unknown error', + 'googleSSOError': 'Google SSO error', + 'emailAlreadyInUse': + 'The email address is already in use by another account.', + 'invalidCredentialError': 'Invalid credentials', + 'invalidAppCredentialError': 'Invalid app credentials', + 'invalidVerificationCodeError': 'Invalid verification code', + 'other': 'Unknown error', + }, + ); + return '$_temp0'; + } + + @override + String get bugReportSentText => 'تم إرسال تقرير الخطأ بنجاح.'; +} diff --git a/example/lib/src/generated/errors/errors_localization_bn.dart b/example/lib/src/generated/errors/errors_localization_bn.dart new file mode 100644 index 0000000..0774b87 --- /dev/null +++ b/example/lib/src/generated/errors/errors_localization_bn.dart @@ -0,0 +1,57 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'errors_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Bengali Bangla (`bn`). +class ErrorsLocalizationBn extends ErrorsLocalization { + ErrorsLocalizationBn([String locale = 'bn']) : super(locale); + + @override + String get error => 'একটি ত্রুটি ঘটেছে'; + + @override + String get unexpectedError => 'একটি অপ্রত্যাশিত ত্রুটি ঘটেছে৷'; + + @override + String authErrorMessages(String errorCode) { + String _temp0 = intl.Intl.selectLogic( + errorCode, + { + 'passwordLengthError': 'পাসওয়ার্ড কমপক্ষে ৬ অক্ষরের হতে হবে', + 'invalidEmailOrPhoneNumberError': + 'সঠিক ইমেইল বা আন্তর্জাতিক ফরম্যাটে ফোন নম্বর দিন। উদাহরণ: me@example.com এবং +1234567890987', + 'invalidEmailError': 'ইমেইল বৈধ নয়', + 'operationNotAllowedError': 'অপারেশন অনুমোদিত নয়', + 'weakPasswordError': 'পাসওয়ার্ড খুব দুর্বল', + 'userTokenExpiredError': 'ব্যবহারকারীর টোকেনের মেয়াদ শেষ হয়েছে', + 'invalidPhoneNumberError': + 'আন্তর্জাতিক ফরম্যাটে, + এবং দেশের কোড দিয়ে শুরু এমন ফোন নম্বর দিন।', + 'invalidActionCodeError': 'অ্যাকশন কোড বৈধ নয়', + 'networkRequestFailedError': 'নেটওয়ার্ক অনুরোধ ব্যর্থ হয়েছে', + 'tooManyRequestsError': 'অনুরোধ খুব বেশি', + 'acceptTermsAndConditionsError': + 'শর্তাবলীতে সম্মতি দিন এবং গোপনীয়তা নীতিমালা স্বীকার করুন।', + 'acceptAIConsentError': + 'অনুগ্রহ করে নিশ্চিত করুন যে পরামর্শটি একটি AI এর সাথে, কোনো লাইসেন্সধারী চিকিৎসক নন।', + 'emailOrPhoneError': 'ইমেইল বা ফোন ত্রুটি', + 'passwordError': 'পাসওয়ার্ড ত্রুটি', + 'unknownError': 'অজানা ত্রুটি', + 'googleSSOError': 'Google SSO ত্রুটি', + 'emailAlreadyInUse': + 'এই ইমেইল ঠিকানাটি ইতিমধ্যেই অন্য একটি অ্যাকাউন্টে ব্যবহৃত হচ্ছে।', + 'invalidCredentialError': 'অবৈধ ক্রেডেনশিয়াল', + 'invalidAppCredentialError': 'অ্যাপের ক্রেডেনশিয়াল অবৈধ', + 'invalidVerificationCodeError': 'যাচাইকরণ কোড অবৈধ', + 'other': 'অজানা ত্রুটি', + }, + ); + return '$_temp0\r\n'; + } + + @override + String get bugReportSentText => 'বাগ রিপোর্ট সফলভাবে পাঠানো হয়েছে।'; +} diff --git a/example/lib/src/generated/errors/errors_localization_fr.dart b/example/lib/src/generated/errors/errors_localization_fr.dart new file mode 100644 index 0000000..ba4bb1c --- /dev/null +++ b/example/lib/src/generated/errors/errors_localization_fr.dart @@ -0,0 +1,58 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'errors_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for French (`fr`). +class ErrorsLocalizationFr extends ErrorsLocalization { + ErrorsLocalizationFr([String locale = 'fr']) : super(locale); + + @override + String get error => 'Une erreur s\'est produite'; + + @override + String get unexpectedError => 'Une erreur inattendue s\'est produite'; + + @override + String authErrorMessages(String errorCode) { + String _temp0 = intl.Intl.selectLogic( + errorCode, + { + 'passwordLengthError': + 'Le mot de passe doit contenir au moins 6 caractères', + 'invalidEmailOrPhoneNumberError': + 'Veuillez fournir un email valide ou un numéro de téléphone au format international. Exemples : me@example.com et +1234567890987', + 'invalidEmailError': 'L\'email n\'est pas valide', + 'operationNotAllowedError': 'Opération non autorisée', + 'weakPasswordError': 'Le mot de passe est trop faible', + 'userTokenExpiredError': 'Le jeton utilisateur a expiré', + 'invalidPhoneNumberError': + 'Veuillez fournir des numéros de téléphone au format international, commençant par + et l\'indicatif du pays.', + 'invalidActionCodeError': 'Le code d\'action n\'est pas valide', + 'networkRequestFailedError': 'La requête réseau a échoué', + 'tooManyRequestsError': 'Trop de demandes', + 'acceptTermsAndConditionsError': + 'Veuillez accepter les termes et conditions et reconnaître la politique de confidentialité.', + 'acceptAIConsentError': + 'Veuillez reconnaître que les consultations se font avec une IA et non un professionnel de santé agréé.', + 'emailOrPhoneError': 'Erreur d\'email ou de téléphone', + 'passwordError': 'Erreur de mot de passe', + 'unknownError': 'Erreur inconnue', + 'googleSSOError': 'Erreur Google SSO', + 'emailAlreadyInUse': + 'L\'adresse email est déjà utilisée par un autre compte.', + 'invalidCredentialError': 'Identifiants invalides', + 'invalidAppCredentialError': 'Identifiants d\'application invalides', + 'invalidVerificationCodeError': 'Code de vérification invalide', + 'other': 'Erreur inconnue', + }, + ); + return '$_temp0\n'; + } + + @override + String get bugReportSentText => 'Rapport de bogue envoyé avec succès.'; +} diff --git a/example/lib/src/generated/errors/errors_localization_hi.dart b/example/lib/src/generated/errors/errors_localization_hi.dart new file mode 100644 index 0000000..c363715 --- /dev/null +++ b/example/lib/src/generated/errors/errors_localization_hi.dart @@ -0,0 +1,57 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'errors_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Hindi (`hi`). +class ErrorsLocalizationHi extends ErrorsLocalization { + ErrorsLocalizationHi([String locale = 'hi']) : super(locale); + + @override + String get error => 'एक त्रुटि पाई गई'; + + @override + String get unexpectedError => 'एक अप्रत्याशित त्रुटि हुई'; + + @override + String authErrorMessages(String errorCode) { + String _temp0 = intl.Intl.selectLogic( + errorCode, + { + 'passwordLengthError': 'पासवर्ड कम से कम 6 अक्षरों का होना चाहिए', + 'invalidEmailOrPhoneNumberError': + 'कृपया मान्य ईमेल या अंतर्राष्ट्रीय प्रारूप में फोन नंबर प्रदान करें। उदाहरण: me@example.com और +1234567890987', + 'invalidEmailError': 'ईमेल मान्य नहीं है', + 'operationNotAllowedError': 'क्रिया की अनुमति नहीं है', + 'weakPasswordError': 'पासवर्ड बहुत कमजोर है', + 'userTokenExpiredError': 'उपयोगकर्ता टोकन की समय सीमा समाप्त हो गई', + 'invalidPhoneNumberError': + 'कृपया फोन नंबर अंतर्राष्ट्रीय प्रारूप में प्रदान करें, जो + और देश कोड से शुरू होता हो।', + 'invalidActionCodeError': 'क्रिया कोड मान्य नहीं है', + 'networkRequestFailedError': 'नेटवर्क अनुरोध विफल हुआ', + 'tooManyRequestsError': 'बहुत अधिक अनुरोध', + 'acceptTermsAndConditionsError': + 'कृपया नियम और शर्तों को स्वीकार करें और गोपनीयता नीति को स्वीकार करने की पुष्टि करें।', + 'acceptAIConsentError': + 'कृपया स्वीकार करें कि परामर्श एक AI के साथ है, न कि लाइसेंस प्राप्त चिकित्सा पेशेवर के साथ।', + 'emailOrPhoneError': 'ईमेल या फोन त्रुटि', + 'passwordError': 'पासवर्ड त्रुटि', + 'unknownError': 'अज्ञात त्रुटि', + 'googleSSOError': 'Google SSO त्रुटि', + 'emailAlreadyInUse': + 'यह ईमेल पता पहले से ही किसी अन्य खाते द्वारा उपयोग में है।', + 'invalidCredentialError': 'अमान्य प्रमाणपत्र', + 'invalidAppCredentialError': 'अमान्य ऐप प्रमाणपत्र', + 'invalidVerificationCodeError': 'अमान्य सत्यापन कोड', + 'other': 'अज्ञात त्रुटि', + }, + ); + return '$_temp0'; + } + + @override + String get bugReportSentText => 'बग रिपोर्ट सफलतापूर्वक भेजी गई.'; +} diff --git a/example/lib/src/generated/errors/errors_localization_it.dart b/example/lib/src/generated/errors/errors_localization_it.dart new file mode 100644 index 0000000..7250856 --- /dev/null +++ b/example/lib/src/generated/errors/errors_localization_it.dart @@ -0,0 +1,57 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'errors_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Italian (`it`). +class ErrorsLocalizationIt extends ErrorsLocalization { + ErrorsLocalizationIt([String locale = 'it']) : super(locale); + + @override + String get error => 'Si è verificato un errore'; + + @override + String get unexpectedError => 'Si è verificato un errore imprevisto'; + + @override + String authErrorMessages(String errorCode) { + String _temp0 = intl.Intl.selectLogic( + errorCode, + { + 'passwordLengthError': 'La password deve contenere almeno 6 caratteri', + 'invalidEmailOrPhoneNumberError': + 'Fornisci un\'email valida o un numero di telefono nel formato internazionale. Esempi: me@example.com e +1234567890987', + 'invalidEmailError': 'L\'email non è valida', + 'operationNotAllowedError': 'Operazione non consentita', + 'weakPasswordError': 'La password è troppo debole', + 'userTokenExpiredError': 'Il token utente è scaduto', + 'invalidPhoneNumberError': + 'Fornisci numeri di telefono nel formato internazionale, iniziando con + e il prefisso del paese.', + 'invalidActionCodeError': 'Il codice azione non è valido', + 'networkRequestFailedError': 'Richiesta di rete non riuscita', + 'tooManyRequestsError': 'Troppe richieste', + 'acceptTermsAndConditionsError': + 'Accetta i termini e le condizioni e conferma la politica sulla privacy.', + 'acceptAIConsentError': + 'Riconosci che le consulenze sono con un\'IA e non con un medico abilitato.', + 'emailOrPhoneError': 'Errore email o telefono', + 'passwordError': 'Errore password', + 'unknownError': 'Errore sconosciuto', + 'googleSSOError': 'Errore Google SSO', + 'emailAlreadyInUse': + 'L\'indirizzo email è già utilizzato da un altro account.', + 'invalidCredentialError': 'Credenziali non valide', + 'invalidAppCredentialError': 'Credenziali app non valide', + 'invalidVerificationCodeError': 'Codice di verifica non valido', + 'other': 'Errore sconosciuto', + }, + ); + return '$_temp0\n'; + } + + @override + String get bugReportSentText => 'Segnalazione bug inviata con successo.'; +} diff --git a/example/lib/src/generated/errors/errors_localization_ko.dart b/example/lib/src/generated/errors/errors_localization_ko.dart new file mode 100644 index 0000000..e1138e0 --- /dev/null +++ b/example/lib/src/generated/errors/errors_localization_ko.dart @@ -0,0 +1,53 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'errors_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Korean (`ko`). +class ErrorsLocalizationKo extends ErrorsLocalization { + ErrorsLocalizationKo([String locale = 'ko']) : super(locale); + + @override + String get error => '오류가 발생했습니다'; + + @override + String get unexpectedError => '예상치 못한 오류가 발생했습니다.'; + + @override + String authErrorMessages(String errorCode) { + String _temp0 = intl.Intl.selectLogic( + errorCode, + { + 'passwordLengthError': '비밀번호는 최소 6자 이상이어야 합니다', + 'invalidEmailOrPhoneNumberError': + '유효한 이메일 또는 국제 형식의 전화번호를 입력하세요. 예: me@example.com, +1234567890987', + 'invalidEmailError': '유효하지 않은 이메일입니다', + 'operationNotAllowedError': '허용되지 않은 작업입니다', + 'weakPasswordError': '비밀번호가 너무 약합니다', + 'userTokenExpiredError': '사용자 토큰이 만료되었습니다', + 'invalidPhoneNumberError': '국가 코드와 + 로 시작하는 국제 형식의 전화번호를 입력하세요.', + 'invalidActionCodeError': '동작 코드가 유효하지 않습니다', + 'networkRequestFailedError': '네트워크 요청 실패', + 'tooManyRequestsError': '요청이 너무 많습니다', + 'acceptTermsAndConditionsError': '약관에 동의하고 개인정보 보호정책을 확인하세요.', + 'acceptAIConsentError': '상담은 공인 의료 전문가가 아닌 AI와 이루어짐을 확인하세요.', + 'emailOrPhoneError': '이메일 또는 전화 오류', + 'passwordError': '비밀번호 오류', + 'unknownError': '알 수 없는 오류', + 'googleSSOError': 'Google SSO 오류', + 'emailAlreadyInUse': '해당 이메일 주소는 이미 다른 계정에서 사용 중입니다.', + 'invalidCredentialError': '유효하지 않은 자격 증명입니다', + 'invalidAppCredentialError': '유효하지 않은 앱 자격 증명입니다', + 'invalidVerificationCodeError': '유효하지 않은 인증 코드입니다', + 'other': '알 수 없는 오류', + }, + ); + return '$_temp0\n'; + } + + @override + String get bugReportSentText => '버그 보고서가 성공적으로 전송되었습니다.'; +} diff --git a/example/lib/src/generated/errors/errors_localization_pt.dart b/example/lib/src/generated/errors/errors_localization_pt.dart new file mode 100644 index 0000000..88ce2b3 --- /dev/null +++ b/example/lib/src/generated/errors/errors_localization_pt.dart @@ -0,0 +1,105 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'errors_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Portuguese (`pt`). +class ErrorsLocalizationPt extends ErrorsLocalization { + ErrorsLocalizationPt([String locale = 'pt']) : super(locale); + + @override + String get error => 'Ocorreu um erro'; + + @override + String get unexpectedError => 'Ocorreu um erro inesperado'; + + @override + String authErrorMessages(String errorCode) { + String _temp0 = intl.Intl.selectLogic( + errorCode, + { + 'passwordLengthError': 'A senha deve ter pelo menos 6 caracteres', + 'invalidEmailOrPhoneNumberError': + 'Informe um e-mail válido ou um número de telefone no formato internacional. Exemplos: me@example.com e +1234567890987', + 'invalidEmailError': 'E-mail inválido', + 'operationNotAllowedError': 'Operação não permitida', + 'weakPasswordError': 'Senha muito fraca', + 'userTokenExpiredError': 'Token do usuário expirou', + 'invalidPhoneNumberError': + 'Informe números de telefone no formato internacional, começando com + e o código do país.', + 'invalidActionCodeError': 'Código de ação inválido', + 'networkRequestFailedError': 'Falha na requisição de rede', + 'tooManyRequestsError': 'Muitas solicitações', + 'acceptTermsAndConditionsError': + 'Aceite os termos e condições e reconheça a política de privacidade.', + 'acceptAIConsentError': + 'Reconheça que as consultas são com uma IA e não com um profissional médico licenciado.', + 'emailOrPhoneError': 'Erro de e-mail ou telefone', + 'passwordError': 'Erro de senha', + 'unknownError': 'Erro desconhecido', + 'googleSSOError': 'Erro no SSO do Google', + 'emailAlreadyInUse': 'Este e-mail já está em uso por outra conta.', + 'invalidCredentialError': 'Credenciais inválidas', + 'invalidAppCredentialError': 'Credenciais do aplicativo inválidas', + 'invalidVerificationCodeError': 'Código de verificação inválido', + 'other': 'Erro desconhecido', + }, + ); + return '$_temp0\n'; + } + + @override + String get bugReportSentText => 'Relatório de bug enviado com sucesso.'; +} + +/// The translations for Portuguese, as used in Brazil (`pt_BR`). +class ErrorsLocalizationPtBr extends ErrorsLocalizationPt { + ErrorsLocalizationPtBr() : super('pt_BR'); + + @override + String get error => 'Ocorreu um erro'; + + @override + String get unexpectedError => 'Ocorreu um erro inesperado'; + + @override + String authErrorMessages(String errorCode) { + String _temp0 = intl.Intl.selectLogic( + errorCode, + { + 'passwordLengthError': 'A senha deve ter pelo menos 6 caracteres', + 'invalidEmailOrPhoneNumberError': + 'Informe um e-mail válido ou um número de telefone no formato internacional. Exemplos: me@example.com e +1234567890987', + 'invalidEmailError': 'E-mail inválido', + 'operationNotAllowedError': 'Operação não permitida', + 'weakPasswordError': 'Senha muito fraca', + 'userTokenExpiredError': 'Token do usuário expirou', + 'invalidPhoneNumberError': + 'Informe números de telefone no formato internacional, começando com + e o código do país.', + 'invalidActionCodeError': 'Código de ação inválido', + 'networkRequestFailedError': 'Falha na requisição de rede', + 'tooManyRequestsError': 'Muitas solicitações', + 'acceptTermsAndConditionsError': + 'Aceite os termos e condições e reconheça a política de privacidade.', + 'acceptAIConsentError': + 'Reconheça que as consultas são com uma IA e não com um profissional médico licenciado.', + 'emailOrPhoneError': 'Erro de e-mail ou telefone', + 'passwordError': 'Erro de senha', + 'unknownError': 'Erro desconhecido', + 'googleSSOError': 'Erro no SSO do Google', + 'emailAlreadyInUse': 'Este e-mail já está em uso por outra conta.', + 'invalidCredentialError': 'Credenciais inválidas', + 'invalidAppCredentialError': 'Credenciais do aplicativo inválidas', + 'invalidVerificationCodeError': 'Código de verificação inválido', + 'other': 'Erro desconhecido', + }, + ); + return '$_temp0\n'; + } + + @override + String get bugReportSentText => 'Relatório de bug enviado com sucesso.'; +} diff --git a/example/lib/src/generated/errors/errors_localization_zh.dart b/example/lib/src/generated/errors/errors_localization_zh.dart new file mode 100644 index 0000000..1f6b999 --- /dev/null +++ b/example/lib/src/generated/errors/errors_localization_zh.dart @@ -0,0 +1,99 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'errors_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Chinese (`zh`). +class ErrorsLocalizationZh extends ErrorsLocalization { + ErrorsLocalizationZh([String locale = 'zh']) : super(locale); + + @override + String get error => '发生错误'; + + @override + String get unexpectedError => '发生意外错误'; + + @override + String authErrorMessages(String errorCode) { + String _temp0 = intl.Intl.selectLogic( + errorCode, + { + 'passwordLengthError': '密码长度至少为 6 个字符', + 'invalidEmailOrPhoneNumberError': + '请提供有效的电子邮箱或符合国际格式的电话号码。例如:me@example.com 和 +1234567890987', + 'invalidEmailError': '电子邮箱无效', + 'operationNotAllowedError': '不允许的操作', + 'weakPasswordError': '密码太弱', + 'userTokenExpiredError': '用户令牌已过期', + 'invalidPhoneNumberError': '请提供以 + 和国家代码开头的国际格式电话号码。', + 'invalidActionCodeError': '操作代码无效', + 'networkRequestFailedError': '网络请求失败', + 'tooManyRequestsError': '请求过多', + 'acceptTermsAndConditionsError': '请接受条款与条件并确认隐私政策。', + 'acceptAIConsentError': '请确认咨询对象为 AI,而非持证医疗专业人士。', + 'emailOrPhoneError': '邮箱或电话号码错误', + 'passwordError': '密码错误', + 'unknownError': '未知错误', + 'googleSSOError': 'Google SSO 错误', + 'emailAlreadyInUse': '该电子邮箱已被其他账户使用。', + 'invalidCredentialError': '凭据无效', + 'invalidAppCredentialError': '应用凭据无效', + 'invalidVerificationCodeError': '验证码无效', + 'other': '未知错误', + }, + ); + return '$_temp0\n'; + } + + @override + String get bugReportSentText => '错误报告发送成功。'; +} + +/// The translations for Chinese, as used in China (`zh_CN`). +class ErrorsLocalizationZhCn extends ErrorsLocalizationZh { + ErrorsLocalizationZhCn() : super('zh_CN'); + + @override + String get error => '发生错误'; + + @override + String get unexpectedError => '发生意外错误'; + + @override + String authErrorMessages(String errorCode) { + String _temp0 = intl.Intl.selectLogic( + errorCode, + { + 'passwordLengthError': '密码长度至少为 6 个字符', + 'invalidEmailOrPhoneNumberError': + '请提供有效的电子邮箱或符合国际格式的电话号码。例如:me@example.com 和 +1234567890987', + 'invalidEmailError': '电子邮箱无效', + 'operationNotAllowedError': '不允许的操作', + 'weakPasswordError': '密码太弱', + 'userTokenExpiredError': '用户令牌已过期', + 'invalidPhoneNumberError': '请提供以 + 和国家代码开头的国际格式电话号码。', + 'invalidActionCodeError': '操作代码无效', + 'networkRequestFailedError': '网络请求失败', + 'tooManyRequestsError': '请求过多', + 'acceptTermsAndConditionsError': '请接受条款与条件并确认隐私政策。', + 'acceptAIConsentError': '请确认咨询对象为 AI,而非持证医疗专业人士。', + 'emailOrPhoneError': '邮箱或电话号码错误', + 'passwordError': '密码错误', + 'unknownError': '未知错误', + 'googleSSOError': 'Google SSO 错误', + 'emailAlreadyInUse': '该电子邮箱已被其他账户使用。', + 'invalidCredentialError': '凭据无效', + 'invalidAppCredentialError': '应用凭据无效', + 'invalidVerificationCodeError': '验证码无效', + 'other': '未知错误', + }, + ); + return '$_temp0\n'; + } + + @override + String get bugReportSentText => '错误报告发送成功。'; +} diff --git a/example/lib/src/generated/locales.dart b/example/lib/src/generated/locales.dart new file mode 100644 index 0000000..18391fe --- /dev/null +++ b/example/lib/src/generated/locales.dart @@ -0,0 +1,41 @@ +// This file is generated, do not edit it manually! +// ignore_for_file: directives_ordering + +import 'dart:ui' show Locale; + +/// Supported locales for the application. +abstract final class Locales { + const Locales._(); + + static const Locale en = Locale('en'); + static const Locale ru = Locale('ru'); + static const Locale es = Locale('es'); + static const Locale de = Locale('de'); + static const Locale hi = Locale('hi'); + static const Locale it = Locale('it'); + static const Locale fr = Locale('fr'); + static const Locale pt$BR = Locale('pt', 'BR'); + static const Locale zh$CN = Locale('zh', 'CN'); + static const Locale ko = Locale('ko'); + static const Locale bn = Locale('bn'); + static const Locale ar = Locale('ar'); + static const Locale pt = Locale('pt'); + static const Locale zh = Locale('zh'); + + static const List values = [ + en, + ru, + es, + de, + hi, + it, + fr, + pt$BR, + zh$CN, + ko, + bn, + ar, + pt, + zh + ]; +} diff --git a/example/lib/src/generated/pay/pay_localization.dart b/example/lib/src/generated/pay/pay_localization.dart index 1f34125..8e4456f 100644 --- a/example/lib/src/generated/pay/pay_localization.dart +++ b/example/lib/src/generated/pay/pay_localization.dart @@ -6,10 +6,18 @@ import 'package:flutter/widgets.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:intl/intl.dart' as intl; +import 'pay_localization_ar.dart'; +import 'pay_localization_bn.dart'; import 'pay_localization_de.dart'; import 'pay_localization_en.dart'; import 'pay_localization_es.dart'; +import 'pay_localization_fr.dart'; +import 'pay_localization_hi.dart'; +import 'pay_localization_it.dart'; +import 'pay_localization_ko.dart'; +import 'pay_localization_pt.dart'; import 'pay_localization_ru.dart'; +import 'pay_localization_zh.dart'; // ignore_for_file: type=lint @@ -97,10 +105,20 @@ abstract class PayLocalization { /// A list of this localizations delegate's supported locales. static const List supportedLocales = [ + Locale('ar'), + Locale('bn'), Locale('de'), Locale('en'), Locale('es'), - Locale('ru') + Locale('fr'), + Locale('hi'), + Locale('it'), + Locale('ko'), + Locale('pt'), + Locale('pt', 'BR'), + Locale('ru'), + Locale('zh'), + Locale('zh', 'CN') ]; /// Заголовок экрана @@ -114,6 +132,330 @@ abstract class PayLocalization { /// In en, this message translates to: /// **'Button example'** String get exampleButton; + + /// Кнопка доната после рекомендаций + /// + /// In en, this message translates to: + /// **'Yes, it\'s all good!'** + String get donationYesItsAllGoodButton; + + /// No description provided for @everyContributionHealsTitle. + /// + /// In en, this message translates to: + /// **'Every contribution heals!'** + String get everyContributionHealsTitle; + + /// No description provided for @ifThisHelpedYouConsiderSupportingSubtitle. + /// + /// In en, this message translates to: + /// **'Your contribution helps fund free advice for others in need.'** + String get ifThisHelpedYouConsiderSupportingSubtitle; + + /// No description provided for @payWhatFeelsRightLabel. + /// + /// In en, this message translates to: + /// **'Pay what feels right,'** + String get payWhatFeelsRightLabel; + + /// No description provided for @orKeepUsingDoctorinaForFreeLabel. + /// + /// In en, this message translates to: + /// **'or keep using Doctorina for free, thanks to others who chose to give.'** + String get orKeepUsingDoctorinaForFreeLabel; + + /// No description provided for @oneTimeLabel. + /// + /// In en, this message translates to: + /// **'One-Time'** + String get oneTimeLabel; + + /// No description provided for @monthlyLabel. + /// + /// In en, this message translates to: + /// **'Monthly'** + String get monthlyLabel; + + /// No description provided for @chooseMonthlyDonationAmountLabel. + /// + /// In en, this message translates to: + /// **'Choose monthly donation amount'** + String get chooseMonthlyDonationAmountLabel; + + /// Сумма подписки еще не выбрана + /// + /// In en, this message translates to: + /// **'You are about to subscribe to a monthly plan.'** + String get subscriptionNoAmount; + + /// Subscription info text with amount + /// + /// In en, this message translates to: + /// **'You are subscribing to a monthly plan for {amount}/month.'** + String subscriptionAmount(String amount); + + /// Subscription info text with amount, Terms of Service and Privacy Policy placeholders as tappable spans. + /// + /// In en, this message translates to: + /// **'Payment will be charged to your account at confirmation of purchase. The subscription automatically renews every month unless auto-renew is turned off at least 24 hours before the end of the current period. You can manage or cancel your subscription anytime in your account settings. By proceeding, you agree to our {termsOfService} and {privacyPolicy}.'** + String subscriptionInfo(String termsOfService, String privacyPolicy); + + /// No description provided for @chooseOneTimeDonationAmountLabel. + /// + /// In en, this message translates to: + /// **'Choose one-time donation amount'** + String get chooseOneTimeDonationAmountLabel; + + /// No description provided for @mostPeopleGiveHint. + /// + /// In en, this message translates to: + /// **'Most people give \$7–\$15'** + String get mostPeopleGiveHint; + + /// No description provided for @selectCurrencyTooltip. + /// + /// In en, this message translates to: + /// **'Select currency'** + String get selectCurrencyTooltip; + + /// No description provided for @processingPaymentSemantics. + /// + /// In en, this message translates to: + /// **'Processing payment'** + String get processingPaymentSemantics; + + /// Shown when processing a one-time payment, with currency code and amount placeholders. + /// + /// In en, this message translates to: + /// **'Processing one-time payment of {currency} {amount}'** + String processingOneTimePaymentSemantics(String currency, String amount); + + /// Shown when processing a monthly payment with amount placeholder. + /// + /// In en, this message translates to: + /// **'Processing monthly payment of {amount}'** + String processingMonthlyPaymentSemantics(String amount); + + /// No description provided for @thankYouTitle. + /// + /// In en, this message translates to: + /// **'Thank you!'** + String get thankYouTitle; + + /// No description provided for @thankYouSubtitle. + /// + /// In en, this message translates to: + /// **'Now even more people will receive free advice — your support is truly invaluable.'** + String get thankYouSubtitle; + + /// No description provided for @youContributedLabel. + /// + /// In en, this message translates to: + /// **'You contributed:'** + String get youContributedLabel; + + /// No description provided for @perMonth. + /// + /// In en, this message translates to: + /// **'/ month'** + String get perMonth; + + /// No description provided for @returnToTheMainScreenButton. + /// + /// In en, this message translates to: + /// **'Return to the main screen'** + String get returnToTheMainScreenButton; + + /// No description provided for @termsOfServiceLabel. + /// + /// In en, this message translates to: + /// **'Terms Of Service'** + String get termsOfServiceLabel; + + /// No description provided for @privacyPolicyLabel. + /// + /// In en, this message translates to: + /// **'Privacy Policy'** + String get privacyPolicyLabel; + + /// No description provided for @donateButton. + /// + /// In en, this message translates to: + /// **'Donate'** + String get donateButton; + + /// No description provided for @manageSubscriptionTitle. + /// + /// In en, this message translates to: + /// **'Manage subscription'** + String get manageSubscriptionTitle; + + /// No description provided for @subscriptionStatusActiveLabel. + /// + /// In en, this message translates to: + /// **'Active'** + String get subscriptionStatusActiveLabel; + + /// No description provided for @subscriptionStatusCanceledLabel. + /// + /// In en, this message translates to: + /// **'Canceled'** + String get subscriptionStatusCanceledLabel; + + /// No description provided for @subscriptionStatusPausedLabel. + /// + /// In en, this message translates to: + /// **'Paused'** + String get subscriptionStatusPausedLabel; + + /// No description provided for @subscriptionStatusPendingLabel. + /// + /// In en, this message translates to: + /// **'Pending'** + String get subscriptionStatusPendingLabel; + + /// No description provided for @subscriptionStatusCreatedLabel. + /// + /// In en, this message translates to: + /// **'Created'** + String get subscriptionStatusCreatedLabel; + + /// No description provided for @subscriptionStatusTimeoutLabel. + /// + /// In en, this message translates to: + /// **'Timeout'** + String get subscriptionStatusTimeoutLabel; + + /// No description provided for @subscriptionStatusUnknownLabel. + /// + /// In en, this message translates to: + /// **'Unknown'** + String get subscriptionStatusUnknownLabel; + + /// No description provided for @subscriptionDoctorinaContributor. + /// + /// In en, this message translates to: + /// **'Doctorina contributor'** + String get subscriptionDoctorinaContributor; + + /// No description provided for @subscriptionRenews. + /// + /// In en, this message translates to: + /// **'Renews'** + String get subscriptionRenews; + + /// No description provided for @subscriptionCancelButton. + /// + /// In en, this message translates to: + /// **'Cancel subscription'** + String get subscriptionCancelButton; + + /// No description provided for @subscriptionAreYouSureDialogTitle. + /// + /// In en, this message translates to: + /// **'Are you sure?'** + String get subscriptionAreYouSureDialogTitle; + + /// No description provided for @subscriptionAreYouSureDialogText. + /// + /// In en, this message translates to: + /// **'Your monthly support keeps Doctorina free for people who rely on it but can’t afford to pay. \n\nYour subscription funds at least 10 free consultations each month.\n
If you leave, fewer patients will get the help they need.'** + String get subscriptionAreYouSureDialogText; + + /// No description provided for @subscriptionAreYouSureDialogKeepButton. + /// + /// In en, this message translates to: + /// **'Keep subscription'** + String get subscriptionAreYouSureDialogKeepButton; + + /// No description provided for @subscriptionAreYouSureDialogCancelButton. + /// + /// In en, this message translates to: + /// **'Cancel anyway'** + String get subscriptionAreYouSureDialogCancelButton; + + /// No description provided for @subscriptionYourMonthlySupportCanceledNotification. + /// + /// In en, this message translates to: + /// **'Your Monthly support \nhas been successfully canceled.'** + String get subscriptionYourMonthlySupportCanceledNotification; + + /// No description provided for @subscriptionMalformed. + /// + /// In en, this message translates to: + /// **'Incorrect subscription data'** + String get subscriptionMalformed; + + /// No description provided for @subscriptionSignUpForMonthlySupportButton. + /// + /// In en, this message translates to: + /// **'Sign up for monthly support to have it appear here.'** + String get subscriptionSignUpForMonthlySupportButton; + + /// No description provided for @subscriptionNoSubscriptionsYet. + /// + /// In en, this message translates to: + /// **'No subscriptions yet'** + String get subscriptionNoSubscriptionsYet; + + /// No description provided for @subscriptionCreatedAtDateLabel. + /// + /// In en, this message translates to: + /// **'Subscription date'** + String get subscriptionCreatedAtDateLabel; + + /// No description provided for @subscriptionExpiresAtDateLabel. + /// + /// In en, this message translates to: + /// **'Expires'** + String get subscriptionExpiresAtDateLabel; + + /// No description provided for @subscriptionSubscriptionIdLabel. + /// + /// In en, this message translates to: + /// **'Subscription ID'** + String get subscriptionSubscriptionIdLabel; + + /// No description provided for @subscriptionProductIdLabel. + /// + /// In en, this message translates to: + /// **'Product ID'** + String get subscriptionProductIdLabel; + + /// No description provided for @subscriptionDialogOkButton. + /// + /// In en, this message translates to: + /// **'Ok'** + String get subscriptionDialogOkButton; + + /// No description provided for @errorProcessDonationTitle. + /// + /// In en, this message translates to: + /// **'We couldn’t proceed your payment'** + String get errorProcessDonationTitle; + + /// No description provided for @errorProcessDonationSubtitle. + /// + /// In en, this message translates to: + /// **'Something went wrong with the payment.\nPlease try again.'** + String get errorProcessDonationSubtitle; + + /// No description provided for @errorProcessDonationRetryButton. + /// + /// In en, this message translates to: + /// **'Retry'** + String get errorProcessDonationRetryButton; + + /// No description provided for @processingDonationTitle. + /// + /// In en, this message translates to: + /// **'Processing payment'** + String get processingDonationTitle; + + /// No description provided for @processingDonationStripeSubtitle. + /// + /// In en, this message translates to: + /// **'You’ll complete your purchase on Stripe’s secure checkout page.'** + String get processingDonationStripeSubtitle; } class _PayLocalizationDelegate extends LocalizationsDelegate { @@ -125,24 +467,72 @@ class _PayLocalizationDelegate extends LocalizationsDelegate { } @override - bool isSupported(Locale locale) => - ['de', 'en', 'es', 'ru'].contains(locale.languageCode); + bool isSupported(Locale locale) => [ + 'ar', + 'bn', + 'de', + 'en', + 'es', + 'fr', + 'hi', + 'it', + 'ko', + 'pt', + 'ru', + 'zh' + ].contains(locale.languageCode); @override bool shouldReload(_PayLocalizationDelegate old) => false; } PayLocalization lookupPayLocalization(Locale locale) { + // Lookup logic when language+country codes are specified. + switch (locale.languageCode) { + case 'pt': + { + switch (locale.countryCode) { + case 'BR': + return PayLocalizationPtBr(); + } + break; + } + case 'zh': + { + switch (locale.countryCode) { + case 'CN': + return PayLocalizationZhCn(); + } + break; + } + } + // Lookup logic when only language code is specified. switch (locale.languageCode) { + case 'ar': + return PayLocalizationAr(); + case 'bn': + return PayLocalizationBn(); case 'de': return PayLocalizationDe(); case 'en': return PayLocalizationEn(); case 'es': return PayLocalizationEs(); + case 'fr': + return PayLocalizationFr(); + case 'hi': + return PayLocalizationHi(); + case 'it': + return PayLocalizationIt(); + case 'ko': + return PayLocalizationKo(); + case 'pt': + return PayLocalizationPt(); case 'ru': return PayLocalizationRu(); + case 'zh': + return PayLocalizationZh(); } throw FlutterError( diff --git a/example/lib/src/generated/pay/pay_localization_ar.dart b/example/lib/src/generated/pay/pay_localization_ar.dart new file mode 100644 index 0000000..17ddc02 --- /dev/null +++ b/example/lib/src/generated/pay/pay_localization_ar.dart @@ -0,0 +1,196 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'pay_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Arabic (`ar`). +class PayLocalizationAr extends PayLocalization { + PayLocalizationAr([String locale = 'ar']) : super(locale); + + @override + String get title => 'قسط'; + + @override + String get exampleButton => 'مثال على الزر'; + + @override + String get donationYesItsAllGoodButton => 'نعم، كل شيء جيد!'; + + @override + String get everyContributionHealsTitle => 'كل مساهمة تشفي!'; + + @override + String get ifThisHelpedYouConsiderSupportingSubtitle => + 'تساهم مساهمتك في تمويل تقديم المشورة المجانية للآخرين المحتاجين.'; + + @override + String get payWhatFeelsRightLabel => 'ادفع ما تشعر أنه مناسب'; + + @override + String get orKeepUsingDoctorinaForFreeLabel => + 'أو استمر في استخدام Doctorina مجانًا، وذلك بفضل الآخرين الذين اختاروا التبرع.'; + + @override + String get oneTimeLabel => 'لمرة واحدة'; + + @override + String get monthlyLabel => 'شهريا'; + + @override + String get chooseMonthlyDonationAmountLabel => 'اختر مبلغ التبرع الشهري'; + + @override + String get subscriptionNoAmount => 'أنت على وشك الاشتراك في خطة شهرية.'; + + @override + String subscriptionAmount(String amount) { + return 'لقد قمت بالاشتراك في خطة شهرية بمبلغ $amount/الشهر.'; + } + + @override + String subscriptionInfo(String termsOfService, String privacyPolicy) { + return 'سيتم خصم المبلغ من حسابك عند تأكيد الشراء. يُجدد الاشتراك تلقائيًا شهريًا ما لم يتم إيقاف التجديد التلقائي قبل 24 ساعة على الأقل من نهاية الفترة الحالية. يمكنك إدارة اشتراكك أو إلغاؤه في أي وقت من إعدادات حسابك. بالمتابعة، أنت توافق على $termsOfService و$privacyPolicy.'; + } + + @override + String get chooseOneTimeDonationAmountLabel => 'اختر مبلغ التبرع لمرة واحدة'; + + @override + String get mostPeopleGiveHint => 'معظم الناس يعطون 7 إلى 15 دولارًا'; + + @override + String get selectCurrencyTooltip => 'اختر العملة'; + + @override + String get processingPaymentSemantics => 'معالجة الدفع'; + + @override + String processingOneTimePaymentSemantics(String currency, String amount) { + return 'معالجة دفعة لمرة واحدة بقيمة $currency $amount'; + } + + @override + String processingMonthlyPaymentSemantics(String amount) { + return 'معالجة الدفع الشهري بقيمة $amount'; + } + + @override + String get thankYouTitle => 'شكرًا لك!'; + + @override + String get thankYouSubtitle => + 'الآن سيحصل المزيد من الأشخاص على نصائح مجانية - دعمك لا يقدر بثمن حقًا.'; + + @override + String get youContributedLabel => 'لقد ساهمت بـ:'; + + @override + String get perMonth => '/ شهر'; + + @override + String get returnToTheMainScreenButton => 'العودة إلى الشاشة الرئيسية'; + + @override + String get termsOfServiceLabel => 'شروط الخدمة'; + + @override + String get privacyPolicyLabel => 'سياسة الخصوصية'; + + @override + String get donateButton => 'يتبرع'; + + @override + String get manageSubscriptionTitle => 'إدارة الاشتراك'; + + @override + String get subscriptionStatusActiveLabel => 'نشيط'; + + @override + String get subscriptionStatusCanceledLabel => 'تم الإلغاء'; + + @override + String get subscriptionStatusPausedLabel => 'متوقف مؤقتًا'; + + @override + String get subscriptionStatusPendingLabel => 'قيد الانتظار'; + + @override + String get subscriptionStatusCreatedLabel => 'مخلوق'; + + @override + String get subscriptionStatusTimeoutLabel => 'نفذ الوقت'; + + @override + String get subscriptionStatusUnknownLabel => 'مجهول'; + + @override + String get subscriptionDoctorinaContributor => 'مساهم في دكتورينا'; + + @override + String get subscriptionRenews => 'يجدد'; + + @override + String get subscriptionCancelButton => 'إلغاء الاشتراك'; + + @override + String get subscriptionAreYouSureDialogTitle => 'هل أنت متأكد؟'; + + @override + String get subscriptionAreYouSureDialogText => + 'دعمكم الشهري يُبقي \"دكتورينا\" مجانيًا لمن يعتمدون عليه ولكنهم غير قادرين على الدفع.\n\nيُغطي اشتراككم ما لا يقل عن ١٠ استشارات مجانية شهريًا.\n\nإذا تركتم الخدمة، فسيقل عدد المرضى الذين يحصلون على المساعدة التي يحتاجونها.'; + + @override + String get subscriptionAreYouSureDialogKeepButton => 'الحفاظ على الاشتراك'; + + @override + String get subscriptionAreYouSureDialogCancelButton => 'إلغاء على أية حال'; + + @override + String get subscriptionYourMonthlySupportCanceledNotification => + 'لقد تم إلغاء الدعم الشهري الخاص بك بنجاح.'; + + @override + String get subscriptionMalformed => 'بيانات الاشتراك غير صحيحة'; + + @override + String get subscriptionSignUpForMonthlySupportButton => + 'قم بالتسجيل للحصول على الدعم الشهري حتى يظهر هنا.'; + + @override + String get subscriptionNoSubscriptionsYet => 'لا يوجد اشتراكات حتى الآن'; + + @override + String get subscriptionCreatedAtDateLabel => 'تاريخ الاشتراك'; + + @override + String get subscriptionExpiresAtDateLabel => 'تنتهي صلاحيتها'; + + @override + String get subscriptionSubscriptionIdLabel => 'معرف الاشتراك'; + + @override + String get subscriptionProductIdLabel => 'معرف المنتج'; + + @override + String get subscriptionDialogOkButton => 'نعم'; + + @override + String get errorProcessDonationTitle => 'لم نتمكن من متابعة الدفع الخاص بك'; + + @override + String get errorProcessDonationSubtitle => + 'حدث خطأ أثناء الدفع. يُرجى المحاولة مرة أخرى.'; + + @override + String get errorProcessDonationRetryButton => 'إعادة المحاولة'; + + @override + String get processingDonationTitle => 'معالجة الدفع'; + + @override + String get processingDonationStripeSubtitle => + 'ستتمكن من إكمال عملية الشراء الخاصة بك على صفحة الدفع الآمنة الخاصة بـ Stripe.'; +} diff --git a/example/lib/src/generated/pay/pay_localization_bn.dart b/example/lib/src/generated/pay/pay_localization_bn.dart new file mode 100644 index 0000000..9abad4d --- /dev/null +++ b/example/lib/src/generated/pay/pay_localization_bn.dart @@ -0,0 +1,199 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'pay_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Bengali Bangla (`bn`). +class PayLocalizationBn extends PayLocalization { + PayLocalizationBn([String locale = 'bn']) : super(locale); + + @override + String get title => 'পেমেন্ট'; + + @override + String get exampleButton => 'বোতাম উদাহরণ'; + + @override + String get donationYesItsAllGoodButton => 'হ্যাঁ, এটা সব ভাল!'; + + @override + String get everyContributionHealsTitle => 'প্রতিটি অবদান আরোগ্য!'; + + @override + String get ifThisHelpedYouConsiderSupportingSubtitle => + 'আপনার অবদান প্রয়োজনে অন্যদের জন্য বিনামূল্যে পরামর্শ তহবিল সাহায্য করে.'; + + @override + String get payWhatFeelsRightLabel => 'যা সঠিক মনে হয় তাই পরিশোধ করুন,'; + + @override + String get orKeepUsingDoctorinaForFreeLabel => + 'অথবা বিনামূল্যে ডক্টরিনা ব্যবহার করা চালিয়ে যান, যারা দিতে বেছে নিয়েছেন তাদের ধন্যবাদ।'; + + @override + String get oneTimeLabel => 'ওয়ান-টাইম'; + + @override + String get monthlyLabel => 'মাসিক'; + + @override + String get chooseMonthlyDonationAmountLabel => + 'মাসিক অনুদান পরিমাণ চয়ন করুন'; + + @override + String get subscriptionNoAmount => + 'আপনি একটি মাসিক পরিকল্পনার সদস্যতা নিতে চলেছেন৷'; + + @override + String subscriptionAmount(String amount) { + return 'আপনি $amount/মাসের জন্য একটি মাসিক প্ল্যানে সদস্যতা নিচ্ছেন।'; + } + + @override + String subscriptionInfo(String termsOfService, String privacyPolicy) { + return 'ক্রয়ের নিশ্চিতকরণে আপনার অ্যাকাউন্টে অর্থ প্রদান করা হবে। সাবস্ক্রিপশন স্বয়ংক্রিয়ভাবে প্রতি মাসে পুনর্নবীকরণ হয় যদি না বর্তমান মেয়াদ শেষ হওয়ার কমপক্ষে 24 ঘন্টা আগে স্বয়ংক্রিয় পুনর্নবীকরণ বন্ধ করা হয়। আপনি আপনার অ্যাকাউন্ট সেটিংসে যেকোনো সময় আপনার সদস্যতা পরিচালনা বা বাতিল করতে পারেন। এগিয়ে যাওয়ার মাধ্যমে, আপনি আমাদের $termsOfService এবং $privacyPolicy-এ সম্মত হন।'; + } + + @override + String get chooseOneTimeDonationAmountLabel => + 'এককালীন অনুদানের পরিমাণ চয়ন করুন'; + + @override + String get mostPeopleGiveHint => 'বেশিরভাগ লোক \$7-\$15 দেয়'; + + @override + String get selectCurrencyTooltip => 'মুদ্রা নির্বাচন করুন'; + + @override + String get processingPaymentSemantics => 'পেমেন্ট প্রক্রিয়াকরণ'; + + @override + String processingOneTimePaymentSemantics(String currency, String amount) { + return '$currency $amount-এর এককালীন পেমেন্ট প্রক্রিয়া করা হচ্ছে'; + } + + @override + String processingMonthlyPaymentSemantics(String amount) { + return '$amount মাসিক পেমেন্ট প্রক্রিয়া করা হচ্ছে'; + } + + @override + String get thankYouTitle => 'ধন্যবাদ!'; + + @override + String get thankYouSubtitle => + 'এখন আরও বেশি লোক বিনামূল্যে পরামর্শ পাবে — আপনার সমর্থন সত্যিই অমূল্য।'; + + @override + String get youContributedLabel => 'আপনি অবদান রেখেছেন:'; + + @override + String get perMonth => '/ মাস'; + + @override + String get returnToTheMainScreenButton => 'মূল পর্দায় ফিরে যান'; + + @override + String get termsOfServiceLabel => 'পরিষেবার শর্তাবলী'; + + @override + String get privacyPolicyLabel => 'গোপনীয়তা নীতি'; + + @override + String get donateButton => 'দান করুন'; + + @override + String get manageSubscriptionTitle => 'সদস্যতা পরিচালনা করুন'; + + @override + String get subscriptionStatusActiveLabel => 'সক্রিয়'; + + @override + String get subscriptionStatusCanceledLabel => 'বাতিল'; + + @override + String get subscriptionStatusPausedLabel => 'বিরতি দেওয়া হয়েছে'; + + @override + String get subscriptionStatusPendingLabel => 'মুলতুবি'; + + @override + String get subscriptionStatusCreatedLabel => 'তৈরি হয়েছে'; + + @override + String get subscriptionStatusTimeoutLabel => 'টাইম আউট'; + + @override + String get subscriptionStatusUnknownLabel => 'অজানা'; + + @override + String get subscriptionDoctorinaContributor => 'ডক্টরিনা অবদানকারী'; + + @override + String get subscriptionRenews => 'রিনিউজ'; + + @override + String get subscriptionCancelButton => 'সদস্যতা বাতিল করুন'; + + @override + String get subscriptionAreYouSureDialogTitle => 'আপনি কি নিশ্চিত?'; + + @override + String get subscriptionAreYouSureDialogText => + 'আপনার মাসিক সহায়তা এমন লোকদের জন্য ডক্টরিনাকে বিনামূল্যে রাখে যারা এটির উপর নির্ভর করে কিন্তু অর্থ প্রদানের সামর্থ্য রাখে না। \n\nআপনার সদস্যতা তহবিল প্রতি মাসে অন্তত 10 বিনামূল্যে পরামর্শ.\n
আপনি চলে গেলে, কম রোগী তাদের প্রয়োজনীয় সহায়তা পাবেন।'; + + @override + String get subscriptionAreYouSureDialogKeepButton => 'সাবস্ক্রিপশন রাখুন'; + + @override + String get subscriptionAreYouSureDialogCancelButton => 'যাইহোক বাতিল করুন'; + + @override + String get subscriptionYourMonthlySupportCanceledNotification => + 'আপনার মাসিক সমর্থন \nসফলভাবে বাতিল করা হয়েছে।'; + + @override + String get subscriptionMalformed => 'ভুল সাবস্ক্রিপশন ডেটা'; + + @override + String get subscriptionSignUpForMonthlySupportButton => + 'এটি এখানে উপস্থিত হওয়ার জন্য মাসিক সহায়তার জন্য সাইন আপ করুন৷'; + + @override + String get subscriptionNoSubscriptionsYet => 'এখনো কোনো সদস্যতা নেই'; + + @override + String get subscriptionCreatedAtDateLabel => 'সদস্যতা তারিখ'; + + @override + String get subscriptionExpiresAtDateLabel => 'মেয়াদ শেষ'; + + @override + String get subscriptionSubscriptionIdLabel => 'সাবস্ক্রিপশন আইডি'; + + @override + String get subscriptionProductIdLabel => 'পণ্য আইডি'; + + @override + String get subscriptionDialogOkButton => 'ঠিক আছে'; + + @override + String get errorProcessDonationTitle => 'আমরা আপনার পেমেন্ট এগোতে পারিনি'; + + @override + String get errorProcessDonationSubtitle => + 'পেমেন্টে কিছু ভুল হয়েছে।\nআবার চেষ্টা করুন.'; + + @override + String get errorProcessDonationRetryButton => 'আবার চেষ্টা করুন'; + + @override + String get processingDonationTitle => 'পেমেন্ট প্রক্রিয়াকরণ'; + + @override + String get processingDonationStripeSubtitle => + 'আপনি স্ট্রাইপের নিরাপদ চেকআউট পৃষ্ঠায় আপনার কেনাকাটা সম্পূর্ণ করবেন।'; +} diff --git a/example/lib/src/generated/pay/pay_localization_de.dart b/example/lib/src/generated/pay/pay_localization_de.dart index ebb8ec0..b198654 100644 --- a/example/lib/src/generated/pay/pay_localization_de.dart +++ b/example/lib/src/generated/pay/pay_localization_de.dart @@ -15,4 +15,186 @@ class PayLocalizationDe extends PayLocalization { @override String get exampleButton => 'Schaltflächenbeispiel'; + + @override + String get donationYesItsAllGoodButton => 'Ja, alles gut!'; + + @override + String get everyContributionHealsTitle => 'Jeder Beitrag heilt!'; + + @override + String get ifThisHelpedYouConsiderSupportingSubtitle => + 'Ihr Beitrag hilft dabei, kostenlose medizinische Beratung für Bedürftige zu ermöglichen.'; + + @override + String get payWhatFeelsRightLabel => 'Zahlen Sie, was sich richtig anfühlt –'; + + @override + String get orKeepUsingDoctorinaForFreeLabel => + 'oder nutzen Sie Doctorina weiterhin kostenlos, dank der Großzügigkeit anderer.'; + + @override + String get oneTimeLabel => 'Einmalig'; + + @override + String get monthlyLabel => 'Monatlich'; + + @override + String get chooseMonthlyDonationAmountLabel => + 'Wählen Sie den monatlichen Spendenbetrag'; + + @override + String get subscriptionNoAmount => + 'Sie sind dabei, einen Monatsplan zu abonnieren.'; + + @override + String subscriptionAmount(String amount) { + return 'Sie abonnieren ein Monatsabonnement für $amount/Monat.'; + } + + @override + String subscriptionInfo(String termsOfService, String privacyPolicy) { + return 'Die Zahlung wird Ihrem Konto nach Kaufbestätigung belastet. Das Abonnement verlängert sich automatisch jeden Monat, sofern die automatische Verlängerung nicht mindestens 24 Stunden vor Ablauf des aktuellen Zeitraums deaktiviert wird. Sie können Ihr Abonnement jederzeit in Ihren Kontoeinstellungen verwalten oder kündigen. Indem Sie fortfahren, stimmen Sie unseren $termsOfService und $privacyPolicy zu.'; + } + + @override + String get chooseOneTimeDonationAmountLabel => + 'Wählen Sie den einmaligen Spendenbetrag'; + + @override + String get mostPeopleGiveHint => 'Die meisten Leute geben 7–15 \$'; + + @override + String get selectCurrencyTooltip => 'Währung wählen'; + + @override + String get processingPaymentSemantics => 'Zahlungsabwicklung'; + + @override + String processingOneTimePaymentSemantics(String currency, String amount) { + return 'Verarbeite eine einmalige Zahlung von $currency $amount'; + } + + @override + String processingMonthlyPaymentSemantics(String amount) { + return 'Monatliche Zahlung von $amount wird bearbeitet'; + } + + @override + String get thankYouTitle => 'Danke!'; + + @override + String get thankYouSubtitle => + 'Dank Ihrer Unterstützung können nun noch mehr Menschen kostenlose Beratung erhalten – Ihr Beitrag ist von unschätzbarem Wert.'; + + @override + String get youContributedLabel => 'Sie haben gespendet:'; + + @override + String get perMonth => '/ Monat'; + + @override + String get returnToTheMainScreenButton => 'Zurück zum Hauptbildschirm'; + + @override + String get termsOfServiceLabel => 'Servicebedingungen'; + + @override + String get privacyPolicyLabel => 'Datenschutzrichtlinie'; + + @override + String get donateButton => 'Spenden'; + + @override + String get manageSubscriptionTitle => 'Abonnement verwalten'; + + @override + String get subscriptionStatusActiveLabel => 'Aktiv'; + + @override + String get subscriptionStatusCanceledLabel => 'Abgesagt'; + + @override + String get subscriptionStatusPausedLabel => 'Angehalten'; + + @override + String get subscriptionStatusPendingLabel => 'Ausstehend'; + + @override + String get subscriptionStatusCreatedLabel => 'Erstellt'; + + @override + String get subscriptionStatusTimeoutLabel => 'Time-out'; + + @override + String get subscriptionStatusUnknownLabel => 'Unbekannt'; + + @override + String get subscriptionDoctorinaContributor => 'Doctorina-Mitarbeiter'; + + @override + String get subscriptionRenews => 'Erneuert'; + + @override + String get subscriptionCancelButton => 'Abonnement kündigen'; + + @override + String get subscriptionAreYouSureDialogTitle => 'Bist du sicher?'; + + @override + String get subscriptionAreYouSureDialogText => + 'Mit Ihrer monatlichen Unterstützung bleibt Doctorina für Menschen, die darauf angewiesen sind, sich die Kosten aber nicht leisten können, kostenlos.\n\nIhr Abonnement ermöglicht mindestens 10 kostenlose Konsultationen pro Monat.\nWenn Sie aussteigen, erhalten weniger Patienten die benötigte Hilfe.'; + + @override + String get subscriptionAreYouSureDialogKeepButton => 'Abonnement behalten'; + + @override + String get subscriptionAreYouSureDialogCancelButton => 'Trotzdem abbrechen'; + + @override + String get subscriptionYourMonthlySupportCanceledNotification => + 'Ihr monatlicher Support wurde erfolgreich gekündigt.'; + + @override + String get subscriptionMalformed => 'Falsche Abonnementdaten'; + + @override + String get subscriptionSignUpForMonthlySupportButton => + 'Melden Sie sich für den monatlichen Support an, damit er hier angezeigt wird.'; + + @override + String get subscriptionNoSubscriptionsYet => 'Noch keine Abonnements'; + + @override + String get subscriptionCreatedAtDateLabel => 'Abonnementdatum'; + + @override + String get subscriptionExpiresAtDateLabel => 'Läuft ab'; + + @override + String get subscriptionSubscriptionIdLabel => 'Abonnement-ID'; + + @override + String get subscriptionProductIdLabel => 'Produkt-ID'; + + @override + String get subscriptionDialogOkButton => 'OK'; + + @override + String get errorProcessDonationTitle => + 'Wir konnten Ihre Zahlung nicht durchführen'; + + @override + String get errorProcessDonationSubtitle => + 'Bei der Zahlung ist ein Fehler aufgetreten.\nBitte versuchen Sie es erneut.'; + + @override + String get errorProcessDonationRetryButton => 'Wiederholen'; + + @override + String get processingDonationTitle => 'Zahlungsabwicklung'; + + @override + String get processingDonationStripeSubtitle => + 'Sie schließen Ihren Einkauf auf der sicheren Checkout-Seite von Stripe ab.'; } diff --git a/example/lib/src/generated/pay/pay_localization_en.dart b/example/lib/src/generated/pay/pay_localization_en.dart index 1dac7ae..83c725d 100644 --- a/example/lib/src/generated/pay/pay_localization_en.dart +++ b/example/lib/src/generated/pay/pay_localization_en.dart @@ -15,4 +15,185 @@ class PayLocalizationEn extends PayLocalization { @override String get exampleButton => 'Button example'; + + @override + String get donationYesItsAllGoodButton => 'Yes, it\'s all good!'; + + @override + String get everyContributionHealsTitle => 'Every contribution heals!'; + + @override + String get ifThisHelpedYouConsiderSupportingSubtitle => + 'Your contribution helps fund free advice for others in need.'; + + @override + String get payWhatFeelsRightLabel => 'Pay what feels right,'; + + @override + String get orKeepUsingDoctorinaForFreeLabel => + 'or keep using Doctorina for free, thanks to others who chose to give.'; + + @override + String get oneTimeLabel => 'One-Time'; + + @override + String get monthlyLabel => 'Monthly'; + + @override + String get chooseMonthlyDonationAmountLabel => + 'Choose monthly donation amount'; + + @override + String get subscriptionNoAmount => + 'You are about to subscribe to a monthly plan.'; + + @override + String subscriptionAmount(String amount) { + return 'You are subscribing to a monthly plan for $amount/month.'; + } + + @override + String subscriptionInfo(String termsOfService, String privacyPolicy) { + return 'Payment will be charged to your account at confirmation of purchase. The subscription automatically renews every month unless auto-renew is turned off at least 24 hours before the end of the current period. You can manage or cancel your subscription anytime in your account settings. By proceeding, you agree to our $termsOfService and $privacyPolicy.'; + } + + @override + String get chooseOneTimeDonationAmountLabel => + 'Choose one-time donation amount'; + + @override + String get mostPeopleGiveHint => 'Most people give \$7–\$15'; + + @override + String get selectCurrencyTooltip => 'Select currency'; + + @override + String get processingPaymentSemantics => 'Processing payment'; + + @override + String processingOneTimePaymentSemantics(String currency, String amount) { + return 'Processing one-time payment of $currency $amount'; + } + + @override + String processingMonthlyPaymentSemantics(String amount) { + return 'Processing monthly payment of $amount'; + } + + @override + String get thankYouTitle => 'Thank you!'; + + @override + String get thankYouSubtitle => + 'Now even more people will receive free advice — your support is truly invaluable.'; + + @override + String get youContributedLabel => 'You contributed:'; + + @override + String get perMonth => '/ month'; + + @override + String get returnToTheMainScreenButton => 'Return to the main screen'; + + @override + String get termsOfServiceLabel => 'Terms Of Service'; + + @override + String get privacyPolicyLabel => 'Privacy Policy'; + + @override + String get donateButton => 'Donate'; + + @override + String get manageSubscriptionTitle => 'Manage subscription'; + + @override + String get subscriptionStatusActiveLabel => 'Active'; + + @override + String get subscriptionStatusCanceledLabel => 'Canceled'; + + @override + String get subscriptionStatusPausedLabel => 'Paused'; + + @override + String get subscriptionStatusPendingLabel => 'Pending'; + + @override + String get subscriptionStatusCreatedLabel => 'Created'; + + @override + String get subscriptionStatusTimeoutLabel => 'Timeout'; + + @override + String get subscriptionStatusUnknownLabel => 'Unknown'; + + @override + String get subscriptionDoctorinaContributor => 'Doctorina contributor'; + + @override + String get subscriptionRenews => 'Renews'; + + @override + String get subscriptionCancelButton => 'Cancel subscription'; + + @override + String get subscriptionAreYouSureDialogTitle => 'Are you sure?'; + + @override + String get subscriptionAreYouSureDialogText => + 'Your monthly support keeps Doctorina free for people who rely on it but can’t afford to pay. \n\nYour subscription funds at least 10 free consultations each month.\n
If you leave, fewer patients will get the help they need.'; + + @override + String get subscriptionAreYouSureDialogKeepButton => 'Keep subscription'; + + @override + String get subscriptionAreYouSureDialogCancelButton => 'Cancel anyway'; + + @override + String get subscriptionYourMonthlySupportCanceledNotification => + 'Your Monthly support \nhas been successfully canceled.'; + + @override + String get subscriptionMalformed => 'Incorrect subscription data'; + + @override + String get subscriptionSignUpForMonthlySupportButton => + 'Sign up for monthly support to have it appear here.'; + + @override + String get subscriptionNoSubscriptionsYet => 'No subscriptions yet'; + + @override + String get subscriptionCreatedAtDateLabel => 'Subscription date'; + + @override + String get subscriptionExpiresAtDateLabel => 'Expires'; + + @override + String get subscriptionSubscriptionIdLabel => 'Subscription ID'; + + @override + String get subscriptionProductIdLabel => 'Product ID'; + + @override + String get subscriptionDialogOkButton => 'Ok'; + + @override + String get errorProcessDonationTitle => 'We couldn’t proceed your payment'; + + @override + String get errorProcessDonationSubtitle => + 'Something went wrong with the payment.\nPlease try again.'; + + @override + String get errorProcessDonationRetryButton => 'Retry'; + + @override + String get processingDonationTitle => 'Processing payment'; + + @override + String get processingDonationStripeSubtitle => + 'You’ll complete your purchase on Stripe’s secure checkout page.'; } diff --git a/example/lib/src/generated/pay/pay_localization_es.dart b/example/lib/src/generated/pay/pay_localization_es.dart index 5e7ddba..90d7eb3 100644 --- a/example/lib/src/generated/pay/pay_localization_es.dart +++ b/example/lib/src/generated/pay/pay_localization_es.dart @@ -15,4 +15,187 @@ class PayLocalizationEs extends PayLocalization { @override String get exampleButton => 'Ejemplo de botón'; + + @override + String get donationYesItsAllGoodButton => '¡Sí, está todo bien!'; + + @override + String get everyContributionHealsTitle => '¡Cada aporte sana!'; + + @override + String get ifThisHelpedYouConsiderSupportingSubtitle => + 'Tu contribución ayuda a ofrecer asesoría médica gratuita a quienes más lo necesitan.'; + + @override + String get payWhatFeelsRightLabel => 'Paga lo que consideres justo,'; + + @override + String get orKeepUsingDoctorinaForFreeLabel => + 'o sigue usando Doctorina gratis, gracias a quienes decidieron apoyar con una donación.'; + + @override + String get oneTimeLabel => 'Una sola vez'; + + @override + String get monthlyLabel => 'Mensual'; + + @override + String get chooseMonthlyDonationAmountLabel => + 'Elija el monto de la donación mensual'; + + @override + String get subscriptionNoAmount => + 'Estás a punto de suscribirte a un plan mensual.'; + + @override + String subscriptionAmount(String amount) { + return 'Te suscribes a un plan mensual por $amount al mes.'; + } + + @override + String subscriptionInfo(String termsOfService, String privacyPolicy) { + return 'El pago se cargará a tu cuenta al confirmar la compra. La suscripción se renueva automáticamente cada mes, a menos que la desactives al menos 24 horas antes del final del periodo actual. Puedes gestionar o cancelar tu suscripción en cualquier momento desde la configuración de tu cuenta. Al continuar, aceptas nuestros $termsOfService y $privacyPolicy.'; + } + + @override + String get chooseOneTimeDonationAmountLabel => + 'Elija el monto de la donación única'; + + @override + String get mostPeopleGiveHint => + 'La mayoría de la gente dona entre \$7 y \$15.'; + + @override + String get selectCurrencyTooltip => 'Seleccionar moneda'; + + @override + String get processingPaymentSemantics => 'Procesando pago'; + + @override + String processingOneTimePaymentSemantics(String currency, String amount) { + return 'Procesando pago único de $currency $amount'; + } + + @override + String processingMonthlyPaymentSemantics(String amount) { + return 'Procesando pago mensual de $amount'; + } + + @override + String get thankYouTitle => '¡Gracias!'; + + @override + String get thankYouSubtitle => + 'Ahora, aún más personas recibirán asesoramiento gratuito: su apoyo es verdaderamente invaluable.'; + + @override + String get youContributedLabel => 'Usted contribuyó:'; + + @override + String get perMonth => '/ mes'; + + @override + String get returnToTheMainScreenButton => 'Regresar a la pantalla principal'; + + @override + String get termsOfServiceLabel => 'Condiciones de servicio'; + + @override + String get privacyPolicyLabel => 'política de privacidad'; + + @override + String get donateButton => 'Donar'; + + @override + String get manageSubscriptionTitle => 'Administrar suscripción'; + + @override + String get subscriptionStatusActiveLabel => 'Activo'; + + @override + String get subscriptionStatusCanceledLabel => 'Cancelado'; + + @override + String get subscriptionStatusPausedLabel => 'En pausa'; + + @override + String get subscriptionStatusPendingLabel => 'Pendiente'; + + @override + String get subscriptionStatusCreatedLabel => 'Creado'; + + @override + String get subscriptionStatusTimeoutLabel => 'Se acabó el tiempo'; + + @override + String get subscriptionStatusUnknownLabel => 'Desconocido'; + + @override + String get subscriptionDoctorinaContributor => 'Colaborador de Doctorina'; + + @override + String get subscriptionRenews => 'Renueva'; + + @override + String get subscriptionCancelButton => 'Cancelar suscripción'; + + @override + String get subscriptionAreYouSureDialogTitle => '¿Está seguro?'; + + @override + String get subscriptionAreYouSureDialogText => + 'Tu apoyo mensual mantiene Doctorina gratis para quienes dependen de ella pero no pueden pagarla.\n\nTu suscripción financia al menos 10 consultas gratuitas al mes.\nSi te vas, menos pacientes recibirán la ayuda que necesitan.'; + + @override + String get subscriptionAreYouSureDialogKeepButton => 'Mantener suscripción'; + + @override + String get subscriptionAreYouSureDialogCancelButton => + 'Cancelar de todos modos'; + + @override + String get subscriptionYourMonthlySupportCanceledNotification => + 'Su apoyo mensual\nha sido cancelado exitosamente.'; + + @override + String get subscriptionMalformed => 'Datos de suscripción incorrectos'; + + @override + String get subscriptionSignUpForMonthlySupportButton => + 'Regístrate para recibir soporte mensual para que aparezca aquí.'; + + @override + String get subscriptionNoSubscriptionsYet => 'Aún no hay suscripciones'; + + @override + String get subscriptionCreatedAtDateLabel => 'Fecha de suscripción'; + + @override + String get subscriptionExpiresAtDateLabel => 'Caduca'; + + @override + String get subscriptionSubscriptionIdLabel => 'ID de suscripción'; + + @override + String get subscriptionProductIdLabel => 'Identificación del producto'; + + @override + String get subscriptionDialogOkButton => 'De acuerdo'; + + @override + String get errorProcessDonationTitle => 'No pudimos procesar su pago'; + + @override + String get errorProcessDonationSubtitle => + 'Se produjo un error con el pago. Inténtalo de nuevo.'; + + @override + String get errorProcessDonationRetryButton => 'Rever'; + + @override + String get processingDonationTitle => 'Procesando pago'; + + @override + String get processingDonationStripeSubtitle => + 'Completarás tu compra en la página de pago segura de Stripe.'; } diff --git a/example/lib/src/generated/pay/pay_localization_fr.dart b/example/lib/src/generated/pay/pay_localization_fr.dart new file mode 100644 index 0000000..33bdbd7 --- /dev/null +++ b/example/lib/src/generated/pay/pay_localization_fr.dart @@ -0,0 +1,201 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'pay_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for French (`fr`). +class PayLocalizationFr extends PayLocalization { + PayLocalizationFr([String locale = 'fr']) : super(locale); + + @override + String get title => 'Paiement'; + + @override + String get exampleButton => 'Exemple de bouton'; + + @override + String get donationYesItsAllGoodButton => 'Oui, tout va bien !'; + + @override + String get everyContributionHealsTitle => 'Chaque contribution guérit !'; + + @override + String get ifThisHelpedYouConsiderSupportingSubtitle => + 'Votre contribution aide à financer des conseils gratuits pour les autres dans le besoin.'; + + @override + String get payWhatFeelsRightLabel => 'Payez ce qui vous semble juste,'; + + @override + String get orKeepUsingDoctorinaForFreeLabel => + 'ou continuez à utiliser Doctorina gratuitement, grâce aux autres qui ont choisi de donner.'; + + @override + String get oneTimeLabel => 'Une fois'; + + @override + String get monthlyLabel => 'Mensuel'; + + @override + String get chooseMonthlyDonationAmountLabel => + 'Choisissez le montant du don mensuel'; + + @override + String get subscriptionNoAmount => + 'Vous êtes sur le point de souscrire à un forfait mensuel.'; + + @override + String subscriptionAmount(String amount) { + return 'Vous souscrivez à un forfait mensuel de $amount/mois.'; + } + + @override + String subscriptionInfo(String termsOfService, String privacyPolicy) { + return 'Le paiement sera débité de votre compte lors de la confirmation de l\'achat. L\'abonnement est automatiquement renouvelé chaque mois, sauf si le renouvellement automatique est désactivé au moins 24 heures avant la fin de la période en cours. Vous pouvez gérer ou résilier votre abonnement à tout moment dans les paramètres de votre compte. En continuant, vous acceptez nos $termsOfService et notre $privacyPolicy.'; + } + + @override + String get chooseOneTimeDonationAmountLabel => + 'Choisissez le montant du don unique'; + + @override + String get mostPeopleGiveHint => + 'La plupart des gens donnent entre 7 et 15 \$'; + + @override + String get selectCurrencyTooltip => 'Sélectionnez la devise'; + + @override + String get processingPaymentSemantics => 'Traitement des paiements'; + + @override + String processingOneTimePaymentSemantics(String currency, String amount) { + return 'Traitement d\'un paiement unique de $currency $amount'; + } + + @override + String processingMonthlyPaymentSemantics(String amount) { + return 'Traitement du paiement mensuel de $amount'; + } + + @override + String get thankYouTitle => 'Merci!'; + + @override + String get thankYouSubtitle => + 'Désormais, encore plus de personnes bénéficieront de conseils gratuits : votre soutien est vraiment précieux.'; + + @override + String get youContributedLabel => 'Vous avez contribué :'; + + @override + String get perMonth => '/ mois'; + + @override + String get returnToTheMainScreenButton => 'Retour à l\'écran principal'; + + @override + String get termsOfServiceLabel => 'Conditions d\'utilisation'; + + @override + String get privacyPolicyLabel => 'politique de confidentialité'; + + @override + String get donateButton => 'Faire un don'; + + @override + String get manageSubscriptionTitle => 'Gérer l\'abonnement'; + + @override + String get subscriptionStatusActiveLabel => 'Actif'; + + @override + String get subscriptionStatusCanceledLabel => 'Annulé'; + + @override + String get subscriptionStatusPausedLabel => 'En pause'; + + @override + String get subscriptionStatusPendingLabel => 'En attente'; + + @override + String get subscriptionStatusCreatedLabel => 'Créé'; + + @override + String get subscriptionStatusTimeoutLabel => 'Temps mort'; + + @override + String get subscriptionStatusUnknownLabel => 'Inconnu'; + + @override + String get subscriptionDoctorinaContributor => 'Contributeur de Doctorina'; + + @override + String get subscriptionRenews => 'Renouvelle'; + + @override + String get subscriptionCancelButton => 'Annuler l\'abonnement'; + + @override + String get subscriptionAreYouSureDialogTitle => 'Es-tu sûr?'; + + @override + String get subscriptionAreYouSureDialogText => + 'Votre soutien mensuel permet à Doctorina d\'être gratuit pour les personnes qui en dépendent mais n\'ont pas les moyens de payer.\n\nVotre abonnement finance au moins 10 consultations gratuites par mois.\nSi vous vous désabonnez, moins de patients recevront l\'aide dont ils ont besoin.'; + + @override + String get subscriptionAreYouSureDialogKeepButton => 'Garder l\'abonnement'; + + @override + String get subscriptionAreYouSureDialogCancelButton => 'Annuler quand même'; + + @override + String get subscriptionYourMonthlySupportCanceledNotification => + 'Votre abonnement mensuel a bien été annulé.'; + + @override + String get subscriptionMalformed => 'Données d\'abonnement incorrectes'; + + @override + String get subscriptionSignUpForMonthlySupportButton => + 'Inscrivez-vous au soutien mensuel pour le faire apparaître ici.'; + + @override + String get subscriptionNoSubscriptionsYet => 'Pas encore d\'abonnement'; + + @override + String get subscriptionCreatedAtDateLabel => 'Date d\'abonnement'; + + @override + String get subscriptionExpiresAtDateLabel => 'Expire'; + + @override + String get subscriptionSubscriptionIdLabel => 'ID d\'abonnement'; + + @override + String get subscriptionProductIdLabel => 'ID du produit'; + + @override + String get subscriptionDialogOkButton => 'D\'accord'; + + @override + String get errorProcessDonationTitle => + 'Nous n\'avons pas pu traiter votre paiement'; + + @override + String get errorProcessDonationSubtitle => + 'Une erreur s\'est produite lors du paiement. Veuillez réessayer.'; + + @override + String get errorProcessDonationRetryButton => 'Réessayer'; + + @override + String get processingDonationTitle => 'Traitement des paiements'; + + @override + String get processingDonationStripeSubtitle => + 'Vous finaliserez votre achat sur la page de paiement sécurisée de Stripe.'; +} diff --git a/example/lib/src/generated/pay/pay_localization_hi.dart b/example/lib/src/generated/pay/pay_localization_hi.dart new file mode 100644 index 0000000..d8dc9c8 --- /dev/null +++ b/example/lib/src/generated/pay/pay_localization_hi.dart @@ -0,0 +1,197 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'pay_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Hindi (`hi`). +class PayLocalizationHi extends PayLocalization { + PayLocalizationHi([String locale = 'hi']) : super(locale); + + @override + String get title => 'भुगतान'; + + @override + String get exampleButton => 'बटन उदाहरण'; + + @override + String get donationYesItsAllGoodButton => 'हाँ, सब ठीक है!'; + + @override + String get everyContributionHealsTitle => + 'हर योगदान से स्वास्थ्य लाभ होता है!'; + + @override + String get ifThisHelpedYouConsiderSupportingSubtitle => + 'आपके योगदान से जरूरतमंद लोगों को मुफ्त सलाह देने में मदद मिलती है।'; + + @override + String get payWhatFeelsRightLabel => 'जो उचित लगे, वही भुगतान करें,'; + + @override + String get orKeepUsingDoctorinaForFreeLabel => + 'या फिर डॉक्टरिना का निःशुल्क उपयोग करते रहें, उन लोगों का धन्यवाद जिन्होंने इसे देने का निर्णय लिया।'; + + @override + String get oneTimeLabel => 'वन टाइम'; + + @override + String get monthlyLabel => 'महीने के'; + + @override + String get chooseMonthlyDonationAmountLabel => 'मासिक दान राशि चुनें'; + + @override + String get subscriptionNoAmount => 'आप मासिक योजना की सदस्यता लेने वाले हैं।'; + + @override + String subscriptionAmount(String amount) { + return 'आप $amount/माह की मासिक योजना की सदस्यता ले रहे हैं।'; + } + + @override + String subscriptionInfo(String termsOfService, String privacyPolicy) { + return 'खरीदारी की पुष्टि होने पर आपके खाते से भुगतान लिया जाएगा। सदस्यता हर महीने स्वतः नवीनीकृत हो जाती है, जब तक कि वर्तमान अवधि समाप्त होने से कम से कम 24 घंटे पहले स्वतः नवीनीकरण बंद न कर दिया जाए। आप अपनी खाता सेटिंग में कभी भी अपनी सदस्यता प्रबंधित या रद्द कर सकते हैं। आगे बढ़कर, आप हमारी $termsOfService और $privacyPolicy से सहमत होते हैं।'; + } + + @override + String get chooseOneTimeDonationAmountLabel => 'एकमुश्त दान राशि चुनें'; + + @override + String get mostPeopleGiveHint => 'अधिकांश लोग \$7–\$15 देते हैं'; + + @override + String get selectCurrencyTooltip => 'मुद्रा चुनें'; + + @override + String get processingPaymentSemantics => 'संसाधन संबंधी भुगतान'; + + @override + String processingOneTimePaymentSemantics(String currency, String amount) { + return '$currency $amount का एकमुश्त भुगतान संसाधित किया जा रहा है'; + } + + @override + String processingMonthlyPaymentSemantics(String amount) { + return '$amount का मासिक भुगतान संसाधित किया जा रहा है'; + } + + @override + String get thankYouTitle => 'धन्यवाद!'; + + @override + String get thankYouSubtitle => + 'अब और भी अधिक लोगों को निःशुल्क सलाह मिलेगी - आपका सहयोग सचमुच अमूल्य है।'; + + @override + String get youContributedLabel => 'आपने योगदान दिया:'; + + @override + String get perMonth => '/ महीना'; + + @override + String get returnToTheMainScreenButton => 'मुख्य स्क्रीन पर लौटें'; + + @override + String get termsOfServiceLabel => 'सेवा की शर्तें'; + + @override + String get privacyPolicyLabel => 'गोपनीयता नीति'; + + @override + String get donateButton => 'दान करें'; + + @override + String get manageSubscriptionTitle => 'सदस्यता प्रबंधित करें'; + + @override + String get subscriptionStatusActiveLabel => 'सक्रिय'; + + @override + String get subscriptionStatusCanceledLabel => 'रद्द'; + + @override + String get subscriptionStatusPausedLabel => 'रुका हुआ'; + + @override + String get subscriptionStatusPendingLabel => 'लंबित'; + + @override + String get subscriptionStatusCreatedLabel => 'बनाया था'; + + @override + String get subscriptionStatusTimeoutLabel => 'समय समाप्ति'; + + @override + String get subscriptionStatusUnknownLabel => 'अज्ञात'; + + @override + String get subscriptionDoctorinaContributor => 'डॉक्टरिना योगदानकर्ता'; + + @override + String get subscriptionRenews => 'नवीनिकृत'; + + @override + String get subscriptionCancelButton => 'सदस्यता रद्द करें'; + + @override + String get subscriptionAreYouSureDialogTitle => 'क्या आपको यकीन है?'; + + @override + String get subscriptionAreYouSureDialogText => + 'आपके मासिक सहयोग से डॉक्टरिना उन लोगों के लिए मुफ़्त है जो इस पर निर्भर हैं लेकिन भुगतान नहीं कर सकते।\n\nआपकी सदस्यता से हर महीने कम से कम 10 मुफ़्त परामर्श मिलते हैं।\nअगर आप इसे छोड़ देते हैं, तो कम मरीज़ों को ज़रूरी मदद मिल पाएगी।'; + + @override + String get subscriptionAreYouSureDialogKeepButton => 'सदस्यता बनाए रखें'; + + @override + String get subscriptionAreYouSureDialogCancelButton => 'फिर भी रद्द करें'; + + @override + String get subscriptionYourMonthlySupportCanceledNotification => + 'आपका मासिक समर्थन\nसफलतापूर्वक रद्द कर दिया गया है।'; + + @override + String get subscriptionMalformed => 'गलत सदस्यता डेटा'; + + @override + String get subscriptionSignUpForMonthlySupportButton => + 'मासिक सहायता के लिए साइन अप करें ताकि यह यहां प्रदर्शित हो सके।'; + + @override + String get subscriptionNoSubscriptionsYet => 'अभी तक कोई सदस्यता नहीं'; + + @override + String get subscriptionCreatedAtDateLabel => 'सदस्यता तिथि'; + + @override + String get subscriptionExpiresAtDateLabel => 'समय-सीमा समाप्त'; + + @override + String get subscriptionSubscriptionIdLabel => 'सदस्यता आईडी'; + + @override + String get subscriptionProductIdLabel => 'उत्पाद आयडी'; + + @override + String get subscriptionDialogOkButton => 'ठीक है'; + + @override + String get errorProcessDonationTitle => 'हम आपका भुगतान आगे नहीं बढ़ा सके'; + + @override + String get errorProcessDonationSubtitle => + 'भुगतान में कुछ गड़बड़ी हुई है।\nकृपया पुनः प्रयास करें।'; + + @override + String get errorProcessDonationRetryButton => 'पुन: प्रयास करें'; + + @override + String get processingDonationTitle => 'संसाधन संबंधी भुगतान'; + + @override + String get processingDonationStripeSubtitle => + 'आप अपनी खरीदारी Stripe के सुरक्षित चेकआउट पृष्ठ पर पूरी करेंगे।'; +} diff --git a/example/lib/src/generated/pay/pay_localization_it.dart b/example/lib/src/generated/pay/pay_localization_it.dart new file mode 100644 index 0000000..309a9e1 --- /dev/null +++ b/example/lib/src/generated/pay/pay_localization_it.dart @@ -0,0 +1,202 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'pay_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Italian (`it`). +class PayLocalizationIt extends PayLocalization { + PayLocalizationIt([String locale = 'it']) : super(locale); + + @override + String get title => 'Pagamento'; + + @override + String get exampleButton => 'Esempio di pulsante'; + + @override + String get donationYesItsAllGoodButton => 'Sì, va tutto bene!'; + + @override + String get everyContributionHealsTitle => 'Ogni contributo guarisce!'; + + @override + String get ifThisHelpedYouConsiderSupportingSubtitle => + 'Il tuo contributo aiuta a finanziare la consulenza gratuita per altre persone bisognose.'; + + @override + String get payWhatFeelsRightLabel => 'Paga quello che ritieni giusto,'; + + @override + String get orKeepUsingDoctorinaForFreeLabel => + 'oppure continua a usare Doctorina gratuitamente, grazie ad altri che hanno scelto di donare.'; + + @override + String get oneTimeLabel => 'Una volta'; + + @override + String get monthlyLabel => 'Mensile'; + + @override + String get chooseMonthlyDonationAmountLabel => + 'Scegli l\'importo della donazione mensile'; + + @override + String get subscriptionNoAmount => + 'Stai per sottoscrivere un abbonamento mensile.'; + + @override + String subscriptionAmount(String amount) { + return 'Stai sottoscrivendo un abbonamento mensile per $amount/mese.'; + } + + @override + String subscriptionInfo(String termsOfService, String privacyPolicy) { + return 'Il pagamento verrà addebitato sul tuo account alla conferma dell\'acquisto. L\'abbonamento si rinnova automaticamente ogni mese, a meno che il rinnovo automatico non venga disattivato almeno 24 ore prima della fine del periodo in corso. Puoi gestire o annullare l\'abbonamento in qualsiasi momento nelle impostazioni del tuo account. Procedendo, accetti i nostri $termsOfService e la $privacyPolicy.'; + } + + @override + String get chooseOneTimeDonationAmountLabel => + 'Scegli l\'importo della donazione una tantum'; + + @override + String get mostPeopleGiveHint => + 'La maggior parte delle persone dona dai 7 ai 15 dollari'; + + @override + String get selectCurrencyTooltip => 'Seleziona la valuta'; + + @override + String get processingPaymentSemantics => 'Elaborazione del pagamento'; + + @override + String processingOneTimePaymentSemantics(String currency, String amount) { + return 'Elaborazione di un pagamento una tantum di $currency $amount'; + } + + @override + String processingMonthlyPaymentSemantics(String amount) { + return 'Elaborazione del pagamento mensile di $amount'; + } + + @override + String get thankYouTitle => 'Grazie!'; + + @override + String get thankYouSubtitle => + 'Ora ancora più persone riceveranno consulenza gratuita: il vostro supporto è davvero inestimabile.'; + + @override + String get youContributedLabel => 'Hai contribuito:'; + + @override + String get perMonth => '/ mese'; + + @override + String get returnToTheMainScreenButton => 'Torna alla schermata principale'; + + @override + String get termsOfServiceLabel => 'Termini di servizio'; + + @override + String get privacyPolicyLabel => 'politica sulla riservatezza'; + + @override + String get donateButton => 'Donare'; + + @override + String get manageSubscriptionTitle => 'Gestisci l\'abbonamento'; + + @override + String get subscriptionStatusActiveLabel => 'Attivo'; + + @override + String get subscriptionStatusCanceledLabel => 'Annullato'; + + @override + String get subscriptionStatusPausedLabel => 'In pausa'; + + @override + String get subscriptionStatusPendingLabel => 'In attesa di'; + + @override + String get subscriptionStatusCreatedLabel => 'Creato'; + + @override + String get subscriptionStatusTimeoutLabel => 'Tempo scaduto'; + + @override + String get subscriptionStatusUnknownLabel => 'Sconosciuto'; + + @override + String get subscriptionDoctorinaContributor => 'Collaboratore di Doctorina'; + + @override + String get subscriptionRenews => 'Rinnova'; + + @override + String get subscriptionCancelButton => 'Annulla abbonamento'; + + @override + String get subscriptionAreYouSureDialogTitle => 'Sei sicuro?'; + + @override + String get subscriptionAreYouSureDialogText => + 'Il tuo contributo mensile mantiene Doctorina gratuito per le persone che ne fanno affidamento ma non possono permettersi di pagare.\n\nIl tuo abbonamento finanzia almeno 10 consulenze gratuite ogni mese.\nSe abbandoni l\'abbonamento, meno pazienti riceveranno l\'assistenza di cui hanno bisogno.'; + + @override + String get subscriptionAreYouSureDialogKeepButton => + 'Mantieni l\'abbonamento'; + + @override + String get subscriptionAreYouSureDialogCancelButton => 'Annulla comunque'; + + @override + String get subscriptionYourMonthlySupportCanceledNotification => + 'Il tuo supporto mensile\nè stato annullato con successo.'; + + @override + String get subscriptionMalformed => 'Dati di abbonamento errati'; + + @override + String get subscriptionSignUpForMonthlySupportButton => + 'Iscriviti al supporto mensile per vederlo apparire qui.'; + + @override + String get subscriptionNoSubscriptionsYet => 'Nessun abbonamento ancora'; + + @override + String get subscriptionCreatedAtDateLabel => 'Data di sottoscrizione'; + + @override + String get subscriptionExpiresAtDateLabel => 'Scade'; + + @override + String get subscriptionSubscriptionIdLabel => 'ID abbonamento'; + + @override + String get subscriptionProductIdLabel => 'ID prodotto'; + + @override + String get subscriptionDialogOkButton => 'OK'; + + @override + String get errorProcessDonationTitle => + 'Non siamo riusciti a procedere con il pagamento'; + + @override + String get errorProcessDonationSubtitle => + 'Si è verificato un errore durante il pagamento.\nRiprova.'; + + @override + String get errorProcessDonationRetryButton => 'Riprova'; + + @override + String get processingDonationTitle => 'Elaborazione del pagamento'; + + @override + String get processingDonationStripeSubtitle => + 'Completerai il tuo acquisto sulla pagina di pagamento sicura di Stripe.'; +} diff --git a/example/lib/src/generated/pay/pay_localization_ko.dart b/example/lib/src/generated/pay/pay_localization_ko.dart new file mode 100644 index 0000000..cf317f9 --- /dev/null +++ b/example/lib/src/generated/pay/pay_localization_ko.dart @@ -0,0 +1,195 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'pay_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Korean (`ko`). +class PayLocalizationKo extends PayLocalization { + PayLocalizationKo([String locale = 'ko']) : super(locale); + + @override + String get title => '지불'; + + @override + String get exampleButton => '버튼 예시'; + + @override + String get donationYesItsAllGoodButton => '네, 다 괜찮아요!'; + + @override + String get everyContributionHealsTitle => '모든 기여는 치유를 가져다줍니다!'; + + @override + String get ifThisHelpedYouConsiderSupportingSubtitle => + '귀하의 기부금은 도움이 필요한 다른 사람들에게 무료 상담을 제공하는 데 도움이 됩니다.'; + + @override + String get payWhatFeelsRightLabel => '옳다고 생각되는 금액을 지불하세요.'; + + @override + String get orKeepUsingDoctorinaForFreeLabel => + '또는 다른 사람들이 기부를 선택했기 때문에 Doctorina를 계속 무료로 사용할 수 있습니다.'; + + @override + String get oneTimeLabel => '일회성'; + + @override + String get monthlyLabel => '월간 간행물'; + + @override + String get chooseMonthlyDonationAmountLabel => '월 기부 금액을 선택하세요'; + + @override + String get subscriptionNoAmount => '월간 요금제를 구독하려고 합니다.'; + + @override + String subscriptionAmount(String amount) { + return '$amount/월에 월간 요금제를 구독하고 있습니다.'; + } + + @override + String subscriptionInfo(String termsOfService, String privacyPolicy) { + return '구매 확인 시 계정으로 요금이 청구됩니다. 현재 구독 기간 종료 최소 24시간 전에 자동 갱신을 해제하지 않으면 구독은 매달 자동으로 갱신됩니다. 계정 설정에서 언제든지 구독을 관리하거나 취소할 수 있습니다. 계속 진행하시면 $termsOfService 및 $privacyPolicy에 동의하는 것으로 간주됩니다.'; + } + + @override + String get chooseOneTimeDonationAmountLabel => '일회 기부 금액을 선택하세요'; + + @override + String get mostPeopleGiveHint => '대부분의 사람들은 \$7~\$15를 기부합니다.'; + + @override + String get selectCurrencyTooltip => '통화 선택'; + + @override + String get processingPaymentSemantics => '결제 처리 중'; + + @override + String processingOneTimePaymentSemantics(String currency, String amount) { + return '$currency $amount의 일회성 결제 처리 중'; + } + + @override + String processingMonthlyPaymentSemantics(String amount) { + return '$amount의 월별 지불 처리 중'; + } + + @override + String get thankYouTitle => '감사합니다!'; + + @override + String get thankYouSubtitle => + '이제 더 많은 사람들이 무료 상담을 받게 될 것입니다. 여러분의 지원은 정말 귀중합니다.'; + + @override + String get youContributedLabel => '귀하의 기여:'; + + @override + String get perMonth => '/ 월'; + + @override + String get returnToTheMainScreenButton => '메인 화면으로 돌아가기'; + + @override + String get termsOfServiceLabel => '서비스 약관'; + + @override + String get privacyPolicyLabel => '개인정보 보호정책'; + + @override + String get donateButton => '기부하기'; + + @override + String get manageSubscriptionTitle => '구독 관리'; + + @override + String get subscriptionStatusActiveLabel => '활동적인'; + + @override + String get subscriptionStatusCanceledLabel => '취소'; + + @override + String get subscriptionStatusPausedLabel => '일시 중지됨'; + + @override + String get subscriptionStatusPendingLabel => '보류 중'; + + @override + String get subscriptionStatusCreatedLabel => '생성됨'; + + @override + String get subscriptionStatusTimeoutLabel => '타임아웃'; + + @override + String get subscriptionStatusUnknownLabel => '알려지지 않은'; + + @override + String get subscriptionDoctorinaContributor => '닥터리나 기고자'; + + @override + String get subscriptionRenews => '갱신하다'; + + @override + String get subscriptionCancelButton => '구독 취소'; + + @override + String get subscriptionAreYouSureDialogTitle => '정말이에요?'; + + @override + String get subscriptionAreYouSureDialogText => + '월간 후원을 통해 Doctorina를 무료로 이용하실 수 있습니다. 부담스러운 분들을 위해 Doctorina를 무료로 제공해 드립니다.\n\n구독을 통해 매달 최소 10회의 무료 상담을 받으실 수 있습니다.\n구독을 중단하시면 필요한 도움을 받을 수 있는 환자가 줄어들게 됩니다.'; + + @override + String get subscriptionAreYouSureDialogKeepButton => '구독 유지'; + + @override + String get subscriptionAreYouSureDialogCancelButton => '어쨌든 취소하세요'; + + @override + String get subscriptionYourMonthlySupportCanceledNotification => + '월간 지원이\n취소되었습니다.'; + + @override + String get subscriptionMalformed => '잘못된 구독 데이터'; + + @override + String get subscriptionSignUpForMonthlySupportButton => + '여기에 표시되려면 월별 지원에 가입하세요.'; + + @override + String get subscriptionNoSubscriptionsYet => '아직 구독이 없습니다'; + + @override + String get subscriptionCreatedAtDateLabel => '구독 날짜'; + + @override + String get subscriptionExpiresAtDateLabel => '만료'; + + @override + String get subscriptionSubscriptionIdLabel => '구독 ID'; + + @override + String get subscriptionProductIdLabel => '제품 ID'; + + @override + String get subscriptionDialogOkButton => '좋아요'; + + @override + String get errorProcessDonationTitle => '결제를 진행할 수 없습니다.'; + + @override + String get errorProcessDonationSubtitle => '결제 과정에서 문제가 발생했습니다.\n다시 시도해 주세요.'; + + @override + String get errorProcessDonationRetryButton => '다시 해 보다'; + + @override + String get processingDonationTitle => '결제 처리 중'; + + @override + String get processingDonationStripeSubtitle => + 'Stripe의 안전한 결제 페이지에서 구매를 완료하세요.'; +} diff --git a/example/lib/src/generated/pay/pay_localization_pt.dart b/example/lib/src/generated/pay/pay_localization_pt.dart new file mode 100644 index 0000000..e5a8e62 --- /dev/null +++ b/example/lib/src/generated/pay/pay_localization_pt.dart @@ -0,0 +1,395 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'pay_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Portuguese (`pt`). +class PayLocalizationPt extends PayLocalization { + PayLocalizationPt([String locale = 'pt']) : super(locale); + + @override + String get title => 'Pagamento'; + + @override + String get exampleButton => 'Exemplo de botão'; + + @override + String get donationYesItsAllGoodButton => 'Sim, está tudo bem!'; + + @override + String get everyContributionHealsTitle => 'Toda contribuição cura!'; + + @override + String get ifThisHelpedYouConsiderSupportingSubtitle => + 'Sua contribuição ajuda a financiar aconselhamento gratuito para outras pessoas necessitadas.'; + + @override + String get payWhatFeelsRightLabel => 'Pague o que achar certo,'; + + @override + String get orKeepUsingDoctorinaForFreeLabel => + 'ou continue usando o Doctorina gratuitamente, graças a outros que escolheram doar.'; + + @override + String get oneTimeLabel => 'Única vez'; + + @override + String get monthlyLabel => 'Mensal'; + + @override + String get chooseMonthlyDonationAmountLabel => + 'Escolha o valor da doação mensal'; + + @override + String get subscriptionNoAmount => + 'Você está prestes a assinar um plano mensal.'; + + @override + String subscriptionAmount(String amount) { + return 'Você está assinando um plano mensal de $amount/mês.'; + } + + @override + String subscriptionInfo(String termsOfService, String privacyPolicy) { + return 'O pagamento será cobrado em sua conta na confirmação da compra. A assinatura é renovada automaticamente todos os meses, a menos que a renovação automática seja desativada pelo menos 24 horas antes do final do período atual. Você pode gerenciar ou cancelar sua assinatura a qualquer momento nas configurações da sua conta. Ao prosseguir, você concorda com nossos $termsOfService e $privacyPolicy.'; + } + + @override + String get chooseOneTimeDonationAmountLabel => + 'Escolha o valor da doação única'; + + @override + String get mostPeopleGiveHint => + 'A maioria das pessoas doa de US\$ 7 a US\$ 15'; + + @override + String get selectCurrencyTooltip => 'Selecione a moeda'; + + @override + String get processingPaymentSemantics => 'Processando pagamento'; + + @override + String processingOneTimePaymentSemantics(String currency, String amount) { + return 'Processando pagamento único de $currency $amount'; + } + + @override + String processingMonthlyPaymentSemantics(String amount) { + return 'Processando pagamento mensal de $amount'; + } + + @override + String get thankYouTitle => 'Obrigado!'; + + @override + String get thankYouSubtitle => + 'Agora, ainda mais pessoas receberão aconselhamento gratuito — seu apoio é realmente inestimável.'; + + @override + String get youContributedLabel => 'Você contribuiu:'; + + @override + String get perMonth => '/ mês'; + + @override + String get returnToTheMainScreenButton => 'Voltar para a tela principal'; + + @override + String get termsOfServiceLabel => 'Termos de Serviço'; + + @override + String get privacyPolicyLabel => 'política de Privacidade'; + + @override + String get donateButton => 'Doar'; + + @override + String get manageSubscriptionTitle => 'Gerenciar assinatura'; + + @override + String get subscriptionStatusActiveLabel => 'Ativo'; + + @override + String get subscriptionStatusCanceledLabel => 'Cancelado'; + + @override + String get subscriptionStatusPausedLabel => 'Pausado'; + + @override + String get subscriptionStatusPendingLabel => 'Pendente'; + + @override + String get subscriptionStatusCreatedLabel => 'Criado'; + + @override + String get subscriptionStatusTimeoutLabel => 'Tempo esgotado'; + + @override + String get subscriptionStatusUnknownLabel => 'Desconhecido'; + + @override + String get subscriptionDoctorinaContributor => 'Colaborador da Doctorina'; + + @override + String get subscriptionRenews => 'Renova'; + + @override + String get subscriptionCancelButton => 'Cancelar assinatura'; + + @override + String get subscriptionAreYouSureDialogTitle => 'Tem certeza?'; + + @override + String get subscriptionAreYouSureDialogText => + 'Seu apoio mensal mantém o Doctorina gratuito para pessoas que dependem dele, mas não podem pagar.\n\nSua assinatura financia pelo menos 10 consultas gratuitas por mês.\nSe você sair, menos pacientes receberão a ajuda de que precisam.'; + + @override + String get subscriptionAreYouSureDialogKeepButton => 'Manter assinatura'; + + @override + String get subscriptionAreYouSureDialogCancelButton => 'Cancelar mesmo assim'; + + @override + String get subscriptionYourMonthlySupportCanceledNotification => + 'Seu suporte mensal\nfoi cancelado com sucesso.'; + + @override + String get subscriptionMalformed => 'Dados de assinatura incorretos'; + + @override + String get subscriptionSignUpForMonthlySupportButton => + 'Cadastre-se para receber suporte mensal para que ele apareça aqui.'; + + @override + String get subscriptionNoSubscriptionsYet => 'Nenhuma assinatura ainda'; + + @override + String get subscriptionCreatedAtDateLabel => 'Data de assinatura'; + + @override + String get subscriptionExpiresAtDateLabel => 'Expira'; + + @override + String get subscriptionSubscriptionIdLabel => 'ID da assinatura'; + + @override + String get subscriptionProductIdLabel => 'ID do produto'; + + @override + String get subscriptionDialogOkButton => 'OK'; + + @override + String get errorProcessDonationTitle => + 'Não foi possível prosseguir com o seu pagamento'; + + @override + String get errorProcessDonationSubtitle => + 'Ocorreu um erro com o pagamento.\nTente novamente.'; + + @override + String get errorProcessDonationRetryButton => 'Tentar novamente'; + + @override + String get processingDonationTitle => 'Processando pagamento'; + + @override + String get processingDonationStripeSubtitle => + 'Você concluirá sua compra na página de checkout segura do Stripe.'; +} + +/// The translations for Portuguese, as used in Brazil (`pt_BR`). +class PayLocalizationPtBr extends PayLocalizationPt { + PayLocalizationPtBr() : super('pt_BR'); + + @override + String get title => 'Pagamento'; + + @override + String get exampleButton => 'Exemplo de botão'; + + @override + String get donationYesItsAllGoodButton => 'Sim, está tudo bem!'; + + @override + String get everyContributionHealsTitle => 'Toda contribuição cura!'; + + @override + String get ifThisHelpedYouConsiderSupportingSubtitle => + 'Sua contribuição ajuda a financiar aconselhamento gratuito para outras pessoas necessitadas.'; + + @override + String get payWhatFeelsRightLabel => 'Pague o que achar certo,'; + + @override + String get orKeepUsingDoctorinaForFreeLabel => + 'ou continue usando o Doctorina gratuitamente, graças a outros que escolheram doar.'; + + @override + String get oneTimeLabel => 'Única vez'; + + @override + String get monthlyLabel => 'Mensal'; + + @override + String get chooseMonthlyDonationAmountLabel => + 'Escolha o valor da doação mensal'; + + @override + String get subscriptionNoAmount => + 'Você está prestes a assinar um plano mensal.'; + + @override + String subscriptionAmount(String amount) { + return 'Você está assinando um plano mensal de $amount/mês.'; + } + + @override + String subscriptionInfo(String termsOfService, String privacyPolicy) { + return 'O pagamento será cobrado em sua conta na confirmação da compra. A assinatura é renovada automaticamente todos os meses, a menos que a renovação automática seja desativada pelo menos 24 horas antes do final do período atual. Você pode gerenciar ou cancelar sua assinatura a qualquer momento nas configurações da sua conta. Ao prosseguir, você concorda com nossos $termsOfService e $privacyPolicy.'; + } + + @override + String get chooseOneTimeDonationAmountLabel => + 'Escolha o valor da doação única'; + + @override + String get mostPeopleGiveHint => + 'A maioria das pessoas doa de US\$ 7 a US\$ 15'; + + @override + String get selectCurrencyTooltip => 'Selecione a moeda'; + + @override + String get processingPaymentSemantics => 'Processando pagamento'; + + @override + String processingOneTimePaymentSemantics(String currency, String amount) { + return 'Processando pagamento único de $currency $amount'; + } + + @override + String processingMonthlyPaymentSemantics(String amount) { + return 'Processando pagamento mensal de $amount'; + } + + @override + String get thankYouTitle => 'Obrigado!'; + + @override + String get thankYouSubtitle => + 'Agora, ainda mais pessoas receberão aconselhamento gratuito — seu apoio é realmente inestimável.'; + + @override + String get youContributedLabel => 'Você contribuiu:'; + + @override + String get perMonth => '/ mês'; + + @override + String get returnToTheMainScreenButton => 'Voltar para a tela principal'; + + @override + String get termsOfServiceLabel => 'Termos de Serviço'; + + @override + String get privacyPolicyLabel => 'política de Privacidade'; + + @override + String get donateButton => 'Doar'; + + @override + String get manageSubscriptionTitle => 'Gerenciar assinatura'; + + @override + String get subscriptionStatusActiveLabel => 'Ativo'; + + @override + String get subscriptionStatusCanceledLabel => 'Cancelado'; + + @override + String get subscriptionStatusPausedLabel => 'Pausado'; + + @override + String get subscriptionStatusPendingLabel => 'Pendente'; + + @override + String get subscriptionStatusCreatedLabel => 'Criado'; + + @override + String get subscriptionStatusTimeoutLabel => 'Tempo esgotado'; + + @override + String get subscriptionStatusUnknownLabel => 'Desconhecido'; + + @override + String get subscriptionDoctorinaContributor => 'Colaborador da Doctorina'; + + @override + String get subscriptionRenews => 'Renova'; + + @override + String get subscriptionCancelButton => 'Cancelar assinatura'; + + @override + String get subscriptionAreYouSureDialogTitle => 'Tem certeza?'; + + @override + String get subscriptionAreYouSureDialogText => + 'Seu apoio mensal mantém o Doctorina gratuito para pessoas que dependem dele, mas não podem pagar.\n\nSua assinatura financia pelo menos 10 consultas gratuitas por mês.\nSe você sair, menos pacientes receberão a ajuda de que precisam.'; + + @override + String get subscriptionAreYouSureDialogKeepButton => 'Manter assinatura'; + + @override + String get subscriptionAreYouSureDialogCancelButton => 'Cancelar mesmo assim'; + + @override + String get subscriptionYourMonthlySupportCanceledNotification => + 'Seu suporte mensal\nfoi cancelado com sucesso.'; + + @override + String get subscriptionMalformed => 'Dados de assinatura incorretos'; + + @override + String get subscriptionSignUpForMonthlySupportButton => + 'Cadastre-se para receber suporte mensal para que ele apareça aqui.'; + + @override + String get subscriptionNoSubscriptionsYet => 'Nenhuma assinatura ainda'; + + @override + String get subscriptionCreatedAtDateLabel => 'Data de assinatura'; + + @override + String get subscriptionExpiresAtDateLabel => 'Expira'; + + @override + String get subscriptionSubscriptionIdLabel => 'ID da assinatura'; + + @override + String get subscriptionProductIdLabel => 'ID do produto'; + + @override + String get subscriptionDialogOkButton => 'OK'; + + @override + String get errorProcessDonationTitle => + 'Não foi possível prosseguir com o seu pagamento'; + + @override + String get errorProcessDonationSubtitle => + 'Ocorreu um erro com o pagamento.\nTente novamente.'; + + @override + String get errorProcessDonationRetryButton => 'Tentar novamente'; + + @override + String get processingDonationTitle => 'Processando pagamento'; + + @override + String get processingDonationStripeSubtitle => + 'Você concluirá sua compra na página de checkout segura do Stripe.'; +} diff --git a/example/lib/src/generated/pay/pay_localization_ru.dart b/example/lib/src/generated/pay/pay_localization_ru.dart index daefcfb..f622dc4 100644 --- a/example/lib/src/generated/pay/pay_localization_ru.dart +++ b/example/lib/src/generated/pay/pay_localization_ru.dart @@ -15,4 +15,187 @@ class PayLocalizationRu extends PayLocalization { @override String get exampleButton => 'Пример кнопки'; + + @override + String get donationYesItsAllGoodButton => 'Да, все хорошо!'; + + @override + String get everyContributionHealsTitle => 'Каждый вклад лечит!'; + + @override + String get ifThisHelpedYouConsiderSupportingSubtitle => + 'Ваш вклад поможет финансировать бесплатные консультации для других нуждающихся.'; + + @override + String get payWhatFeelsRightLabel => + 'Платите столько, сколько считаете нужным,'; + + @override + String get orKeepUsingDoctorinaForFreeLabel => + 'или продолжайте пользоваться Doctorina бесплатно, благодаря другим, кто решил пожертвовать.'; + + @override + String get oneTimeLabel => 'Один раз'; + + @override + String get monthlyLabel => 'Ежемесячно'; + + @override + String get chooseMonthlyDonationAmountLabel => + 'Выберите сумму ежемесячного пожертвования'; + + @override + String get subscriptionNoAmount => + 'Вы собираетесь оформить подписку на ежемесячный план.'; + + @override + String subscriptionAmount(String amount) { + return 'Вы оформляете ежемесячную подписку на $amount/месяц.'; + } + + @override + String subscriptionInfo(String termsOfService, String privacyPolicy) { + return 'Оплата будет списана с вашего счёта при подтверждении покупки. Подписка автоматически продлевается каждый месяц, если автоматическое продление не будет отключено как минимум за 24 часа до окончания текущего периода. Вы можете управлять подпиской или отменить её в любое время в настройках своей учётной записи. Продолжая, вы соглашаетесь с нашими $termsOfService и $privacyPolicy.'; + } + + @override + String get chooseOneTimeDonationAmountLabel => + 'Выберите сумму единовременного пожертвования'; + + @override + String get mostPeopleGiveHint => 'Большинство людей дают 7–15 долларов'; + + @override + String get selectCurrencyTooltip => 'Выберите валюту'; + + @override + String get processingPaymentSemantics => 'Обработка платежа'; + + @override + String processingOneTimePaymentSemantics(String currency, String amount) { + return 'Обработка единовременного платежа в размере $currency $amount'; + } + + @override + String processingMonthlyPaymentSemantics(String amount) { + return 'Обработка ежемесячного платежа в размере $amount'; + } + + @override + String get thankYouTitle => 'Спасибо!'; + + @override + String get thankYouSubtitle => + 'Теперь еще больше людей получат бесплатные консультации — ваша поддержка действительно бесценна.'; + + @override + String get youContributedLabel => 'Вы внесли свой вклад:'; + + @override + String get perMonth => '/ месяц'; + + @override + String get returnToTheMainScreenButton => 'Вернуться на главный экран'; + + @override + String get termsOfServiceLabel => 'Условия обслуживания'; + + @override + String get privacyPolicyLabel => 'политика конфиденциальности'; + + @override + String get donateButton => 'Пожертвовать'; + + @override + String get manageSubscriptionTitle => 'Управление подпиской'; + + @override + String get subscriptionStatusActiveLabel => 'Активна'; + + @override + String get subscriptionStatusCanceledLabel => 'Отменена'; + + @override + String get subscriptionStatusPausedLabel => 'Приостановлена'; + + @override + String get subscriptionStatusPendingLabel => 'В ожидании'; + + @override + String get subscriptionStatusCreatedLabel => 'Создана'; + + @override + String get subscriptionStatusTimeoutLabel => 'Тайм-аут'; + + @override + String get subscriptionStatusUnknownLabel => 'Неизвестно'; + + @override + String get subscriptionDoctorinaContributor => 'Участник Doctorina'; + + @override + String get subscriptionRenews => 'Обновляется'; + + @override + String get subscriptionCancelButton => 'Отменить подписку'; + + @override + String get subscriptionAreYouSureDialogTitle => 'Вы уверены?'; + + @override + String get subscriptionAreYouSureDialogText => + 'Ваша ежемесячная поддержка позволяет людям, которые пользуются Doctorina, но не могут позволить себе платить, получать бесплатную подписку.\n\nВаша подписка покрывает как минимум 10 бесплатных консультаций в месяц.\nЕсли вы откажетесь от услуг, меньше пациентов получат необходимую им помощь.'; + + @override + String get subscriptionAreYouSureDialogKeepButton => 'Сохранить подписку'; + + @override + String get subscriptionAreYouSureDialogCancelButton => + 'Отменить в любом случае'; + + @override + String get subscriptionYourMonthlySupportCanceledNotification => + 'Ваша ежемесячная поддержка\nбыла успешно отменена.'; + + @override + String get subscriptionMalformed => 'Некорректные данные подписки'; + + @override + String get subscriptionSignUpForMonthlySupportButton => + 'Оформите ежемесячную поддержку, чтобы она появилась здесь.'; + + @override + String get subscriptionNoSubscriptionsYet => 'Подписок пока нет'; + + @override + String get subscriptionCreatedAtDateLabel => 'Дата оформления подписки'; + + @override + String get subscriptionExpiresAtDateLabel => 'Истекает'; + + @override + String get subscriptionSubscriptionIdLabel => 'Идентификатор подписки'; + + @override + String get subscriptionProductIdLabel => 'Идентификатор продукта'; + + @override + String get subscriptionDialogOkButton => 'Хорошо'; + + @override + String get errorProcessDonationTitle => 'Мы не смогли обработать ваш платеж'; + + @override + String get errorProcessDonationSubtitle => + 'Произошла ошибка при оплате.\nПопробуйте ещё раз.'; + + @override + String get errorProcessDonationRetryButton => 'Повторить попытку'; + + @override + String get processingDonationTitle => 'Обработка платежа'; + + @override + String get processingDonationStripeSubtitle => + 'Покупку можно завершить на защищенной странице оформления заказа Stripe.'; } diff --git a/example/lib/src/generated/pay/pay_localization_zh.dart b/example/lib/src/generated/pay/pay_localization_zh.dart new file mode 100644 index 0000000..5a16ffe --- /dev/null +++ b/example/lib/src/generated/pay/pay_localization_zh.dart @@ -0,0 +1,377 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'pay_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Chinese (`zh`). +class PayLocalizationZh extends PayLocalization { + PayLocalizationZh([String locale = 'zh']) : super(locale); + + @override + String get title => '支付'; + + @override + String get exampleButton => '按钮示例'; + + @override + String get donationYesItsAllGoodButton => '是的,一切都很好!'; + + @override + String get everyContributionHealsTitle => '每一次贡献都会带来治愈!'; + + @override + String get ifThisHelpedYouConsiderSupportingSubtitle => + '您的捐款有助于为有需要的人提供免费建议。'; + + @override + String get payWhatFeelsRightLabel => '支付合适的费用,'; + + @override + String get orKeepUsingDoctorinaForFreeLabel => + '或者继续免费使用 Doctorina,感谢其他选择捐赠的人。'; + + @override + String get oneTimeLabel => '一度'; + + @override + String get monthlyLabel => '每月'; + + @override + String get chooseMonthlyDonationAmountLabel => '选择每月捐款金额'; + + @override + String get subscriptionNoAmount => '您即将订阅月度计划。'; + + @override + String subscriptionAmount(String amount) { + return '您正在订阅每月 $amount 的月度计划。'; + } + + @override + String subscriptionInfo(String termsOfService, String privacyPolicy) { + return '确认购买后,款项将从您的账户中扣除。除非在当前订阅期结束前至少 24 小时关闭自动续订,否则订阅将每月自动续订。您可以随时在账户设置中管理或取消订阅。继续操作即表示您同意我们的$termsOfService和$privacyPolicy。'; + } + + @override + String get chooseOneTimeDonationAmountLabel => '选择一次性捐款金额'; + + @override + String get mostPeopleGiveHint => '大多数人捐赠 7 至 15 美元'; + + @override + String get selectCurrencyTooltip => '选择货币'; + + @override + String get processingPaymentSemantics => '处理付款'; + + @override + String processingOneTimePaymentSemantics(String currency, String amount) { + return '正在处理一次性付款 $currency $amount'; + } + + @override + String processingMonthlyPaymentSemantics(String amount) { + return '处理每月 $amount 的付款'; + } + + @override + String get thankYouTitle => '谢谢你!'; + + @override + String get thankYouSubtitle => '现在将有更多的人获得免费建议——您的支持确实非常宝贵。'; + + @override + String get youContributedLabel => '您贡献了:'; + + @override + String get perMonth => '/ 月'; + + @override + String get returnToTheMainScreenButton => '返回主屏幕'; + + @override + String get termsOfServiceLabel => '服务条款'; + + @override + String get privacyPolicyLabel => '隐私政策'; + + @override + String get donateButton => '捐'; + + @override + String get manageSubscriptionTitle => '管理订阅'; + + @override + String get subscriptionStatusActiveLabel => '积极的'; + + @override + String get subscriptionStatusCanceledLabel => '取消'; + + @override + String get subscriptionStatusPausedLabel => '已暂停'; + + @override + String get subscriptionStatusPendingLabel => '待办的'; + + @override + String get subscriptionStatusCreatedLabel => '创建'; + + @override + String get subscriptionStatusTimeoutLabel => '暂停'; + + @override + String get subscriptionStatusUnknownLabel => '未知'; + + @override + String get subscriptionDoctorinaContributor => 'Doctorina 撰稿人'; + + @override + String get subscriptionRenews => '续订'; + + @override + String get subscriptionCancelButton => '取消订阅'; + + @override + String get subscriptionAreYouSureDialogTitle => '你确定吗?'; + + @override + String get subscriptionAreYouSureDialogText => + '您的每月支持将使那些依赖 Doctorina 但无力支付的患者能够免费使用。\n\n您的订阅费用每月至少可支持 10 次免费咨询。\n如果您离开,获得所需帮助的患者将会减少。'; + + @override + String get subscriptionAreYouSureDialogKeepButton => '保持订阅'; + + @override + String get subscriptionAreYouSureDialogCancelButton => '仍然取消'; + + @override + String get subscriptionYourMonthlySupportCanceledNotification => + '您的每月支持已成功取消。'; + + @override + String get subscriptionMalformed => '订阅数据不正确'; + + @override + String get subscriptionSignUpForMonthlySupportButton => '注册每月支持以使其出现在这里。'; + + @override + String get subscriptionNoSubscriptionsYet => '尚未订阅'; + + @override + String get subscriptionCreatedAtDateLabel => '订阅日期'; + + @override + String get subscriptionExpiresAtDateLabel => '过期'; + + @override + String get subscriptionSubscriptionIdLabel => '订阅 ID'; + + @override + String get subscriptionProductIdLabel => '产品 ID'; + + @override + String get subscriptionDialogOkButton => '好的'; + + @override + String get errorProcessDonationTitle => '我们无法继续您的付款'; + + @override + String get errorProcessDonationSubtitle => '付款出现问题。\n请重试。'; + + @override + String get errorProcessDonationRetryButton => '重试'; + + @override + String get processingDonationTitle => '处理付款'; + + @override + String get processingDonationStripeSubtitle => '您将在 Stripe 的安全结账页面上完成购买。'; +} + +/// The translations for Chinese, as used in China (`zh_CN`). +class PayLocalizationZhCn extends PayLocalizationZh { + PayLocalizationZhCn() : super('zh_CN'); + + @override + String get title => '支付'; + + @override + String get exampleButton => '按钮示例'; + + @override + String get donationYesItsAllGoodButton => '是的,一切都很好!'; + + @override + String get everyContributionHealsTitle => '每一次贡献都会带来治愈!'; + + @override + String get ifThisHelpedYouConsiderSupportingSubtitle => + '您的捐款有助于为有需要的人提供免费建议。'; + + @override + String get payWhatFeelsRightLabel => '支付合适的费用,'; + + @override + String get orKeepUsingDoctorinaForFreeLabel => + '或者继续免费使用 Doctorina,感谢其他选择捐赠的人。'; + + @override + String get oneTimeLabel => '一度'; + + @override + String get monthlyLabel => '每月'; + + @override + String get chooseMonthlyDonationAmountLabel => '选择每月捐款金额'; + + @override + String get subscriptionNoAmount => '您即将订阅月度计划。'; + + @override + String subscriptionAmount(String amount) { + return '您正在订阅每月 $amount 的月度计划。'; + } + + @override + String subscriptionInfo(String termsOfService, String privacyPolicy) { + return '确认购买后,款项将从您的账户中扣除。除非在当前订阅期结束前至少 24 小时关闭自动续订,否则订阅将每月自动续订。您可以随时在账户设置中管理或取消订阅。继续操作即表示您同意我们的$termsOfService和$privacyPolicy。'; + } + + @override + String get chooseOneTimeDonationAmountLabel => '选择一次性捐款金额'; + + @override + String get mostPeopleGiveHint => '大多数人捐赠 7 至 15 美元'; + + @override + String get selectCurrencyTooltip => '选择货币'; + + @override + String get processingPaymentSemantics => '处理付款'; + + @override + String processingOneTimePaymentSemantics(String currency, String amount) { + return '正在处理一次性付款 $currency $amount'; + } + + @override + String processingMonthlyPaymentSemantics(String amount) { + return '处理每月 $amount 的付款'; + } + + @override + String get thankYouTitle => '谢谢你!'; + + @override + String get thankYouSubtitle => '现在将有更多的人获得免费建议——您的支持确实非常宝贵。'; + + @override + String get youContributedLabel => '您贡献了:'; + + @override + String get perMonth => '/ 月'; + + @override + String get returnToTheMainScreenButton => '返回主屏幕'; + + @override + String get termsOfServiceLabel => '服务条款'; + + @override + String get privacyPolicyLabel => '隐私政策'; + + @override + String get donateButton => '捐'; + + @override + String get manageSubscriptionTitle => '管理订阅'; + + @override + String get subscriptionStatusActiveLabel => '积极的'; + + @override + String get subscriptionStatusCanceledLabel => '取消'; + + @override + String get subscriptionStatusPausedLabel => '已暂停'; + + @override + String get subscriptionStatusPendingLabel => '待办的'; + + @override + String get subscriptionStatusCreatedLabel => '创建'; + + @override + String get subscriptionStatusTimeoutLabel => '暂停'; + + @override + String get subscriptionStatusUnknownLabel => '未知'; + + @override + String get subscriptionDoctorinaContributor => 'Doctorina 撰稿人'; + + @override + String get subscriptionRenews => '续订'; + + @override + String get subscriptionCancelButton => '取消订阅'; + + @override + String get subscriptionAreYouSureDialogTitle => '你确定吗?'; + + @override + String get subscriptionAreYouSureDialogText => + '您的每月支持将使那些依赖 Doctorina 但无力支付的患者能够免费使用。\n\n您的订阅费用每月至少可支持 10 次免费咨询。\n如果您离开,获得所需帮助的患者将会减少。'; + + @override + String get subscriptionAreYouSureDialogKeepButton => '保持订阅'; + + @override + String get subscriptionAreYouSureDialogCancelButton => '仍然取消'; + + @override + String get subscriptionYourMonthlySupportCanceledNotification => + '您的每月支持已成功取消。'; + + @override + String get subscriptionMalformed => '订阅数据不正确'; + + @override + String get subscriptionSignUpForMonthlySupportButton => '注册每月支持以使其出现在这里。'; + + @override + String get subscriptionNoSubscriptionsYet => '尚未订阅'; + + @override + String get subscriptionCreatedAtDateLabel => '订阅日期'; + + @override + String get subscriptionExpiresAtDateLabel => '过期'; + + @override + String get subscriptionSubscriptionIdLabel => '订阅 ID'; + + @override + String get subscriptionProductIdLabel => '产品 ID'; + + @override + String get subscriptionDialogOkButton => '好的'; + + @override + String get errorProcessDonationTitle => '我们无法继续您的付款'; + + @override + String get errorProcessDonationSubtitle => '付款出现问题。\n请重试。'; + + @override + String get errorProcessDonationRetryButton => '重试'; + + @override + String get processingDonationTitle => '处理付款'; + + @override + String get processingDonationStripeSubtitle => '您将在 Stripe 的安全结账页面上完成购买。'; +} diff --git a/example/lib/src/generated/settings/settings_localization.dart b/example/lib/src/generated/settings/settings_localization.dart index dde9632..d95a45c 100644 --- a/example/lib/src/generated/settings/settings_localization.dart +++ b/example/lib/src/generated/settings/settings_localization.dart @@ -6,10 +6,18 @@ import 'package:flutter/widgets.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:intl/intl.dart' as intl; +import 'settings_localization_ar.dart'; +import 'settings_localization_bn.dart'; import 'settings_localization_de.dart'; import 'settings_localization_en.dart'; import 'settings_localization_es.dart'; +import 'settings_localization_fr.dart'; +import 'settings_localization_hi.dart'; +import 'settings_localization_it.dart'; +import 'settings_localization_ko.dart'; +import 'settings_localization_pt.dart'; import 'settings_localization_ru.dart'; +import 'settings_localization_zh.dart'; // ignore_for_file: type=lint @@ -98,10 +106,20 @@ abstract class SettingsLocalization { /// A list of this localizations delegate's supported locales. static const List supportedLocales = [ + Locale('ar'), + Locale('bn'), Locale('de'), Locale('en'), Locale('es'), - Locale('ru') + Locale('fr'), + Locale('hi'), + Locale('it'), + Locale('ko'), + Locale('pt'), + Locale('pt', 'BR'), + Locale('ru'), + Locale('zh'), + Locale('zh', 'CN') ]; /// Заголовок экрана @@ -175,6 +193,114 @@ abstract class SettingsLocalization { /// In en, this message translates to: /// **'Sign Out'** String get sectionLogOutButton; + + /// No description provided for @sendBugReportButton. + /// + /// In en, this message translates to: + /// **'Send Bug Report'** + String get sendBugReportButton; + + /// No description provided for @sectionSendMessageWithShiftEnterTitle. + /// + /// In en, this message translates to: + /// **'Send message with [⏎ Enter]'** + String get sectionSendMessageWithShiftEnterTitle; + + /// No description provided for @sectionSendMessageWithShiftEnterSubtitle. + /// + /// In en, this message translates to: + /// **'Send a message with [⏎ Enter] and a new line with [Shift] + [⏎ Enter]'** + String get sectionSendMessageWithShiftEnterSubtitle; + + /// No description provided for @sectionSelectLocaleTitle. + /// + /// In en, this message translates to: + /// **'Language'** + String get sectionSelectLocaleTitle; + + /// No description provided for @sectionSelectLocaleSubtitle. + /// + /// In en, this message translates to: + /// **'Select your preferred language for the app interface'** + String get sectionSelectLocaleSubtitle; + + /// No description provided for @sectionSwitchThemeTitle. + /// + /// In en, this message translates to: + /// **'Dark mode'** + String get sectionSwitchThemeTitle; + + /// No description provided for @sectionSwitchThemeSubtitle. + /// + /// In en, this message translates to: + /// **'Enable dark mode for a comfortable viewing experience in low light'** + String get sectionSwitchThemeSubtitle; + + /// No description provided for @sectionLogsTitle. + /// + /// In en, this message translates to: + /// **'Logs'** + String get sectionLogsTitle; + + /// No description provided for @sectionLogsSubtitle. + /// + /// In en, this message translates to: + /// **'View and manage application logs for debugging'** + String get sectionLogsSubtitle; + + /// No description provided for @doneButton. + /// + /// In en, this message translates to: + /// **'Done'** + String get doneButton; + + /// No description provided for @bugReportDialogTitle. + /// + /// In en, this message translates to: + /// **'Bug Report'** + String get bugReportDialogTitle; + + /// No description provided for @bugReportDialogHintText. + /// + /// In en, this message translates to: + /// **'Please describe the bug you encountered'** + String get bugReportDialogHintText; + + /// No description provided for @attachFilesButtonTooltip. + /// + /// In en, this message translates to: + /// **'Attach files'** + String get attachFilesButtonTooltip; + + /// No description provided for @filePickerError. + /// + /// In en, this message translates to: + /// **'Failed to pick files'** + String get filePickerError; + + /// No description provided for @emptyBugReportError. + /// + /// In en, this message translates to: + /// **'Please enter a bug report first'** + String get emptyBugReportError; + + /// No description provided for @failedToSendBugReportError. + /// + /// In en, this message translates to: + /// **'Failed to send bug report'** + String get failedToSendBugReportError; + + /// No description provided for @sectionManageSubscriptionTitle. + /// + /// In en, this message translates to: + /// **'Manage subscription'** + String get sectionManageSubscriptionTitle; + + /// No description provided for @sectionManageSubscriptionSubtitle. + /// + /// In en, this message translates to: + /// **'Manage your subscription settings'** + String get sectionManageSubscriptionSubtitle; } class _SettingsLocalizationDelegate @@ -188,24 +314,72 @@ class _SettingsLocalizationDelegate } @override - bool isSupported(Locale locale) => - ['de', 'en', 'es', 'ru'].contains(locale.languageCode); + bool isSupported(Locale locale) => [ + 'ar', + 'bn', + 'de', + 'en', + 'es', + 'fr', + 'hi', + 'it', + 'ko', + 'pt', + 'ru', + 'zh' + ].contains(locale.languageCode); @override bool shouldReload(_SettingsLocalizationDelegate old) => false; } SettingsLocalization lookupSettingsLocalization(Locale locale) { + // Lookup logic when language+country codes are specified. + switch (locale.languageCode) { + case 'pt': + { + switch (locale.countryCode) { + case 'BR': + return SettingsLocalizationPtBr(); + } + break; + } + case 'zh': + { + switch (locale.countryCode) { + case 'CN': + return SettingsLocalizationZhCn(); + } + break; + } + } + // Lookup logic when only language code is specified. switch (locale.languageCode) { + case 'ar': + return SettingsLocalizationAr(); + case 'bn': + return SettingsLocalizationBn(); case 'de': return SettingsLocalizationDe(); case 'en': return SettingsLocalizationEn(); case 'es': return SettingsLocalizationEs(); + case 'fr': + return SettingsLocalizationFr(); + case 'hi': + return SettingsLocalizationHi(); + case 'it': + return SettingsLocalizationIt(); + case 'ko': + return SettingsLocalizationKo(); + case 'pt': + return SettingsLocalizationPt(); case 'ru': return SettingsLocalizationRu(); + case 'zh': + return SettingsLocalizationZh(); } throw FlutterError( diff --git a/example/lib/src/generated/settings/settings_localization_ar.dart b/example/lib/src/generated/settings/settings_localization_ar.dart new file mode 100644 index 0000000..a2c2199 --- /dev/null +++ b/example/lib/src/generated/settings/settings_localization_ar.dart @@ -0,0 +1,108 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'settings_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Arabic (`ar`). +class SettingsLocalizationAr extends SettingsLocalization { + SettingsLocalizationAr([String locale = 'ar']) : super(locale); + + @override + String get title => 'إعدادات الحساب'; + + @override + String get sectionClearAllChatsTitle => 'مسح جميع الدردشات'; + + @override + String get sectionClearAllChatsSubtitle => + 'سيؤدي هذا إلى حذف سجل الدردشة الخاص بك بشكل دائم.'; + + @override + String get sectionClearAllChatsButton => 'مسح جميع الدردشات'; + + @override + String get sectionClearAllChatsEmailTheme => 'مسح جميع الدردشات'; + + @override + String get sectionDeleteAccountTitle => 'حذف الحساب'; + + @override + String get sectionDeleteAccountSubtitle => + 'إن حذف حسابك هو إجراء دائم ولا يمكن التراجع عنه.'; + + @override + String get sectionDeleteAccountButton => 'يمسح'; + + @override + String get sectionDeleteAccountTheme => 'حذف الحساب'; + + @override + String get sectionLogOutTitle => 'تسجيل الخروج'; + + @override + String get sectionLogOutSubtitle => 'سيتم تسجيل خروجك من حسابك.'; + + @override + String get sectionLogOutButton => 'تسجيل الخروج'; + + @override + String get sendBugReportButton => 'إرسال تقرير عن الخطأ'; + + @override + String get sectionSendMessageWithShiftEnterTitle => + 'أرسل رسالة باستخدام [⏎ Enter]'; + + @override + String get sectionSendMessageWithShiftEnterSubtitle => + 'أرسل رسالة باستخدام [⏎ Enter] وسطر جديد باستخدام [Shift] + [⏎ Enter]'; + + @override + String get sectionSelectLocaleTitle => 'لغة'; + + @override + String get sectionSelectLocaleSubtitle => + 'حدد اللغة المفضلة لديك لواجهة التطبيق'; + + @override + String get sectionSwitchThemeTitle => 'الوضع المظلم'; + + @override + String get sectionSwitchThemeSubtitle => + 'قم بتمكين الوضع المظلم للحصول على تجربة مشاهدة مريحة في الإضاءة المنخفضة'; + + @override + String get sectionLogsTitle => 'السجلات'; + + @override + String get sectionLogsSubtitle => 'عرض وإدارة سجلات التطبيق للتصحيح'; + + @override + String get doneButton => 'منتهي'; + + @override + String get bugReportDialogTitle => 'تقرير الأخطاء'; + + @override + String get bugReportDialogHintText => 'يرجى وصف الخطأ الذي واجهته'; + + @override + String get attachFilesButtonTooltip => 'إرفاق الملفات'; + + @override + String get filePickerError => 'فشل في اختيار الملفات'; + + @override + String get emptyBugReportError => 'الرجاء إدخال تقرير الخطأ أولاً'; + + @override + String get failedToSendBugReportError => 'فشل في إرسال تقرير الخطأ'; + + @override + String get sectionManageSubscriptionTitle => 'إدارة الاشتراك'; + + @override + String get sectionManageSubscriptionSubtitle => 'إدارة إعدادات اشتراكك'; +} diff --git a/example/lib/src/generated/settings/settings_localization_bn.dart b/example/lib/src/generated/settings/settings_localization_bn.dart new file mode 100644 index 0000000..3ae6e02 --- /dev/null +++ b/example/lib/src/generated/settings/settings_localization_bn.dart @@ -0,0 +1,111 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'settings_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Bengali Bangla (`bn`). +class SettingsLocalizationBn extends SettingsLocalization { + SettingsLocalizationBn([String locale = 'bn']) : super(locale); + + @override + String get title => 'অ্যাকাউন্ট সেটিংস'; + + @override + String get sectionClearAllChatsTitle => 'সমস্ত চ্যাট সাফ করুন'; + + @override + String get sectionClearAllChatsSubtitle => + 'এটি স্থায়ীভাবে আপনার চ্যাট ইতিহাস মুছে ফেলবে।'; + + @override + String get sectionClearAllChatsButton => 'সমস্ত চ্যাট সাফ করুন'; + + @override + String get sectionClearAllChatsEmailTheme => 'সমস্ত চ্যাট সাফ করুন'; + + @override + String get sectionDeleteAccountTitle => 'অ্যাকাউন্ট মুছুন'; + + @override + String get sectionDeleteAccountSubtitle => + 'আপনার অ্যাকাউন্ট মুছে ফেলা একটি স্থায়ী কাজ এবং পূর্বাবস্থায় ফেরানো যাবে না।'; + + @override + String get sectionDeleteAccountButton => 'মুছুন'; + + @override + String get sectionDeleteAccountTheme => 'অ্যাকাউন্ট মুছুন'; + + @override + String get sectionLogOutTitle => 'সাইন আউট'; + + @override + String get sectionLogOutSubtitle => + 'আপনি আপনার অ্যাকাউন্ট থেকে সাইন আউট করা হবে.'; + + @override + String get sectionLogOutButton => 'সাইন আউট'; + + @override + String get sendBugReportButton => 'বাগ রিপোর্ট পাঠান'; + + @override + String get sectionSendMessageWithShiftEnterTitle => + '[⏎ Enter] দিয়ে বার্তা পাঠান'; + + @override + String get sectionSendMessageWithShiftEnterSubtitle => + '[⏎ Enter] দিয়ে একটি বার্তা পাঠান এবং [Shift] + [⏎ Enter] দিয়ে একটি নতুন লাইন পাঠান'; + + @override + String get sectionSelectLocaleTitle => 'ভাষা'; + + @override + String get sectionSelectLocaleSubtitle => + 'অ্যাপ ইন্টারফেসের জন্য আপনার পছন্দের ভাষা নির্বাচন করুন'; + + @override + String get sectionSwitchThemeTitle => 'ডার্ক মোড'; + + @override + String get sectionSwitchThemeSubtitle => + 'কম আলোতে আরামদায়ক দেখার অভিজ্ঞতার জন্য অন্ধকার মোড সক্ষম করুন'; + + @override + String get sectionLogsTitle => 'লগ'; + + @override + String get sectionLogsSubtitle => + 'ডিবাগিংয়ের জন্য অ্যাপ্লিকেশন লগগুলি দেখুন এবং পরিচালনা করুন৷'; + + @override + String get doneButton => 'সম্পন্ন'; + + @override + String get bugReportDialogTitle => 'বাগ রিপোর্ট'; + + @override + String get bugReportDialogHintText => 'আপনি সম্মুখীন বাগ বর্ণনা করুন'; + + @override + String get attachFilesButtonTooltip => 'ফাইল সংযুক্ত করুন'; + + @override + String get filePickerError => 'ফাইল বাছাই করতে ব্যর্থ হয়েছে'; + + @override + String get emptyBugReportError => 'অনুগ্রহ করে প্রথমে একটি বাগ রিপোর্ট লিখুন'; + + @override + String get failedToSendBugReportError => 'বাগ রিপোর্ট পাঠাতে ব্যর্থ হয়েছে'; + + @override + String get sectionManageSubscriptionTitle => 'সদস্যতা পরিচালনা করুন'; + + @override + String get sectionManageSubscriptionSubtitle => + 'আপনার সদস্যতা সেটিংস পরিচালনা করুন'; +} diff --git a/example/lib/src/generated/settings/settings_localization_de.dart b/example/lib/src/generated/settings/settings_localization_de.dart index 34cf9de..55e9c68 100644 --- a/example/lib/src/generated/settings/settings_localization_de.dart +++ b/example/lib/src/generated/settings/settings_localization_de.dart @@ -47,4 +47,67 @@ class SettingsLocalizationDe extends SettingsLocalization { @override String get sectionLogOutButton => 'Abmelden'; + + @override + String get sendBugReportButton => 'Fehlerbericht senden'; + + @override + String get sectionSendMessageWithShiftEnterTitle => + 'Nachricht senden mit [⏎ Enter]'; + + @override + String get sectionSendMessageWithShiftEnterSubtitle => + 'Senden Sie eine Nachricht mit [⏎ Enter] und eine neue Zeile mit [Shift] + [⏎ Enter]'; + + @override + String get sectionSelectLocaleTitle => 'Sprache'; + + @override + String get sectionSelectLocaleSubtitle => + 'Wählen Sie Ihre bevorzugte Sprache für die App-Oberfläche'; + + @override + String get sectionSwitchThemeTitle => 'Dunkler Modus'; + + @override + String get sectionSwitchThemeSubtitle => + 'Aktivieren Sie den Dunkelmodus für ein angenehmes Seherlebnis bei schwachem Licht'; + + @override + String get sectionLogsTitle => 'Protokolle'; + + @override + String get sectionLogsSubtitle => + 'Anzeigen und Verwalten von Anwendungsprotokollen zum Debuggen'; + + @override + String get doneButton => 'Erledigt'; + + @override + String get bugReportDialogTitle => 'Fehlerbericht'; + + @override + String get bugReportDialogHintText => + 'Bitte beschreiben Sie den aufgetretenen Fehler'; + + @override + String get attachFilesButtonTooltip => 'Dateien anhängen'; + + @override + String get filePickerError => 'Fehler beim Auswählen der Dateien'; + + @override + String get emptyBugReportError => + 'Bitte geben Sie zuerst einen Fehlerbericht ein'; + + @override + String get failedToSendBugReportError => + 'Fehlerbericht konnte nicht gesendet werden'; + + @override + String get sectionManageSubscriptionTitle => 'Abonnement verwalten'; + + @override + String get sectionManageSubscriptionSubtitle => + 'Verwalten Sie Ihre Abonnementeinstellungen'; } diff --git a/example/lib/src/generated/settings/settings_localization_en.dart b/example/lib/src/generated/settings/settings_localization_en.dart index 84bdf7c..85d0a2b 100644 --- a/example/lib/src/generated/settings/settings_localization_en.dart +++ b/example/lib/src/generated/settings/settings_localization_en.dart @@ -47,4 +47,65 @@ class SettingsLocalizationEn extends SettingsLocalization { @override String get sectionLogOutButton => 'Sign Out'; + + @override + String get sendBugReportButton => 'Send Bug Report'; + + @override + String get sectionSendMessageWithShiftEnterTitle => + 'Send message with [⏎ Enter]'; + + @override + String get sectionSendMessageWithShiftEnterSubtitle => + 'Send a message with [⏎ Enter] and a new line with [Shift] + [⏎ Enter]'; + + @override + String get sectionSelectLocaleTitle => 'Language'; + + @override + String get sectionSelectLocaleSubtitle => + 'Select your preferred language for the app interface'; + + @override + String get sectionSwitchThemeTitle => 'Dark mode'; + + @override + String get sectionSwitchThemeSubtitle => + 'Enable dark mode for a comfortable viewing experience in low light'; + + @override + String get sectionLogsTitle => 'Logs'; + + @override + String get sectionLogsSubtitle => + 'View and manage application logs for debugging'; + + @override + String get doneButton => 'Done'; + + @override + String get bugReportDialogTitle => 'Bug Report'; + + @override + String get bugReportDialogHintText => + 'Please describe the bug you encountered'; + + @override + String get attachFilesButtonTooltip => 'Attach files'; + + @override + String get filePickerError => 'Failed to pick files'; + + @override + String get emptyBugReportError => 'Please enter a bug report first'; + + @override + String get failedToSendBugReportError => 'Failed to send bug report'; + + @override + String get sectionManageSubscriptionTitle => 'Manage subscription'; + + @override + String get sectionManageSubscriptionSubtitle => + 'Manage your subscription settings'; } diff --git a/example/lib/src/generated/settings/settings_localization_es.dart b/example/lib/src/generated/settings/settings_localization_es.dart index 0193309..bec5411 100644 --- a/example/lib/src/generated/settings/settings_localization_es.dart +++ b/example/lib/src/generated/settings/settings_localization_es.dart @@ -47,4 +47,67 @@ class SettingsLocalizationEs extends SettingsLocalization { @override String get sectionLogOutButton => 'Cerrar sesión'; + + @override + String get sendBugReportButton => 'Enviar informe de error'; + + @override + String get sectionSendMessageWithShiftEnterTitle => + 'Enviar mensaje con [⏎ Enter]'; + + @override + String get sectionSendMessageWithShiftEnterSubtitle => + 'Envía un mensaje con [⏎ Enter] y una nueva línea con [Shift] + [⏎ Enter]'; + + @override + String get sectionSelectLocaleTitle => 'Idioma'; + + @override + String get sectionSelectLocaleSubtitle => + 'Seleccione su idioma preferido para la interfaz de la aplicación'; + + @override + String get sectionSwitchThemeTitle => 'Modo oscuro'; + + @override + String get sectionSwitchThemeSubtitle => + 'Habilite el modo oscuro para una experiencia de visualización cómoda con poca luz.'; + + @override + String get sectionLogsTitle => 'Registros'; + + @override + String get sectionLogsSubtitle => + 'Ver y administrar registros de aplicaciones para depuración'; + + @override + String get doneButton => 'Hecho'; + + @override + String get bugReportDialogTitle => 'Informe de errores'; + + @override + String get bugReportDialogHintText => + 'Por favor describe el error que encontraste'; + + @override + String get attachFilesButtonTooltip => 'Adjuntar archivos'; + + @override + String get filePickerError => 'No se pudieron seleccionar los archivos'; + + @override + String get emptyBugReportError => + 'Por favor, primero ingrese un informe de error'; + + @override + String get failedToSendBugReportError => + 'No se pudo enviar el informe de error'; + + @override + String get sectionManageSubscriptionTitle => 'Administrar suscripción'; + + @override + String get sectionManageSubscriptionSubtitle => + 'Administrar la configuración de su suscripción'; } diff --git a/example/lib/src/generated/settings/settings_localization_fr.dart b/example/lib/src/generated/settings/settings_localization_fr.dart new file mode 100644 index 0000000..9aebac7 --- /dev/null +++ b/example/lib/src/generated/settings/settings_localization_fr.dart @@ -0,0 +1,113 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'settings_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for French (`fr`). +class SettingsLocalizationFr extends SettingsLocalization { + SettingsLocalizationFr([String locale = 'fr']) : super(locale); + + @override + String get title => 'Paramètres du compte'; + + @override + String get sectionClearAllChatsTitle => 'Effacer toutes les discussions'; + + @override + String get sectionClearAllChatsSubtitle => + 'Cela supprimera définitivement votre historique de discussion.'; + + @override + String get sectionClearAllChatsButton => 'Effacer toutes les discussions'; + + @override + String get sectionClearAllChatsEmailTheme => 'Effacer toutes les discussions'; + + @override + String get sectionDeleteAccountTitle => 'Supprimer le compte'; + + @override + String get sectionDeleteAccountSubtitle => + 'La suppression de votre compte est une action permanente et ne peut pas être annulée.'; + + @override + String get sectionDeleteAccountButton => 'Supprimer'; + + @override + String get sectionDeleteAccountTheme => 'Supprimer le compte'; + + @override + String get sectionLogOutTitle => 'Se déconnecter'; + + @override + String get sectionLogOutSubtitle => 'Vous serez déconnecté de votre compte.'; + + @override + String get sectionLogOutButton => 'Se déconnecter'; + + @override + String get sendBugReportButton => 'Envoyer un rapport de bogue'; + + @override + String get sectionSendMessageWithShiftEnterTitle => + 'Envoyer un message avec [⏎ Entrée]'; + + @override + String get sectionSendMessageWithShiftEnterSubtitle => + 'Envoyer un message avec [⏎ Entrée] et une nouvelle ligne avec [Maj] + [⏎ Entrée]'; + + @override + String get sectionSelectLocaleTitle => 'Langue'; + + @override + String get sectionSelectLocaleSubtitle => + 'Sélectionnez votre langue préférée pour l\'interface de l\'application'; + + @override + String get sectionSwitchThemeTitle => 'Mode sombre'; + + @override + String get sectionSwitchThemeSubtitle => + 'Activez le mode sombre pour une expérience de visionnage confortable en basse lumière'; + + @override + String get sectionLogsTitle => 'Journaux'; + + @override + String get sectionLogsSubtitle => + 'Afficher et gérer les journaux d\'application pour le débogage'; + + @override + String get doneButton => 'Fait'; + + @override + String get bugReportDialogTitle => 'Rapport de bogue'; + + @override + String get bugReportDialogHintText => + 'Veuillez décrire le bug que vous avez rencontré'; + + @override + String get attachFilesButtonTooltip => 'Joindre des fichiers'; + + @override + String get filePickerError => 'Échec de la sélection des fichiers'; + + @override + String get emptyBugReportError => + 'Veuillez d\'abord saisir un rapport de bogue'; + + @override + String get failedToSendBugReportError => + 'Échec de l\'envoi du rapport de bogue'; + + @override + String get sectionManageSubscriptionTitle => 'Gérer l\'abonnement'; + + @override + String get sectionManageSubscriptionSubtitle => + 'Gérez vos paramètres d\'abonnement'; +} diff --git a/example/lib/src/generated/settings/settings_localization_hi.dart b/example/lib/src/generated/settings/settings_localization_hi.dart new file mode 100644 index 0000000..b1ef151 --- /dev/null +++ b/example/lib/src/generated/settings/settings_localization_hi.dart @@ -0,0 +1,111 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'settings_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Hindi (`hi`). +class SettingsLocalizationHi extends SettingsLocalization { + SettingsLocalizationHi([String locale = 'hi']) : super(locale); + + @override + String get title => 'अकाउंट सेटिंग'; + + @override + String get sectionClearAllChatsTitle => 'सभी चैट साफ़ करें'; + + @override + String get sectionClearAllChatsSubtitle => + 'इससे आपका चैट इतिहास स्थायी रूप से मिट जाएगा।'; + + @override + String get sectionClearAllChatsButton => 'सभी चैट साफ़ करें'; + + @override + String get sectionClearAllChatsEmailTheme => 'सभी चैट साफ़ करें'; + + @override + String get sectionDeleteAccountTitle => 'खाता हटा दो'; + + @override + String get sectionDeleteAccountSubtitle => + 'अपना खाता हटाना एक स्थायी कार्रवाई है और इसे पूर्ववत नहीं किया जा सकता.'; + + @override + String get sectionDeleteAccountButton => 'मिटाना'; + + @override + String get sectionDeleteAccountTheme => 'खाता हटा दो'; + + @override + String get sectionLogOutTitle => 'साइन आउट'; + + @override + String get sectionLogOutSubtitle => 'आप अपने खाते से साइन आउट हो जाएंगे.'; + + @override + String get sectionLogOutButton => 'साइन आउट'; + + @override + String get sendBugReportButton => 'बग रिपोर्ट भेजें'; + + @override + String get sectionSendMessageWithShiftEnterTitle => + '[⏎ Enter] के साथ संदेश भेजें'; + + @override + String get sectionSendMessageWithShiftEnterSubtitle => + '[⏎ Enter] के साथ एक संदेश और [Shift] + [⏎ Enter] के साथ एक नई पंक्ति भेजें'; + + @override + String get sectionSelectLocaleTitle => 'भाषा'; + + @override + String get sectionSelectLocaleSubtitle => + 'ऐप इंटरफ़ेस के लिए अपनी पसंदीदा भाषा चुनें'; + + @override + String get sectionSwitchThemeTitle => 'डार्क मोड'; + + @override + String get sectionSwitchThemeSubtitle => + 'कम रोशनी में आरामदायक दृश्य अनुभव के लिए डार्क मोड सक्षम करें'; + + @override + String get sectionLogsTitle => 'लॉग्स'; + + @override + String get sectionLogsSubtitle => + 'डिबगिंग के लिए एप्लिकेशन लॉग देखें और प्रबंधित करें'; + + @override + String get doneButton => 'हो गया'; + + @override + String get bugReportDialogTitle => 'बग रिपोर्ट'; + + @override + String get bugReportDialogHintText => + 'कृपया उस बग का वर्णन करें जिसका आपने सामना किया'; + + @override + String get attachFilesButtonTooltip => 'फ़ाइलों को संलग्न करें'; + + @override + String get filePickerError => 'फ़ाइलें चुनने में विफल'; + + @override + String get emptyBugReportError => 'कृपया पहले एक बग रिपोर्ट दर्ज करें'; + + @override + String get failedToSendBugReportError => 'बग रिपोर्ट भेजने में विफल'; + + @override + String get sectionManageSubscriptionTitle => 'सदस्यता प्रबंधित करें'; + + @override + String get sectionManageSubscriptionSubtitle => + 'अपनी सदस्यता सेटिंग प्रबंधित करें'; +} diff --git a/example/lib/src/generated/settings/settings_localization_it.dart b/example/lib/src/generated/settings/settings_localization_it.dart new file mode 100644 index 0000000..3a2f2d8 --- /dev/null +++ b/example/lib/src/generated/settings/settings_localization_it.dart @@ -0,0 +1,111 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'settings_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Italian (`it`). +class SettingsLocalizationIt extends SettingsLocalization { + SettingsLocalizationIt([String locale = 'it']) : super(locale); + + @override + String get title => 'Impostazioni dell\'account'; + + @override + String get sectionClearAllChatsTitle => 'Cancella tutte le chat'; + + @override + String get sectionClearAllChatsSubtitle => + 'Questa operazione eliminerà definitivamente la cronologia della chat.'; + + @override + String get sectionClearAllChatsButton => 'Cancella tutte le chat'; + + @override + String get sectionClearAllChatsEmailTheme => 'Cancella tutte le chat'; + + @override + String get sectionDeleteAccountTitle => 'Elimina account'; + + @override + String get sectionDeleteAccountSubtitle => + 'L\'eliminazione del tuo account è un\'azione permanente e non può essere annullata.'; + + @override + String get sectionDeleteAccountButton => 'Eliminare'; + + @override + String get sectionDeleteAccountTheme => 'Elimina account'; + + @override + String get sectionLogOutTitle => 'Disconnessione'; + + @override + String get sectionLogOutSubtitle => 'Verrai disconnesso dal tuo account.'; + + @override + String get sectionLogOutButton => 'Disconnessione'; + + @override + String get sendBugReportButton => 'Invia segnalazione bug'; + + @override + String get sectionSendMessageWithShiftEnterTitle => + 'Invia messaggio con [⏎ Invio]'; + + @override + String get sectionSendMessageWithShiftEnterSubtitle => + 'Invia un messaggio con [⏎ Invio] e una nuova riga con [Maiusc] + [⏎ Invio]'; + + @override + String get sectionSelectLocaleTitle => 'Lingua'; + + @override + String get sectionSelectLocaleSubtitle => + 'Seleziona la lingua preferita per l\'interfaccia dell\'app'; + + @override + String get sectionSwitchThemeTitle => 'Modalità scura'; + + @override + String get sectionSwitchThemeSubtitle => + 'Abilita la modalità scura per un\'esperienza visiva confortevole in condizioni di scarsa illuminazione'; + + @override + String get sectionLogsTitle => 'Registri'; + + @override + String get sectionLogsSubtitle => + 'Visualizza e gestisci i registri delle applicazioni per il debug'; + + @override + String get doneButton => 'Fatto'; + + @override + String get bugReportDialogTitle => 'Segnalazione di bug'; + + @override + String get bugReportDialogHintText => 'Descrivi il bug che hai riscontrato'; + + @override + String get attachFilesButtonTooltip => 'Allega file'; + + @override + String get filePickerError => 'Impossibile selezionare i file'; + + @override + String get emptyBugReportError => 'Inserisci prima una segnalazione di bug'; + + @override + String get failedToSendBugReportError => + 'Impossibile inviare la segnalazione di bug'; + + @override + String get sectionManageSubscriptionTitle => 'Gestisci l\'abbonamento'; + + @override + String get sectionManageSubscriptionSubtitle => + 'Gestisci le impostazioni del tuo abbonamento'; +} diff --git a/example/lib/src/generated/settings/settings_localization_ko.dart b/example/lib/src/generated/settings/settings_localization_ko.dart new file mode 100644 index 0000000..91133a2 --- /dev/null +++ b/example/lib/src/generated/settings/settings_localization_ko.dart @@ -0,0 +1,104 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'settings_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Korean (`ko`). +class SettingsLocalizationKo extends SettingsLocalization { + SettingsLocalizationKo([String locale = 'ko']) : super(locale); + + @override + String get title => '계정 설정'; + + @override + String get sectionClearAllChatsTitle => '모든 채팅 지우기'; + + @override + String get sectionClearAllChatsSubtitle => '이렇게 하면 채팅 기록이 영구적으로 삭제됩니다.'; + + @override + String get sectionClearAllChatsButton => '모든 채팅 지우기'; + + @override + String get sectionClearAllChatsEmailTheme => '모든 채팅 지우기'; + + @override + String get sectionDeleteAccountTitle => '계정 삭제'; + + @override + String get sectionDeleteAccountSubtitle => '계정 삭제는 영구적인 작업이며 취소할 수 없습니다.'; + + @override + String get sectionDeleteAccountButton => '삭제'; + + @override + String get sectionDeleteAccountTheme => '계정 삭제'; + + @override + String get sectionLogOutTitle => '로그아웃'; + + @override + String get sectionLogOutSubtitle => '귀하의 계정에서 로그아웃됩니다.'; + + @override + String get sectionLogOutButton => '로그아웃'; + + @override + String get sendBugReportButton => '버그 리포트 보내기'; + + @override + String get sectionSendMessageWithShiftEnterTitle => '[⏎ Enter]로 메시지를 보내세요'; + + @override + String get sectionSendMessageWithShiftEnterSubtitle => + '[⏎ Enter]로 메시지를 보내고 [Shift] + [⏎ Enter]로 새 줄을 보냅니다.'; + + @override + String get sectionSelectLocaleTitle => '언어'; + + @override + String get sectionSelectLocaleSubtitle => '앱 인터페이스에 대한 기본 언어를 선택하세요'; + + @override + String get sectionSwitchThemeTitle => '다크 모드'; + + @override + String get sectionSwitchThemeSubtitle => + '어두운 곳에서도 편안한 시청 환경을 위해 다크 모드를 활성화하세요.'; + + @override + String get sectionLogsTitle => '로그'; + + @override + String get sectionLogsSubtitle => '디버깅을 위한 애플리케이션 로그 보기 및 관리'; + + @override + String get doneButton => '완료'; + + @override + String get bugReportDialogTitle => '버그 리포트'; + + @override + String get bugReportDialogHintText => '발생한 버그를 설명해 주세요.'; + + @override + String get attachFilesButtonTooltip => '파일 첨부'; + + @override + String get filePickerError => '파일을 선택하지 못했습니다'; + + @override + String get emptyBugReportError => '먼저 버그 리포트를 입력하세요'; + + @override + String get failedToSendBugReportError => '버그 보고서를 보내지 못했습니다.'; + + @override + String get sectionManageSubscriptionTitle => '구독 관리'; + + @override + String get sectionManageSubscriptionSubtitle => '구독 설정 관리'; +} diff --git a/example/lib/src/generated/settings/settings_localization_pt.dart b/example/lib/src/generated/settings/settings_localization_pt.dart new file mode 100644 index 0000000..04daa2e --- /dev/null +++ b/example/lib/src/generated/settings/settings_localization_pt.dart @@ -0,0 +1,217 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'settings_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Portuguese (`pt`). +class SettingsLocalizationPt extends SettingsLocalization { + SettingsLocalizationPt([String locale = 'pt']) : super(locale); + + @override + String get title => 'Configurações de Conta'; + + @override + String get sectionClearAllChatsTitle => 'Limpar todos os chats'; + + @override + String get sectionClearAllChatsSubtitle => + 'Isso excluirá permanentemente seu histórico de bate-papo.'; + + @override + String get sectionClearAllChatsButton => 'Limpar todos os chats'; + + @override + String get sectionClearAllChatsEmailTheme => 'Limpar todos os chats'; + + @override + String get sectionDeleteAccountTitle => 'Excluir conta'; + + @override + String get sectionDeleteAccountSubtitle => + 'Excluir sua conta é uma ação permanente e não pode ser desfeita.'; + + @override + String get sectionDeleteAccountButton => 'Excluir'; + + @override + String get sectionDeleteAccountTheme => 'Excluir conta'; + + @override + String get sectionLogOutTitle => 'Sair'; + + @override + String get sectionLogOutSubtitle => 'Você será desconectado da sua conta.'; + + @override + String get sectionLogOutButton => 'Sair'; + + @override + String get sendBugReportButton => 'Enviar relatório de bug'; + + @override + String get sectionSendMessageWithShiftEnterTitle => + 'Enviar mensagem com [⏎ Enter]'; + + @override + String get sectionSendMessageWithShiftEnterSubtitle => + 'Envie uma mensagem com [⏎ Enter] e uma nova linha com [Shift] + [⏎ Enter]'; + + @override + String get sectionSelectLocaleTitle => 'Linguagem'; + + @override + String get sectionSelectLocaleSubtitle => + 'Selecione seu idioma preferido para a interface do aplicativo'; + + @override + String get sectionSwitchThemeTitle => 'Modo escuro'; + + @override + String get sectionSwitchThemeSubtitle => + 'Ative o modo escuro para uma experiência de visualização confortável com pouca luz'; + + @override + String get sectionLogsTitle => 'Registros'; + + @override + String get sectionLogsSubtitle => + 'Visualizar e gerenciar logs de aplicativos para depuração'; + + @override + String get doneButton => 'Feito'; + + @override + String get bugReportDialogTitle => 'Relatório de bug'; + + @override + String get bugReportDialogHintText => + 'Por favor descreva o bug que você encontrou'; + + @override + String get attachFilesButtonTooltip => 'Anexar arquivos'; + + @override + String get filePickerError => 'Falha ao selecionar arquivos'; + + @override + String get emptyBugReportError => + 'Por favor, insira um relatório de bug primeiro'; + + @override + String get failedToSendBugReportError => 'Falha ao enviar relatório de bug'; + + @override + String get sectionManageSubscriptionTitle => 'Gerenciar assinatura'; + + @override + String get sectionManageSubscriptionSubtitle => + 'Gerencie suas configurações de assinatura'; +} + +/// The translations for Portuguese, as used in Brazil (`pt_BR`). +class SettingsLocalizationPtBr extends SettingsLocalizationPt { + SettingsLocalizationPtBr() : super('pt_BR'); + + @override + String get title => 'Configurações de Conta'; + + @override + String get sectionClearAllChatsTitle => 'Limpar todos os chats'; + + @override + String get sectionClearAllChatsSubtitle => + 'Isso excluirá permanentemente seu histórico de bate-papo.'; + + @override + String get sectionClearAllChatsButton => 'Limpar todos os chats'; + + @override + String get sectionClearAllChatsEmailTheme => 'Limpar todos os chats'; + + @override + String get sectionDeleteAccountTitle => 'Excluir conta'; + + @override + String get sectionDeleteAccountSubtitle => + 'Excluir sua conta é uma ação permanente e não pode ser desfeita.'; + + @override + String get sectionDeleteAccountButton => 'Excluir'; + + @override + String get sectionDeleteAccountTheme => 'Excluir conta'; + + @override + String get sectionLogOutTitle => 'Sair'; + + @override + String get sectionLogOutSubtitle => 'Você será desconectado da sua conta.'; + + @override + String get sectionLogOutButton => 'Sair'; + + @override + String get sendBugReportButton => 'Enviar relatório de bug'; + + @override + String get sectionSendMessageWithShiftEnterTitle => + 'Enviar mensagem com [⏎ Enter]'; + + @override + String get sectionSendMessageWithShiftEnterSubtitle => + 'Envie uma mensagem com [⏎ Enter] e uma nova linha com [Shift] + [⏎ Enter]'; + + @override + String get sectionSelectLocaleTitle => 'Linguagem'; + + @override + String get sectionSelectLocaleSubtitle => + 'Selecione seu idioma preferido para a interface do aplicativo'; + + @override + String get sectionSwitchThemeTitle => 'Modo escuro'; + + @override + String get sectionSwitchThemeSubtitle => + 'Ative o modo escuro para uma experiência de visualização confortável com pouca luz'; + + @override + String get sectionLogsTitle => 'Registros'; + + @override + String get sectionLogsSubtitle => + 'Visualizar e gerenciar logs de aplicativos para depuração'; + + @override + String get doneButton => 'Feito'; + + @override + String get bugReportDialogTitle => 'Relatório de bug'; + + @override + String get bugReportDialogHintText => + 'Por favor descreva o bug que você encontrou'; + + @override + String get attachFilesButtonTooltip => 'Anexar arquivos'; + + @override + String get filePickerError => 'Falha ao selecionar arquivos'; + + @override + String get emptyBugReportError => + 'Por favor, insira um relatório de bug primeiro'; + + @override + String get failedToSendBugReportError => 'Falha ao enviar relatório de bug'; + + @override + String get sectionManageSubscriptionTitle => 'Gerenciar assinatura'; + + @override + String get sectionManageSubscriptionSubtitle => + 'Gerencie suas configurações de assinatura'; +} diff --git a/example/lib/src/generated/settings/settings_localization_ru.dart b/example/lib/src/generated/settings/settings_localization_ru.dart index 7367fcf..25514e6 100644 --- a/example/lib/src/generated/settings/settings_localization_ru.dart +++ b/example/lib/src/generated/settings/settings_localization_ru.dart @@ -47,4 +47,67 @@ class SettingsLocalizationRu extends SettingsLocalization { @override String get sectionLogOutButton => 'Выйти из аккаунта'; + + @override + String get sendBugReportButton => 'Отправить отчет об ошибке'; + + @override + String get sectionSendMessageWithShiftEnterTitle => + 'Отправить сообщение с помощью [⏎ Enter]'; + + @override + String get sectionSendMessageWithShiftEnterSubtitle => + 'Отправьте сообщение с помощью [⏎ Enter] и создайте новую строку с помощью [Shift] + [⏎ Enter]'; + + @override + String get sectionSelectLocaleTitle => 'Язык'; + + @override + String get sectionSelectLocaleSubtitle => + 'Выберите язык интерфейса приложения'; + + @override + String get sectionSwitchThemeTitle => 'Темный режим'; + + @override + String get sectionSwitchThemeSubtitle => + 'Включите темный режим для комфортного просмотра при слабом освещении.'; + + @override + String get sectionLogsTitle => 'Логи'; + + @override + String get sectionLogsSubtitle => + 'Просмотр и управление журналами приложений для отладки'; + + @override + String get doneButton => 'Готово'; + + @override + String get bugReportDialogTitle => 'Отчет об ошибке'; + + @override + String get bugReportDialogHintText => + 'Опишите ошибку, с которой вы столкнулись.'; + + @override + String get attachFilesButtonTooltip => 'Прикрепить файлы'; + + @override + String get filePickerError => 'Не удалось выбрать файлы'; + + @override + String get emptyBugReportError => + 'Пожалуйста, сначала отправьте отчет об ошибке'; + + @override + String get failedToSendBugReportError => + 'Не удалось отправить отчет об ошибке'; + + @override + String get sectionManageSubscriptionTitle => 'Управление подпиской'; + + @override + String get sectionManageSubscriptionSubtitle => + 'Управляйте настройками подписки'; } diff --git a/example/lib/src/generated/settings/settings_localization_zh.dart b/example/lib/src/generated/settings/settings_localization_zh.dart new file mode 100644 index 0000000..2dff238 --- /dev/null +++ b/example/lib/src/generated/settings/settings_localization_zh.dart @@ -0,0 +1,199 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'settings_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Chinese (`zh`). +class SettingsLocalizationZh extends SettingsLocalization { + SettingsLocalizationZh([String locale = 'zh']) : super(locale); + + @override + String get title => '帐户设置'; + + @override + String get sectionClearAllChatsTitle => '清除所有聊天'; + + @override + String get sectionClearAllChatsSubtitle => '这将永久删除您的聊天记录。'; + + @override + String get sectionClearAllChatsButton => '清除所有聊天'; + + @override + String get sectionClearAllChatsEmailTheme => '清除所有聊天'; + + @override + String get sectionDeleteAccountTitle => '删除帐户'; + + @override + String get sectionDeleteAccountSubtitle => '删除您的帐户是永久性操作,无法撤消。'; + + @override + String get sectionDeleteAccountButton => '删除'; + + @override + String get sectionDeleteAccountTheme => '删除帐户'; + + @override + String get sectionLogOutTitle => '登出'; + + @override + String get sectionLogOutSubtitle => '您将退出您的帐户。'; + + @override + String get sectionLogOutButton => '登出'; + + @override + String get sendBugReportButton => '发送错误报告'; + + @override + String get sectionSendMessageWithShiftEnterTitle => '使用 [⏎ Enter] 发送消息'; + + @override + String get sectionSendMessageWithShiftEnterSubtitle => + '使用 [⏎ Enter] 发送消息,使用 [Shift] + [⏎ Enter] 换行'; + + @override + String get sectionSelectLocaleTitle => '语言'; + + @override + String get sectionSelectLocaleSubtitle => '选择应用程序界面的首选语言'; + + @override + String get sectionSwitchThemeTitle => '黑暗模式'; + + @override + String get sectionSwitchThemeSubtitle => '启用暗模式,在弱光环境下获得舒适的观看体验'; + + @override + String get sectionLogsTitle => '日志'; + + @override + String get sectionLogsSubtitle => '查看和管理应用程序日志以进行调试'; + + @override + String get doneButton => '完毕'; + + @override + String get bugReportDialogTitle => '错误报告'; + + @override + String get bugReportDialogHintText => '请描述您遇到的bug'; + + @override + String get attachFilesButtonTooltip => '附加文件'; + + @override + String get filePickerError => '选择文件失败'; + + @override + String get emptyBugReportError => '请先输入错误报告'; + + @override + String get failedToSendBugReportError => '无法发送错误报告'; + + @override + String get sectionManageSubscriptionTitle => '管理订阅'; + + @override + String get sectionManageSubscriptionSubtitle => '管理您的订阅设置'; +} + +/// The translations for Chinese, as used in China (`zh_CN`). +class SettingsLocalizationZhCn extends SettingsLocalizationZh { + SettingsLocalizationZhCn() : super('zh_CN'); + + @override + String get title => '帐户设置'; + + @override + String get sectionClearAllChatsTitle => '清除所有聊天'; + + @override + String get sectionClearAllChatsSubtitle => '这将永久删除您的聊天记录。'; + + @override + String get sectionClearAllChatsButton => '清除所有聊天'; + + @override + String get sectionClearAllChatsEmailTheme => '清除所有聊天'; + + @override + String get sectionDeleteAccountTitle => '删除帐户'; + + @override + String get sectionDeleteAccountSubtitle => '删除您的帐户是永久性操作,无法撤消。'; + + @override + String get sectionDeleteAccountButton => '删除'; + + @override + String get sectionDeleteAccountTheme => '删除帐户'; + + @override + String get sectionLogOutTitle => '登出'; + + @override + String get sectionLogOutSubtitle => '您将退出您的帐户。'; + + @override + String get sectionLogOutButton => '登出'; + + @override + String get sendBugReportButton => '发送错误报告'; + + @override + String get sectionSendMessageWithShiftEnterTitle => '使用 [⏎ Enter] 发送消息'; + + @override + String get sectionSendMessageWithShiftEnterSubtitle => + '使用 [⏎ Enter] 发送消息,使用 [Shift] + [⏎ Enter] 换行'; + + @override + String get sectionSelectLocaleTitle => '语言'; + + @override + String get sectionSelectLocaleSubtitle => '选择应用程序界面的首选语言'; + + @override + String get sectionSwitchThemeTitle => '黑暗模式'; + + @override + String get sectionSwitchThemeSubtitle => '启用暗模式,在弱光环境下获得舒适的观看体验'; + + @override + String get sectionLogsTitle => '日志'; + + @override + String get sectionLogsSubtitle => '查看和管理应用程序日志以进行调试'; + + @override + String get doneButton => '完毕'; + + @override + String get bugReportDialogTitle => '错误报告'; + + @override + String get bugReportDialogHintText => '请描述您遇到的bug'; + + @override + String get attachFilesButtonTooltip => '附加文件'; + + @override + String get filePickerError => '选择文件失败'; + + @override + String get emptyBugReportError => '请先输入错误报告'; + + @override + String get failedToSendBugReportError => '无法发送错误报告'; + + @override + String get sectionManageSubscriptionTitle => '管理订阅'; + + @override + String get sectionManageSubscriptionSubtitle => '管理您的订阅设置'; +} diff --git a/example/lib/src/generated/sign_up/sign_up_localization.dart b/example/lib/src/generated/sign_up/sign_up_localization.dart index d376528..9e9c719 100644 --- a/example/lib/src/generated/sign_up/sign_up_localization.dart +++ b/example/lib/src/generated/sign_up/sign_up_localization.dart @@ -6,10 +6,18 @@ import 'package:flutter/widgets.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:intl/intl.dart' as intl; +import 'sign_up_localization_ar.dart'; +import 'sign_up_localization_bn.dart'; import 'sign_up_localization_de.dart'; import 'sign_up_localization_en.dart'; import 'sign_up_localization_es.dart'; +import 'sign_up_localization_fr.dart'; +import 'sign_up_localization_hi.dart'; +import 'sign_up_localization_it.dart'; +import 'sign_up_localization_ko.dart'; +import 'sign_up_localization_pt.dart'; import 'sign_up_localization_ru.dart'; +import 'sign_up_localization_zh.dart'; // ignore_for_file: type=lint @@ -97,10 +105,20 @@ abstract class SignUpLocalization { /// A list of this localizations delegate's supported locales. static const List supportedLocales = [ + Locale('ar'), + Locale('bn'), Locale('de'), Locale('en'), Locale('es'), - Locale('ru') + Locale('fr'), + Locale('hi'), + Locale('it'), + Locale('ko'), + Locale('pt'), + Locale('pt', 'BR'), + Locale('ru'), + Locale('zh'), + Locale('zh', 'CN') ]; /// No description provided for @title. @@ -312,6 +330,18 @@ abstract class SignUpLocalization { /// In en, this message translates to: /// **'Yes, log out'** String get logOutDialogLogOutButton; + + /// Кнопка отправить код заного + /// + /// In en, this message translates to: + /// **'Resend code'** + String get resendCodeButton; + + /// Таймер для повторной отправки кода + /// + /// In en, this message translates to: + /// **'Resend code ({timer})'** + String resendCodeTimer(String timer); } class _SignUpLocalizationDelegate @@ -325,24 +355,72 @@ class _SignUpLocalizationDelegate } @override - bool isSupported(Locale locale) => - ['de', 'en', 'es', 'ru'].contains(locale.languageCode); + bool isSupported(Locale locale) => [ + 'ar', + 'bn', + 'de', + 'en', + 'es', + 'fr', + 'hi', + 'it', + 'ko', + 'pt', + 'ru', + 'zh' + ].contains(locale.languageCode); @override bool shouldReload(_SignUpLocalizationDelegate old) => false; } SignUpLocalization lookupSignUpLocalization(Locale locale) { + // Lookup logic when language+country codes are specified. + switch (locale.languageCode) { + case 'pt': + { + switch (locale.countryCode) { + case 'BR': + return SignUpLocalizationPtBr(); + } + break; + } + case 'zh': + { + switch (locale.countryCode) { + case 'CN': + return SignUpLocalizationZhCn(); + } + break; + } + } + // Lookup logic when only language code is specified. switch (locale.languageCode) { + case 'ar': + return SignUpLocalizationAr(); + case 'bn': + return SignUpLocalizationBn(); case 'de': return SignUpLocalizationDe(); case 'en': return SignUpLocalizationEn(); case 'es': return SignUpLocalizationEs(); + case 'fr': + return SignUpLocalizationFr(); + case 'hi': + return SignUpLocalizationHi(); + case 'it': + return SignUpLocalizationIt(); + case 'ko': + return SignUpLocalizationKo(); + case 'pt': + return SignUpLocalizationPt(); case 'ru': return SignUpLocalizationRu(); + case 'zh': + return SignUpLocalizationZh(); } throw FlutterError( diff --git a/example/lib/src/generated/sign_up/sign_up_localization_ar.dart b/example/lib/src/generated/sign_up/sign_up_localization_ar.dart new file mode 100644 index 0000000..6dcaaf3 --- /dev/null +++ b/example/lib/src/generated/sign_up/sign_up_localization_ar.dart @@ -0,0 +1,131 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'sign_up_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Arabic (`ar`). +class SignUpLocalizationAr extends SignUpLocalization { + SignUpLocalizationAr([String locale = 'ar']) : super(locale); + + @override + String get title => 'تسجيل الدخول'; + + @override + String get logIn => 'تسجيل الدخول'; + + @override + String get password => 'كلمة المرور'; + + @override + String get changeNumber => 'تغيير الرقم'; + + @override + String get forgotPassword => 'هل نسيت كلمة السر؟'; + + @override + String get forgotPasswordEnterYourEmailAddress => + 'أدخل عنوان بريدك الإلكتروني وسنرسل لك رابطًا لإعادة تعيين كلمة المرور الخاصة بك.'; + + @override + String get rememberYourPasswordQuestion => 'تذكر كلمة المرور الخاصة بك؟'; + + @override + String get backToLoginButton => 'لدي كلمة مرور'; + + @override + String get continueButton => 'يكمل'; + + @override + String get passwordResetEmailSentSnackBar => + 'تم إرسال بريد إلكتروني لإعادة تعيين كلمة المرور'; + + @override + String get resetPasswordButton => 'إعادة تعيين كلمة المرور'; + + @override + String get confirmCodeButton => 'تأكيد الرمز'; + + @override + String get startUsingDoctorinaTodaySubtitle => + 'ابدأ باستخدام Doctorina اليوم'; + + @override + String get orDivider => 'أو'; + + @override + String get enterPasswordForEmailHint => 'أدخل كلمة المرور الخاصة بك'; + + @override + String get showPasswordHint => 'إظهار كلمة المرور'; + + @override + String get obscurePasswordHint => 'كلمة مرور غامضة'; + + @override + String get clearLoginTooltip => 'مسح تسجيل الدخول'; + + @override + String get emailOrPhoneLabel => 'البريد الإلكتروني أو الهاتف'; + + @override + String get emailOrPhoneLabelExample => 'name@gmail.com أو +1234567890'; + + @override + String get emailOrPhoneHint => 'أدخل البريد الإلكتروني أو رقم الهاتف'; + + @override + String get pleaseAcceptTheAgreementsToContinueSnackBar => + 'يرجى قبول الاتفاقيات للاستمرار.'; + + @override + String get consentToTheProcessingOfPersonalData => + 'أوافق على معالجة البيانات الشخصية،'; + + @override + String get consentTheUseOf => 'استخدام'; + + @override + String get consentCookies => 'ملفات تعريف الارتباط'; + + @override + String get consentAgreeToThe => '، أوافق على'; + + @override + String get consentTermsAndConditions => 'الشروط والأحكام'; + + @override + String get consentAndAcknowledgeThe => '، والاعتراف'; + + @override + String get consentPrivacyPolicy => 'سياسة الخصوصية'; + + @override + String get consentDot => '.'; + + @override + String get acknowledgeMyConsultation => + 'أقر بأن استشارتي تتم مع الذكاء الاصطناعي وليس مع أخصائي طبي مرخص.'; + + @override + String get logOutDialogTitle => 'تسجيل الخروج'; + + @override + String get logOutDialogContent => 'هل أنت متأكد من تسجيل الخروج؟'; + + @override + String get logOutDialogCancelButton => 'يلغي'; + + @override + String get logOutDialogLogOutButton => 'نعم، تسجيل الخروج'; + + @override + String get resendCodeButton => 'إعادة إرسال الرمز'; + + @override + String resendCodeTimer(String timer) { + return 'إعادة إرسال الرمز ($timer)'; + } +} diff --git a/example/lib/src/generated/sign_up/sign_up_localization_bn.dart b/example/lib/src/generated/sign_up/sign_up_localization_bn.dart new file mode 100644 index 0000000..6cac9d3 --- /dev/null +++ b/example/lib/src/generated/sign_up/sign_up_localization_bn.dart @@ -0,0 +1,131 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'sign_up_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Bengali Bangla (`bn`). +class SignUpLocalizationBn extends SignUpLocalization { + SignUpLocalizationBn([String locale = 'bn']) : super(locale); + + @override + String get title => 'সাইন ইন করুন'; + + @override + String get logIn => 'লগ ইন করুন'; + + @override + String get password => 'পাসওয়ার্ড'; + + @override + String get changeNumber => 'নম্বর পরিবর্তন করুন'; + + @override + String get forgotPassword => 'পাসওয়ার্ড ভুলে গেছেন?'; + + @override + String get forgotPasswordEnterYourEmailAddress => + 'আপনার ইমেল ঠিকানা লিখুন, এবং আমরা আপনাকে আপনার পাসওয়ার্ড পুনরায় সেট করার জন্য একটি লিঙ্ক পাঠাব।'; + + @override + String get rememberYourPasswordQuestion => 'আপনার পাসওয়ার্ড মনে আছে?'; + + @override + String get backToLoginButton => 'আমার কাছে একটি পাসওয়ার্ড আছে'; + + @override + String get continueButton => 'চালিয়ে যান'; + + @override + String get passwordResetEmailSentSnackBar => + 'পাসওয়ার্ড রিসেট ইমেল পাঠানো হয়েছে'; + + @override + String get resetPasswordButton => 'পাসওয়ার্ড রিসেট করুন'; + + @override + String get confirmCodeButton => 'কোড নিশ্চিত করুন'; + + @override + String get startUsingDoctorinaTodaySubtitle => + 'আজই ডক্টরিনা ব্যবহার করা শুরু করুন'; + + @override + String get orDivider => 'বা'; + + @override + String get enterPasswordForEmailHint => 'আপনার পাসওয়ার্ড লিখুন'; + + @override + String get showPasswordHint => 'পাসওয়ার্ড দেখান'; + + @override + String get obscurePasswordHint => 'অস্পষ্ট পাসওয়ার্ড'; + + @override + String get clearLoginTooltip => 'সাফ লগইন'; + + @override + String get emailOrPhoneLabel => 'ইমেইল বা ফোন'; + + @override + String get emailOrPhoneLabelExample => 'name@gmail.com বা +1234567890'; + + @override + String get emailOrPhoneHint => 'ইমেল বা ফোন নম্বর লিখুন'; + + @override + String get pleaseAcceptTheAgreementsToContinueSnackBar => + 'চালিয়ে যেতে চুক্তি স্বীকার করুন.'; + + @override + String get consentToTheProcessingOfPersonalData => + 'আমি ব্যক্তিগত তথ্য প্রক্রিয়াকরণে সম্মতি জানাই,'; + + @override + String get consentTheUseOf => 'এর ব্যবহার'; + + @override + String get consentCookies => 'কুকিজ'; + + @override + String get consentAgreeToThe => ', রাজি'; + + @override + String get consentTermsAndConditions => 'শর্তাবলী'; + + @override + String get consentAndAcknowledgeThe => ', এবং স্বীকার করুন '; + + @override + String get consentPrivacyPolicy => 'গোপনীয়তা নীতি'; + + @override + String get consentDot => '.'; + + @override + String get acknowledgeMyConsultation => + 'আমি স্বীকার করি যে আমার পরামর্শ একজন AI এর সাথে এবং লাইসেন্সপ্রাপ্ত মেডিকেল পেশাদার নয়।'; + + @override + String get logOutDialogTitle => 'লগ আউট করুন'; + + @override + String get logOutDialogContent => 'আপনি লগ আউট করতে নিশ্চিত?'; + + @override + String get logOutDialogCancelButton => 'বাতিল করুন'; + + @override + String get logOutDialogLogOutButton => 'হ্যাঁ, লগ আউট করুন'; + + @override + String get resendCodeButton => 'কোড আবার পাঠান'; + + @override + String resendCodeTimer(String timer) { + return 'কোড আবার পাঠান ($timer)'; + } +} diff --git a/example/lib/src/generated/sign_up/sign_up_localization_de.dart b/example/lib/src/generated/sign_up/sign_up_localization_de.dart index 1e5af66..df5d0c9 100644 --- a/example/lib/src/generated/sign_up/sign_up_localization_de.dart +++ b/example/lib/src/generated/sign_up/sign_up_localization_de.dart @@ -121,4 +121,12 @@ class SignUpLocalizationDe extends SignUpLocalization { @override String get logOutDialogLogOutButton => 'Ja, abmelden'; + + @override + String get resendCodeButton => 'Code erneut senden'; + + @override + String resendCodeTimer(String timer) { + return 'Code erneut senden ($timer)'; + } } diff --git a/example/lib/src/generated/sign_up/sign_up_localization_en.dart b/example/lib/src/generated/sign_up/sign_up_localization_en.dart index f92de03..7fca840 100644 --- a/example/lib/src/generated/sign_up/sign_up_localization_en.dart +++ b/example/lib/src/generated/sign_up/sign_up_localization_en.dart @@ -118,4 +118,12 @@ class SignUpLocalizationEn extends SignUpLocalization { @override String get logOutDialogLogOutButton => 'Yes, log out'; + + @override + String get resendCodeButton => 'Resend code'; + + @override + String resendCodeTimer(String timer) { + return 'Resend code ($timer)'; + } } diff --git a/example/lib/src/generated/sign_up/sign_up_localization_es.dart b/example/lib/src/generated/sign_up/sign_up_localization_es.dart index 88113e1..b8dbbe4 100644 --- a/example/lib/src/generated/sign_up/sign_up_localization_es.dart +++ b/example/lib/src/generated/sign_up/sign_up_localization_es.dart @@ -121,4 +121,12 @@ class SignUpLocalizationEs extends SignUpLocalization { @override String get logOutDialogLogOutButton => 'Sí, cerrar sesión'; + + @override + String get resendCodeButton => 'Reenviar código'; + + @override + String resendCodeTimer(String timer) { + return 'Reenviar código ($timer)'; + } } diff --git a/example/lib/src/generated/sign_up/sign_up_localization_fr.dart b/example/lib/src/generated/sign_up/sign_up_localization_fr.dart new file mode 100644 index 0000000..a4d9975 --- /dev/null +++ b/example/lib/src/generated/sign_up/sign_up_localization_fr.dart @@ -0,0 +1,133 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'sign_up_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for French (`fr`). +class SignUpLocalizationFr extends SignUpLocalization { + SignUpLocalizationFr([String locale = 'fr']) : super(locale); + + @override + String get title => 'Se connecter'; + + @override + String get logIn => 'Se connecter'; + + @override + String get password => 'Mot de passe'; + + @override + String get changeNumber => 'Changer de numéro'; + + @override + String get forgotPassword => 'Mot de passe oublié?'; + + @override + String get forgotPasswordEnterYourEmailAddress => + 'Entrez votre adresse e-mail et nous vous enverrons un lien pour réinitialiser votre mot de passe.'; + + @override + String get rememberYourPasswordQuestion => + 'Vous vous souvenez de votre mot de passe ?'; + + @override + String get backToLoginButton => 'J\'ai un mot de passe'; + + @override + String get continueButton => 'Continuer'; + + @override + String get passwordResetEmailSentSnackBar => + 'E-mail de réinitialisation du mot de passe envoyé'; + + @override + String get resetPasswordButton => 'Réinitialiser le mot de passe'; + + @override + String get confirmCodeButton => 'Confirmer le code'; + + @override + String get startUsingDoctorinaTodaySubtitle => + 'Commencez à utiliser Doctorina dès aujourd\'hui'; + + @override + String get orDivider => 'OU'; + + @override + String get enterPasswordForEmailHint => 'Entrez votre mot de passe'; + + @override + String get showPasswordHint => 'Afficher le mot de passe'; + + @override + String get obscurePasswordHint => 'Mot de passe obscur'; + + @override + String get clearLoginTooltip => 'Effacer la connexion'; + + @override + String get emailOrPhoneLabel => 'Courriel ou téléphone'; + + @override + String get emailOrPhoneLabelExample => 'nom@gmail.com ou +1234567890'; + + @override + String get emailOrPhoneHint => 'Entrez l\'e-mail ou le numéro de téléphone'; + + @override + String get pleaseAcceptTheAgreementsToContinueSnackBar => + 'Veuillez accepter les accords pour continuer.'; + + @override + String get consentToTheProcessingOfPersonalData => + 'Je consens au traitement des données personnelles,'; + + @override + String get consentTheUseOf => 'l\'utilisation de'; + + @override + String get consentCookies => 'cookies'; + + @override + String get consentAgreeToThe => ', acceptez le'; + + @override + String get consentTermsAndConditions => 'termes et conditions'; + + @override + String get consentAndAcknowledgeThe => ', et reconnaissons le'; + + @override + String get consentPrivacyPolicy => 'politique de confidentialité'; + + @override + String get consentDot => '.'; + + @override + String get acknowledgeMyConsultation => + 'Je reconnais que ma consultation est effectuée avec une IA et non avec un professionnel de la santé agréé.'; + + @override + String get logOutDialogTitle => 'Se déconnecter'; + + @override + String get logOutDialogContent => + 'Êtes-vous sûr de vouloir vous déconnecter ?'; + + @override + String get logOutDialogCancelButton => 'Annuler'; + + @override + String get logOutDialogLogOutButton => 'Oui, déconnectez-vous'; + + @override + String get resendCodeButton => 'Renvoyer le code'; + + @override + String resendCodeTimer(String timer) { + return 'Renvoyer le code ($timer)'; + } +} diff --git a/example/lib/src/generated/sign_up/sign_up_localization_hi.dart b/example/lib/src/generated/sign_up/sign_up_localization_hi.dart new file mode 100644 index 0000000..a19db6f --- /dev/null +++ b/example/lib/src/generated/sign_up/sign_up_localization_hi.dart @@ -0,0 +1,130 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'sign_up_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Hindi (`hi`). +class SignUpLocalizationHi extends SignUpLocalization { + SignUpLocalizationHi([String locale = 'hi']) : super(locale); + + @override + String get title => 'दाखिल करना'; + + @override + String get logIn => 'लॉग इन करें'; + + @override + String get password => 'पासवर्ड'; + + @override + String get changeNumber => 'अंक बदलो'; + + @override + String get forgotPassword => 'पासवर्ड भूल गए?'; + + @override + String get forgotPasswordEnterYourEmailAddress => + 'अपना ईमेल पता दर्ज करें, और हम आपको अपना पासवर्ड रीसेट करने के लिए एक लिंक भेजेंगे।'; + + @override + String get rememberYourPasswordQuestion => 'अपना पासवर्ड याद रखें?'; + + @override + String get backToLoginButton => 'मेरे पास एक पासवर्ड है'; + + @override + String get continueButton => 'जारी रखना'; + + @override + String get passwordResetEmailSentSnackBar => 'पासवर्ड रीसेट ईमेल भेजा गया'; + + @override + String get resetPasswordButton => 'पासवर्ड रीसेट'; + + @override + String get confirmCodeButton => 'कोड की पुष्टि करें'; + + @override + String get startUsingDoctorinaTodaySubtitle => + 'आज ही डॉक्टरिना का उपयोग शुरू करें'; + + @override + String get orDivider => 'या'; + + @override + String get enterPasswordForEmailHint => 'अपना कूटशब्द भरें'; + + @override + String get showPasswordHint => 'पासवर्ड दिखाए'; + + @override + String get obscurePasswordHint => 'अस्पष्ट पासवर्ड'; + + @override + String get clearLoginTooltip => 'लॉगिन साफ़ करें'; + + @override + String get emailOrPhoneLabel => 'ईमेल या फ़ोन'; + + @override + String get emailOrPhoneLabelExample => 'name@gmail.com या +1234567890'; + + @override + String get emailOrPhoneHint => 'ईमेल या फ़ोन नंबर दर्ज करें'; + + @override + String get pleaseAcceptTheAgreementsToContinueSnackBar => + 'कृपया आगे बढ़ने के लिए समझौते को स्वीकार करें।'; + + @override + String get consentToTheProcessingOfPersonalData => + 'मैं व्यक्तिगत डेटा के प्रसंस्करण के लिए सहमति देता/देती हूँ,'; + + @override + String get consentTheUseOf => 'का उपयोग'; + + @override + String get consentCookies => 'कुकीज़'; + + @override + String get consentAgreeToThe => ', इस बात से सहमत हैं'; + + @override + String get consentTermsAndConditions => 'नियम और शर्तें'; + + @override + String get consentAndAcknowledgeThe => ', और स्वीकार करते हैं'; + + @override + String get consentPrivacyPolicy => 'गोपनीयता नीति'; + + @override + String get consentDot => '.'; + + @override + String get acknowledgeMyConsultation => + 'मैं स्वीकार करता हूं कि मेरा परामर्श एक एआई के साथ है, न कि किसी लाइसेंस प्राप्त चिकित्सा पेशेवर के साथ।'; + + @override + String get logOutDialogTitle => 'लॉग आउट'; + + @override + String get logOutDialogContent => 'क्या आप लॉग आउट करने के लिए आश्वस्त हैं?'; + + @override + String get logOutDialogCancelButton => 'रद्द करना'; + + @override + String get logOutDialogLogOutButton => 'हाँ, लॉग आउट करें'; + + @override + String get resendCodeButton => 'पुन: कोड भेजे'; + + @override + String resendCodeTimer(String timer) { + return 'कोड पुनः भेजें ($timer)'; + } +} diff --git a/example/lib/src/generated/sign_up/sign_up_localization_it.dart b/example/lib/src/generated/sign_up/sign_up_localization_it.dart new file mode 100644 index 0000000..f7d78ef --- /dev/null +++ b/example/lib/src/generated/sign_up/sign_up_localization_it.dart @@ -0,0 +1,131 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'sign_up_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Italian (`it`). +class SignUpLocalizationIt extends SignUpLocalization { + SignUpLocalizationIt([String locale = 'it']) : super(locale); + + @override + String get title => 'Registrazione'; + + @override + String get logIn => 'Login'; + + @override + String get password => 'Password'; + + @override + String get changeNumber => 'Cambia numero'; + + @override + String get forgotPassword => 'Ha dimenticato la password?'; + + @override + String get forgotPasswordEnterYourEmailAddress => + 'Inserisci il tuo indirizzo email e ti invieremo un link per reimpostare la password.'; + + @override + String get rememberYourPasswordQuestion => 'Ricordi la tua password?'; + + @override + String get backToLoginButton => 'Ho una password'; + + @override + String get continueButton => 'Continuare'; + + @override + String get passwordResetEmailSentSnackBar => + 'Email di reimpostazione password inviata'; + + @override + String get resetPasswordButton => 'Reimposta password'; + + @override + String get confirmCodeButton => 'Conferma il codice'; + + @override + String get startUsingDoctorinaTodaySubtitle => + 'Inizia a usare Doctorina oggi stesso'; + + @override + String get orDivider => 'O'; + + @override + String get enterPasswordForEmailHint => 'Inserisci la tua password'; + + @override + String get showPasswordHint => 'Mostra password'; + + @override + String get obscurePasswordHint => 'Password oscura'; + + @override + String get clearLoginTooltip => 'Cancella accesso'; + + @override + String get emailOrPhoneLabel => 'E-mail o telefono'; + + @override + String get emailOrPhoneLabelExample => 'nome@gmail.com o +1234567890'; + + @override + String get emailOrPhoneHint => 'Inserisci l\'email o il numero di telefono'; + + @override + String get pleaseAcceptTheAgreementsToContinueSnackBar => + 'Per continuare, accetta gli accordi.'; + + @override + String get consentToTheProcessingOfPersonalData => + 'Acconsento al trattamento dei dati personali,'; + + @override + String get consentTheUseOf => 'l\'uso di'; + + @override + String get consentCookies => 'biscotti'; + + @override + String get consentAgreeToThe => ', accettare il'; + + @override + String get consentTermsAndConditions => 'Termini e Condizioni'; + + @override + String get consentAndAcknowledgeThe => 'e riconoscere il'; + + @override + String get consentPrivacyPolicy => 'politica sulla riservatezza'; + + @override + String get consentDot => '.'; + + @override + String get acknowledgeMyConsultation => + 'Dichiaro di essere consapevole che la mia consulenza è rivolta a un IA e non a un professionista medico autorizzato.'; + + @override + String get logOutDialogTitle => 'Disconnetti'; + + @override + String get logOutDialogContent => 'Vuoi davvero uscire?'; + + @override + String get logOutDialogCancelButton => 'Cancellare'; + + @override + String get logOutDialogLogOutButton => 'Sì, esci'; + + @override + String get resendCodeButton => 'Invia nuovamente il codice'; + + @override + String resendCodeTimer(String timer) { + return 'Invia nuovamente il codice ($timer)'; + } +} diff --git a/example/lib/src/generated/sign_up/sign_up_localization_ko.dart b/example/lib/src/generated/sign_up/sign_up_localization_ko.dart new file mode 100644 index 0000000..85d88f9 --- /dev/null +++ b/example/lib/src/generated/sign_up/sign_up_localization_ko.dart @@ -0,0 +1,128 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'sign_up_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Korean (`ko`). +class SignUpLocalizationKo extends SignUpLocalization { + SignUpLocalizationKo([String locale = 'ko']) : super(locale); + + @override + String get title => '로그인'; + + @override + String get logIn => '로그인'; + + @override + String get password => '비밀번호'; + + @override + String get changeNumber => '번호 변경'; + + @override + String get forgotPassword => '비밀번호를 잊으셨나요?'; + + @override + String get forgotPasswordEnterYourEmailAddress => + '이메일 주소를 입력하시면 비밀번호 재설정 링크를 보내드립니다.'; + + @override + String get rememberYourPasswordQuestion => '비밀번호를 기억하세요?'; + + @override + String get backToLoginButton => '비밀번호가 있어요'; + + @override + String get continueButton => '계속하다'; + + @override + String get passwordResetEmailSentSnackBar => '비밀번호 재설정 이메일이 전송되었습니다.'; + + @override + String get resetPasswordButton => '비밀번호 재설정'; + + @override + String get confirmCodeButton => '코드 확인'; + + @override + String get startUsingDoctorinaTodaySubtitle => '오늘부터 Doctorina를 사용해보세요'; + + @override + String get orDivider => '또는'; + + @override + String get enterPasswordForEmailHint => '비밀번호를 입력하세요'; + + @override + String get showPasswordHint => '비밀번호 표시'; + + @override + String get obscurePasswordHint => '모호한 비밀번호'; + + @override + String get clearLoginTooltip => '로그인 지우기'; + + @override + String get emailOrPhoneLabel => '이메일 또는 전화'; + + @override + String get emailOrPhoneLabelExample => 'name@gmail.com 또는 +1234567890'; + + @override + String get emailOrPhoneHint => '이메일 또는 전화번호를 입력하세요'; + + @override + String get pleaseAcceptTheAgreementsToContinueSnackBar => + '계속하려면 계약에 동의해 주세요.'; + + @override + String get consentToTheProcessingOfPersonalData => '개인정보 처리에 동의합니다.'; + + @override + String get consentTheUseOf => '의 사용'; + + @override + String get consentCookies => '쿠키'; + + @override + String get consentAgreeToThe => ', 동의합니다'; + + @override + String get consentTermsAndConditions => '이용 약관'; + + @override + String get consentAndAcknowledgeThe => ', 그리고 인정합니다'; + + @override + String get consentPrivacyPolicy => '개인정보 보호정책'; + + @override + String get consentDot => '.'; + + @override + String get acknowledgeMyConsultation => + '저는 상담을 AI와 진행하며, 면허를 소지한 의료 전문가와 진행하지 않는다는 점을 인정합니다.'; + + @override + String get logOutDialogTitle => '로그아웃'; + + @override + String get logOutDialogContent => '로그아웃 하시겠습니까?'; + + @override + String get logOutDialogCancelButton => '취소'; + + @override + String get logOutDialogLogOutButton => '네, 로그아웃합니다'; + + @override + String get resendCodeButton => '코드 재전송'; + + @override + String resendCodeTimer(String timer) { + return '코드 재전송 ($timer)'; + } +} diff --git a/example/lib/src/generated/sign_up/sign_up_localization_pt.dart b/example/lib/src/generated/sign_up/sign_up_localization_pt.dart new file mode 100644 index 0000000..a2ea45d --- /dev/null +++ b/example/lib/src/generated/sign_up/sign_up_localization_pt.dart @@ -0,0 +1,255 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'sign_up_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Portuguese (`pt`). +class SignUpLocalizationPt extends SignUpLocalization { + SignUpLocalizationPt([String locale = 'pt']) : super(locale); + + @override + String get title => 'Entrar'; + + @override + String get logIn => 'Conecte-se'; + + @override + String get password => 'Senha'; + + @override + String get changeNumber => 'Alterar número'; + + @override + String get forgotPassword => 'Esqueceu sua senha?'; + + @override + String get forgotPasswordEnterYourEmailAddress => + 'Digite seu endereço de e-mail e lhe enviaremos um link para redefinir sua senha.'; + + @override + String get rememberYourPasswordQuestion => 'Lembra da sua senha?'; + + @override + String get backToLoginButton => 'Eu tenho uma senha'; + + @override + String get continueButton => 'Continuar'; + + @override + String get passwordResetEmailSentSnackBar => + 'E-mail de redefinição de senha enviado'; + + @override + String get resetPasswordButton => 'Redefinir senha'; + + @override + String get confirmCodeButton => 'Confirmar código'; + + @override + String get startUsingDoctorinaTodaySubtitle => + 'Comece a usar Doctorina hoje mesmo'; + + @override + String get orDivider => 'OU'; + + @override + String get enterPasswordForEmailHint => 'Digite sua senha'; + + @override + String get showPasswordHint => 'Mostrar senha'; + + @override + String get obscurePasswordHint => 'Senha obscura'; + + @override + String get clearLoginTooltip => 'Limpar login'; + + @override + String get emailOrPhoneLabel => 'E-mail ou telefone'; + + @override + String get emailOrPhoneLabelExample => 'nome@gmail.com ou +1234567890'; + + @override + String get emailOrPhoneHint => 'Digite e-mail ou número de telefone'; + + @override + String get pleaseAcceptTheAgreementsToContinueSnackBar => + 'Por favor, aceite os acordos para continuar.'; + + @override + String get consentToTheProcessingOfPersonalData => + 'Eu concordo com o processamento de dados pessoais,'; + + @override + String get consentTheUseOf => 'o uso de'; + + @override + String get consentCookies => 'biscoitos'; + + @override + String get consentAgreeToThe => ', concorda com o'; + + @override + String get consentTermsAndConditions => 'termos e Condições'; + + @override + String get consentAndAcknowledgeThe => ', e reconhecer o'; + + @override + String get consentPrivacyPolicy => 'política de Privacidade'; + + @override + String get consentDot => '.'; + + @override + String get acknowledgeMyConsultation => + 'Reconheço que minha consulta é com uma IA e não com um profissional médico licenciado.'; + + @override + String get logOutDialogTitle => 'Sair'; + + @override + String get logOutDialogContent => 'Tem certeza de que deseja sair?'; + + @override + String get logOutDialogCancelButton => 'Cancelar'; + + @override + String get logOutDialogLogOutButton => 'Sim, sair'; + + @override + String get resendCodeButton => 'Reenviar código'; + + @override + String resendCodeTimer(String timer) { + return 'Reenviar código ($timer)'; + } +} + +/// The translations for Portuguese, as used in Brazil (`pt_BR`). +class SignUpLocalizationPtBr extends SignUpLocalizationPt { + SignUpLocalizationPtBr() : super('pt_BR'); + + @override + String get title => 'Entrar'; + + @override + String get logIn => 'Conecte-se'; + + @override + String get password => 'Senha'; + + @override + String get changeNumber => 'Alterar número'; + + @override + String get forgotPassword => 'Esqueceu sua senha?'; + + @override + String get forgotPasswordEnterYourEmailAddress => + 'Digite seu endereço de e-mail e lhe enviaremos um link para redefinir sua senha.'; + + @override + String get rememberYourPasswordQuestion => 'Lembra da sua senha?'; + + @override + String get backToLoginButton => 'Eu tenho uma senha'; + + @override + String get continueButton => 'Continuar'; + + @override + String get passwordResetEmailSentSnackBar => + 'E-mail de redefinição de senha enviado'; + + @override + String get resetPasswordButton => 'Redefinir senha'; + + @override + String get confirmCodeButton => 'Confirmar código'; + + @override + String get startUsingDoctorinaTodaySubtitle => + 'Comece a usar Doctorina hoje mesmo'; + + @override + String get orDivider => 'OU'; + + @override + String get enterPasswordForEmailHint => 'Digite sua senha'; + + @override + String get showPasswordHint => 'Mostrar senha'; + + @override + String get obscurePasswordHint => 'Senha obscura'; + + @override + String get clearLoginTooltip => 'Limpar login'; + + @override + String get emailOrPhoneLabel => 'E-mail ou telefone'; + + @override + String get emailOrPhoneLabelExample => 'nome@gmail.com ou +1234567890'; + + @override + String get emailOrPhoneHint => 'Digite e-mail ou número de telefone'; + + @override + String get pleaseAcceptTheAgreementsToContinueSnackBar => + 'Por favor, aceite os acordos para continuar.'; + + @override + String get consentToTheProcessingOfPersonalData => + 'Eu concordo com o processamento de dados pessoais,'; + + @override + String get consentTheUseOf => 'o uso de'; + + @override + String get consentCookies => 'biscoitos'; + + @override + String get consentAgreeToThe => ', concorda com o'; + + @override + String get consentTermsAndConditions => 'termos e Condições'; + + @override + String get consentAndAcknowledgeThe => ', e reconhecer o'; + + @override + String get consentPrivacyPolicy => 'política de Privacidade'; + + @override + String get consentDot => '.'; + + @override + String get acknowledgeMyConsultation => + 'Reconheço que minha consulta é com uma IA e não com um profissional médico licenciado.'; + + @override + String get logOutDialogTitle => 'Sair'; + + @override + String get logOutDialogContent => 'Tem certeza de que deseja sair?'; + + @override + String get logOutDialogCancelButton => 'Cancelar'; + + @override + String get logOutDialogLogOutButton => 'Sim, sair'; + + @override + String get resendCodeButton => 'Reenviar código'; + + @override + String resendCodeTimer(String timer) { + return 'Reenviar código ($timer)'; + } +} diff --git a/example/lib/src/generated/sign_up/sign_up_localization_ru.dart b/example/lib/src/generated/sign_up/sign_up_localization_ru.dart index 8822c24..74cf59f 100644 --- a/example/lib/src/generated/sign_up/sign_up_localization_ru.dart +++ b/example/lib/src/generated/sign_up/sign_up_localization_ru.dart @@ -120,4 +120,12 @@ class SignUpLocalizationRu extends SignUpLocalization { @override String get logOutDialogLogOutButton => 'Да, выйти'; + + @override + String get resendCodeButton => 'Отправить код повторно'; + + @override + String resendCodeTimer(String timer) { + return 'Отправить код повторно ($timer)'; + } } diff --git a/example/lib/src/generated/sign_up/sign_up_localization_zh.dart b/example/lib/src/generated/sign_up/sign_up_localization_zh.dart new file mode 100644 index 0000000..141974f --- /dev/null +++ b/example/lib/src/generated/sign_up/sign_up_localization_zh.dart @@ -0,0 +1,245 @@ +// This file is generated by the Google Sheets localization tool. Do not edit manually. + +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'sign_up_localization.dart'; + +// ignore_for_file: type=lint + +/// The translations for Chinese (`zh`). +class SignUpLocalizationZh extends SignUpLocalization { + SignUpLocalizationZh([String locale = 'zh']) : super(locale); + + @override + String get title => '登入'; + + @override + String get logIn => '登录'; + + @override + String get password => '密码'; + + @override + String get changeNumber => '更改号码'; + + @override + String get forgotPassword => '忘记密码?'; + + @override + String get forgotPasswordEnterYourEmailAddress => + '输入您的电子邮件地址,我们将向您发送重置密码的链接。'; + + @override + String get rememberYourPasswordQuestion => '记住密码了吗?'; + + @override + String get backToLoginButton => '我有密码'; + + @override + String get continueButton => '继续'; + + @override + String get passwordResetEmailSentSnackBar => '密码重置电子邮件已发送'; + + @override + String get resetPasswordButton => '重置密码'; + + @override + String get confirmCodeButton => '确认码'; + + @override + String get startUsingDoctorinaTodaySubtitle => '立即开始使用 Doctorina'; + + @override + String get orDivider => '或者'; + + @override + String get enterPasswordForEmailHint => '输入您的密码'; + + @override + String get showPasswordHint => '显示密码'; + + @override + String get obscurePasswordHint => '模糊密码'; + + @override + String get clearLoginTooltip => '清除登录信息'; + + @override + String get emailOrPhoneLabel => '电子邮件或电话'; + + @override + String get emailOrPhoneLabelExample => 'name@gmail.com 或 +1234567890'; + + @override + String get emailOrPhoneHint => '输入电子邮件或电话号码'; + + @override + String get pleaseAcceptTheAgreementsToContinueSnackBar => '请接受协议以继续。'; + + @override + String get consentToTheProcessingOfPersonalData => '我同意处理个人数据,'; + + @override + String get consentTheUseOf => '使用'; + + @override + String get consentCookies => '曲奇饼'; + + @override + String get consentAgreeToThe => ',同意'; + + @override + String get consentTermsAndConditions => '条款和条件'; + + @override + String get consentAndAcknowledgeThe => ',并承认'; + + @override + String get consentPrivacyPolicy => '隐私政策'; + + @override + String get consentDot => '。'; + + @override + String get acknowledgeMyConsultation => '我承认我的咨询对象是人工智能,而不是有执照的医疗专业人员。'; + + @override + String get logOutDialogTitle => '登出'; + + @override + String get logOutDialogContent => '您确定要退出吗?'; + + @override + String get logOutDialogCancelButton => '取消'; + + @override + String get logOutDialogLogOutButton => '是的,退出'; + + @override + String get resendCodeButton => '重新发送代码'; + + @override + String resendCodeTimer(String timer) { + return '重新发送代码 ($timer)'; + } +} + +/// The translations for Chinese, as used in China (`zh_CN`). +class SignUpLocalizationZhCn extends SignUpLocalizationZh { + SignUpLocalizationZhCn() : super('zh_CN'); + + @override + String get title => '登入'; + + @override + String get logIn => '登录'; + + @override + String get password => '密码'; + + @override + String get changeNumber => '更改号码'; + + @override + String get forgotPassword => '忘记密码?'; + + @override + String get forgotPasswordEnterYourEmailAddress => + '输入您的电子邮件地址,我们将向您发送重置密码的链接。'; + + @override + String get rememberYourPasswordQuestion => '记住密码了吗?'; + + @override + String get backToLoginButton => '我有密码'; + + @override + String get continueButton => '继续'; + + @override + String get passwordResetEmailSentSnackBar => '密码重置电子邮件已发送'; + + @override + String get resetPasswordButton => '重置密码'; + + @override + String get confirmCodeButton => '确认码'; + + @override + String get startUsingDoctorinaTodaySubtitle => '立即开始使用 Doctorina'; + + @override + String get orDivider => '或者'; + + @override + String get enterPasswordForEmailHint => '输入您的密码'; + + @override + String get showPasswordHint => '显示密码'; + + @override + String get obscurePasswordHint => '模糊密码'; + + @override + String get clearLoginTooltip => '清除登录信息'; + + @override + String get emailOrPhoneLabel => '电子邮件或电话'; + + @override + String get emailOrPhoneLabelExample => 'name@gmail.com 或 +1234567890'; + + @override + String get emailOrPhoneHint => '输入电子邮件或电话号码'; + + @override + String get pleaseAcceptTheAgreementsToContinueSnackBar => '请接受协议以继续。'; + + @override + String get consentToTheProcessingOfPersonalData => '我同意处理个人数据,'; + + @override + String get consentTheUseOf => '使用'; + + @override + String get consentCookies => '曲奇饼'; + + @override + String get consentAgreeToThe => ',同意'; + + @override + String get consentTermsAndConditions => '条款和条件'; + + @override + String get consentAndAcknowledgeThe => ',并承认'; + + @override + String get consentPrivacyPolicy => '隐私政策'; + + @override + String get consentDot => '。'; + + @override + String get acknowledgeMyConsultation => '我承认我的咨询对象是人工智能,而不是有执照的医疗专业人员。'; + + @override + String get logOutDialogTitle => '登出'; + + @override + String get logOutDialogContent => '您确定要退出吗?'; + + @override + String get logOutDialogCancelButton => '取消'; + + @override + String get logOutDialogLogOutButton => '是的,退出'; + + @override + String get resendCodeButton => '重新发送代码'; + + @override + String resendCodeTimer(String timer) { + return '重新发送代码 ($timer)'; + } +} diff --git a/example/pubspec.yaml b/example/pubspec.yaml index 40d74b4..6abc869 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -20,3 +20,6 @@ dependencies: dev_dependencies: flutter_lints: ">=5.0.0 <7.0.0" + +flutter: + generate: true diff --git a/pubspec.yaml b/pubspec.yaml index d94f88c..c307972 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -9,7 +9,7 @@ description: > It uses the Google Sheets API to fetch translations and generates Dart localization files for use in Flutter applications. -version: 0.2.1 +version: 0.2.2 homepage: https://github.com/DoctorinaAI/sheety_localization repository: https://github.com/DoctorinaAI/sheety_localization @@ -59,3 +59,6 @@ dev_dependencies: #flutter_test: # sdk: flutter lints: ">=5.0.0 <7.0.0" + +flutter: + generate: true