fix/translate
#40
Merged
amirreza.chegini
merged 3 commits from fix/translate into develop 1 month ago
28 changed files with 880 additions and 98 deletions
-
15lib/core/constants/my_constants.dart
-
40lib/features/app/presentation/bloc/app_bloc.dart
-
12lib/features/app/presentation/bloc/app_event.dart
-
11lib/features/app/presentation/bloc/app_state.dart
-
4lib/features/download/data/datasource/download_datasource.dart
-
4lib/features/language/domain/entity/language_entity.dart
-
16lib/features/language/presentation/bloc/language_bloc.dart
-
3lib/features/language/presentation/bloc/language_state.dart
-
9lib/features/language/presentation/ui/language_page.dart
-
2lib/features/level/data/datasource/level_datasource.dart
-
4lib/features/question/data/datasource/question_datasource.dart
-
17lib/features/question/presentation/bloc/question_bloc.dart
-
87lib/features/question/presentation/ui/question_page.dart
-
5lib/features/question/presentation/ui/screens/diamond_screen.dart
-
16lib/features/question/presentation/ui/screens/question_screen.dart
-
11lib/features/question/presentation/ui/widgets/glassy_button.dart
-
2lib/init_bindings.dart
-
39lib/l10n/app_ar.arb
-
1lib/l10n/app_en.arb
-
39lib/l10n/app_fr.arb
-
22lib/l10n/app_localizations.dart
-
122lib/l10n/app_localizations_ar.dart
-
127lib/l10n/app_localizations_fr.dart
-
127lib/l10n/app_localizations_ru.dart
-
126lib/l10n/app_localizations_tr.dart
-
39lib/l10n/app_ru.arb
-
39lib/l10n/app_tr.arb
-
39lib/main.dart
@ -0,0 +1,40 @@ |
|||
import 'dart:async'; |
|||
|
|||
import 'package:bloc/bloc.dart'; |
|||
import 'package:hadi_hoda_flutter/core/constants/my_constants.dart'; |
|||
import 'package:hadi_hoda_flutter/core/utils/local_storage.dart'; |
|||
import 'package:hadi_hoda_flutter/features/app/presentation/bloc/app_event.dart'; |
|||
import 'package:hadi_hoda_flutter/features/app/presentation/bloc/app_state.dart'; |
|||
import 'package:hadi_hoda_flutter/features/language/domain/entity/language_entity.dart'; |
|||
|
|||
class AppBloc extends Bloc<AppEvent, AppState> { |
|||
/// ------------constructor------------ |
|||
AppBloc() : super(const AppState()) { |
|||
on<InitLocaleEvent>(_initLocaleEvent); |
|||
on<ChangeLocaleEvent>(_changeLocaleEvent); |
|||
} |
|||
|
|||
/// ------------UseCases------------ |
|||
|
|||
/// ------------Variables------------ |
|||
|
|||
/// ------------Controllers------------ |
|||
|
|||
/// ------------Functions------------ |
|||
|
|||
|
|||
/// ------------Event Calls------------ |
|||
FutureOr<void> _initLocaleEvent(InitLocaleEvent event, |
|||
Emitter<AppState> emit) { |
|||
final String selectLanguage = LocalStorage.readData(key: MyConstants.selectLanguage) ?? MyConstants.defaultLanguage; |
|||
final LanguageEntity findLanguage = MyConstants.languages.singleWhere( |
|||
(e) => e.code == selectLanguage, |
|||
); |
|||
emit(state.copyWith(locale: findLanguage.locale)); |
|||
} |
|||
|
|||
FutureOr<void> _changeLocaleEvent(ChangeLocaleEvent event, |
|||
Emitter<AppState> emit) { |
|||
emit(state.copyWith(locale: event.locale)); |
|||
} |
|||
} |
|||
@ -0,0 +1,12 @@ |
|||
import 'package:flutter/material.dart'; |
|||
|
|||
sealed class AppEvent { |
|||
const AppEvent(); |
|||
} |
|||
|
|||
class InitLocaleEvent extends AppEvent {} |
|||
|
|||
class ChangeLocaleEvent extends AppEvent { |
|||
final Locale locale; |
|||
const ChangeLocaleEvent(this.locale); |
|||
} |
|||
@ -0,0 +1,11 @@ |
|||
import 'package:flutter/material.dart'; |
|||
|
|||
class AppState { |
|||
final Locale locale; |
|||
|
|||
const AppState({this.locale = const Locale('en', 'US')}); |
|||
|
|||
AppState copyWith({Locale? locale}) { |
|||
return AppState(locale: locale ?? this.locale); |
|||
} |
|||
} |
|||
@ -1,17 +1,21 @@ |
|||
import 'package:equatable/equatable.dart'; |
|||
import 'package:flutter/material.dart'; |
|||
|
|||
class LanguageEntity extends Equatable { |
|||
final String? title; |
|||
final String? code; |
|||
final Locale? locale; |
|||
|
|||
const LanguageEntity({ |
|||
this.title, |
|||
this.code, |
|||
this.locale, |
|||
}); |
|||
|
|||
@override |
|||
List<Object?> get props => [ |
|||
title, |
|||
code, |
|||
locale, |
|||
]; |
|||
} |
|||
@ -0,0 +1,39 @@ |
|||
{ |
|||
"@@locale": "ar", |
|||
"about_us": "معلومات عنا", |
|||
"about_us_desc": "تجمع Rive بين أداة تصميم تفاعلية، وتنسيق رسومي جديد يعتمد على الحالة، وبيئة تشغيل خفيفة متعددة المنصات، ومحرّك عرض متجهي سريع للغاية.\nتجعل هذه المنظومة المتكاملة الواجهات تنبض بالحياة من خلال الحركة، وتمنح المصممين والمطورين الأدوات اللازمة للابتكار.", |
|||
"select_language": "اختر اللغة", |
|||
"select": "اختيار", |
|||
"please_wait": "يرجى الانتظار قليلاً...", |
|||
"downloading_data": "جارٍ تنزيل البيانات الأولية", |
|||
"lost_connection": "فُقد الاتصال!", |
|||
"retry": "إعادة المحاولة", |
|||
"connected_to_internet": "يجب أن تكون متصلاً بالإنترنت لتنزيل بيانات اللعبة الأولية.", |
|||
"start": "ابدأ", |
|||
"step": "خطوة", |
|||
"question": "سؤال", |
|||
"be_cureful": "كن أكثر\nحذرًا.", |
|||
"wrong_answer": "إجابتك\nكانت غير صحيحة.", |
|||
"you_got_diamond": "لقد حصلت على الماسة", |
|||
"map": "الخريطة", |
|||
"next": "التالي", |
|||
"you_win": "لقد فزت!", |
|||
"skip": "تخطي", |
|||
"intro_1_1": "العشاء جاهز! أسرعوا وتعالوا واغسلوا أيديكم الجميلة!", |
|||
"intro_1_2": "أمي! أيدينا ليست متسخة كثيرًا! سنمسحها بمنديل فقط!", |
|||
"intro_2": "نقاء الإيمان...\nيعني أن النظافة من علامات الإيمان!", |
|||
"intro_3": "هذه الأعمال الطيبة تجعل أرواحنا قوية وجميلة!", |
|||
"intro_4": "هل ترغب في السفر إلى الحديقة الموعودة؟", |
|||
"intro_5": "نعممم...\nنحن جاهزون!", |
|||
"want_to_exit": "هل تريد الخروج؟", |
|||
"exit_dialog_desc": "عد مرة أخرى أيها البطل!\nالمغامرة لم تنتهِ بعد!", |
|||
"cancel": "إلغاء", |
|||
"exit": "خروج", |
|||
"play": "العب", |
|||
"no_hadith": "لا يوجد حديث لهذا السؤال", |
|||
"showcase_answer": "اضغط على الخيار الصحيح\nلتحديده.", |
|||
"showcase_notif": "سيقوم الراوي بقراءة\nالإجابات والخيارات لك.", |
|||
"showcase_stepper": "هنا سترى الأسئلة الخاصة\nبهذه المرحلة للوصول\nإلى الماسة.", |
|||
"showcase_hadith": "اطّلع على المصادر والأحاديث\nلهذا السؤال", |
|||
"showcase_guide": "هذا دليل سيساعدك\nفي رحلتك." |
|||
} |
|||
@ -0,0 +1,39 @@ |
|||
{ |
|||
"@@locale": "fr", |
|||
"about_us": "À propos de nous", |
|||
"about_us_desc": "Rive combine un outil de conception interactif, un nouveau format graphique avec état, un environnement d’exécution multiplateforme léger et un moteur de rendu vectoriel ultra-rapide. \nCette chaîne complète donne vie aux interfaces grâce au mouvement et offre aux concepteurs et développeurs les outils nécessaires pour créer.", |
|||
"select_language": "Choisissez la langue", |
|||
"select": "Sélectionner", |
|||
"please_wait": "Veuillez patienter quelques instants...", |
|||
"downloading_data": "Téléchargement des données initiales", |
|||
"lost_connection": "Connexion perdue !", |
|||
"retry": "Réessayer", |
|||
"connected_to_internet": "Vous devez être connecté à Internet pour télécharger les données initiales du jeu.", |
|||
"start": "Commencer", |
|||
"step": "Étape", |
|||
"question": "Question", |
|||
"be_cureful": "Sois plus\nprudent.", |
|||
"wrong_answer": "Ta réponse\nn’était pas correcte.", |
|||
"you_got_diamond": "Tu as obtenu le diamant", |
|||
"map": "Carte", |
|||
"next": "Suivant", |
|||
"you_win": "Tu as gagné !", |
|||
"skip": "Passer", |
|||
"intro_1_1": "Le dîner est prêt ! Venez vite et lavez vos jolies mains !", |
|||
"intro_1_2": "Maman ! Nos mains ne sont pas si sales ! On va juste les essuyer avec un mouchoir !", |
|||
"intro_2": "La pureté de la foi...\nCela signifie que la propreté est un signe de foi !", |
|||
"intro_3": "Ces bonnes actions rendent notre âme forte et belle !", |
|||
"intro_4": "Veux-tu voyager vers le Jardin Promis ?", |
|||
"intro_5": "Ouuuiii...\nNous sommes prêts !", |
|||
"want_to_exit": "Tu veux quitter ?", |
|||
"exit_dialog_desc": "Reviens, héros !\nL’aventure n’est pas encore finie !", |
|||
"cancel": "Annuler", |
|||
"exit": "Quitter", |
|||
"play": "JOUER", |
|||
"no_hadith": "Il n’y a aucun hadith pour cette question", |
|||
"showcase_answer": "Appuie sur la bonne\noption pour la choisir.", |
|||
"showcase_notif": "Le narrateur lira\nles réponses des\noptions pour toi.", |
|||
"showcase_stepper": "Ici, tu verras les\nquestions de cette\nétape pour atteindre\nle diamant.", |
|||
"showcase_hadith": "Consulte les sources et\nles hadiths pour cette\nquestion", |
|||
"showcase_guide": "Ceci est un guide\nqui t’aidera." |
|||
} |
|||
@ -0,0 +1,122 @@ |
|||
// ignore: unused_import |
|||
import 'package:intl/intl.dart' as intl; |
|||
import 'app_localizations.dart'; |
|||
|
|||
// ignore_for_file: type=lint |
|||
|
|||
/// The translations for Arabic (`ar`). |
|||
class AppLocalizationsAr extends AppLocalizations { |
|||
AppLocalizationsAr([String locale = 'ar']) : super(locale); |
|||
|
|||
@override |
|||
String get about_us => 'معلومات عنا'; |
|||
|
|||
@override |
|||
String get about_us_desc => |
|||
'تجمع Rive بين أداة تصميم تفاعلية، وتنسيق رسومي جديد يعتمد على الحالة، وبيئة تشغيل خفيفة متعددة المنصات، ومحرّك عرض متجهي سريع للغاية.\nتجعل هذه المنظومة المتكاملة الواجهات تنبض بالحياة من خلال الحركة، وتمنح المصممين والمطورين الأدوات اللازمة للابتكار.'; |
|||
|
|||
@override |
|||
String get select_language => 'اختر اللغة'; |
|||
|
|||
@override |
|||
String get select => 'اختيار'; |
|||
|
|||
@override |
|||
String get please_wait => 'يرجى الانتظار قليلاً...'; |
|||
|
|||
@override |
|||
String get downloading_data => 'جارٍ تنزيل البيانات الأولية'; |
|||
|
|||
@override |
|||
String get lost_connection => 'فُقد الاتصال!'; |
|||
|
|||
@override |
|||
String get retry => 'إعادة المحاولة'; |
|||
|
|||
@override |
|||
String get connected_to_internet => |
|||
'يجب أن تكون متصلاً بالإنترنت لتنزيل بيانات اللعبة الأولية.'; |
|||
|
|||
@override |
|||
String get start => 'ابدأ'; |
|||
|
|||
@override |
|||
String get step => 'خطوة'; |
|||
|
|||
@override |
|||
String get question => 'سؤال'; |
|||
|
|||
@override |
|||
String get be_cureful => 'كن أكثر\nحذرًا.'; |
|||
|
|||
@override |
|||
String get wrong_answer => 'إجابتك\nكانت غير صحيحة.'; |
|||
|
|||
@override |
|||
String get you_got_diamond => 'لقد حصلت على الماسة'; |
|||
|
|||
@override |
|||
String get map => 'الخريطة'; |
|||
|
|||
@override |
|||
String get next => 'التالي'; |
|||
|
|||
@override |
|||
String get you_win => 'لقد فزت!'; |
|||
|
|||
@override |
|||
String get skip => 'تخطي'; |
|||
|
|||
@override |
|||
String get intro_1_1 => 'العشاء جاهز! أسرعوا وتعالوا واغسلوا أيديكم الجميلة!'; |
|||
|
|||
@override |
|||
String get intro_1_2 => 'أمي! أيدينا ليست متسخة كثيرًا! سنمسحها بمنديل فقط!'; |
|||
|
|||
@override |
|||
String get intro_2 => 'نقاء الإيمان...\nيعني أن النظافة من علامات الإيمان!'; |
|||
|
|||
@override |
|||
String get intro_3 => 'هذه الأعمال الطيبة تجعل أرواحنا قوية وجميلة!'; |
|||
|
|||
@override |
|||
String get intro_4 => 'هل ترغب في السفر إلى الحديقة الموعودة؟'; |
|||
|
|||
@override |
|||
String get intro_5 => 'نعممم...\nنحن جاهزون!'; |
|||
|
|||
@override |
|||
String get want_to_exit => 'هل تريد الخروج؟'; |
|||
|
|||
@override |
|||
String get exit_dialog_desc => |
|||
'عد مرة أخرى أيها البطل!\nالمغامرة لم تنتهِ بعد!'; |
|||
|
|||
@override |
|||
String get cancel => 'إلغاء'; |
|||
|
|||
@override |
|||
String get exit => 'خروج'; |
|||
|
|||
@override |
|||
String get play => 'العب'; |
|||
|
|||
@override |
|||
String get no_hadith => 'لا يوجد حديث لهذا السؤال'; |
|||
|
|||
@override |
|||
String get showcase_answer => 'اضغط على الخيار الصحيح\nلتحديده.'; |
|||
|
|||
@override |
|||
String get showcase_notif => 'سيقوم الراوي بقراءة\nالإجابات والخيارات لك.'; |
|||
|
|||
@override |
|||
String get showcase_stepper => |
|||
'هنا سترى الأسئلة الخاصة\nبهذه المرحلة للوصول\nإلى الماسة.'; |
|||
|
|||
@override |
|||
String get showcase_hadith => 'اطّلع على المصادر والأحاديث\nلهذا السؤال'; |
|||
|
|||
@override |
|||
String get showcase_guide => 'هذا دليل سيساعدك\nفي رحلتك.'; |
|||
} |
|||
@ -0,0 +1,127 @@ |
|||
// ignore: unused_import |
|||
import 'package:intl/intl.dart' as intl; |
|||
import 'app_localizations.dart'; |
|||
|
|||
// ignore_for_file: type=lint |
|||
|
|||
/// The translations for French (`fr`). |
|||
class AppLocalizationsFr extends AppLocalizations { |
|||
AppLocalizationsFr([String locale = 'fr']) : super(locale); |
|||
|
|||
@override |
|||
String get about_us => 'À propos de nous'; |
|||
|
|||
@override |
|||
String get about_us_desc => |
|||
'Rive combine un outil de conception interactif, un nouveau format graphique avec état, un environnement d’exécution multiplateforme léger et un moteur de rendu vectoriel ultra-rapide. \nCette chaîne complète donne vie aux interfaces grâce au mouvement et offre aux concepteurs et développeurs les outils nécessaires pour créer.'; |
|||
|
|||
@override |
|||
String get select_language => 'Choisissez la langue'; |
|||
|
|||
@override |
|||
String get select => 'Sélectionner'; |
|||
|
|||
@override |
|||
String get please_wait => 'Veuillez patienter quelques instants...'; |
|||
|
|||
@override |
|||
String get downloading_data => 'Téléchargement des données initiales'; |
|||
|
|||
@override |
|||
String get lost_connection => 'Connexion perdue !'; |
|||
|
|||
@override |
|||
String get retry => 'Réessayer'; |
|||
|
|||
@override |
|||
String get connected_to_internet => |
|||
'Vous devez être connecté à Internet pour télécharger les données initiales du jeu.'; |
|||
|
|||
@override |
|||
String get start => 'Commencer'; |
|||
|
|||
@override |
|||
String get step => 'Étape'; |
|||
|
|||
@override |
|||
String get question => 'Question'; |
|||
|
|||
@override |
|||
String get be_cureful => 'Sois plus\nprudent.'; |
|||
|
|||
@override |
|||
String get wrong_answer => 'Ta réponse\nn’était pas correcte.'; |
|||
|
|||
@override |
|||
String get you_got_diamond => 'Tu as obtenu le diamant'; |
|||
|
|||
@override |
|||
String get map => 'Carte'; |
|||
|
|||
@override |
|||
String get next => 'Suivant'; |
|||
|
|||
@override |
|||
String get you_win => 'Tu as gagné !'; |
|||
|
|||
@override |
|||
String get skip => 'Passer'; |
|||
|
|||
@override |
|||
String get intro_1_1 => |
|||
'Le dîner est prêt ! Venez vite et lavez vos jolies mains !'; |
|||
|
|||
@override |
|||
String get intro_1_2 => |
|||
'Maman ! Nos mains ne sont pas si sales ! On va juste les essuyer avec un mouchoir !'; |
|||
|
|||
@override |
|||
String get intro_2 => |
|||
'La pureté de la foi...\nCela signifie que la propreté est un signe de foi !'; |
|||
|
|||
@override |
|||
String get intro_3 => 'Ces bonnes actions rendent notre âme forte et belle !'; |
|||
|
|||
@override |
|||
String get intro_4 => 'Veux-tu voyager vers le Jardin Promis ?'; |
|||
|
|||
@override |
|||
String get intro_5 => 'Ouuuiii...\nNous sommes prêts !'; |
|||
|
|||
@override |
|||
String get want_to_exit => 'Tu veux quitter ?'; |
|||
|
|||
@override |
|||
String get exit_dialog_desc => |
|||
'Reviens, héros !\nL’aventure n’est pas encore finie !'; |
|||
|
|||
@override |
|||
String get cancel => 'Annuler'; |
|||
|
|||
@override |
|||
String get exit => 'Quitter'; |
|||
|
|||
@override |
|||
String get play => 'JOUER'; |
|||
|
|||
@override |
|||
String get no_hadith => 'Il n’y a aucun hadith pour cette question'; |
|||
|
|||
@override |
|||
String get showcase_answer => 'Appuie sur la bonne\noption pour la choisir.'; |
|||
|
|||
@override |
|||
String get showcase_notif => |
|||
'Le narrateur lira\nles réponses des\noptions pour toi.'; |
|||
|
|||
@override |
|||
String get showcase_stepper => |
|||
'Ici, tu verras les\nquestions de cette\nétape pour atteindre\nle diamant.'; |
|||
|
|||
@override |
|||
String get showcase_hadith => |
|||
'Consulte les sources et\nles hadiths pour cette\nquestion'; |
|||
|
|||
@override |
|||
String get showcase_guide => 'Ceci est un guide\nqui t’aidera.'; |
|||
} |
|||
@ -0,0 +1,127 @@ |
|||
// ignore: unused_import |
|||
import 'package:intl/intl.dart' as intl; |
|||
import 'app_localizations.dart'; |
|||
|
|||
// ignore_for_file: type=lint |
|||
|
|||
/// The translations for Russian (`ru`). |
|||
class AppLocalizationsRu extends AppLocalizations { |
|||
AppLocalizationsRu([String locale = 'ru']) : super(locale); |
|||
|
|||
@override |
|||
String get about_us => 'О нас'; |
|||
|
|||
@override |
|||
String get about_us_desc => |
|||
'Rive объединяет интерактивный инструмент для дизайна, новый формат графики с состоянием, легковесную многоплатформенную среду выполнения и сверхбыстрый векторный рендер. \nЭта сквозная система оживляет интерфейсы с помощью анимации и дает дизайнерам и разработчикам необходимые инструменты для создания.'; |
|||
|
|||
@override |
|||
String get select_language => 'Выберите язык'; |
|||
|
|||
@override |
|||
String get select => 'Выбрать'; |
|||
|
|||
@override |
|||
String get please_wait => 'Подождите несколько секунд...'; |
|||
|
|||
@override |
|||
String get downloading_data => 'Загрузка исходных данных'; |
|||
|
|||
@override |
|||
String get lost_connection => 'Соединение потеряно!'; |
|||
|
|||
@override |
|||
String get retry => 'Повторить'; |
|||
|
|||
@override |
|||
String get connected_to_internet => |
|||
'Для загрузки исходных данных игры необходимо подключение к интернету.'; |
|||
|
|||
@override |
|||
String get start => 'Начать'; |
|||
|
|||
@override |
|||
String get step => 'Шаг'; |
|||
|
|||
@override |
|||
String get question => 'Вопрос'; |
|||
|
|||
@override |
|||
String get be_cureful => 'Будь\nвнимательнее.'; |
|||
|
|||
@override |
|||
String get wrong_answer => 'Твой ответ\nневерен.'; |
|||
|
|||
@override |
|||
String get you_got_diamond => 'Ты получил алмаз'; |
|||
|
|||
@override |
|||
String get map => 'Карта'; |
|||
|
|||
@override |
|||
String get next => 'Далее'; |
|||
|
|||
@override |
|||
String get you_win => 'Ты победил!'; |
|||
|
|||
@override |
|||
String get skip => 'Пропустить'; |
|||
|
|||
@override |
|||
String get intro_1_1 => |
|||
'Ужин готов! Скорее приходите и помойте свои красивые руки!'; |
|||
|
|||
@override |
|||
String get intro_1_2 => |
|||
'Мама! Наши руки не такие грязные! Мы просто вытрем их салфеткой!'; |
|||
|
|||
@override |
|||
String get intro_2 => |
|||
'Чистота веры...\nОна означает, что чистота — это признак веры!'; |
|||
|
|||
@override |
|||
String get intro_3 => |
|||
'Эти добрые дела делают нашу душу сильной и прекрасной!'; |
|||
|
|||
@override |
|||
String get intro_4 => 'Хочешь отправиться в Обетованный Сад?'; |
|||
|
|||
@override |
|||
String get intro_5 => 'Дааа...\nМы готовы!'; |
|||
|
|||
@override |
|||
String get want_to_exit => 'Хочешь выйти?'; |
|||
|
|||
@override |
|||
String get exit_dialog_desc => |
|||
'Возвращайся, герой!\nПриключение еще не закончено!'; |
|||
|
|||
@override |
|||
String get cancel => 'Отмена'; |
|||
|
|||
@override |
|||
String get exit => 'Выход'; |
|||
|
|||
@override |
|||
String get play => 'ИГРАТЬ'; |
|||
|
|||
@override |
|||
String get no_hadith => 'Для этого вопроса нет хадиса'; |
|||
|
|||
@override |
|||
String get showcase_answer => 'Нажми на правильный\nвариант, чтобы выбрать.'; |
|||
|
|||
@override |
|||
String get showcase_notif => 'Диктор прочитает\nтебе все варианты\nответов.'; |
|||
|
|||
@override |
|||
String get showcase_stepper => |
|||
'Здесь ты увидишь\nвопросы этого этапа,\nчтобы получить\nалмаз.'; |
|||
|
|||
@override |
|||
String get showcase_hadith => |
|||
'Просмотри источники и\nхадисы по этому вопросу'; |
|||
|
|||
@override |
|||
String get showcase_guide => 'Это руководство,\nкоторое поможет тебе.'; |
|||
} |
|||
@ -0,0 +1,126 @@ |
|||
// ignore: unused_import |
|||
import 'package:intl/intl.dart' as intl; |
|||
import 'app_localizations.dart'; |
|||
|
|||
// ignore_for_file: type=lint |
|||
|
|||
/// The translations for Turkish (`tr`). |
|||
class AppLocalizationsTr extends AppLocalizations { |
|||
AppLocalizationsTr([String locale = 'tr']) : super(locale); |
|||
|
|||
@override |
|||
String get about_us => 'Hakkımızda'; |
|||
|
|||
@override |
|||
String get about_us_desc => |
|||
'Rive, etkileşimli bir tasarım aracı, yeni bir durumsal grafik formatı, hafif çok platformlu bir çalışma zamanı ve son derece hızlı bir vektör oluşturucu sunar.\nBu uçtan uca süreç, arayüzleri hareketle canlandırır. Tasarımcılara ve geliştiricilere inşa etme gücü verir.'; |
|||
|
|||
@override |
|||
String get select_language => 'Dili seçin'; |
|||
|
|||
@override |
|||
String get select => 'Seç'; |
|||
|
|||
@override |
|||
String get please_wait => 'Lütfen birkaç saniye bekleyin...'; |
|||
|
|||
@override |
|||
String get downloading_data => 'Başlangıç verileri indiriliyor'; |
|||
|
|||
@override |
|||
String get lost_connection => 'Bağlantı kesildi!'; |
|||
|
|||
@override |
|||
String get retry => 'Yeniden dene'; |
|||
|
|||
@override |
|||
String get connected_to_internet => |
|||
'Başlangıç oyun verilerini indirmek için internete bağlı olmalısınız.'; |
|||
|
|||
@override |
|||
String get start => 'Başla'; |
|||
|
|||
@override |
|||
String get step => 'Adım'; |
|||
|
|||
@override |
|||
String get question => 'Soru'; |
|||
|
|||
@override |
|||
String get be_cureful => 'Daha dikkatli\nol.'; |
|||
|
|||
@override |
|||
String get wrong_answer => 'Cevabın\nyanlıştı.'; |
|||
|
|||
@override |
|||
String get you_got_diamond => 'Elması kazandın'; |
|||
|
|||
@override |
|||
String get map => 'Harita'; |
|||
|
|||
@override |
|||
String get next => 'Sonraki'; |
|||
|
|||
@override |
|||
String get you_win => 'Kazandın!'; |
|||
|
|||
@override |
|||
String get skip => 'Geç'; |
|||
|
|||
@override |
|||
String get intro_1_1 => |
|||
'Yemek hazır! Hadi hemen gelin ve güzel ellerinizi yıkayın!'; |
|||
|
|||
@override |
|||
String get intro_1_2 => |
|||
'Anne! Ellerimiz o kadar kirli değil! Peçeteyle sileriz!'; |
|||
|
|||
@override |
|||
String get intro_2 => |
|||
'İman saflığı...\nTemizliğin imanın bir parçası olduğunu gösterir!'; |
|||
|
|||
@override |
|||
String get intro_3 => 'Bu güzel davranışlar ruhumuzu güçlü ve güzel yapar!'; |
|||
|
|||
@override |
|||
String get intro_4 => 'Vadedilen Bahçe\'ye yolculuk etmek ister misin?'; |
|||
|
|||
@override |
|||
String get intro_5 => 'Eveeeet...\nHazırız!'; |
|||
|
|||
@override |
|||
String get want_to_exit => 'Çıkmak istiyor musun?'; |
|||
|
|||
@override |
|||
String get exit_dialog_desc => 'Geri dön, kahraman!\nMacera henüz bitmedi!'; |
|||
|
|||
@override |
|||
String get cancel => 'İptal'; |
|||
|
|||
@override |
|||
String get exit => 'Çıkış'; |
|||
|
|||
@override |
|||
String get play => 'OYNAT'; |
|||
|
|||
@override |
|||
String get no_hadith => 'Bu soru için hadis bulunamadı'; |
|||
|
|||
@override |
|||
String get showcase_answer => 'Doğru seçeneğe\ndokunarak seç.'; |
|||
|
|||
@override |
|||
String get showcase_notif => |
|||
'Anlatıcı, seçeneklerin\ncevaplarını sana\nokuyacak.'; |
|||
|
|||
@override |
|||
String get showcase_stepper => |
|||
'Burada, elmasa ulaşmak\niçin bu aşamadaki\nsoruları göreceksin.'; |
|||
|
|||
@override |
|||
String get showcase_hadith => |
|||
'Bu soruya ait\nkaynakları ve hadisleri\nincele'; |
|||
|
|||
@override |
|||
String get showcase_guide => 'Bu, sana yardımcı olacak\nbir rehberdir.'; |
|||
} |
|||
@ -0,0 +1,39 @@ |
|||
{ |
|||
"@@locale": "ru", |
|||
"about_us": "О нас", |
|||
"about_us_desc": "Rive объединяет интерактивный инструмент для дизайна, новый формат графики с состоянием, легковесную многоплатформенную среду выполнения и сверхбыстрый векторный рендер. \nЭта сквозная система оживляет интерфейсы с помощью анимации и дает дизайнерам и разработчикам необходимые инструменты для создания.", |
|||
"select_language": "Выберите язык", |
|||
"select": "Выбрать", |
|||
"please_wait": "Подождите несколько секунд...", |
|||
"downloading_data": "Загрузка исходных данных", |
|||
"lost_connection": "Соединение потеряно!", |
|||
"retry": "Повторить", |
|||
"connected_to_internet": "Для загрузки исходных данных игры необходимо подключение к интернету.", |
|||
"start": "Начать", |
|||
"step": "Шаг", |
|||
"question": "Вопрос", |
|||
"be_cureful": "Будь\nвнимательнее.", |
|||
"wrong_answer": "Твой ответ\nневерен.", |
|||
"you_got_diamond": "Ты получил алмаз", |
|||
"map": "Карта", |
|||
"next": "Далее", |
|||
"you_win": "Ты победил!", |
|||
"skip": "Пропустить", |
|||
"intro_1_1": "Ужин готов! Скорее приходите и помойте свои красивые руки!", |
|||
"intro_1_2": "Мама! Наши руки не такие грязные! Мы просто вытрем их салфеткой!", |
|||
"intro_2": "Чистота веры...\nОна означает, что чистота — это признак веры!", |
|||
"intro_3": "Эти добрые дела делают нашу душу сильной и прекрасной!", |
|||
"intro_4": "Хочешь отправиться в Обетованный Сад?", |
|||
"intro_5": "Дааа...\nМы готовы!", |
|||
"want_to_exit": "Хочешь выйти?", |
|||
"exit_dialog_desc": "Возвращайся, герой!\nПриключение еще не закончено!", |
|||
"cancel": "Отмена", |
|||
"exit": "Выход", |
|||
"play": "ИГРАТЬ", |
|||
"no_hadith": "Для этого вопроса нет хадиса", |
|||
"showcase_answer": "Нажми на правильный\nвариант, чтобы выбрать.", |
|||
"showcase_notif": "Диктор прочитает\nтебе все варианты\nответов.", |
|||
"showcase_stepper": "Здесь ты увидишь\nвопросы этого этапа,\nчтобы получить\nалмаз.", |
|||
"showcase_hadith": "Просмотри источники и\nхадисы по этому вопросу", |
|||
"showcase_guide": "Это руководство,\nкоторое поможет тебе." |
|||
} |
|||
@ -0,0 +1,39 @@ |
|||
{ |
|||
"@@locale": "tr", |
|||
"about_us": "Hakkımızda", |
|||
"about_us_desc": "Rive, etkileşimli bir tasarım aracı, yeni bir durumsal grafik formatı, hafif çok platformlu bir çalışma zamanı ve son derece hızlı bir vektör oluşturucu sunar.\nBu uçtan uca süreç, arayüzleri hareketle canlandırır. Tasarımcılara ve geliştiricilere inşa etme gücü verir.", |
|||
"select_language": "Dili seçin", |
|||
"select": "Seç", |
|||
"please_wait": "Lütfen birkaç saniye bekleyin...", |
|||
"downloading_data": "Başlangıç verileri indiriliyor", |
|||
"lost_connection": "Bağlantı kesildi!", |
|||
"retry": "Yeniden dene", |
|||
"connected_to_internet": "Başlangıç oyun verilerini indirmek için internete bağlı olmalısınız.", |
|||
"start": "Başla", |
|||
"step": "Adım", |
|||
"question": "Soru", |
|||
"be_cureful": "Daha dikkatli\nol.", |
|||
"wrong_answer": "Cevabın\nyanlıştı.", |
|||
"you_got_diamond": "Elması kazandın", |
|||
"map": "Harita", |
|||
"next": "Sonraki", |
|||
"you_win": "Kazandın!", |
|||
"skip": "Geç", |
|||
"intro_1_1": "Yemek hazır! Hadi hemen gelin ve güzel ellerinizi yıkayın!", |
|||
"intro_1_2": "Anne! Ellerimiz o kadar kirli değil! Peçeteyle sileriz!", |
|||
"intro_2": "İman saflığı...\nTemizliğin imanın bir parçası olduğunu gösterir!", |
|||
"intro_3": "Bu güzel davranışlar ruhumuzu güçlü ve güzel yapar!", |
|||
"intro_4": "Vadedilen Bahçe'ye yolculuk etmek ister misin?", |
|||
"intro_5": "Eveeeet...\nHazırız!", |
|||
"want_to_exit": "Çıkmak istiyor musun?", |
|||
"exit_dialog_desc": "Geri dön, kahraman!\nMacera henüz bitmedi!", |
|||
"cancel": "İptal", |
|||
"exit": "Çıkış", |
|||
"play": "OYNAT", |
|||
"no_hadith": "Bu soru için hadis bulunamadı", |
|||
"showcase_answer": "Doğru seçeneğe\ndokunarak seç.", |
|||
"showcase_notif": "Anlatıcı, seçeneklerin\ncevaplarını sana\nokuyacak.", |
|||
"showcase_stepper": "Burada, elmasa ulaşmak\niçin bu aşamadaki\nsoruları göreceksin.", |
|||
"showcase_hadith": "Bu soruya ait\nkaynakları ve hadisleri\nincele", |
|||
"showcase_guide": "Bu, sana yardımcı olacak\nbir rehberdir." |
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue