525 lines
14 KiB
Dart
525 lines
14 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 => 'Points';
|
|
|
|
@override
|
|
String get level => 'Level';
|
|
|
|
@override
|
|
String get checked => 'Checked';
|
|
|
|
@override
|
|
String get checkIn => 'Check In';
|
|
|
|
@override
|
|
String get earnedPoints => 'Earned:';
|
|
|
|
@override
|
|
String get basePoints => 'Base Points';
|
|
|
|
@override
|
|
String get honestyBonus => 'Honesty Bonus';
|
|
|
|
@override
|
|
String totalPoints(int count) {
|
|
return 'Total Points: $count ⚡';
|
|
}
|
|
|
|
@override
|
|
String distractionsRecorded(int count, Object distractionText) {
|
|
return '($count $distractionText recorded)';
|
|
}
|
|
|
|
@override
|
|
String get achievementUnlocked => '🎖️ Achievement Unlocked!';
|
|
|
|
@override
|
|
String bonusPoints(int points) {
|
|
return '+$points Points ⚡';
|
|
}
|
|
|
|
@override
|
|
String checkInSuccess(int points) {
|
|
return 'Check-in successful! +$points points ⚡';
|
|
}
|
|
|
|
@override
|
|
String get weeklyStreakBonus => '🎉 Weekly streak bonus!';
|
|
|
|
@override
|
|
String get newAchievementUnlocked => '🎖️ New achievement unlocked!';
|
|
|
|
@override
|
|
String get alreadyCheckedIn =>
|
|
'You have already checked in today! Come back tomorrow 📅';
|
|
|
|
@override
|
|
String get checkInCalendar => 'Check-In Calendar 📅';
|
|
|
|
@override
|
|
String get checkInToday => '📅 Check In Today';
|
|
|
|
@override
|
|
String get checkedInToday => '✓ Checked In Today';
|
|
|
|
@override
|
|
String get currentStreak => '🔥 Current Streak';
|
|
|
|
@override
|
|
String get longestStreak => '🏆 Longest Streak';
|
|
|
|
@override
|
|
String get days => 'days';
|
|
|
|
@override
|
|
String daysCount(int count) {
|
|
return '$count days';
|
|
}
|
|
|
|
@override
|
|
String get achievements => 'Achievements 🎖️';
|
|
|
|
@override
|
|
String get viewAllAchievements => 'View All Achievements';
|
|
|
|
@override
|
|
String get allAchievementsComingSoon =>
|
|
'Full achievements screen coming soon!';
|
|
|
|
@override
|
|
String get profile => 'Profile';
|
|
|
|
@override
|
|
String get focuser => 'Focuser';
|
|
|
|
@override
|
|
String pointsToNextLevel(int points, int level) {
|
|
return '$points points to Level $level';
|
|
}
|
|
|
|
@override
|
|
String get achievement_first_session_name => 'Focus Newbie';
|
|
|
|
@override
|
|
String get achievement_first_session_desc =>
|
|
'Complete your first focus session';
|
|
|
|
@override
|
|
String get achievement_sessions_10_name => 'Getting Started';
|
|
|
|
@override
|
|
String get achievement_sessions_10_desc => 'Complete 10 focus sessions';
|
|
|
|
@override
|
|
String get achievement_sessions_50_name => 'Focus Enthusiast';
|
|
|
|
@override
|
|
String get achievement_sessions_50_desc => 'Complete 50 focus sessions';
|
|
|
|
@override
|
|
String get achievement_sessions_100_name => 'Focus Master';
|
|
|
|
@override
|
|
String get achievement_sessions_100_desc => 'Complete 100 focus sessions';
|
|
|
|
@override
|
|
String get achievement_honest_bronze_name => 'Honest Tracker · Bronze';
|
|
|
|
@override
|
|
String get achievement_honest_bronze_desc =>
|
|
'Record 50 distractions honestly';
|
|
|
|
@override
|
|
String get achievement_honest_silver_name => 'Honest Tracker · Silver';
|
|
|
|
@override
|
|
String get achievement_honest_silver_desc =>
|
|
'Record 200 distractions honestly';
|
|
|
|
@override
|
|
String get achievement_honest_gold_name => 'Honest Tracker · Gold';
|
|
|
|
@override
|
|
String get achievement_honest_gold_desc => 'Record 500 distractions honestly';
|
|
|
|
@override
|
|
String get achievement_marathon_name => 'Marathon Runner';
|
|
|
|
@override
|
|
String get achievement_marathon_desc => 'Accumulate 10 hours of focus time';
|
|
|
|
@override
|
|
String get achievement_century_name => 'Century Club';
|
|
|
|
@override
|
|
String get achievement_century_desc => 'Accumulate 100 hours of focus time';
|
|
|
|
@override
|
|
String get achievement_master_name => 'Focus Grandmaster';
|
|
|
|
@override
|
|
String get achievement_master_desc => 'Accumulate 1000 hours of focus time';
|
|
|
|
@override
|
|
String get achievement_persistence_star_name => 'Persistence Star';
|
|
|
|
@override
|
|
String get achievement_persistence_star_desc =>
|
|
'Check in for 7 consecutive days';
|
|
|
|
@override
|
|
String get achievement_monthly_habit_name => 'Monthly Habit';
|
|
|
|
@override
|
|
String get achievement_monthly_habit_desc =>
|
|
'Check in for 30 consecutive days';
|
|
|
|
@override
|
|
String get achievement_centurion_name => 'Centurion';
|
|
|
|
@override
|
|
String get achievement_centurion_desc => 'Check in for 100 consecutive days';
|
|
|
|
@override
|
|
String get achievement_year_warrior_name => 'Year Warrior';
|
|
|
|
@override
|
|
String get achievement_year_warrior_desc =>
|
|
'Check in for 365 consecutive days';
|
|
}
|