579 lines
16 KiB
Dart
579 lines
16 KiB
Dart
// 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 appTitle => 'FocusBuddy';
|
|
|
|
@override
|
|
String get startFocusing => 'ابدأ التركيز';
|
|
|
|
@override
|
|
String minutes(int count) {
|
|
String _temp0 = intl.Intl.pluralLogic(
|
|
count,
|
|
locale: localeName,
|
|
other: 'دقائق',
|
|
one: 'دقيقة',
|
|
);
|
|
return '$_temp0';
|
|
}
|
|
|
|
@override
|
|
String minutesValue(int count, Object minutes) {
|
|
return '$count $minutes';
|
|
}
|
|
|
|
@override
|
|
String get tapDistractionAnytime =>
|
|
'اضغط على \'تشتت انتباهي\'\nفي أي وقت\n—بدون شعور بالذنب';
|
|
|
|
@override
|
|
String get history => 'السجل';
|
|
|
|
@override
|
|
String get settings => 'الإعدادات';
|
|
|
|
@override
|
|
String get iGotDistracted => 'تشتت انتباهي';
|
|
|
|
@override
|
|
String get pause => 'إيقاف مؤقت';
|
|
|
|
@override
|
|
String get resume => 'استئناف';
|
|
|
|
@override
|
|
String get stopSession => 'إيقاف الجلسة';
|
|
|
|
@override
|
|
String get whatPulledYouAway => 'ما الذي شتت انتباهك؟';
|
|
|
|
@override
|
|
String get skipThisTime => 'تخطي هذه المرة';
|
|
|
|
@override
|
|
String get stopEarly => 'التوقف مبكراً؟';
|
|
|
|
@override
|
|
String stopEarlyMessage(int minutes, Object minuteText) {
|
|
return 'لا بأس — لقد ركزت لمدة $minutes $minuteText!';
|
|
}
|
|
|
|
@override
|
|
String get keepGoing => 'استمر';
|
|
|
|
@override
|
|
String get yesStop => 'نعم، توقف';
|
|
|
|
@override
|
|
String get distractionEncouragement => 'هذا يحدث. دعنا نعود بلطف.';
|
|
|
|
@override
|
|
String get focusComplete => 'جلسة التركيز مكتملة!';
|
|
|
|
@override
|
|
String get youFocusedFor => 'لقد ركزت لمدة';
|
|
|
|
@override
|
|
String totalToday(int minutes) {
|
|
return 'الإجمالي اليوم: $minutes دقيقة';
|
|
}
|
|
|
|
@override
|
|
String distractionsCount(int count, Object times) {
|
|
return 'التشتتات: $count $times';
|
|
}
|
|
|
|
@override
|
|
String times(int count) {
|
|
String _temp0 = intl.Intl.pluralLogic(
|
|
count,
|
|
locale: localeName,
|
|
other: 'مرات',
|
|
one: 'مرة',
|
|
);
|
|
return '$_temp0';
|
|
}
|
|
|
|
@override
|
|
String get startAnother => 'ابدأ أخرى';
|
|
|
|
@override
|
|
String get viewHistory => 'عرض السجل';
|
|
|
|
@override
|
|
String get yourFocusJourney => 'رحلة تركيزك';
|
|
|
|
@override
|
|
String get noFocusSessionsYet => 'لا توجد جلسات تركيز بعد';
|
|
|
|
@override
|
|
String get startFirstSession => 'ابدأ جلستك الأولى\nلرؤية تقدمك هنا!';
|
|
|
|
@override
|
|
String get today => 'اليوم';
|
|
|
|
@override
|
|
String sessions(int count) {
|
|
String _temp0 = intl.Intl.pluralLogic(
|
|
count,
|
|
locale: localeName,
|
|
other: '$count جلسات',
|
|
one: '$count جلسة',
|
|
);
|
|
return '$_temp0';
|
|
}
|
|
|
|
@override
|
|
String get completed => 'مكتملة';
|
|
|
|
@override
|
|
String get stoppedEarly => 'توقفت مبكراً';
|
|
|
|
@override
|
|
String distractions(int count) {
|
|
String _temp0 = intl.Intl.pluralLogic(
|
|
count,
|
|
locale: localeName,
|
|
other: 'تشتتات',
|
|
one: 'تشتت',
|
|
);
|
|
return '$_temp0';
|
|
}
|
|
|
|
@override
|
|
String get focusSettings => 'إعدادات التركيز';
|
|
|
|
@override
|
|
String get defaultFocusDuration => 'مدة التركيز الافتراضية';
|
|
|
|
@override
|
|
String get defaultLabel => 'افتراضي';
|
|
|
|
@override
|
|
String get about => 'حول';
|
|
|
|
@override
|
|
String get privacyPolicy => 'سياسة الخصوصية';
|
|
|
|
@override
|
|
String get termsOfService => 'شروط الخدمة';
|
|
|
|
@override
|
|
String get aboutFocusBuddy => 'حول FocusBuddy';
|
|
|
|
@override
|
|
String get resetOnboarding => 'إعادة تعيين التعريف';
|
|
|
|
@override
|
|
String get version => 'الإصدار 1.0.0 (MVP)';
|
|
|
|
@override
|
|
String get privacyPolicyTitle => 'سياسة الخصوصية';
|
|
|
|
@override
|
|
String get privacyPolicyContent =>
|
|
'يعمل FocusBuddy بنسبة 100٪ دون اتصال بالإنترنت. لا نجمع اسمك أو بريدك الإلكتروني أو موقعك أو بيانات الاستخدام. تبقى جميع الجلسات على جهازك.\n\nلا توجد مزامنة سحابية أو نظام حسابات أو تتبع تحليلي.\n\nللحصول على سياسة الخصوصية الكاملة، قم بزيارة:\nhttps://ytc1012.github.io/focusbuddy-site/privacy-policy.html';
|
|
|
|
@override
|
|
String get termsOfServiceTitle => 'شروط الخدمة';
|
|
|
|
@override
|
|
String get termsOfServiceContent =>
|
|
'يتم توفير FocusBuddy \"كما هو\" بدون ضمانات. باستخدام هذا التطبيق، فإنك توافق على استخدامه على مسؤوليتك الخاصة.\n\nهذا التطبيق مصمم كأداة مؤقت تركيز ولا يضمن نتائج محددة. يتم تخزين جميع البيانات محليًا على جهازك.\n\nللحصول على شروط الخدمة الكاملة، قم بزيارة:\nhttps://ytc1012.github.io/focusbuddy-site/terms-of-service.html';
|
|
|
|
@override
|
|
String get close => 'إغلاق';
|
|
|
|
@override
|
|
String get aboutTitle => 'حول FocusBuddy';
|
|
|
|
@override
|
|
String get aboutSubtitle => 'مؤقت تركيز لطيف للعقول العصبية المتنوعة';
|
|
|
|
@override
|
|
String get aboutQuote =>
|
|
'\"التركيز لا يتعلق بعدم التشتت أبداً — بل يتعلق بالعودة بلطف في كل مرة تتشتت فيها.\"';
|
|
|
|
@override
|
|
String get aboutFeatures =>
|
|
'✨ لا عقاب على التشتتات\n💚 تشجيع بدلاً من النقد\n🔒 100٪ دون اتصال وخاص\n🌱 مصنوع بعناية';
|
|
|
|
@override
|
|
String get resetOnboardingTitle => 'إعادة تعيين التعريف؟';
|
|
|
|
@override
|
|
String get resetOnboardingMessage =>
|
|
'سيعرض هذا شاشات التعريف مرة أخرى عند إعادة تشغيل التطبيق.';
|
|
|
|
@override
|
|
String get cancel => 'إلغاء';
|
|
|
|
@override
|
|
String get reset => 'إعادة تعيين';
|
|
|
|
@override
|
|
String get onboardingReset =>
|
|
'تم إعادة تعيين التعريف. أعد تشغيل التطبيق لرؤيته مرة أخرى.';
|
|
|
|
@override
|
|
String get onboarding1Title => 'ركز بدون شعور بالذنب';
|
|
|
|
@override
|
|
String get onboarding1Description =>
|
|
'هذا التطبيق مختلف — لن يعاقبك على فقدان التركيز.\n\nمثالي لاضطراب فرط الحركة ونقص الانتباه أو القلق أو أي شخص يجد المؤقتات التقليدية قاسية جداً.';
|
|
|
|
@override
|
|
String get onboarding2Title => 'اضغط عندما تتشتت';
|
|
|
|
@override
|
|
String get onboarding2Description =>
|
|
'سنذكرك بلطف بالعودة.\n\nلا خجل. لا ضغط. مجرد تذكير ودي.';
|
|
|
|
@override
|
|
String get onboarding3Title => 'تتبع تقدمك';
|
|
|
|
@override
|
|
String get onboarding3Description =>
|
|
'شاهد كيف تتحسن، جلسة واحدة في كل مرة.\n\nكل تشتت هو مجرد بيانات — وليس فشلاً.';
|
|
|
|
@override
|
|
String get skip => 'تخطي';
|
|
|
|
@override
|
|
String get next => 'التالي';
|
|
|
|
@override
|
|
String get getStarted => 'ابدأ';
|
|
|
|
@override
|
|
String get notificationFocusInProgress => 'جلسة تركيز قيد التقدم';
|
|
|
|
@override
|
|
String notificationRemaining(String time) {
|
|
return '$time متبقية';
|
|
}
|
|
|
|
@override
|
|
String get notificationFocusCompleteTitle => '🎉 جلسة التركيز مكتملة!';
|
|
|
|
@override
|
|
String notificationFocusCompleteBodyNoDistractions(
|
|
int minutes,
|
|
Object minuteText,
|
|
) {
|
|
return 'لقد ركزت لمدة $minutes $minuteText بدون تشتتات!';
|
|
}
|
|
|
|
@override
|
|
String notificationFocusCompleteBody(int minutes, Object minuteText) {
|
|
return 'لقد ركزت لمدة $minutes $minuteText. جهد رائع!';
|
|
}
|
|
|
|
@override
|
|
String get distractionPhoneNotification => 'الهاتف / الإشعارات';
|
|
|
|
@override
|
|
String get distractionSocialMedia => 'وسائل التواصل الاجتماعي';
|
|
|
|
@override
|
|
String get distractionThoughts => 'أفكار / أحلام اليقظة';
|
|
|
|
@override
|
|
String get distractionOther => 'أخرى';
|
|
|
|
@override
|
|
String get language => 'اللغة';
|
|
|
|
@override
|
|
String get selectLanguage => 'اختر اللغة';
|
|
|
|
@override
|
|
String get english => 'English';
|
|
|
|
@override
|
|
String get chinese => '中文';
|
|
|
|
@override
|
|
String get japanese => '日本語';
|
|
|
|
@override
|
|
String get korean => '한국어';
|
|
|
|
@override
|
|
String get spanish => 'Español';
|
|
|
|
@override
|
|
String get german => 'Deutsch';
|
|
|
|
@override
|
|
String get french => 'Français';
|
|
|
|
@override
|
|
String get portuguese => 'Português';
|
|
|
|
@override
|
|
String get russian => 'Русский';
|
|
|
|
@override
|
|
String get hindi => 'हिन्दी';
|
|
|
|
@override
|
|
String get indonesian => 'Bahasa Indonesia';
|
|
|
|
@override
|
|
String get italian => 'Italiano';
|
|
|
|
@override
|
|
String get arabic => 'العربية';
|
|
|
|
@override
|
|
String get points => 'النقاط';
|
|
|
|
@override
|
|
String get level => 'المستوى';
|
|
|
|
@override
|
|
String get checked => 'تم التسجيل';
|
|
|
|
@override
|
|
String get checkIn => 'تسجيل الحضور';
|
|
|
|
@override
|
|
String get earnedPoints => 'المكتسب:';
|
|
|
|
@override
|
|
String get basePoints => 'النقاط الأساسية';
|
|
|
|
@override
|
|
String get honestyBonus => 'مكافأة الصدق';
|
|
|
|
@override
|
|
String totalPoints(int count) {
|
|
return 'إجمالي النقاط: $count ⚡';
|
|
}
|
|
|
|
@override
|
|
String distractionsRecorded(int count, Object distractionText) {
|
|
return '($count $distractionText مسجلة)';
|
|
}
|
|
|
|
@override
|
|
String get achievementUnlocked => '🎖️ إنجاز مفتوح!';
|
|
|
|
@override
|
|
String bonusPoints(int points) {
|
|
return '+$points نقاط ⚡';
|
|
}
|
|
|
|
@override
|
|
String checkInSuccess(int points) {
|
|
return 'تسجيل الحضور ناجح! +$points نقاط ⚡';
|
|
}
|
|
|
|
@override
|
|
String get weeklyStreakBonus => '🎉 مكافأة السلسلة الأسبوعية!';
|
|
|
|
@override
|
|
String get newAchievementUnlocked => '🎖️ إنجاز جديد مفتوح!';
|
|
|
|
@override
|
|
String get alreadyCheckedIn => 'لقد سجلت حضورك اليوم بالفعل! عد غدًا 📅';
|
|
|
|
@override
|
|
String get checkInCalendar => 'تقويم تسجيل الحضور 📅';
|
|
|
|
@override
|
|
String get checkInToday => '📅 سجل الحضور اليوم';
|
|
|
|
@override
|
|
String get checkedInToday => '✓ تم التسجيل اليوم';
|
|
|
|
@override
|
|
String get currentStreak => '🔥 السلسلة الحالية';
|
|
|
|
@override
|
|
String get longestStreak => '🏆 أطول سلسلة';
|
|
|
|
@override
|
|
String get days => 'أيام';
|
|
|
|
@override
|
|
String daysCount(int count) {
|
|
return '$count أيام';
|
|
}
|
|
|
|
@override
|
|
String get achievements => 'الإنجازات 🎖️';
|
|
|
|
@override
|
|
String get viewAllAchievements => 'عرض جميع الإنجازات';
|
|
|
|
@override
|
|
String get allAchievementsComingSoon => 'شاشة الإنجازات الكاملة قريبًا!';
|
|
|
|
@override
|
|
String get profile => 'الملف الشخصي';
|
|
|
|
@override
|
|
String get focuser => 'المركز';
|
|
|
|
@override
|
|
String pointsToNextLevel(int points, int level) {
|
|
return '$points نقاط إلى المستوى $level';
|
|
}
|
|
|
|
@override
|
|
String get achievement_first_session_name => 'مبتدئ التركيز';
|
|
|
|
@override
|
|
String get achievement_first_session_desc => 'أكمل جلسة التركيز الأولى';
|
|
|
|
@override
|
|
String get achievement_sessions_10_name => 'البداية';
|
|
|
|
@override
|
|
String get achievement_sessions_10_desc => 'أكمل 10 جلسات تركيز';
|
|
|
|
@override
|
|
String get achievement_sessions_50_name => 'عاشق التركيز';
|
|
|
|
@override
|
|
String get achievement_sessions_50_desc => 'أكمل 50 جلسة تركيز';
|
|
|
|
@override
|
|
String get achievement_sessions_100_name => 'سيد التركيز';
|
|
|
|
@override
|
|
String get achievement_sessions_100_desc => 'أكمل 100 جلسة تركيز';
|
|
|
|
@override
|
|
String get achievement_honest_bronze_name => 'المتتبع الصادق · برونزي';
|
|
|
|
@override
|
|
String get achievement_honest_bronze_desc => 'سجل 50 تشتتًا بصدق';
|
|
|
|
@override
|
|
String get achievement_honest_silver_name => 'المتتبع الصادق · فضي';
|
|
|
|
@override
|
|
String get achievement_honest_silver_desc => 'سجل 200 تشتت بصدق';
|
|
|
|
@override
|
|
String get achievement_honest_gold_name => 'المتتبع الصادق · ذهبي';
|
|
|
|
@override
|
|
String get achievement_honest_gold_desc => 'سجل 500 تشتت بصدق';
|
|
|
|
@override
|
|
String get achievement_marathon_name => 'عداء الماراثون';
|
|
|
|
@override
|
|
String get achievement_marathon_desc => 'اجمع 10 ساعات من وقت التركيز';
|
|
|
|
@override
|
|
String get achievement_century_name => 'نادي القرن';
|
|
|
|
@override
|
|
String get achievement_century_desc => 'اجمع 100 ساعة من وقت التركيز';
|
|
|
|
@override
|
|
String get achievement_master_name => 'جراند ماستر التركيز';
|
|
|
|
@override
|
|
String get achievement_master_desc => 'اجمع 1000 ساعة من وقت التركيز';
|
|
|
|
@override
|
|
String get achievement_persistence_star_name => 'نجمة المثابرة';
|
|
|
|
@override
|
|
String get achievement_persistence_star_desc =>
|
|
'سجل الحضور لمدة 7 أيام متتالية';
|
|
|
|
@override
|
|
String get achievement_monthly_habit_name => 'العادة الشهرية';
|
|
|
|
@override
|
|
String get achievement_monthly_habit_desc =>
|
|
'سجل الحضور لمدة 30 يومًا متتاليًا';
|
|
|
|
@override
|
|
String get achievement_centurion_name => 'المئوي';
|
|
|
|
@override
|
|
String get achievement_centurion_desc => 'سجل الحضور لمدة 100 يوم متتالٍ';
|
|
|
|
@override
|
|
String get achievement_year_warrior_name => 'محارب العام';
|
|
|
|
@override
|
|
String get achievement_year_warrior_desc =>
|
|
'سجل الحضور لمدة 365 يومًا متتاليًا';
|
|
|
|
@override
|
|
String get total => 'الإجمالي';
|
|
|
|
@override
|
|
String get status => 'الحالة';
|
|
|
|
@override
|
|
String get pointsBreakdown => 'تفصيل النقاط';
|
|
|
|
@override
|
|
String get focusTimePoints => 'وقت التركيز';
|
|
|
|
@override
|
|
String get focusTimePointsDesc => 'نقطة واحدة لكل دقيقة تركيز';
|
|
|
|
@override
|
|
String get honestyBonusLabel => 'مكافأة الصدق';
|
|
|
|
@override
|
|
String get honestyBonusDesc => 'نقاط إضافية لتسجيل التشتتات';
|
|
|
|
@override
|
|
String get checkInPoints => 'تسجيل الحضور اليومي';
|
|
|
|
@override
|
|
String get checkInPointsDesc => 'النقاط الأساسية لتسجيل الحضور اليومي';
|
|
|
|
@override
|
|
String get streakBonus => 'مكافأة السلسلة';
|
|
|
|
@override
|
|
String streakBonusDesc(int days) {
|
|
return '$days تسجيلات حضور متتالية';
|
|
}
|
|
|
|
@override
|
|
String get achievementBonusLabel => 'مكافأة الإنجاز';
|
|
|
|
@override
|
|
String get weekdayS => 'ح';
|
|
|
|
@override
|
|
String get weekdayM => 'ن';
|
|
|
|
@override
|
|
String get weekdayT => 'ث';
|
|
|
|
@override
|
|
String get weekdayW => 'ر';
|
|
|
|
@override
|
|
String get weekdayTh => 'خ';
|
|
|
|
@override
|
|
String get weekdayF => 'ج';
|
|
|
|
@override
|
|
String get weekdaySa => 'س';
|
|
}
|