diff --git a/TodayExtension/ar.lproj/MainInterface.strings b/TodayExtension/ar.lproj/MainInterface.strings new file mode 100644 index 000000000..dfe304cf9 --- /dev/null +++ b/TodayExtension/ar.lproj/MainInterface.strings @@ -0,0 +1,14 @@ +/* Class = "UILabel"; text = "scan QR code"; ObjectID = "JgG-Ah-UZk"; */ +"JgG-Ah-UZk.text" = "مسح رمز الاستجابة السريعة"; + +/* Class = "UILabel"; text = "receive"; ObjectID = "KJN-zr-IQB"; */ +"KJN-zr-IQB.text" = "استلام"; + +/* Class = "UILabel"; text = "send"; ObjectID = "QMM-JV-cTG"; */ +"QMM-JV-cTG.text" = "إرسال"; + +/* Class = "UIButton"; normalTitle = "setup wallet"; ObjectID = "fgE-Q8-uG8"; */ +"fgE-Q8-uG8.normalTitle" = "إعداد المحفظة"; + +/* Class = "UILabel"; text = "Label"; ObjectID = "gQm-B2-ZXE"; */ +"gQm-B2-ZXE.text" = "التسمية"; diff --git a/litewallet.xcodeproj/project.pbxproj b/litewallet.xcodeproj/project.pbxproj index 4198fee9f..1dd5c1313 100644 --- a/litewallet.xcodeproj/project.pbxproj +++ b/litewallet.xcodeproj/project.pbxproj @@ -235,6 +235,7 @@ 75A2A8101DA5936F00A983D8 /* MainInterface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 75A2A80E1DA5936F00A983D8 /* MainInterface.storyboard */; }; 75A2A8141DA5936F00A983D8 /* TodayExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 75A2A8081DA5936F00A983D8 /* TodayExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 75C735AA1DAA1B9C00251ECF /* libunbound.c in Sources */ = {isa = PBXBuildFile; fileRef = 755CD4121DAA0E3E0075898E /* libunbound.c */; }; + 93D84BDC2D162AE700A74931 /* Ar.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 93D84BDB2D162AE700A74931 /* Ar.mp3 */; }; C30029E225D0185500F08C2B /* StandardDividerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C30029E125D0185500F08C2B /* StandardDividerView.swift */; }; C30029EB25D019BC00F08C2B /* CopyButtonView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C30029EA25D019BC00F08C2B /* CopyButtonView.swift */; }; C3019EE32B8FEFED00FAF648 /* AssociatedObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3019EE22B8FEFED00FAF648 /* AssociatedObject.swift */; }; @@ -1389,6 +1390,11 @@ 75A2A87C1DA59E4E00A983D8 /* litewallet.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = litewallet.entitlements; sourceTree = ""; }; 75C735AF1DAA1C9F00251ECF /* libnettle.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libnettle.a; sourceTree = BUILT_PRODUCTS_DIR; }; 75FEFD1B1DAED56E00203D3A /* libsqlite3.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libsqlite3.tbd; path = usr/lib/libsqlite3.tbd; sourceTree = SDKROOT; }; + 93D84BDB2D162AE700A74931 /* Ar.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = Ar.mp3; sourceTree = ""; }; + 93D84BDD2D16B20400A74931 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/LaunchScreen.strings; sourceTree = ""; }; + 93D84BDE2D16B20400A74931 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/MainInterface.strings; sourceTree = ""; }; + 93D84BDF2D16B20400A74931 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; }; + 93D84BE02D16B20400A74931 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = ar; path = ar.lproj/BIP39Words.plist; sourceTree = ""; }; C30029E125D0185500F08C2B /* StandardDividerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StandardDividerView.swift; sourceTree = ""; }; C30029EA25D019BC00F08C2B /* CopyButtonView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CopyButtonView.swift; sourceTree = ""; }; C3019EE22B8FEFED00FAF648 /* AssociatedObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AssociatedObject.swift; sourceTree = ""; }; @@ -3027,6 +3033,7 @@ C3423C3B2B796D820051BD6D /* Ko.mp3 */, C3423C3C2B796D820051BD6D /* It.mp3 */, C3423C3D2B796D820051BD6D /* Ru.mp3 */, + 93D84BDB2D162AE700A74931 /* Ar.mp3 */, ); path = Sounds; sourceTree = ""; @@ -3724,6 +3731,7 @@ Base, tr, uk, + ar, ); mainGroup = 75A2A7871DA5934300A983D8; packageReferences = ( @@ -3790,6 +3798,7 @@ CE29901A1EFD6DE50093A0F2 /* Localizable.strings in Resources */, C3423C3E2B796D820051BD6D /* 日本語.mp3 in Resources */, 24313C9F23824F5800A83F69 /* Animate.storyboard in Resources */, + 93D84BDC2D162AE700A74931 /* Ar.mp3 in Resources */, C3423C442B796D820051BD6D /* Fr.mp3 in Resources */, C3423C462B796D820051BD6D /* Id.mp3 in Resources */, 24313CA323824F5800A83F69 /* Send.storyboard in Resources */, @@ -4400,6 +4409,7 @@ 24375315238AE09900E1B2AE /* ru */, C3BDB42626CC028F004DAE77 /* tr */, C350788A27DCAAA100A50819 /* uk */, + 93D84BE02D16B20400A74931 /* ar */, ); name = BIP39Words.plist; sourceTree = ""; @@ -4409,6 +4419,7 @@ children = ( 75A2A79D1DA5934300A983D8 /* Base */, C350788727DCAAA000A50819 /* uk */, + 93D84BDD2D16B20400A74931 /* ar */, ); name = LaunchScreen.storyboard; sourceTree = ""; @@ -4430,6 +4441,7 @@ 24B9621B23BA66CF00ECD938 /* en */, C3BDB42726CC028F004DAE77 /* tr */, C350788827DCAAA000A50819 /* uk */, + 93D84BDE2D16B20400A74931 /* ar */, ); name = MainInterface.storyboard; sourceTree = ""; @@ -4451,6 +4463,7 @@ 2430679B238F5A2900EBEA99 /* en */, C3BDB42826CC0338004DAE77 /* tr */, C350788927DCAAA000A50819 /* uk */, + 93D84BDF2D16B20400A74931 /* ar */, ); name = Localizable.strings; path = Strings; diff --git a/litewallet/BartyCrouch.swift b/litewallet/BartyCrouch.swift index 2adbfb83d..4e8327fac 100644 --- a/litewallet/BartyCrouch.swift +++ b/litewallet/BartyCrouch.swift @@ -23,6 +23,7 @@ enum BartyCrouch { case spanish = "es" case turkey = "tr" case ukrainian = "uk" + case arabic = "ar" } static func translate(key: String, translations: [SupportedLanguage: String], comment _: String? = nil) -> String { diff --git a/litewallet/Environment.swift b/litewallet/Environment.swift index 159911f9b..473ad10f7 100644 --- a/litewallet/Environment.swift +++ b/litewallet/Environment.swift @@ -17,6 +17,7 @@ enum LanguageSelection: Int, CaseIterable, Equatable, Identifiable { case Spanish case Turkish case Ukrainian + case Arabic var id: LanguageSelection { self } var code: String { @@ -35,6 +36,7 @@ enum LanguageSelection: Int, CaseIterable, Equatable, Identifiable { case .Spanish: return "es" case .Turkish: return "tr" case .Ukrainian: return "uk" + case .Arabic: return "ar" } } @@ -54,6 +56,7 @@ enum LanguageSelection: Int, CaseIterable, Equatable, Identifiable { case .Spanish: return "Español" case .Turkish: return "Türkçe" case .Ukrainian: return "українська" + case .Arabic: return "العربية" } } @@ -73,6 +76,7 @@ enum LanguageSelection: Int, CaseIterable, Equatable, Identifiable { case .Spanish: return "Es" case .Turkish: return "Tr" case .Ukrainian: return "Uk" + case .Arabic: return "Ar" } } } diff --git a/litewallet/Sounds/Ar.mp3 b/litewallet/Sounds/Ar.mp3 new file mode 100644 index 000000000..65e0112eb Binary files /dev/null and b/litewallet/Sounds/Ar.mp3 differ diff --git a/litewallet/StartViewModel.swift b/litewallet/StartViewModel.swift index 1c379d877..39f36f3a9 100644 --- a/litewallet/StartViewModel.swift +++ b/litewallet/StartViewModel.swift @@ -130,6 +130,7 @@ class StartViewModel: ObservableObject { "La forma más segura y sencilla de utilizar Litecoin", "Litecoin kullanmanın en güvenli ve en kolay yolu.", "Найбезпечніший і найпростіший спосіб використання Litecoin", + "الطريقة الأكثر أمانًا وأسهل لاستخدام لايتكوين.", ] let alertMessage: [String] = [ @@ -147,6 +148,7 @@ class StartViewModel: ObservableObject { "¿Estás seguro de que quieres cambiar el idioma a español?", "Dili Türkçe olarak değiştirmek istediğinizden emin misiniz?", "Ви впевнені, що хочете змінити мову на українську?", + "هل أنت متأكد أنك تريد تغيير اللغة إلى الإنجليزية؟", ] let yesLabel: [String] = [ @@ -164,6 +166,7 @@ class StartViewModel: ObservableObject { "Sí", "Evet", "Так", + "نعم", ] let cancelLabel: [String] = [ @@ -181,6 +184,7 @@ class StartViewModel: ObservableObject { "Cancelar", "İptal etmek", "Скасувати", + "إلغاء", ] /// DEV: For debugging diff --git a/litewallet/Strings/ar.lproj/Localizable.strings b/litewallet/Strings/ar.lproj/Localizable.strings new file mode 100644 index 000000000..431d23dd5 --- /dev/null +++ b/litewallet/Strings/ar.lproj/Localizable.strings @@ -0,0 +1,1469 @@ +/* About screen website label */ +"About.blog" = "الموقع الإلكتروني"; + +/* About screen footer */ +"About.footer" = "صُنع بواسطة فريق LiteWallet\nمن\nمؤسسة لايتكوين\n%1$@"; + +/* Privay Policy button label */ +"About.privacy" = "سياسة الخصوصية"; + +/* About screen reddit label */ +"About.reddit" = "Reddit"; + +/* About screen title */ +"About.title" = "عن"; + +/* About screen twitter label */ +"About.twitter" = "تويتر"; + +/* Close modal button accessibility label */ +"AccessibilityLabels.close" = "إغلاق"; + +/* Support center accessibiliy label */ +"AccessibilityLabels.faq" = "مركز الدعم"; + +/* Loading Wallet Message */ +"Account.loadingMessage" = "جارٍ تحميل المحفظة"; + +/* Default wallet name */ +"AccountHeader.defaultWalletName" = "محفظتي Litewallet"; + +/* Manage wallet button title */ +"AccountHeader.manageButtonName" = "إدارة"; + +/* Error alert title */ +"Alert.error" = "خطأ"; + +/* No internet alert message */ +"Alert.noInternet" = "لم يتم العثور على اتصال بالإنترنت. تحقق من الاتصال وحاول مرة أخرى."; + +/* Warning alert title */ +"Alert.warning" = "تحذير"; + +/* 'the addresses were copied'' Alert title */ +"Alerts.copiedAddressesHeader" = "تم نسخ العناوين"; + +/* Addresses Copied Alert sub header */ +"Alerts.copiedAddressesSubheader" = "تم نسخ جميع عناوين المحفظة بنجاح."; + +/* Alert Header Label (the paper key was set) */ +"Alerts.paperKeySet" = "تم تعيين مفتاح الورق"; + +/* Alert Subheader label (playfully positive) */ +"Alerts.paperKeySetSubheader" = "رائع!"; + +/* Alert Header label (the PIN was set) */ +"Alerts.pinSet" = "تم تعيين الرقم السري"; + +/* Send failure alert header label (the send failed to happen) */ +"Alerts.sendFailure" = "فشل الإرسال"; + +/* Send success alert header label (confirmation that the send happened) */ +"Alerts.sendSuccess" = "تأكيد الإرسال"; + +/* Send success alert subheader label (e.g. the money was sent) */ +"Alerts.sendSuccessSubheader" = "تم إرسال المال!"; + +/* JSON Serialization error message */ +"ApiClient.jsonError" = "خطأ في تسلسل JSON"; + +/* Wallet not ready error message */ +"ApiClient.notReady" = "المحفظة غير جاهزة"; + +/* API Token error message */ +"ApiClient.tokenError" = "غير قادر على استرداد رمز API"; + +/* buy button */ +"Button.buy" = "اشترِ"; + +/* Cancel button label */ +"Button.cancel" = "إلغاء"; + +/* Ignore button label */ +"Button.ignore" = "تجاهل"; + +/* menu button */ +"Button.menu" = "القائمة"; + +/* No button */ +"Button.no" = "لا"; + +/* OK button label */ +"Button.ok" = "موافق"; + +/* receive button */ +"Button.receive" = "استلام"; + +/* send button */ +"Button.send" = "إرسال"; + +/* Settings button label */ +"Button.settings" = "الإعدادات"; + +/* Settings button label */ +"Button.submit" = "إرسال"; + +/* Yes button */ +"Button.yes" = "نعم"; + +/* Bitrefill buy financial details */ +"BuyCenter.bitrefillFinancialDetails" = "• شراء بطاقات الهدايا\n• إعادة تعبئة الهواتف المدفوعة مسبقًا\n• Steam، Amazon، Hotels.com\n• يعمل في 170 دولة"; + +/* Bitrefill Title */ +"BuyCenter.BitrefillTitle" = "Bitrefill"; + +/* Changelly buy financial details */ +"BuyCenter.changellyFinancialDetails" = "• تحويل لايتكوين إلى عملات مشفرة أخرى\n• لا حاجة إلى هوية\n• شراء عبر بطاقة الائتمان\n• تغطية عالمية"; + +/* Changelly Title */ +"BuyCenter.changellyTitle" = "Changelly"; + +/* Buy Modal Title */ +"BuyCenter.ModalTitle" = "اشترِ لايتكوين"; + +/* Simplex buy financial details */ +"BuyCenter.simplexFinancialDetails" = "• احصل على لايتكوين في 5 دقائق!\n• شراء لايتكوين عبر بطاقة الائتمان\n• جواز السفر أو بطاقة هوية الدولة"; + +/* Simplex Title */ +"BuyCenter.simplexTitle" = "Simplex"; + +/* Buy Center Title */ +"BuyCenter.title" = "اشترِ لايتكوين"; + +/* Camera plugin instruction */ +"CameraPlugin.centerInstruction" = "ركز بطاقة هويتك في الصندوق"; + +/* Amount to Send: ($1.00) */ +"Confirmation.amountLabel" = "المبلغ الذي سيتم إرساله:"; + +/* Amount to Donate: ($1.00) */ +"Confirmation.donateLabel" = "المبلغ للتبرع:"; + +/* eg. Processing with Donation time: This transaction will take 10-30 minutes to process. */ +"Confirmation.processingAndDonationTime" = "وقت المعالجة: ستستغرق هذه المعاملات %1$@ دقائق لمعالجتها."; + +/* eg. Processing time: This transaction will take 10-30 minutes to process. */ +"Confirmation.processingTime" = "وقت المعالجة: ستستغرق هذه المعاملة %1$@ دقائق لمعالجتها."; + +/* Send: (amount) */ +"Confirmation.send" = "إرسال"; + +/* Confirmation Screen title */ +"Confirmation.title" = "تأكيد"; + +/* To: (address) */ +"Confirmation.to" = "إلى"; + +/* Total Cost: ($5.00) */ +"Confirmation.totalLabel" = "إجمالي التكلفة:"; + +/* Confirm paper phrase error message */ +"ConfirmPaperPhrase.error" = "الكلمات المدخلة لا تتطابق مع مفتاح الورق الخاص بك. يرجى المحاولة مرة أخرى."; + +/* Confirm paper phrase view label. */ +"ConfirmPaperPhrase.label" = "للتأكد من أنك كتبت كل شيء بشكل صحيح، يرجى إدخال الكلمات التالية من مفتاح الورق الخاص بك."; + +/* Word label eg. Word #1, Word #2 */ +"ConfirmPaperPhrase.word" = "الكلمة #%1$@"; + +/* Litecoin denomination picker label */ +"DefaultCurrency.bitcoinLabel" = "وحدة عرض لايتكوين"; + +/* Exchange rate label */ +"DefaultCurrency.rateLabel" = "سعر الصرف"; + +/* Donate Memo */ +"Donate.memo" = "تبرع لمؤسسة لايتكوين"; + +/* Donate to the Litecoin Foundation */ +"Donate.title" = "تبرع لمؤسسة لايتكوين (%@)"; + +/* Donate Confirmation */ +"Donate.title.confirmation" = "تأكيد التبرع"; + +/* Email unavailable alert title */ +"ErrorMessages.emailUnavailableMessage" = "هذا الجهاز غير مهيأ لإرسال البريد الإلكتروني عبر تطبيق البريد في iOS."; + +/* Email unavailable alert title */ +"ErrorMessages.emailUnavailableTitle" = "البريد الإلكتروني غير متاح"; + +/* Messaging unavailable alert title */ +"ErrorMessages.messagingUnavailableMessage" = "هذا الجهاز غير مهيأ لإرسال الرسائل."; + +/* Messaging unavailable alert title */ +"ErrorMessages.messagingUnavailableTitle" = "الرسائل غير متاحة"; + +/* You can customize your Face ID Spending Limit from the [TouchIdSettings.linkText gets added here as a button] */ +"FaceIDSettings.customizeText" = "يمكنك تخصيص حد الإنفاق باستخدام Face ID من %1$@."; + +/* Face ID screen label */ +"FaceIDSettings.label" = "استخدم وجهك لفتح Litewallet وإرسال الأموال حتى حد معين."; + +/* Link Text (see TouchIdSettings.customizeText) */ +"FaceIDSettings.linkText" = "شاشة حد الإنفاق باستخدام Face ID"; + +/* Face id switch label. */ +"FaceIDSettings.switchLabel" = "تفعيل Face ID لـ Litewallet"; + +/* Face ID settings view title */ +"FaceIDSettings.title" = "Face ID"; + +/* Face ID unavailable alert message */ +"FaceIDSettings.unavailableAlertMessage" = "لم تقم بإعداد Face ID على هذا الجهاز. انتقل إلى الإعدادات-> Face ID & رمز المرور لإعداده الآن."; + +/* Face ID unavailable alert title */ +"FaceIDSettings.unavailableAlertTitle" = "لم يتم إعداد Face ID"; + +/* Face Id spending limit screen title */ +"FaceIDSpendingLimit.title" = "حد الإنفاق باستخدام Face ID"; + +/* Economy fee */ +"FeeSelector.economy" = "اقتصادي"; + +/* Fee Selector economy fee description */ +"FeeSelector.economyLabel" = "التسليم المقدر: 10+ دقائق"; + +/* Warning message for economy fee */ +"FeeSelector.economyWarning" = "لا يُوصى بهذا الخيار للمعاملات التي تحتاج إلى وقت حساس."; + +/* Regular fee */ +"FeeSelector.regular" = "عادي"; + +/* Fee Selector regular fee description */ +"FeeSelector.regularLabel" = "التسليم المقدر: 2.5 - 5+ دقائق"; + +/* Fee Selector title */ +"FeeSelector.title" = "سرعة المعالجة"; + +/* Checking private key balance progress view text */ +"Import.checking" = "جاري التحقق من رصيد المفتاح الخاص..."; + +/* Sweep private key confirmation message */ +"Import.confirm" = "إرسال %1$@ من هذا المفتاح الخاص إلى محفظتك؟ سيستلم شبكة لايتكوين رسمًا قدره %2$@."; + +/* Duplicate key error message */ +"Import.Error.duplicate" = "هذا المفتاح الخاص موجود بالفعل في محفظتك."; + +/* empty private key error message */ +"Import.Error.empty" = "هذا المفتاح الخاص فارغ."; + +/* High fees error message */ +"Import.Error.highFees" = "ستكلف رسوم المعاملة أكثر من الأموال المتوفرة في هذا المفتاح الخاص."; + +/* Not a valid private key error message */ +"Import.Error.notValid" = "مفتاح خاص غير صالح"; + +/* Import signing error message */ +"Import.Error.signing" = "خطأ في توقيع المعاملة"; + +/* Import button label */ +"Import.importButton" = "استيراد"; + +/* Importing wallet progress view label */ +"Import.importing" = "جاري استيراد المحفظة"; + +/* Caption for graphics */ +"Import.leftCaption" = "المحفظة التي سيتم استيرادها"; + +/* Import wallet intro screen message */ +"Import.message" = "استيراد محفظة ينقل جميع الأموال من محفظتك الأخرى إلى محفظة Litewallet الخاصة بك باستخدام معاملة واحدة."; + +/* Enter password alert view title */ +"Import.password" = "هذا المفتاح الخاص محمي بكلمة مرور."; + +/* password textfield placeholder */ +"Import.passwordPlaceholder" = "كلمة المرور"; + +/* Caption for graphics */ +"Import.rightCaption" = "محفظة Litewallet الخاصة بك"; + +/* Scan Private key button label */ +"Import.scan" = "مسح المفتاح الخاص"; + +/* Import wallet success alert title */ +"Import.success" = "نجاح"; + +/* Successfully imported wallet message body */ +"Import.SuccessBody" = "تم استيراد المحفظة بنجاح."; + +/* Import Wallet screen title */ +"Import.title" = "استيراد المحفظة"; + +/* Unlocking Private key activity view message. */ +"Import.unlockingActivity" = "جاري فتح المفتاح"; + +/* Import wallet intro warning message */ +"Import.warning" = "استيراد المحفظة لا يشمل تاريخ المعاملات أو التفاصيل الأخرى."; + +/* Wrong password alert message */ +"Import.wrongPassword" = "كلمة المرور خاطئة، الرجاء المحاولة مرة أخرى."; + +/* Close app button */ +"JailbreakWarnings.close" = "إغلاق"; + +/* Ignore jailbreak warning button */ +"JailbreakWarnings.ignore" = "تجاهل"; + +/* Jailbreak warning message */ +"JailbreakWarnings.messageWithBalance" = "تم اختراق أمان الجهاز\n يمكن لأي تطبيق 'جيلبريك' الوصول إلى بيانات المفتاح في Litewallet وسرقة لايتكوين! امسح هذه المحفظة فورًا واسترجعها على جهاز آمن."; + +/* Jailbreak warning message */ +"JailbreakWarnings.messageWithoutBalance" = "تم اختراق أمان الجهاز\n يمكن لأي تطبيق 'جيلبريك' الوصول إلى بيانات المفتاح في Litewallet وسرقة لايتكوين. يُرجى استخدام Litewallet فقط على جهاز غير مكسر."; + +/* Jailbreak warning title */ +"JailbreakWarnings.title" = "تحذير"; + +/* Wipe wallet button */ +"JailbreakWarnings.wipe" = "مسح"; + +/* Location services disabled error */ +"LocationPlugin.disabled" = "خدمات الموقع غير مفعلّة."; + +/* No permissions for location services */ +"LocationPlugin.notAuthorized" = "Litewallet ليس لديه إذن للوصول إلى خدمات الموقع."; + +/* No comment provided by engineer. */ +"Malformed URI" = "URI غير صحيح"; + +/* Wallet creation date prefix */ +"ManageWallet.creationDatePrefix" = "تم إنشاء محفظتك في %1$@"; + +/* Manage wallet description text */ +"ManageWallet.description" = "اسم محفظتك يظهر فقط في سجل المعاملات الخاص بحسابك ولا يمكن لأي شخص آخر رؤيته."; + +/* Change Wallet name textfield label */ +"ManageWallet.textFeildLabel" = "اسم المحفظة"; + +/* Manage wallet modal title */ +"ManageWallet.title" = "إدارة المحفظة"; + +/* Buy Litecoin title */ +"MenuButton.buy" = "شراء لايتكوين"; + +/* Menu button title */ +"MenuButton.lock" = "قفل المحفظة"; + +/* Menu button title */ +"MenuButton.security" = "مركز الأمان"; + +/* Menu button title */ +"MenuButton.settings" = "الإعدادات"; + +/* Menu button title */ +"MenuButton.support" = "الدعم"; + +/* button label */ +"MenuViewController.createButton" = "إنشاء محفظة جديدة"; + +/* Menu modal title */ +"MenuViewController.modalTitle" = "القائمة"; + +/* button label */ +"MenuViewController.recoverButton" = "استعادة المحفظة"; + +/* No wallet. */ +"No wallet" = "لا توجد محفظة"; + +/* Switch to automatic mode button label */ +"NodeSelector.automaticButton" = "التبديل إلى الوضع التلقائي"; + +/* Node is connected label */ +"NodeSelector.connected" = "متصل"; + +/* Enter node ip address view body */ +"NodeSelector.enterBody" = "أدخل عنوان IP للنود والمنفذ (اختياري)"; + +/* Enter Node ip address view title */ +"NodeSelector.enterTitle" = "أدخل النود"; + +/* Switch to manual mode button label */ +"NodeSelector.manualButton" = "التبديل إلى الوضع اليدوي"; + +/* Node address label */ +"NodeSelector.nodeLabel" = "النود الأساسي الحالي"; + +/* Node is not connected label */ +"NodeSelector.notConnected" = "غير متصل"; + +/* Node status label */ +"NodeSelector.statusLabel" = "حالة اتصال النود"; + +/* Node Selector view title */ +"NodeSelector.title" = "نودات لايتكوين"; + +/* Bad Payment request alert title */ +"PaymentProtocol.Errors.badPaymentRequest" = "طلب دفع غير صحيح"; + +/* Error opening payment protocol file message */ +"PaymentProtocol.Errors.corruptedDocument" = "مستند غير مدعوم أو تالف"; + +/* Missing certificate payment protocol error message */ +"PaymentProtocol.Errors.missingCertificate" = "شهادة مفقودة"; + +/* Request expired payment protocol error message */ +"PaymentProtocol.Errors.requestExpired" = "طلب منتهي"; + +/* Payment too small alert title */ +"PaymentProtocol.Errors.smallOutputError" = "لم يمكن إجراء الدفع"; + +/* Amount too small error message */ +"PaymentProtocol.Errors.smallPayment" = "لا يمكن أن تكون المدفوعات باللايتكوين أقل من %1$@."; + +/* Output too small error message. */ +"PaymentProtocol.Errors.smallTransaction" = "لا يمكن أن تكون مخرجات معاملة اللايتكوين أقل من $@."; + +/* Unsupported signature type payment protocol error message */ +"PaymentProtocol.Errors.unsupportedSignatureType" = "نوع التوقيع غير مدعوم"; + +/* Untrusted certificate payment protocol error message */ +"PaymentProtocol.Errors.untrustedCertificate" = "شهادة غير موثوق بها"; + +/* Enable face ID prompt body */ +"Prompts.FaceId.body" = "اضغط هنا لتفعيل Face ID"; + +/* Enable face ID prompt title */ +"Prompts.FaceId.title" = "تفعيل Face ID"; + +/* No passcode set warning body */ +"Prompts.NoPasscode.body" = "تحتاج إلى تعيين رمز مرور لجهازك لحماية محفظتك."; + +/* No Passcode set warning title */ +"Prompts.NoPasscode.title" = "تفعيل رمز المرور للجهاز"; + +/* Warning about paper key. */ +"Prompts.PaperKey.body" = "يجب حفظ مفتاح الورق في مكان آمن. هو الطريقة الوحيدة لتعديل أو استعادة محفظتك أو نقل اللايتكوين الخاص بك. يُفضل كتابته."; + +/* An action is required (You must do this action). */ +"Prompts.PaperKey.title" = "إجراء مطلوب"; + +/* Transaction rejected prompt body */ +"Prompts.RecommendRescan.body" = "قد تكون محفظتك غير متزامنة. غالبًا ما يمكن إصلاح ذلك بإعادة مسح البلوك تشين."; + +/* Transaction rejected prompt title */ +"Prompts.RecommendRescan.title" = "تم رفض المعاملة"; + +/* Share data prompt body */ +"Prompts.ShareData.body" = "ساعد في تحسين Litewallet بمشاركة بياناتك المجهولة معنا"; + +/* Share data prompt title */ +"Prompts.ShareData.title" = "مشاركة البيانات المجهولة"; + +/* Enable touch ID prompt body */ +"Prompts.TouchId.body" = "اضغط هنا لتفعيل Touch ID"; + +/* Enable touch ID prompt title */ +"Prompts.TouchId.title" = "تفعيل Touch ID"; + +/* Upgrade PIN prompt body. */ +"Prompts.SetPin.body" = "تتطلب Litewallet رقم PIN مكون من 6 أرقام. يرجى تعيينه وتخزينه في مكان آمن."; + +/* Upgrade PIN prompt title. */ +"Prompts.SetPin.title" = "تعيين رقم PIN"; + +/* Address copied message. */ +"Receive.copied" = "تم النسخ إلى الحافظة."; + +/* Share via email button label */ +"Receive.emailButton" = "بريد إلكتروني"; + +/* Request button label */ +"Receive.request" = "طلب مبلغ"; + +/* Share button label */ +"Receive.share" = "مشاركة"; + +/* Share via text message (SMS) */ +"Receive.textButton" = "رسالة نصية"; + +/* Receive modal title */ +"Receive.title" = "استلام"; + +/* Done button text */ +"RecoverWallet.done" = "تم"; + +/* Recover wallet header */ +"RecoverWallet.header" = "استعادة المحفظة"; + +/* Reset PIN with paper key: header */ +"RecoverWallet.header_reset_pin" = "إعادة تعيين الرقم السري"; + +/* Enter paper key instruction */ +"RecoverWallet.instruction" = "أدخل مفتاح الورق"; + +/* Recover wallet intro */ +"RecoverWallet.intro" = "استعد محفظتك باستخدام مفتاح الورق الخاص بك."; + +/* Invalid paper key message */ +"RecoverWallet.invalid" = "مفتاح الورق الذي أدخلته غير صالح. يرجى التحقق من الكلمات مرة أخرى وحاول مجددًا."; + +/* Previous button accessibility label */ +"RecoverWallet.leftArrow" = "السهم الأيسر"; + +/* Next button label */ +"RecoverWallet.next" = "التالي"; + +/* Reset PIN with paper key: more information button. */ +"RecoverWallet.reset_pin_more_info" = "اضغط هنا للمزيد من المعلومات."; + +/* Next button accessibility label */ +"RecoverWallet.rightArrow" = "السهم الأيمن"; + +/* Recover wallet sub-header */ +"RecoverWallet.subheader" = "أدخل مفتاح الورق للمحفظة التي ترغب في استعادتها."; + +/* Reset PIN with paper key: sub-header */ +"RecoverWallet.subheader_reset_pin" = "لإعادة تعيين الرقم السري، أدخل الكلمات من مفتاح الورق في المربعات أدناه."; + +/* No amount entered error message. */ +"RequestAnAmount.noAmount" = "يرجى إدخال المبلغ أولاً."; + +/* Request a specific amount of Litecoin */ +"RequestAnAmount.title" = "طلب مبلغ"; + +/* Alert action button label */ +"ReScan.alertAction" = "مزامنة"; + +/* Alert message body */ +"ReScan.alertMessage" = "لن تتمكن من إرسال الأموال أثناء المزامنة."; + +/* Alert message title */ +"ReScan.alertTitle" = "هل ترغب في المزامنة مع البلوك تشين؟"; + +/* extimated time */ +"ReScan.body1" = "20-45 دقيقة"; + +/* Syncing explanation */ +"ReScan.body2" = "إذا كانت المعاملة تظهر كمكتملة على شبكة اللايتكوين ولكنها غير موجودة في Litewallet."; + +/* Syncing explanation */ +"ReScan.body3" = "إذا تلقيت خطأ يقول إن معملتك تم رفضها."; + +/* Start Sync button label */ +"ReScan.buttonTitle" = "بدء المزامنة"; + +/* Sync blockchain view footer */ +"ReScan.footer" = "لن تتمكن من إرسال الأموال أثناء المزامنة مع البلوك تشين."; + +/* Sync Blockchain view header */ +"ReScan.header" = "مزامنة البلوك تشين"; + +/* Subheader label */ +"ReScan.subheader1" = "الوقت المقدر"; + +/* Subheader label */ +"ReScan.subheader2" = "متى المزامنة؟"; + +/* Reset walet button title */ +"resetButton" = "نعم، إعادة تعيين المحفظة"; + +/* Warning Empty Wipe title */ +"resetTitle" = "حذف محفظتي من Litewallet"; + +/* Scan Litecoin address camera flash toggle */ +"Scanner.flashButtonLabel" = "فلاش الكاميرا"; + +/* Complete filter label */ +"Search.complete" = "مكتمل"; + +/* Pending filter label */ +"Search.pending" = "معلق"; + +/* Received filter label */ +"Search.received" = "تم الاستلام"; + +/* Sent filter label */ +"Search.sent" = "تم الإرسال"; + +/* Face ID button title */ +"SecurityCenter.faceIdTitle" = "Face ID"; + +/* Security Center Info */ +"SecurityCenter.info" = "تفعيل جميع ميزات الأمان للحصول على أقصى حماية."; + +/* Paper Key button description */ +"SecurityCenter.paperKeyDescription" = "الطريقة الوحيدة للوصول إلى اللايتكوين إذا فقدت أو قمت بترقية هاتفك."; + +/* Paper Key button title */ +"SecurityCenter.paperKeyTitle" = "مفتاح الورق"; + +/* PIN button description */ +"SecurityCenter.pinDescription" = "يحمي محفظتك من الوصول غير المصرح به."; + +/* PIN button title */ +"SecurityCenter.pinTitle" = "الرقم السري مكون من 6 أرقام"; + +/* Security Center Title */ +"SecurityCenter.title" = "مركز الأمان"; + +/* Touch ID/FaceID button description */ +"SecurityCenter.touchIdDescription" = "افتح محفظتك بسهولة وأرسل الأموال حتى حد معين."; + +/* Touch ID button title */ +"SecurityCenter.touchIdTitle" = "البصمة"; + +/* Send money amount label */ +"Send.amountLabel" = "المبلغ"; + +/* Balance: $4.00 */ +"Send.balance" = "الرصيد: %1$@"; + +/* Camera not allowed message */ +"Send.cameraunavailableMessage" = "اذهب إلى الإعدادات للسماح بالوصول إلى الكاميرا."; + +/* Camera not allowed alert title */ +"Send.cameraUnavailableTitle" = "Litewallet ليس مسموحاً له بالوصول إلى الكاميرا"; + +/* Warning when sending to self. */ +"Send.containsAddress" = "الوجهة هي عنوانك الخاص. لا يمكنك إرسال الأموال إلى نفسك."; + +/* Could not create transaction alert title */ +"Send.creatTransactionError" = "تعذر إنشاء المعاملة."; + +/* Description for sending money label */ +"Send.descriptionLabel" = "مذكرة"; + +/* Empty pasteboard error message */ +"Send.emptyPasteboard" = "الحافظة فارغة"; + +/* Payee identity not certified alert title. */ +"Send.identityNotCertified" = "هوية المستلم غير معتمدة."; + +/* Insufficient funds error */ +"Send.insufficientFunds" = "الأموال غير كافية"; + +/* Invalid address alert message */ +"Send.invalidAddressMessage" = "عنوان الوجهة ليس عنوان Litecoin صالح."; + +/* Invalid address on pasteboard message */ +"Send.invalidAddressOnPasteboard" = "الحافظة لا تحتوي على عنوان Litecoin صالح."; + +/* Invalid address alert title */ +"Send.invalidAddressTitle" = "عنوان غير صالح"; + +/* Is rescanning error message */ +"Send.isRescanning" = "الإرسال معطل أثناء المسح الكامل."; + +/* Loading request activity view message */ +"Send.loadingRequest" = "جارٍ تحميل الطلب"; + +/* Empty address alert message */ +"Send.noAddress" = "يرجى إدخال عنوان المستلم."; + +/* Empty amount alert message */ +"Send.noAmount" = "يرجى إدخال مبلغ للإرسال."; + +/* Paste button label */ +"Send.pasteLabel" = "لصق"; + +/* Could not publish transaction alert title */ +"Send.publishTransactionError" = "تعذر نشر المعاملة."; + +/* Could not load remote request error message */ +"Send.remoteRequestError" = "تعذر تحميل طلب الدفع"; + +/* Scan button label */ +"Send.scanLabel" = "مسح"; + +/* Send button label */ +"Send.sendLabel" = "إرسال"; + +/* Send modal title */ +"Send.title" = "إرسال"; + +/* Send money to label */ +"Send.toLabel" = "إلى"; + +/* Address already used alert message - first part */ +"Send.UsedAddress.firstLine" = "عناوين Litecoin مخصصة للاستخدام مرة واحدة فقط."; + +/* Address already used alert message - second part */ +"Send.UsedAddress.secondLIne" = "إعادة الاستخدام تقلل الخصوصية لك وللمستلم ويمكن أن تؤدي إلى خسارة إذا لم يتحكم المستلم مباشرة في العنوان."; + +/* Address already used alert title */ +"Send.UsedAddress.title" = "تم استخدام العنوان مسبقاً"; + +/* About label */ +"Settings.about" = "حول"; + +/* Advanced Settings title */ +"Settings.advancedTitle" = "الإعدادات المتقدمة"; + +/* Blockchain settings section header */ +"Settings.blockchain" = "البلوكشين"; + +/* Default currency label */ +"Settings.currency" = "العملة المعروضة"; + +/* Join Early access label */ +"Settings.earlyAccess" = "انضم إلى الوصول المبكر"; + +/* Are you enjoying Litewallet alert message body */ +"Settings.enjoying" = "هل تستمتع بـ Litewallet؟"; + +/* Face ID spending limit label */ +"Settings.faceIdLimit" = "حد الإنفاق باستخدام Face ID"; + +/* Import wallet label */ +"Settings.importTitle" = "استيراد المحفظة"; + +/* Manage settings section header */ +"Settings.manage" = "إدارة"; + +/* Notifications label */ +"Settings.notifications" = "الإشعارات"; + +/* Leave review button label */ +"Settings.review" = "اترك لنا تقييم"; + +/* Share anonymous data label */ +"Settings.shareData" = "مشاركة البيانات المجهولة"; + +/* Support settings section header */ +"Settings.support" = "الدعم"; + +/* Sync blockchain label */ +"Settings.sync" = "مزامنة البلوكشين"; + +/* Settings title */ +"Settings.title" = "الإعدادات"; + +/* Touch ID spending limit label */ +"Settings.touchIdLimit" = "حد الإنفاق باستخدام Touch ID"; + +/* Wallet Settings section header */ +"Settings.wallet" = "المحفظة"; + +/* Start or recover another wallet menu label. */ +"Settings.wipe" = "ابدأ/استرجع محفظة أخرى"; + +/* Share data view body */ +"ShareData.body" = "ساعد في تحسين Litewallet بمشاركة بياناتك المجهولة معنا. لا تشمل هذه البيانات أي معلومات مالية. نحن نحترم خصوصيتك المالية."; + +/* Share data header */ +"ShareData.header" = "مشاركة البيانات؟"; + +/* Share data switch label. */ +"ShareData.toggleLabel" = "مشاركة البيانات المجهولة؟"; + +/* Current spending limit: */ +"SpendingLimit.title" = "حد الإنفاق الحالي: "; + +/* button label */ +"StartPaperPhrase.againButtonTitle" = "اكتب مفتاح الورق مرة أخرى"; + +/* Paper key explanation text. */ +"StartPaperPhrase.body" = "مفتاح الورق هو الطريقة الوحيدة لاستعادة محفظتك إذا فقدت هاتفك أو تم سرقته أو تعطل أو تم ترقية النظام.\n\nسنقدم لك قائمة بالكلمات لتكتبها على ورقة وتحتفظ بها بأمان."; + +/* button label */ +"StartPaperPhrase.buttonTitle" = "اكتب مفتاح الورق"; + +/* Argument is date */ +"StartPaperPhrase.date" = "آخر مرة كتبت فيها مفتاح الورق كانت في %1$@"; + +/* Start view tagline */ +"StartViewController.tagline" = "أكثر الطرق أماناً لاستخدام Litecoin."; + +/* Syncing view connectiong state header text */ +"SyncingView.connecting" = "جارٍ الاتصال"; + +/* Syncing view syncing state header text */ +"SyncingView.syncing" = "جارٍ المزامنة"; + +/* 6 d (6 days) */ +"TimeSince.days" = "%1$@ يوم"; + +/* 6 h (6 hours) */ +"TimeSince.hours" = "%1$@ ساعة"; + +/* 6 m (6 minutes) */ +"TimeSince.minutes" = "%1$@ دقيقة"; + +/* 6 s (6 seconds) */ +"TimeSince.seconds" = "%1$@ ثانية"; + +/* You can customize your Touch ID Spending Limit from the [TouchIdSettings.linkText gets added here as a button] */ +"TouchIdSettings.customizeText" = "يمكنك تخصيص حد الإنفاق باستخدام Touch ID من %1$@."; + +/* Touch Id screen label */ +"TouchIdSettings.label" = "استخدم بصمتك لفتح محفظتك Litewallet وإرسال الأموال حتى الحد المخصص."; + +/* ł100,000 ($100) */ +"TouchIdSettings.limitValue" = "%1$@ (%2$@)"; + +/* Link Text (see TouchIdSettings.customizeText) */ +"TouchIdSettings.linkText" = "شاشة حد الإنفاق باستخدام Touch ID"; + +/* Spending Limit: b100,000 ($100) */ +"TouchIdSettings.spendingLimit" = "حد الإنفاق: %1$@ (%2$@)"; + +/* Touch id switch label. */ +"TouchIdSettings.switchLabel" = "تمكين Touch ID لـ Litewallet"; + +/* Touch ID settings view title */ +"TouchIdSettings.title" = "Touch ID"; + +/* Touch ID unavailable alert message */ +"TouchIdSettings.unavailableAlertMessage" = "لم تقم بإعداد Touch ID على هذا الجهاز. اذهب إلى الإعدادات -> Touch ID ورقم التعريف لإعداده الآن."; + +/* Touch ID unavailable alert title */ +"TouchIdSettings.unavailableAlertTitle" = "لم يتم إعداد Touch ID"; + +/* Always require passcode option */ +"TouchIdSpendingLimit" = "يتطلب دائمًا رمز المرور"; + +/* Touch ID spending limit screen body */ +"TouchIdSpendingLimit.body" = "سيُطلب منك إدخال رقم التعريف الشخصي المكون من 6 أرقام لإرسال أي معاملة تتجاوز حد الإنفاق الخاص بك، وكل 48 ساعة منذ آخر مرة أدخلت فيها رقم التعريف الشخصي المكون من 6 أرقام."; + +/* Touch Id spending limit screen title */ +"TouchIdSpendingLimit.title" = "حد الإنفاق باستخدام Touch ID"; + +/* Availability status text */ +"Transaction.available" = "متاح للإنفاق"; + +/* Transaction complete label */ +"Transaction.complete" = "تم"; + +/* eg. Ending balance: $50.00 */ +"Transaction.ending" = "الرصيد النهائي: %1$@"; + +/* Exchange rate on date header */ +"Transaction.exchangeOnDayReceived" = "سعر الصرف عند الاستلام:"; + +/* Exchange rate on date header */ +"Transaction.exchangeOnDaySent" = "سعر الصرف عند الإرسال:"; + +/* (b600 fee) */ +"Transaction.fee" = "(رسوم %1$@)"; + +/* Invalid transaction */ +"Transaction.invalid" = "غير صالح"; + +/* Timestamp label for event that just happened */ +"Transaction.justNow" = "الآن"; + +/* Receive status text: 'In progress: 20%' */ +"Transaction.receivedStatus" = "قيد التقدم: %1$@"; + +/* Send status text: 'In progress: 20%' */ +"Transaction.sendingStatus" = "قيد التقدم: %1$@"; + +/* eg. Starting balance: $50.00 */ +"Transaction.starting" = "الرصيد الابتدائي: %1$@"; + +/* Waiting to be confirmed string */ +"Transaction.waiting" = "في انتظار التأكيد. بعض التجار يتطلبون تأكيد لإتمام المعاملة. الوقت المقدر: 1-2 ساعات."; + +/* e.g. I received money from an account. */ +"TransactionDetails.account" = "الحساب"; + +/* Amount section header */ +"TransactionDetails.amountHeader" = "المبلغ"; + +/* Block height label */ +"TransactionDetails.blockHeightLabel" = "تم التأكيد في الكتلة"; + +/* Memo section header */ +"TransactionDetails.commentsHeader" = "الملاحظة"; + +/* Empty transaction list message. */ +"TransactionDetails.emptyMessage" = "ستظهر معاملاتك هنا."; + +/* [received] at
(received title 2/2) */ +"TransactionDetails.from" = "في %1$@"; + +/* Moved $5.00 */ +"TransactionDetails.moved" = "تم نقل %1$@"; + +/* Moved $5.00 */ +"TransactionDetails.movedAmountDescription" = "تم نقل %1@"; + +/* eg. Confirmed in Block: Not Confirmed */ +"TransactionDetails.notConfirmedBlockHeightLabel" = "لم يتم التأكيد"; + +/* Received $5.00 (received title 1/2) */ +"TransactionDetails.received" = "تم استلام %1$@"; + +/* Received $5.00 */ +"TransactionDetails.receivedAmountDescription" = "تم استلام %1@"; + +/* Sent $5.00 (sent title 1/2) */ +"TransactionDetails.sent" = "تم إرسال %1$@"; + +/* Sent $5.00 */ +"TransactionDetails.sentAmountDescription" = "تم إرسال %1@"; + +/* Status section header */ +"TransactionDetails.statusHeader" = "الحالة"; + +/* Transaction Details Title */ +"TransactionDetails.title" = "تفاصيل المعاملة"; + +/* [sent] to
(sent title 2/2) */ +"TransactionDetails.to" = "إلى %1$@"; + +/* Transaction ID header */ +"TransactionDetails.txHashHeader" = "معرف معاملة Litecoin"; + +/* (this transaction was) Received at this address: */ +"TransactionDirection.address" = "تم استلامه في هذا العنوان"; + +/* (this transaction was) Sent to this address: */ +"TransactionDirection.to" = "تم إرساله إلى هذا العنوان"; + +/* Disabled until date */ +"UnlockScreen.disabled" = "مغلق حتى: %1$@"; + +/* Unlock with FaceID accessibility label */ +"UnlockScreen.faceIdText" = "افتح باستخدام FaceID"; + +/* My Address button title */ +"UnlockScreen.myAddress" = "عنواني"; + +/* Reset PIN with Paper Key button label. */ +"UnlockScreen.resetPin" = "إعادة تعيين الرقم السري"; + +/* Scan button title */ +"UnlockScreen.scan" = "مسح"; + +/* TouchID/FaceID prompt text */ +"UnlockScreen.touchIdPrompt" = "افتح Litewallet الخاص بك."; + +/* Unlock with TouchID accessibility label */ +"UnlockScreen.touchIdText" = "افتح باستخدام TouchID"; + +/* Wallet unlocked message */ +"UnlockScreen.unlocked" = "تم فتح المحفظة"; + +/* Update PIN caption text */ +"UpdatePin.caption" = "تذكر هذا الرقم السري. إذا نسيته، لن تتمكن من الوصول إلى Litecoin الخاص بك."; + +/* PIN creation info. */ +"UpdatePin.createInstruction" = "سيُستخدم الرقم السري لفتح Litewallet الخاص بك وإرسال الأموال."; + +/* Update PIN title */ +"UpdatePin.createTitle" = "تعيين الرقم السري"; + +/* Update PIN title */ +"UpdatePin.createTitleConfirm" = "أعد إدخال الرقم السري"; + +/* Enter current PIN instruction */ +"UpdatePin.enterCurrent" = "أدخل الرقم السري الحالي."; + +/* Enter new PIN instruction */ +"UpdatePin.enterNew" = "أدخل الرقم السري الجديد."; + +/* Re-Enter new PIN instruction */ +"UpdatePin.reEnterNew" = "أعد إدخال الرقم السري الجديد."; + +/* Update PIN failure error message. */ +"UpdatePin.setPinError" = "عذرًا، لم نتمكن من تحديث الرقم السري."; + +/* Update PIN failure alert view title */ +"UpdatePin.setPinErrorTitle" = "خطأ في تحديث الرقم السري"; + +/* Update PIN title */ +"UpdatePin.updateTitle" = "تحديث الرقم السري"; + +/* Authorize to copy wallet addresses alert message */ +"URLHandling.addressaddressListAlertMessage" = "هل تريد نسخ عناوين المحفظة إلى الحافظة؟"; + +/* Authorize to copy wallet address PIN view prompt. */ +"URLHandling.addressList" = "إذن لنسخ عنوان المحفظة إلى الحافظة"; + +/* Authorize to copy wallet address alert title */ +"URLHandling.addressListAlertTitle" = "نسخ عناوين المحفظة"; + +/* Copy wallet addresses alert button label */ +"URLHandling.copy" = "نسخ"; + +/* Verify PIN for transaction view body */ +"VerifyPin.authorize" = "يرجى إدخال الرقم السري الخاص بك لتفويض هذه المعاملة."; + +/* Verify PIN view body */ +"VerifyPin.continueBody" = "يرجى إدخال الرقم السري الخاص بك للمتابعة."; + +/* Verify PIN view title */ +"VerifyPin.title" = "الرقم السري مطلوب"; + +/* Authorize transaction with touch id message */ +"VerifyPin.touchIdMessage" = "تفويض هذه المعاملة"; + +/* 'No wallet' warning for watch app */ +"Watch.noWalletWarning" = "افتح تطبيق Litewallet على iPhone لإعداد المحفظة."; + +/* Dismiss button label */ +"Webview.dismiss" = "إغلاق"; + +/* Webview loading error message */ +"Webview.errorMessage" = "حدث خطأ أثناء تحميل المحتوى. يرجى المحاولة مرة أخرى."; + +/* Updating webview message */ +"Webview.updating" = "جارٍ التحديث..."; + +/* Welcome view body text */ +"Welcome.body" = "لقد حصل Litewallet على مظهر جديد وبعض الميزات الجديدة.\n\nجميع العملات تعرض باللايتس (ł). 1 لايتكوين (Ł) = 1000 لايتس (ł)."; + +/* Welcome view title */ +"Welcome.title" = "مرحبًا بك في Litewallet!"; + +/* Wipe wallet alert message */ +"WipeWallet.alertMessage" = "هل أنت متأكد أنك تريد حذف هذه المحفظة؟"; + +/* Wipe wallet alert title */ +"WipeWallet.alertTitle" = "حذف المحفظة؟"; + +/* Warning if user lost phrase */ +"WipeWallet.emptyWallet" = "هل نسيت عبارة الاسترداد أو الرقم السري؟"; + +/* Failed wipe wallet alert message */ +"WipeWallet.failedMessage" = "فشل في حذف المحفظة."; + +/* Failed wipe wallet alert title */ +"WipeWallet.failedTitle" = "فشل"; + +/* Enter key to wipe wallet instruction. */ +"WipeWallet.instruction" = "للبدء بمحفظة جديدة أو استعادة محفظة موجودة، يجب عليك أولاً مسح المحفظة الحالية. للمتابعة، أدخل مفتاح الورقة الخاص بالمحفظة الحالية."; + +/* Start wipe wallet view message */ +"WipeWallet.startMessage" = "بدء أو استعادة محفظة أخرى يتيح لك الوصول إلى وإدارة محفظة Litewallet مختلفة على هذا الجهاز."; + +/* Start wipe wallet view warning */ +"WipeWallet.startWarning" = "سيتم إزالة محفظتك الحالية من هذا الجهاز. إذا كنت ترغب في استعادتها في المستقبل، يجب عليك إدخال مفتاح الورقة."; + +/* Wipe wallet navigation item title. */ +"WipeWallet.title" = "ابدأ أو استرجع محفظة أخرى"; + +/* Warning Alert */ +"WipeWallet.warningAlert" = "سيؤدي هذا الإجراء إلى مسح Litewallet الخاص بك!"; + +/* Warning description */ +"WipeWallet.warningDescription" = "حذف محفظتك يعني أن المفتاح الخاص وبيانات التطبيق ستختفي. قد تفقد لايتكوين الخاص بك إلى الأبد!\n\n\nلا يمكن لأي شخص في فريق Litewallet استرجاع هذه العبارة لك. نحن غير مسؤولين إذا فشلت في قراءة هذا التحذير."; + +/* Warning title */ +"WipeWallet.warningTitle" = "يرجى القراءة!"; + +/* Wipe wallet button title */ +"WipeWallet.wipe" = "مسح"; + +/* Wiping activity message */ +"WipeWallet.wiping" = "يتم المسح..."; + +/* Paper key instructions. */ +"WritePaperPhrase.instruction" = "اكتب كل كلمة بالترتيب واحتفظ بها في مكان آمن."; + +/* button label */ +"WritePaperPhrase.next" = "التالي"; + +/* button label */ +"WritePaperPhrase.previous" = "السابق"; + +/* 1 of 3 */ +"WritePaperPhrase.step" = "%1$d من %2$d"; + +/* No comment provided by engineer. */ +"Copy" = "نسخ"; + +/* Buy Bar Item Title */ +"BuyCenter.barItemTitle" = "شراء"; + +/* $53.09/L + 1.07% */ +"Confirmation.amountDetailLabel" = "تفاصيل الصرف:"; + +/* Address label */ +"Confirmation.staticAddressLabel" = "العنوان:"; + +/* History Bar Item Title */ +"History.barItemTitle" = "التاريخ"; + +/* Receive Bar Item Title */ +"Receive.barItemTitle" = "استلام"; + +/* Send Bar Item Title */ +"Send.barItemTitle" = "إرسال"; + +/* Less button title */ +"TransactionDetails.less" = "أقل..."; + +/* Prefix for price */ +"TransactionDetails.priceTimeStampPrefix" = "كما في"; + +/* RECEIVE LTCTitle */ +"TransactionDetails.receivedModalTitle" = "عنوان الاستلام"; + +/* Label for TXID */ +"TransactionDetails.staticTXLabel" = "TXID:"; + +/* Unlock Screen sub-header */ +"UnlockScreen.enterPin" = "أدخل الرقم السري"; + +/* Static amount Label */ +"Transaction.amountDetailLabel" = "تفاصيل المبلغ:"; + +/* Static blockHeight Label */ +"Transaction.blockHeightLabel" = "الكتلة:"; + +/* Static comment Label */ +"Transaction.commentLabel" = "مذكرة:"; + +/* Static TX iD Label */ +"Transaction.txIDLabel" = "معرف المعاملة:"; + +/* Static end amount Label */ +"Transaction.endAmountDetailLabel" = "تفاصيل المبلغ النهائي للمعاملة"; + +/* Static starting amount Label */ +"Transaction.startingAmountDetailLabel" = "تفاصيل المبلغ الأولي للمعاملة"; + +/* Syncing view connection state header text */ +"SyncingHeader.connecting" = "جاري الاتصال..."; + +/* Syncing header success state header text */ +"SyncingHeader.success" = "نجاح!"; + +/* Syncing view syncing state header text */ +"SyncingHeader.syncing" = "جاري المزامنة..."; + +/* Rescanning header success state header text */ +"SyncingHeader.rescan" = "جاري إعادة المسح..."; + +/* Affirm button title. */ +"Prompts.PaperKey.affirm" = "متابعة"; + +/* Cancel button. */ +"Prompts.PaperKey.cancel" = "إلغاء"; + +/* Enable button. */ +"Prompts.PaperKey.enable" = "تفعيل"; + +/* Dismiss button. */ +"Prompts.dismiss" = "إغلاق"; + +/* Languages label */ +"Settings.languages" = "اللغات"; + +/* Label to pick fiat */ +"DefaultCurrency.chooseFiatLabel" = "اختر:"; + +/* Litewallet environment */ +"Settings.litewallet.environment" = "البيئة:"; + +/* Litewallet version */ +"Settings.litewallet.version" = "إصدار Litewallet:"; + +/* Litewallet Social links */ +"Settings.socialLinks" = "الروابط الاجتماعية"; + +/* Delete db */ +"WipeWallet.deleteDatabase" = "حذف قاعدة البيانات"; + +/* Delete database title */ +"WipeWallet.alertDeleteTitle" = "حذف قاعدة البيانات"; + +/* Delete database message */ +"WipeWallet.deleteMessageTitle" = "سيتم حذف قاعدة البيانات ولكن ستظل العبارة والرقم السري محفوظة. قم بتأكيد الرقم السري الحالي وانتظر حتى تكتمل المزامنة مع قاعدة البيانات الجديدة"; + +/* Delete and sync */ +"WipeWallet.deleteSync" = "حذف & مزامنة"; + +/* Corruption Error alert title */ +"Alert.corruptionError" = "خطأ في فساد البيانات المحلية"; + +/* Corruption Error alert title */ +"Alert.corruptionMessage" = "قاعدة البيانات المحلية تالفة. اذهب إلى الإعدادات > Blockchain: الإعدادات > حذف قاعدة البيانات للتحديث"; + +/* Donate articles to the */ +"Donate.toThe" = "تبرع لـ"; + +/* Donate */ +"Donate.word" = "تبرع"; + +/* Luxury fee */ +"FeeSelector.luxury" = "فاخر"; + +/* Fee Selector economy fee description */ +"FeeSelector.luxuryLabel" = "الوقت المتوقع للتسليم: 2.5 - 5+ دقائق"; + +/* Message for luxury fee */ +"FeeSelector.luxuryMessage" = "تضمن هذه الخيار قبول معاملتك تقريبًا على الرغم من أنك تدفع مبلغًا إضافيًا."; + +/* Support the Litecoin Foundation */ +"SupportTheFoundation.title" = "دعم مؤسسة لايتكوين"; + +/* Menu button title */ +"MenuButton.customer.support" = "دعم العملاء"; + +/* Enter to match domain name to LTC Address */ +"Send.UnstoppableDomains.placeholder" = "أدخل اسم مجال .crypto، .wallet، .zil، .nft، .blockchain،\n.bitcoin، .coin، .888، .dao، أو .x."; + +/* Or */ +"Fragment.or" = "أو"; + +/* Enter LTC Address */ +"Send.enterLTCAddress" = "أدخل عنوان لايتكوين"; + +/* Litewallet Partners */ +"Settings.litewallet.partners" = "شركاء Litewallet"; + +/* Card Bar Item Title */ +"LitecoinCard.barItemTitle" = "بطاقة"; + +/* Lookup */ +"Send.UnstoppableDomains.lookup" = "بحث"; + +/* Forgot password? */ +"LitecoinCard.forgotPassword" = "نسيت كلمة المرور؟"; + +/* Login */ +"LitecoinCard.login" = "تسجيل الدخول"; + +/* Register */ +"LitecoinCard.registerCard" = "تسجيل"; + +/* Litecoin card */ +"LitecoinCard.registerCardPhrase" = "تسجيل بطاقة لايتكوين"; + +/* Reset Litecoin card password */ +"LitecoinCard.resetPassword" = "إعادة تعيين كلمة المرور"; + +/* Litecoin card visit */ +"LitecoinCard.visit.toReset" = "قم بزيارة https://litecoin.dashboard.getblockcard.com/password/forgot\nلإعادة تعيين كلمة المرور."; + +/* address */ +"LitecoinCard.Registration.address" = "العنوان"; + +/* city */ +"LitecoinCard.Registration.city" = "المدينة"; + +/* confirm password */ +"LitecoinCard.Registration.confirmPassword" = "تأكيد كلمة المرور"; + +/* country */ +"LitecoinCard.Registration.country" = "الدولة"; + +/* First name */ +"LitecoinCard.Registration.firstName" = "الاسم الأول"; + +/* kycIDNumber */ +"LitecoinCard.Registration.kycIDNumber" = "رقم الهوية"; + +/* SSN */ +"LitecoinCard.Registration.kycSSN" = "الرقم التأميني الاجتماعي"; + +/* Last name */ +"LitecoinCard.Registration.lastName" = "الاسم الأخير"; + +/* mobile number */ +"LitecoinCard.Registration.mobileNumber" = "رقم الهاتف المحمول"; + +/* password */ +"LitecoinCard.Registration.password" = "كلمة المرور"; + +/* state province */ +"LitecoinCard.Registration.stateProvince" = "الولاية / المقاطعة"; + +/* registration username / email */ +"LitecoinCard.Registration.usernameEmail" = "البريد الإلكتروني (اسم المستخدم)"; + +/* zip post code */ +"LitecoinCard.Registration.zipPostCode" = "الرمز البريدي"; + +/* identification */ +"LitecoinCard.Registration.identification" = "الهوية"; + +/* Register for Litecoin Card */ +"LitecoinCard.registerCard.phrase" = "تسجيل بطاقة لايتكوين"; + +/* kycIDType */ +"LitecoinCard.Registration.kycIDType" = "نوع الهوية"; + +/* resetFields */ +"Button.resetFields" = "إعادة تعيين الحقول"; + +/* Registering user... */ +"LitecoinCard.registering.user" = "جارٍ تسجيل المستخدم ..."; + +/* Card balance */ +"LitecoinCard.cardBalance" = "رصيد البطاقة"; + +/* Logout */ +"LitecoinCard.logout" = "تسجيل الخروج"; + +/* Registration failure */ +"LitecoinCard.registrationFailure" = "كانت هناك مشكلة في تسجيلك. \nيرجى التحقق من بياناتك والمحاولة مرة أخرى."; + +/* Registration success */ +"LitecoinCard.registrationSuccess" = "لقد قمت بالتسجيل!\nيرجى التحقق من بريدك الإلكتروني وتأكيده. ثم عد لتسجيل الدخول."; + +/* Resolved Success */ +"Alerts.resolvedSuccess" = "تم حل النطاق"; + +/* No comment provided by engineer. */ +"Alerts.resolvedSuccessSubheader" = "تم حل العنوان!"; + +/* must not be empty */ +"LitecoinCard.Registration.ValidationError.empty" = "يجب ألا يكون فارغًا"; + +/* Invalid email address */ +"LitecoinCard.Registration.ValidationError.invalidEmail" = "عنوان البريد الإلكتروني غير صالح"; + +/* Mobile number 10 digits required */ +"LitecoinCard.Registration.ValidationError.numberDigitsRequired" = "يجب أن يحتوي رقم الهاتف المحمول على 10 أرقام على الأقل"; + +/* Mobile number required */ +"LitecoinCard.Registration.ValidationError.numberRequired" = "رقم الهاتف المحمول مطلوب"; + +/* 6 Password characters required */ +"LitecoinCard.Registration.ValidationError.passwordCharacters" = "يجب أن تحتوي كلمة المرور على 6 أحرف على الأقل"; + +/* Captial and numeric password characters required */ +"LitecoinCard.Registration.ValidationError.passwordComposition" = "يجب أن تحتوي كلمة المرور على 6 أحرف على الأقل، مع حرف واحد ورقم واحد على الأقل"; + +/* Password required */ +"LitecoinCard.Registration.ValidationError.passwordRequired" = "كلمة المرور مطلوبة"; + +/* Required field */ +"LitecoinCard.Registration.ValidationError.requiredField" = "حقل مطلوب"; + +/* Failed Login */ +"LitecoinCard.failed.login" = "فشل تسجيل الدخول"; + +/* Copied */ +"TransactionDetails.copiedAll" = "تم النسخ"; + +/* Copy all details */ +"TransactionDetails.copyAllDetails" = "نسخ جميع التفاصيل"; + +/* Features and limitations */ +"LitecoinCard.Disclaimer.bullets" = "- التسجيل وتسجيل الدخول\n- رصيد البطاقة المتاح\n- إعادة تعيين كلمة المرور\n- لا يوجد تحويل إلى Litewallet\n- متاح في الولايات المتحدة فقط"; + +/* Description of the status */ +"LitecoinCard.Disclaimer.description" = "تتمتع بطاقة لايتكوين حاليًا بوظائف محدودة في Litewallet."; + +/* Referral to the website */ +"LitecoinCard.Disclaimer.referral" = "قم بزيارة litecoin.getblockcard.com للوصول الكامل"; + +/* Beta Testing Litecoin Card */ +"LitecoinCard.Disclaimer.title" = "اختبار بطاقة لايتكوين Beta"; + +/* lookupFailureHeader */ +"Send.UnstoppableDomains.lookupFailureHeader" = "فشل البحث"; + +/* LookupDomainError */ +"Send.UnstoppableDomains.lookupDomainError" = "عذرًا، لم يتم العثور على النطاق. [خطأ: %2$d]"; + +/* UDSystemError */ +"Send.UnstoppableDomains.udSystemError" = "مشكلة في النظام. [خطأ: %2$d]"; + +/* Balance */ +"ManageWallet.balance" = "الرصيد"; + +/* Moonpay buy financial details */ +"BuyCenter.moonpayFinancialDetails" = "• شراء LTC مع العديد من أزواج العملات\n• الدفع بطرق متعددة\n• مزود الدفع العالمي"; + +/* Moonpay Title */ +"BuyCenter.moonpayTitle" = "Moonpay"; + +/* Reset password detail */ +"LitecoinCard.resetPasswordDetail" = "أدخل عنوان البريد الإلكتروني المرتبط بحساب بطاقة لايتكوين الخاصة بك وابحث عن بريد إلكتروني يحتوي على تعليمات إعادة تعيين كلمة المرور."; + +/* Current Locale */ +"Settings.currentLocale" = "الإعدادات الحالية:"; + +/* History Current Litecoin Value */ +"History.currentLitecoinValue" = "القيمة الحالية لـ LTC في"; + +/* Confirm */ +"Fragment.confirm" = "تأكيد"; + +/* Enter code */ +"LitecoinCard.enterCode" = "أدخل الرمز"; + +/* Enter code details */ +"LitecoinCard.enterCode.detail" = "أدخل الرمز الذي تم إرساله مؤخرًا إلى بريدك الإلكتروني المرتبط بحساب بطاقة لايتكوين."; + +/* Message when 2FA is on */ +"LitecoinCard.twoFAOn" = "تم تفعيل 2FA"; + +/* Message when 2FA is off */ +"LitecoinCard.twoFAOff" = "لم يتم تفعيل 2FA"; + +/* Litewallet balance label */ +"LitecoinCard.Transfer.litewalletBalance" = "رصيد Litewallet"; + +/* Transfer title */ +"LitecoinCard.Transfer.title" = "التحويل"; + +/* Description of action */ +"LitecoinCard.Transfer.description" = "اختر محفظة التحويل:"; + +/* Start transfer label */ +"LitecoinCard.Transfer.startTransfer" = "ابدأ التحويل"; + +/* Transfer to card label */ +"LitecoinCard.Transfer.amountToCard" = "تحويل إلى البطاقة"; + +/* Transfer to Litewallet label */ +"LitecoinCard.Transfer.amountToLitewallet" = "التحويل إلى Litewallet"; + +/* Set transfer amount label */ +"LitecoinCard.Transfer.setAmount" = "اسحب لتحديد مبلغ التحويل"; + +/* Destination address label */ +"LitecoinCard.Transfer.destinationAddress" = "العنوان"; + +/* to */ +"Fragment.to" = "إلى"; + +/* Card Bar Item Title */ +"LitecoinCard.name" = "بطاقة Litecoin"; + +/* Litewallet name */ +"Litewallet.name" = "Litewallet"; + +/* Message when 2FA is off and user is viewing the Card Balance */ +"LitecoinCard.cardBalanceOnlyDescription" = "تسجيل الخروج وتفعيل 2FA للسماح بالتحويلات"; + +/* sorry */ +"Fragment.sorry" = "آسف"; + +/* Change language alert message */ +"Settings.ChangeLanguage.alertMessage" = "هل أنت متأكد أنك تريد تغيير اللغة إلى %l؟"; + +/* Fee: $0.01 */ +"Send.bareFee" = "الرسوم: %1$@"; + +/* Fees: $0.01 */ +"Send.fee" = "الرسوم: %1$@"; + +/* Fees Blank: */ +"Send.feeBlank" = "الرسوم:"; + +/* Network */ +"Send.networkFee" = "الرسوم الشبكية"; + +/* Service */ +"Send.serviceFee" = "رسوم الخدمة"; + +/* Signup cancel */ +"Notifications.signupCancel" = "لا، شكراً"; + +/* "Email title" */ +"Notifications.emailTitle" = "لا تفوت أي شيء!"; + +/* "Pitch to get user to sign up" */ +"Notifications.pitchMessage" = "اشترك لتسمع عن التحديثات والمسابقات."; + +/* "Email address label" */ +"Notifications.emailLabel" = "عنوان البريد الإلكتروني"; + +/* "Email address placeholder" */ +"Notifications.emailPlaceholder" = "أدخل هنا"; + +/* "Language preference label" */ +"Notifications.languagePreference" = "اللغة المفضلة:"; + +/* "ShowWords.titleWarning" */ +"ShowWords.titleWarning" = "هذه هي كلمات الاستعادة الخاصة بك. إذا عرضتها على أي شخص، يمكنه أخذ Litecoin الخاص بك"; + +/* "ShowWords.modalTitle" */ +"ShowWords.modalTitle" = "عرض عبارة الاستعادة"; diff --git a/litewallet/ar.lproj/BIP39Words.plist b/litewallet/ar.lproj/BIP39Words.plist new file mode 100644 index 000000000..01e69ff4c --- /dev/null +++ b/litewallet/ar.lproj/BIP39Words.plist @@ -0,0 +1,2054 @@ + + + + + abandon + ability + able + about + above + absent + absorb + abstract + absurd + abuse + access + accident + account + accuse + achieve + acid + acoustic + acquire + across + act + action + actor + actress + actual + adapt + add + addict + address + adjust + admit + adult + advance + advice + aerobic + affair + afford + afraid + again + age + agent + agree + ahead + aim + air + airport + aisle + alarm + album + alcohol + alert + alien + all + alley + allow + almost + alone + alpha + already + also + alter + always + amateur + amazing + among + amount + amused + analyst + anchor + ancient + anger + angle + angry + animal + ankle + announce + annual + another + answer + antenna + antique + anxiety + any + apart + apology + appear + apple + approve + april + arch + arctic + area + arena + argue + arm + armed + armor + army + around + arrange + arrest + arrive + arrow + art + artefact + artist + artwork + ask + aspect + assault + asset + assist + assume + asthma + athlete + atom + attack + attend + attitude + attract + auction + audit + august + aunt + author + auto + autumn + average + avocado + avoid + awake + aware + away + awesome + awful + awkward + axis + baby + bachelor + bacon + badge + bag + balance + balcony + ball + bamboo + banana + banner + bar + barely + bargain + barrel + base + basic + basket + battle + beach + bean + beauty + because + become + beef + before + begin + behave + behind + believe + below + belt + bench + benefit + best + betray + better + between + beyond + bicycle + bid + bike + bind + biology + bird + birth + bitter + black + blade + blame + blanket + blast + bleak + bless + blind + blood + blossom + blouse + blue + blur + blush + board + boat + body + boil + bomb + bone + bonus + book + boost + border + boring + borrow + boss + bottom + bounce + box + boy + bracket + brain + brand + brass + brave + bread + breeze + brick + bridge + brief + bright + bring + brisk + broccoli + broken + bronze + broom + brother + brown + brush + bubble + buddy + budget + buffalo + build + bulb + bulk + bullet + bundle + bunker + burden + burger + burst + bus + business + busy + butter + buyer + buzz + cabbage + cabin + cable + cactus + cage + cake + call + calm + camera + camp + can + canal + cancel + candy + cannon + canoe + canvas + canyon + capable + capital + captain + car + carbon + card + cargo + carpet + carry + cart + case + cash + casino + castle + casual + cat + catalog + catch + category + cattle + caught + cause + caution + cave + ceiling + celery + cement + census + century + cereal + certain + chair + chalk + champion + change + chaos + chapter + charge + chase + chat + cheap + check + cheese + chef + cherry + chest + chicken + chief + child + chimney + choice + choose + chronic + chuckle + chunk + churn + cigar + cinnamon + circle + citizen + city + civil + claim + clap + clarify + claw + clay + clean + clerk + clever + click + client + cliff + climb + clinic + clip + clock + clog + close + cloth + cloud + clown + club + clump + cluster + clutch + coach + coast + coconut + code + coffee + coil + coin + collect + color + column + combine + come + comfort + comic + common + company + concert + conduct + confirm + congress + connect + consider + control + convince + cook + cool + copper + copy + coral + core + corn + correct + cost + cotton + couch + country + couple + course + cousin + cover + coyote + crack + cradle + craft + cram + crane + crash + crater + crawl + crazy + cream + credit + creek + crew + cricket + crime + crisp + critic + crop + cross + crouch + crowd + crucial + cruel + cruise + crumble + crunch + crush + cry + crystal + cube + culture + cup + cupboard + curious + current + curtain + curve + cushion + custom + cute + cycle + dad + damage + damp + dance + danger + daring + dash + daughter + dawn + day + deal + debate + debris + decade + december + decide + decline + decorate + decrease + deer + defense + define + defy + degree + delay + deliver + demand + demise + denial + dentist + deny + depart + depend + deposit + depth + deputy + derive + describe + desert + design + desk + despair + destroy + detail + detect + develop + device + devote + diagram + dial + diamond + diary + dice + diesel + diet + differ + digital + dignity + dilemma + dinner + dinosaur + direct + dirt + disagree + discover + disease + dish + dismiss + disorder + display + distance + divert + divide + divorce + dizzy + doctor + document + dog + doll + dolphin + domain + donate + donkey + donor + door + dose + double + dove + draft + dragon + drama + drastic + draw + dream + dress + drift + drill + drink + drip + drive + drop + drum + dry + duck + dumb + dune + during + dust + dutch + duty + dwarf + dynamic + eager + eagle + early + earn + earth + easily + east + easy + echo + ecology + economy + edge + edit + educate + effort + egg + eight + either + elbow + elder + electric + elegant + element + elephant + elevator + elite + else + embark + embody + embrace + emerge + emotion + employ + empower + empty + enable + enact + end + endless + endorse + enemy + energy + enforce + engage + engine + enhance + enjoy + enlist + enough + enrich + enroll + ensure + enter + entire + entry + envelope + episode + equal + equip + era + erase + erode + erosion + error + erupt + escape + essay + essence + estate + eternal + ethics + evidence + evil + evoke + evolve + exact + example + excess + exchange + excite + exclude + excuse + execute + exercise + exhaust + exhibit + exile + exist + exit + exotic + expand + expect + expire + explain + expose + express + extend + extra + eye + eyebrow + fabric + face + faculty + fade + faint + faith + fall + false + fame + family + famous + fan + fancy + fantasy + farm + fashion + fat + fatal + father + fatigue + fault + favorite + feature + february + federal + fee + feed + feel + female + fence + festival + fetch + fever + few + fiber + fiction + field + figure + file + film + filter + final + find + fine + finger + finish + fire + firm + first + fiscal + fish + fit + fitness + fix + flag + flame + flash + flat + flavor + flee + flight + flip + float + flock + floor + flower + fluid + flush + fly + foam + focus + fog + foil + fold + follow + food + foot + force + forest + forget + fork + fortune + forum + forward + fossil + foster + found + fox + fragile + frame + frequent + fresh + friend + fringe + frog + front + frost + frown + frozen + fruit + fuel + fun + funny + furnace + fury + future + gadget + gain + galaxy + gallery + game + gap + garage + garbage + garden + garlic + garment + gas + gasp + gate + gather + gauge + gaze + general + genius + genre + gentle + genuine + gesture + ghost + giant + gift + giggle + ginger + giraffe + girl + give + glad + glance + glare + glass + glide + glimpse + globe + gloom + glory + glove + glow + glue + goat + goddess + gold + good + goose + gorilla + gospel + gossip + govern + gown + grab + grace + grain + grant + grape + grass + gravity + great + green + grid + grief + grit + grocery + group + grow + grunt + guard + guess + guide + guilt + guitar + gun + gym + habit + hair + half + hammer + hamster + hand + happy + harbor + hard + harsh + harvest + hat + have + hawk + hazard + head + health + heart + heavy + hedgehog + height + hello + helmet + help + hen + hero + hidden + high + hill + hint + hip + hire + history + hobby + hockey + hold + hole + holiday + hollow + home + honey + hood + hope + horn + horror + horse + hospital + host + hotel + hour + hover + hub + huge + human + humble + humor + hundred + hungry + hunt + hurdle + hurry + hurt + husband + hybrid + ice + icon + idea + identify + idle + ignore + ill + illegal + illness + image + imitate + immense + immune + impact + impose + improve + impulse + inch + include + income + increase + index + indicate + indoor + industry + infant + inflict + inform + inhale + inherit + initial + inject + injury + inmate + inner + innocent + input + inquiry + insane + insect + inside + inspire + install + intact + interest + into + invest + invite + involve + iron + island + isolate + issue + item + ivory + jacket + jaguar + jar + jazz + jealous + jeans + jelly + jewel + job + join + joke + journey + joy + judge + juice + jump + jungle + junior + junk + just + kangaroo + keen + keep + ketchup + key + kick + kid + kidney + kind + kingdom + kiss + kit + kitchen + kite + kitten + kiwi + knee + knife + knock + know + lab + label + labor + ladder + lady + lake + lamp + language + laptop + large + later + latin + laugh + laundry + lava + law + lawn + lawsuit + layer + lazy + leader + leaf + learn + leave + lecture + left + leg + legal + legend + leisure + lemon + lend + length + lens + leopard + lesson + letter + level + liar + liberty + library + license + life + lift + light + like + limb + limit + link + lion + liquid + list + little + live + lizard + load + loan + lobster + local + lock + logic + lonely + long + loop + lottery + loud + lounge + love + loyal + lucky + luggage + lumber + lunar + lunch + luxury + lyrics + machine + mad + magic + magnet + maid + mail + main + major + make + mammal + man + manage + mandate + mango + mansion + manual + maple + marble + march + margin + marine + market + marriage + mask + mass + master + match + material + math + matrix + matter + maximum + maze + meadow + mean + measure + meat + mechanic + medal + media + melody + melt + member + memory + mention + menu + mercy + merge + merit + merry + mesh + message + metal + method + middle + midnight + milk + million + mimic + mind + minimum + minor + minute + miracle + mirror + misery + miss + mistake + mix + mixed + mixture + mobile + model + modify + mom + moment + monitor + monkey + monster + month + moon + moral + more + morning + mosquito + mother + motion + motor + mountain + mouse + move + movie + much + muffin + mule + multiply + muscle + museum + mushroom + music + must + mutual + myself + mystery + myth + naive + name + napkin + narrow + nasty + nation + nature + near + neck + need + negative + neglect + neither + nephew + nerve + nest + net + network + neutral + never + news + next + nice + night + noble + noise + nominee + noodle + normal + north + nose + notable + note + nothing + notice + novel + now + nuclear + number + nurse + nut + oak + obey + object + oblige + obscure + observe + obtain + obvious + occur + ocean + october + odor + off + offer + office + often + oil + okay + old + olive + olympic + omit + once + one + onion + online + only + open + opera + opinion + oppose + option + orange + orbit + orchard + order + ordinary + organ + orient + original + orphan + ostrich + other + outdoor + outer + output + outside + oval + oven + over + own + owner + oxygen + oyster + ozone + pact + paddle + page + pair + palace + palm + panda + panel + panic + panther + paper + parade + parent + park + parrot + party + pass + patch + path + patient + patrol + pattern + pause + pave + payment + peace + peanut + pear + peasant + pelican + pen + penalty + pencil + people + pepper + perfect + permit + person + pet + phone + photo + phrase + physical + piano + picnic + picture + piece + pig + pigeon + pill + pilot + pink + pioneer + pipe + pistol + pitch + pizza + place + planet + plastic + plate + play + please + pledge + pluck + plug + plunge + poem + poet + point + polar + pole + police + pond + pony + pool + popular + portion + position + possible + post + potato + pottery + poverty + powder + power + practice + praise + predict + prefer + prepare + present + pretty + prevent + price + pride + primary + print + priority + prison + private + prize + problem + process + produce + profit + program + project + promote + proof + property + prosper + protect + proud + provide + public + pudding + pull + pulp + pulse + pumpkin + punch + pupil + puppy + purchase + purity + purpose + purse + push + put + puzzle + pyramid + quality + quantum + quarter + question + quick + quit + quiz + quote + rabbit + raccoon + race + rack + radar + radio + rail + rain + raise + rally + ramp + ranch + random + range + rapid + rare + rate + rather + raven + raw + razor + ready + real + reason + rebel + rebuild + recall + receive + recipe + record + recycle + reduce + reflect + reform + refuse + region + regret + regular + reject + relax + release + relief + rely + remain + remember + remind + remove + render + renew + rent + reopen + repair + repeat + replace + report + require + rescue + resemble + resist + resource + response + result + retire + retreat + return + reunion + reveal + review + reward + rhythm + rib + ribbon + rice + rich + ride + ridge + rifle + right + rigid + ring + riot + ripple + risk + ritual + rival + river + road + roast + robot + robust + rocket + romance + roof + rookie + room + rose + rotate + rough + round + route + royal + rubber + rude + rug + rule + run + runway + rural + sad + saddle + sadness + safe + sail + salad + salmon + salon + salt + salute + same + sample + sand + satisfy + satoshi + sauce + sausage + save + say + scale + scan + scare + scatter + scene + scheme + school + science + scissors + scorpion + scout + scrap + screen + script + scrub + sea + search + season + seat + second + secret + section + security + seed + seek + segment + select + sell + seminar + senior + sense + sentence + series + service + session + settle + setup + seven + shadow + shaft + shallow + share + shed + shell + sheriff + shield + shift + shine + ship + shiver + shock + shoe + shoot + shop + short + shoulder + shove + shrimp + shrug + shuffle + shy + sibling + sick + side + siege + sight + sign + silent + silk + silly + silver + similar + simple + since + sing + siren + sister + situate + six + size + skate + sketch + ski + skill + skin + skirt + skull + slab + slam + sleep + slender + slice + slide + slight + slim + slogan + slot + slow + slush + small + smart + smile + smoke + smooth + snack + snake + snap + sniff + snow + soap + soccer + social + sock + soda + soft + solar + soldier + solid + solution + solve + someone + song + soon + sorry + sort + soul + sound + soup + source + south + space + spare + spatial + spawn + speak + special + speed + spell + spend + sphere + spice + spider + spike + spin + spirit + split + spoil + sponsor + spoon + sport + spot + spray + spread + spring + spy + square + squeeze + squirrel + stable + stadium + staff + stage + stairs + stamp + stand + start + state + stay + steak + steel + stem + step + stereo + stick + still + sting + stock + stomach + stone + stool + story + stove + strategy + street + strike + strong + struggle + student + stuff + stumble + style + subject + submit + subway + success + such + sudden + suffer + sugar + suggest + suit + summer + sun + sunny + sunset + super + supply + supreme + sure + surface + surge + surprise + surround + survey + suspect + sustain + swallow + swamp + swap + swarm + swear + sweet + swift + swim + swing + switch + sword + symbol + symptom + syrup + system + table + tackle + tag + tail + talent + talk + tank + tape + target + task + taste + tattoo + taxi + teach + team + tell + ten + tenant + tennis + tent + term + test + text + thank + that + theme + then + theory + there + they + thing + this + thought + three + thrive + throw + thumb + thunder + ticket + tide + tiger + tilt + timber + time + tiny + tip + tired + tissue + title + toast + tobacco + today + toddler + toe + together + toilet + token + tomato + tomorrow + tone + tongue + tonight + tool + tooth + top + topic + topple + torch + tornado + tortoise + toss + total + tourist + toward + tower + town + toy + track + trade + traffic + tragic + train + transfer + trap + trash + travel + tray + treat + tree + trend + trial + tribe + trick + trigger + trim + trip + trophy + trouble + truck + true + truly + trumpet + trust + truth + try + tube + tuition + tumble + tuna + tunnel + turkey + turn + turtle + twelve + twenty + twice + twin + twist + two + type + typical + ugly + umbrella + unable + unaware + uncle + uncover + under + undo + unfair + unfold + unhappy + uniform + unique + unit + universe + unknown + unlock + until + unusual + unveil + update + upgrade + uphold + upon + upper + upset + urban + urge + usage + use + used + useful + useless + usual + utility + vacant + vacuum + vague + valid + valley + valve + van + vanish + vapor + various + vast + vault + vehicle + velvet + vendor + venture + venue + verb + verify + version + very + vessel + veteran + viable + vibrant + vicious + victory + video + view + village + vintage + violin + virtual + virus + visa + visit + visual + vital + vivid + vocal + voice + void + volcano + volume + vote + voyage + wage + wagon + wait + walk + wall + walnut + want + warfare + warm + warrior + wash + wasp + waste + water + wave + way + wealth + weapon + wear + weasel + weather + web + wedding + weekend + weird + welcome + west + wet + whale + what + wheat + wheel + when + where + whip + whisper + wide + width + wife + wild + will + win + window + wine + wing + wink + winner + winter + wire + wisdom + wise + wish + witness + wolf + woman + wonder + wood + wool + word + work + world + worry + worth + wrap + wreck + wrestle + wrist + write + wrong + yard + year + yellow + you + young + youth + zebra + zero + zone + zoo + + diff --git a/litewallet/ar.lproj/LaunchScreen.strings b/litewallet/ar.lproj/LaunchScreen.strings new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/litewallet/ar.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/litewalletTests/Language Selection Tests/LanguageSelectionTests.swift b/litewalletTests/Language Selection Tests/LanguageSelectionTests.swift index 5390377b1..deb33f35c 100644 --- a/litewalletTests/Language Selection Tests/LanguageSelectionTests.swift +++ b/litewalletTests/Language Selection Tests/LanguageSelectionTests.swift @@ -31,4 +31,19 @@ final class LanguageSelectionTests: XCTestCase { XCTAssertEqual(spanish, UserDefaults.selectedLanguage) XCTAssertEqual(S.LitewalletAlert.warning.localize(), "Aviso") } + + func testLocalizationsIncludesArabic() throws { + let localizations = viewModel.localizations + XCTAssertTrue(localizations.contains("ar"), "Localizations should include Arabic (ar)") + } + + func testSetLanguageToArabic() throws { + let initialLanguage = UserDefaults.selectedLanguage + XCTAssertEqual(initialLanguage, "en") + + let arabic = "ar" + viewModel.setLanguage(code: arabic) + XCTAssertEqual(UserDefaults.selectedLanguage, arabic, "The selected language should be set to Arabic in UserDefaults") + XCTAssertEqual(S.LitewalletAlert.warning.localize(), "تحذير") + } }