From 622d8f98cfb7252dd4b1e865a9839d1eac597877 Mon Sep 17 00:00:00 2001 From: leminlimez <59540996+leminlimez@users.noreply.github.com> Date: Thu, 19 Jun 2025 04:52:55 -0400 Subject: [PATCH 01/10] thai support --- .../xcschemes/xcschememanagement.plist | 2 +- Pocket Poster/Localizable.xcstrings | 382 +++++++++++++++++- .../Pocket-Poster-InfoPlist.xcstrings | 12 + 3 files changed, 387 insertions(+), 9 deletions(-) diff --git a/Pocket Poster.xcodeproj/xcuserdata/lemin.xcuserdatad/xcschemes/xcschememanagement.plist b/Pocket Poster.xcodeproj/xcuserdata/lemin.xcuserdatad/xcschemes/xcschememanagement.plist index f3372ed..d7a896f 100644 --- a/Pocket Poster.xcodeproj/xcuserdata/lemin.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/Pocket Poster.xcodeproj/xcuserdata/lemin.xcuserdatad/xcschemes/xcschememanagement.plist @@ -7,7 +7,7 @@ Pocket Poster.xcscheme_^#shared#^_ orderHint - 0 + 1 diff --git a/Pocket Poster/Localizable.xcstrings b/Pocket Poster/Localizable.xcstrings index edfbefb..01b87a1 100644 --- a/Pocket Poster/Localizable.xcstrings +++ b/Pocket Poster/Localizable.xcstrings @@ -15,10 +15,16 @@ "value" : "Actions" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ดำเนินการ" + } + }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hành Động" + "value" : "Hành động" } } } @@ -37,6 +43,12 @@ "value" : "Cache de l'application vidé avec succès!" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ล้างแคชแอปสำเร็จแล้ว!" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -59,6 +71,12 @@ "value" : "Hash de l'application" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "แฮชแอป" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -81,6 +99,12 @@ "value" : "Appliquer" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ใช้งาน" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -103,6 +127,12 @@ "value" : "Application de fonds d'écran..." } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "กำลังตั้งค่าวอลเปเปอร์…" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -125,6 +155,12 @@ "value" : "Annuler" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ยกเลิก" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -147,10 +183,16 @@ "value" : "Vider le cache de l'application" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ล้างแคชแอป" + } + }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá Cache Ứng Dụng" + "value" : "Xoá cache Ứng dụng" } } } @@ -169,6 +211,12 @@ "value" : "Réinitialisation des collections réussie!" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "รีเซ็ตคอลเลกชันสำเร็จแล้ว!" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -191,6 +239,12 @@ "value" : "Erro télécharge le fond d'écran!" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ดาวน์โหลดวอลเปเปอร์ไม่สำเร็จ!" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -213,6 +267,12 @@ "value" : "Créer une méthode de secours supplémentaire" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "สร้างวิธีสำรองเพิ่มเติม" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -236,6 +296,12 @@ "value" : "Création %@..." } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "กำลังสร้าง %@..." + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -259,6 +325,12 @@ "value" : "Création de données CAML..." } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "กำลังสร้างข้อมูล CAML" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -281,6 +353,12 @@ "value" : "Crédits" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "เครดิต" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -303,6 +381,12 @@ "value" : "Détecter" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ตรวจจับ" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -325,6 +409,12 @@ "value" : "Voulez-vous réinitialiser les collections?" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "คุณต้องการรีเซ็ตคอลเลคชั่นหรือไม่?" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -347,6 +437,12 @@ "value" : "Télécharger le raccourci de secours" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ดาวน์โหลด Shortcut สำรอง" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -369,6 +465,12 @@ "value" : "Télécharger un fichier de Tendies" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ดาวน์โหลดไฟล์ Tendies" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -391,6 +493,12 @@ "value" : "Téléchargement" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "กำลังดาวน์โหลด" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -413,6 +521,12 @@ "value" : "Saisir le App Hash" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ใส่แฮชแอป" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -435,6 +549,12 @@ "value" : "Entrez votre app hash de PosterBoard dans les Paramètres." } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ใส่แฮชแอปโปสเตอร์บอร์ดของคุณในเมนูการตั้งค่า" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -457,6 +577,12 @@ "value" : "Erreur" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ของผิดพลาด" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -479,6 +605,12 @@ "value" : "Exploitation" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exploit" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -502,6 +634,12 @@ "value" : "L'extraction des tendies..." } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "กำลังดึงข้อมูล tendies…" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -524,6 +662,12 @@ "value" : "Échec" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ไม่สำเร็จ" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -546,6 +690,12 @@ "value" : "N'a pas réussi à importer les tendies" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "นำเข้า tendies ไม่สำเร็จ" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -568,10 +718,16 @@ "value" : "Créateur de raccourcis de secours" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ตัวสร้าง Shortcut สำรอง" + } + }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bộ tạo phím tắt dự phòng" + "value" : "Bộ tạo Phím tắt dự phòng" } } } @@ -590,10 +746,16 @@ "value" : "Retomber dans le raccourci" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "กำลังย้อนกลับไปใช้ Shortcut" + } + }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quay lại phím tắt" + "value" : "Quay lại Phím tắt" } } } @@ -612,6 +774,12 @@ "value" : "Finir" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "เสร็จ" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -634,6 +802,12 @@ "value" : "Générer des vidéos..." } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "กำลังสร้างวิดีโอ" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -656,6 +830,12 @@ "value" : "Accueil" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "หน้าหลัก" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -678,6 +858,12 @@ "value" : "Rejoindre le Discord" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "เข้ารวม Discord" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -700,6 +886,12 @@ "value" : "Liens" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ลิงก์" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -723,6 +915,12 @@ "value" : "Développeur principal" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ผู้พัฒนาหลัก" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -745,6 +943,12 @@ "value" : "Tendies maximales atteintes" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ถึงจำนวนสูงสุดของ Tendies แล้ว" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -767,10 +971,16 @@ "value" : "Suivant" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ถัดไป" + } + }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kế tiếp" + "value" : "Tiếp theo" } } } @@ -789,6 +999,12 @@ "value" : "Nugget GitHub" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nugget Github" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -811,6 +1027,12 @@ "value" : "OK" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "โอเค" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -833,6 +1055,12 @@ "value" : "Seuls les fichiers .tendies peuvent être téléchargés!" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "สามารถดาวน์โหลดไฟล์ .tendies ได้เท่านั้น!" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -855,6 +1083,12 @@ "value" : "Veuillez patienter" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "กรุณารอ" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -877,6 +1111,12 @@ "value" : "Pocket Poster" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "พ็อกเก็ตโปสเตอร์" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -899,10 +1139,16 @@ "value" : "PosterBoard n'a pas pu s'ouvrir directement. Le raccourci de secours sera maintenant ouvert." } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ไม่สามารถเปิดโปสเตอร์บอร์ดโดยตรง กำลังจะใช้ Shortcut สำรอง" + } + }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "PosterBoard không thể mở trực tiếp. Phím tắt dự phòng sẽ được mở ngay bây giờ." + "value" : "PosterBoard không thể mở trực tiếp. Phím tắt dự phòng bây giờ sẽ được mở." } } } @@ -921,6 +1167,12 @@ "value" : "Libération" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "รีลีส" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -943,6 +1195,12 @@ "value" : "Répéter le tutoriel" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ดูบทแนะนำซ้ำ" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -965,6 +1223,12 @@ "value" : "Réinitialiser les Collections" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "รีเซ็ตคอลเลคชั่น" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -987,6 +1251,12 @@ "value" : "Sélectionner Tendies" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "เลือก Tendies" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1009,6 +1279,12 @@ "value" : "Tendies sélectionnées" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tendies ที่ถูกเลือก" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1031,6 +1307,12 @@ "value" : "Sauter" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ข้าม" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1053,6 +1335,12 @@ "value" : "Sociales" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "โซเชียล" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1075,10 +1363,16 @@ "value" : "Succès!" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "สำเร็จ!" + } + }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hoàn thành!" + "value" : "Thành công!" } } } @@ -1097,6 +1391,12 @@ "value" : "Importation réussie %@" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "นำเข้า %@ สำเร็จ" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1119,6 +1419,12 @@ "value" : "Support sur Ko-Fi" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "สนับสนุนบน Ko-Fi" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1141,6 +1447,12 @@ "value" : "Le dossier est mal configuré. Appuyez sur \"Réinitialiser les Collections\" et réessayez." } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "โฟลเดอร์ถูกตั้งค่าไม่ถูกต้อง กรุณาแตะ \"รีเซ็ตคอลเลคชั่น\" แล้วลองอีกครั้ง" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1163,10 +1475,16 @@ "value" : "L'application PosterBoard est maintenant ouverte. Veuillez la fermer à partir du sélecteur d'applications." } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "แอปโปสเตอร์บอร์ดจะถึกเปิด ให้คุณปิดมันในหน้าปัดขึ้น" + } + }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ứng dụng PosterBoard bây giờ sẽ được mở. Hãy đóng nó trong đa nhiệm." + "value" : "Ứng dụng PosterBoard đã được mở. Hãy đóng nó trong đa nhiệm." } } } @@ -1191,6 +1509,12 @@ "value" : "Version %1$@ (%2$@)" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "เวอร์ชั่น %1$@ (%2$@)" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1213,6 +1537,12 @@ "value" : "Vidéos" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "วิดีโอ" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1235,6 +1565,12 @@ "value" : "Voir sur GitHub" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ดูบน GitHub" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1257,6 +1593,12 @@ "value" : "Concepteur de site web" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ผู้ออกแบบเว็บไซต์" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1279,6 +1621,12 @@ "value" : "Voulez-vous télécharger le fichier %@?" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "คุณต้องการดาวน์โหลดไฟล์ %@ หรือไม่?" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1301,6 +1649,12 @@ "value" : "Vous ne pouvez appliquer que des descripteurs %@." } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "คุณสามารถใช้ descriptors %@ ได้เท่านั้น" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1323,6 +1677,12 @@ "value" : "Votre App Hash est incorrect. Veuillez le redéfinir." } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "แฮชแอปของคุณไม่ถูกต้อง กรุณาตั้งค่าใหม่อีกครั้ง" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1345,6 +1705,12 @@ "value" : "Votre PosterBoard se rafraîchit automatiquement." } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "โปสเตอร์บอร์ดของคุณจะรีเฟรชโดยอัตโนมัติ" + } + }, "vi" : { "stringUnit" : { "state" : "translated", diff --git a/Pocket Poster/Pocket-Poster-InfoPlist.xcstrings b/Pocket Poster/Pocket-Poster-InfoPlist.xcstrings index 6441782..90f2088 100644 --- a/Pocket Poster/Pocket-Poster-InfoPlist.xcstrings +++ b/Pocket Poster/Pocket-Poster-InfoPlist.xcstrings @@ -23,6 +23,12 @@ "value" : "Pocket Poster" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pocket Poster" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -45,6 +51,12 @@ "value" : "Fond d'écran Nugget" } }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "วอลเปเปอร์ Nugget" + } + }, "vi" : { "stringUnit" : { "state" : "translated", From 38c6d06a0ee7440882b115cfd2aa84cdb900dfa1 Mon Sep 17 00:00:00 2001 From: leminlimez <59540996+leminlimez@users.noreply.github.com> Date: Fri, 20 Jun 2025 11:41:24 -0400 Subject: [PATCH 02/10] add tutorial strings --- Pocket Poster/Localizable.xcstrings | 33 +++++++++++++++++++ .../Views/OnBoarding/OnBoardingPage.swift | 22 ++++++------- 2 files changed, 44 insertions(+), 11 deletions(-) diff --git a/Pocket Poster/Localizable.xcstrings b/Pocket Poster/Localizable.xcstrings index 01b87a1..6d84001 100644 --- a/Pocket Poster/Localizable.xcstrings +++ b/Pocket Poster/Localizable.xcstrings @@ -506,6 +506,9 @@ } } } + }, + "Enjoy!" : { + }, "Enter App Hash" : { "localizations" : { @@ -759,6 +762,9 @@ } } } + }, + "Find Wallpapers" : { + }, "Finish" : { "localizations" : { @@ -815,6 +821,12 @@ } } } + }, + "Get Shortcut" : { + + }, + "Here is a tutorial to help you get started with the app." : { + }, "Home" : { "localizations" : { @@ -843,6 +855,12 @@ } } } + }, + "Install Nugget" : { + + }, + "Install the Fallback Shortcut (Optional)" : { + }, "Join the Discord" : { "localizations" : { @@ -1068,6 +1086,9 @@ } } } + }, + "Open GitHub" : { + }, "Please wait" : { "localizations" : { @@ -1488,6 +1509,12 @@ } } } + }, + "To apply, PosterBoard will need to open.\n\nYou can install an optional shortcut if the original method fails." : { + + }, + "To get the app bundle id, Nugget is required.\n\nOn your computer, download Nugget from the GitHub." : { + }, "Version %@ (%@)" : { "localizations" : { @@ -1606,6 +1633,9 @@ } } } + }, + "Welcome to Pocket Poster!" : { + }, "Would you like to download the file %@?" : { "localizations" : { @@ -1634,6 +1664,9 @@ } } } + }, + "You can find wallpapers on the official Cowabun.ga website." : { + }, "You can only apply %@ descriptors." : { "localizations" : { diff --git a/Pocket Poster/Views/OnBoarding/OnBoardingPage.swift b/Pocket Poster/Views/OnBoarding/OnBoardingPage.swift index c4ae929..399220b 100644 --- a/Pocket Poster/Views/OnBoarding/OnBoardingPage.swift +++ b/Pocket Poster/Views/OnBoarding/OnBoardingPage.swift @@ -29,30 +29,30 @@ struct OnBoardingPage: Identifiable { let onBoardingCards: [OnBoardingPage] = [ .init( - title: "Welcome to Pocket Poster!", - description: "Here is a tutorial to help you get started with the app.", + title: NSLocalizedString("Welcome to Pocket Poster!", comment: ""), + description: NSLocalizedString("Here is a tutorial to help you get started with the app.", comment: ""), image: "Logo" ), .init( - title: "Install the Fallback Shortcut (Optional)", - description: "To apply, PosterBoard will need to open.\n\nYou can install an optional shortcut if the original method fails.", + title: NSLocalizedString("Install the Fallback Shortcut (Optional)", comment: ""), + description: NSLocalizedString("To apply, PosterBoard will need to open.\n\nYou can install an optional shortcut if the original method fails.", comment: ""), image: "Shortcuts", link: URL(string: PosterBoardManager.ShortcutURL), - linkName: "Get Shortcut" + linkName: NSLocalizedString("Get Shortcut", comment: "") ), .init( - title: "Install Nugget", - description: "To get the app bundle id, Nugget is required.\n\nOn your computer, download Nugget from the GitHub.", + title: NSLocalizedString("Install Nugget", comment: ""), + description: NSLocalizedString("To get the app bundle id, Nugget is required.\n\nOn your computer, download Nugget from the GitHub.", comment: ""), image: "Nugget", link: URL(string: "https://github.com/leminlimez/Nugget/releases/latest"), - linkName: "Open GitHub" + linkName: NSLocalizedString("Open GitHub", comment: "") ), .init( - title: "Enjoy!", - description: "You can find wallpapers on the official Cowabun.ga website.", + title: NSLocalizedString("Enjoy!", comment: ""), + description: NSLocalizedString("You can find wallpapers on the official Cowabun.ga website.", comment: ""), image: "Cowabunga", link: URL(string: PosterBoardManager.WallpapersURL), - linkName: "Find Wallpapers" + linkName: NSLocalizedString("Find Wallpapers", comment: "") ) ] From 2148a348dac6fa49dfb9c207a6f5d52126ecd204 Mon Sep 17 00:00:00 2001 From: leminlimez <59540996+leminlimez@users.noreply.github.com> Date: Sat, 21 Jun 2025 08:12:51 -0400 Subject: [PATCH 03/10] add video import duration limit --- .../Controllers/PosterBoardManager.swift | 38 -------------- Pocket Poster/Controllers/VideoHandler.swift | 49 +++++++++++++++++++ Pocket Poster/Localizable.xcstrings | 6 +++ .../Views/NavigatorViews/VideoView.swift | 8 ++- 4 files changed, 62 insertions(+), 39 deletions(-) diff --git a/Pocket Poster/Controllers/PosterBoardManager.swift b/Pocket Poster/Controllers/PosterBoardManager.swift index 4260e12..df51564 100644 --- a/Pocket Poster/Controllers/PosterBoardManager.swift +++ b/Pocket Poster/Controllers/PosterBoardManager.swift @@ -8,44 +8,6 @@ import Foundation import ZIPFoundation import UIKit -import CoreTransferable - -struct Movie: Transferable { - let url: URL - - static var transferRepresentation: some TransferRepresentation { - FileRepresentation(contentType: .movie) { movie in - SentTransferredFile(movie.url) - } importing: { received in - let videoFolder = SymHandler.getDocumentsDirectory().appendingPathComponent("Videos", conformingTo: .directory) - if !FileManager.default.fileExists(atPath: videoFolder.path()) { - try? FileManager.default.createDirectory(at: videoFolder, withIntermediateDirectories: true) - } - let copy = videoFolder.appending(path: "\(UUID()).mp4") - - if FileManager.default.fileExists(atPath: copy.path()) { - try FileManager.default.removeItem(at: copy) - } - - try FileManager.default.copyItem(at: received.file, to: copy) - return Self.init(url: copy) - } - } -} - -enum LoadState { - case unknown, loading, loaded(Movie), failed -} - -struct LoadInfo: Identifiable, Equatable { - static func == (lhs: LoadInfo, rhs: LoadInfo) -> Bool { - lhs.id == rhs.id - } - - var id = UUID() - var autoReverses: Bool = false - var loadState: LoadState -} class PosterBoardManager: ObservableObject { static let ShortcutURL = "https://www.icloud.com/shortcuts/a28d2c02ca11453cb5b8f91c12cfa692" diff --git a/Pocket Poster/Controllers/VideoHandler.swift b/Pocket Poster/Controllers/VideoHandler.swift index 709f09c..c911b19 100644 --- a/Pocket Poster/Controllers/VideoHandler.swift +++ b/Pocket Poster/Controllers/VideoHandler.swift @@ -8,6 +8,7 @@ import Foundation import AVFoundation import UIKit +import CoreTransferable extension CGImage { var png: Data? { @@ -23,7 +24,55 @@ extension CGImage { } } +struct Movie: Transferable { + let url: URL + + static var transferRepresentation: some TransferRepresentation { + FileRepresentation(contentType: .movie) { movie in + SentTransferredFile(movie.url) + } importing: { received in + let videoFolder = SymHandler.getDocumentsDirectory().appendingPathComponent("Videos", conformingTo: .directory) + if !FileManager.default.fileExists(atPath: videoFolder.path()) { + try? FileManager.default.createDirectory(at: videoFolder, withIntermediateDirectories: true) + } + let copy = videoFolder.appending(path: "\(UUID()).mp4") + + if FileManager.default.fileExists(atPath: copy.path()) { + try FileManager.default.removeItem(at: copy) + } + + try FileManager.default.copyItem(at: received.file, to: copy) + return Self.init(url: copy) + } + } +} + +enum LoadState { + case unknown, loading, loaded(Movie), failed +} + +struct LoadInfo: Identifiable, Equatable { + static func == (lhs: LoadInfo, rhs: LoadInfo) -> Bool { + lhs.id == rhs.id + } + + var id = UUID() + var autoReverses: Bool = false + var loadState: LoadState +} + class VideoHandler { + static let MaxDurationSecs = 12.0 + + static func isVideoTooLong(at url: URL) -> Bool { + let asset = AVAsset(url: url) + + let duration = asset.duration + let durationTime = CMTimeGetSeconds(duration) + + return durationTime > MaxDurationSecs + } + static func createCaml(from url: URL, autoReverses: Bool) throws -> URL { // copy the resources let descrURL = SymHandler.getDocumentsDirectory().appendingPathComponent(UUID().uuidString, conformingTo: .directory) diff --git a/Pocket Poster/Localizable.xcstrings b/Pocket Poster/Localizable.xcstrings index 6d84001..5394f48 100644 --- a/Pocket Poster/Localizable.xcstrings +++ b/Pocket Poster/Localizable.xcstrings @@ -706,6 +706,9 @@ } } } + }, + "Failed to Import Video" : { + }, "Fallback Shortcut Creator" : { "localizations" : { @@ -1509,6 +1512,9 @@ } } } + }, + "The video you imported is too long! Your video must be %@ seconds or less." : { + }, "To apply, PosterBoard will need to open.\n\nYou can install an optional shortcut if the original method fails." : { diff --git a/Pocket Poster/Views/NavigatorViews/VideoView.swift b/Pocket Poster/Views/NavigatorViews/VideoView.swift index 9841c61..97267b8 100644 --- a/Pocket Poster/Views/NavigatorViews/VideoView.swift +++ b/Pocket Poster/Views/NavigatorViews/VideoView.swift @@ -11,6 +11,7 @@ import AVKit struct VideoView: View { @ObservedObject var pbManager = PosterBoardManager.shared + @AppStorage("ignoreDurationLimit") var ignoreDurationLimit: Bool = false @State var selectedVideo: PhotosPickerItem? @@ -103,7 +104,12 @@ struct VideoView: View { do { if let movie = try await selectedVideo?.loadTransferable(type: Movie.self) { await MainActor.run { - pbManager.videos[id].loadState = .loaded(movie) + if !ignoreDurationLimit && VideoHandler.isVideoTooLong(at: movie.url) { + pbManager.videos.remove(at: id) + UIApplication.shared.alert(title: NSLocalizedString("Failed to Import Video", comment: ""), body: String(format: NSLocalizedString("The video you imported is too long! Your video must be %@ seconds or less.", comment: ""), "\(Int(VideoHandler.MaxDurationSecs))")) + } else { + pbManager.videos[id].loadState = .loaded(movie) + } } } else { await MainActor.run { From ec1293e3e458774b89903b23575a21c521b20dc2 Mon Sep 17 00:00:00 2001 From: leminlimez <59540996+leminlimez@users.noreply.github.com> Date: Sat, 21 Jun 2025 08:20:15 -0400 Subject: [PATCH 04/10] add community translators to credits --- .../Credits/POEditor.imageset/Contents.json | 21 ++++++++++++++++++ .../Credits/POEditor.imageset/POEditor@2x.png | Bin 0 -> 20334 bytes Pocket Poster/Localizable.xcstrings | 3 +++ Pocket Poster/Views/SettingsView.swift | 1 + 4 files changed, 25 insertions(+) create mode 100644 Pocket Poster/Assets.xcassets/Credits/POEditor.imageset/Contents.json create mode 100644 Pocket Poster/Assets.xcassets/Credits/POEditor.imageset/POEditor@2x.png diff --git a/Pocket Poster/Assets.xcassets/Credits/POEditor.imageset/Contents.json b/Pocket Poster/Assets.xcassets/Credits/POEditor.imageset/Contents.json new file mode 100644 index 0000000..480979c --- /dev/null +++ b/Pocket Poster/Assets.xcassets/Credits/POEditor.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "POEditor@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Pocket Poster/Assets.xcassets/Credits/POEditor.imageset/POEditor@2x.png b/Pocket Poster/Assets.xcassets/Credits/POEditor.imageset/POEditor@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..cd629cdb5bb4a5907500de85d8b76b6ee5e79747 GIT binary patch literal 20334 zcmeFZ=R;Fn@GeRMNRuY*RgfyZDF}!d2-2kY-jrUXHwi6ZK|leKUL#0v(tD9!6hiMs z>4Z)~AP~6Q-?{gmKjC~iA9fOw*=wymYt}Qfo|#3Ij+P1~`8{$10s>0a7m9iW1R(Uk zi}V)o&G7U}H1G!U(NlR&P%*-?1N@=DQS%7r%S!rFp!qE zWmr3p0>aGjv^>kulEbFlzt_?ss%?AYXJJS3ZLmue^b|~l-uyhvr5#==Qo-`FsaQd1 zX5Z1&NY40sgIaDW?(X-{=u?f@C0ZvngjtrgkFeKP^qNNK#lUe3I849)2W7YkIStZw zuI#6Q%lXyNvXSnt(~K9%N4H{v3fK&%Ld0N}1&z~-PCd|4;B#WEsz768?rj}iW<*zI6NEfFbz5OEf1+D z|GQNj^jCpS$G+qvR0J%pr<4{wN7!FVvTZ{1v7G<}!MV-8q!bVk)Mul7kyQphzu5I| zKKOik9q?AKOrsv&(o^oIl@>I4j{Uk1-Ctt|#-boNUHlgI6i+jwX8qdqK-#5__1Al1 z5K;Oa9qiQ7ei|(irXYTnkr>cFy%~R`7?t(o4d1EMlw!*%K?fmH_V~iiXtTk@4zV{^ zyU*fm1BgBWYGj_EzhHV0PV`P zvg-a;VF_2oGMl430Vs#qMM%bPQav)nEo$^4{uwwMuu8}VTC(aDMIoh@>BwgRL;U<* zU=T#yF9!u7$@a<*k2G{v*VoMZCaDw3BOat&fOim{6IArAyK zsh8jm6XID(Q?n_<{^}&BRJZ7(IN9Owd#T0#LG>vkgx;ByUw{T#y~RIUJoEd68fp`W zrzUOUvx_4D2T_!jFD1;~B)wXjLYE4WrV2x;A>YsD9-&Nk{b&3zf=<9Zy)1yv_&TfI zFyph*dh-lOgE^qkn=a0HZP<7sHFdRULr=4n{j6lX#vl=hh@9!iB!LzYx(okA>>)^` zi9}gAm*j(2*1XEpQ74w5RR2dtb-lVO#a#$&;oJb^^Pv^os~ zsl7-h(>oYFxcY&W%e1OsP-SaJNFDk5Oz~8!zE%H+I8sHOm-=xH;`i@Li$n;gAUIET zGO0h8=e)G$D(;`UN&avd|4fw=4m|?9&9E3eRtK1?u0;b)D-CVCK#)hc}lE+6=0ref1YV*jK-4scDle>t#skVRfc4+u*85gm4JjWl0 z414b>iOQPy+Fxxh&2o_d%bV(j=Dyh9&&7E?{)HtWL+SHzZlvejoVR2Q2X?H zZ~D7_&DJ+G%%84eM>Z0G+PpH98}?G~3;Pwq&iBWa18fMvtYq8j8&BVa)hTFSc(=Ht zJ0ae`dD9StFhcv`?bU;52^Era=~0cK_V5ssBu`*a*}PEyk(2pJ1HX=7gY3v^8L%|P zcHysK8Fa!)Y+LouXIq4GV@x1IFbofK(}A3C2@j_kWvc#ub2eAvhY45>Isp_PSQ~f| zF%+8S>rz0z*>?KmlO^qd>Pusq8OX8iyx-`~fBxjkot<#2%D)FJ_g8zXa#HcHr=nrZ z7wI&>5Mn7IHeLNrAC%s{^3ozk2r|II$aZ-kt%gw!P`lO z?_eTBs!_9Xw2N5JC_ED|N1D%E{!Fgj7rcBRGm*8q+AH##VmqKyn}0!$dBATpv-frQ zM`H9+YQ;voL(?>yxQ*QL3A&`NMe2wn8E{n&>3-{7{9BDO%AsqjXAWhvi?#5Bô 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 Date: Sat, 21 Jun 2025 08:59:47 -0400 Subject: [PATCH 05/10] add/update languages + fix localization \n problem ar, ar-ae, ar-sa, cs, nl, fr, fr-ch, de, hu, ja, pl, ru, es, es-mx, th, tr, vi --- Pocket Poster/Localizable.xcstrings | 5296 ++++++++++++++++- .../Pocket-Poster-InfoPlist.xcstrings | 126 + .../Views/OnBoarding/OnBoardingPage.swift | 4 +- 3 files changed, 5406 insertions(+), 20 deletions(-) diff --git a/Pocket Poster/Localizable.xcstrings b/Pocket Poster/Localizable.xcstrings index 8ac5609..746fa6d 100644 --- a/Pocket Poster/Localizable.xcstrings +++ b/Pocket Poster/Localizable.xcstrings @@ -3,52 +3,208 @@ "strings" : { "Actions" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "العمليات" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "إجراءات" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "إجراءات" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Akce" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aktionen" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Acciones" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Acciones" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Actions" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Actions" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Műveletek" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "アクション" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Acties" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Opcje" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Действия" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "ดำเนินการ" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Eylemler" + } + }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hành động" + "value" : "Tác vụ" } } } }, "App Cache Successfully Cleared!" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "تم مسح ذاكرة التخزين المؤقت للتطبيق بنجاح!" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "تم مسح ذاكرة التخزين المؤقت بنجاح!" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "تم مسح ذاكرة التخزين المؤقت للتطبيق بنجاح!" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aplikační Cache Úspěšně Vyčištěna!" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "App-Cache erfolgreich geleert!" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "El cache de la aplicación fue limpiado con exito!" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "¡Caché de la app eliminada satisfactoriamente!" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Cache de l'application vidé avec succès!" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cache de l'app vidé avec succès !" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Az app gyorsítótára sikeresen tisztítva!" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "アプリのキャッシュがクリアされました" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "App Cache Succesvol Schoongemaakt!" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hash aplikacji wyczyszczony!" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Кэш успешно очищен!" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "ล้างแคชแอปสำเร็จแล้ว!" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Uygulama Önbelleği Başarıyla Temizlendi!" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -59,24 +215,96 @@ }, "App Hash" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "معرّف هاش التطبيق" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "مفتاح الهاش للتطبيق" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hash Aplikace" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "App Hash" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "App Hash" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hash de la app" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Hash de l'application" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "App Hash" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "App Hashje" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "アプリハッシュ" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "App Hash" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hash aplikacji" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "App Hash" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "แฮชแอป" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Uygulama Hash'i" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -87,24 +315,102 @@ }, "Apply" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "تطبيق" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "تطبيق" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "تطبيق" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aplikovat" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Anwenden" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Aplicar" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aplicar" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Appliquer" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appliquer" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Alkalmazás" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "適用" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toepassen" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Zastosuj" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Подтвердить" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "ใช้งาน" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Uygula" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -115,24 +421,102 @@ }, "Applying Wallpapers..." : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "جاري تعيين الخلفيات…" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "تطبيق الخلفيات..." + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "جارٍ تطبيق الخلفيات..." + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aplikuji Tapety..." + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hintergrundbilder werden angewandt..." + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Aplicando Fondos de Pantalla" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aplicando fondos de pantalla…" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Application de fonds d'écran..." } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Application des fonds d'écrans..." + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Háttérképek alkalmazása..." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "壁紙を適用中" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Achtergrond Toepassen…" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Zastosowanie tapet..." + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Сохранение обоев..." + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "กำลังตั้งค่าวอลเปเปอร์…" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Duvar Kağıtları Uygulanıyor..." + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -143,24 +527,102 @@ }, "Cancel" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "إلغاء" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "الغاء" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "إلغاء" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Zrušit" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abbrechen" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Cancelar" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cancelar" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Annuler" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Annuler" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mégsem" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "キャンセル" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Annuleren" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Anuluj" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Отмена" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "ยกเลิก" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "İptal Et" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -171,24 +633,102 @@ }, "Clear App Cache" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "حذف بيانات التخزين المؤقت للتطبيق" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "مسح ذاكرة التخزين المؤقت للتطبيق" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "مسح ذاكرة التخزين المؤقت" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vyčistit Aplikační Cache" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "App-Cache löschen" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Limpiar cache de aplicación" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Limpiar Caché de la App" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Vider le cache de l'application" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vider le cache de l'app" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "App gyorsítótárának tisztítása" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "キャッシュをクリア" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "App Cache Verschonen" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wyczyść Cache aplikacji" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Очистить кэш" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "ล้างแคชแอป" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Uygulama Önbelleğini Temizle" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -199,24 +739,96 @@ }, "Collections Successfully Reset!" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "تم اعادة تعيين المجموعات بنجاح!" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "تم إعادة تعيين المجموعات بنجاح!" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Kolekce Úspěšně Resetovány!" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sammlungen erfolgreich zurückgesetzt!" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "¡Colecciones reiniciadas exitosamente!" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "¡Colecciones reiniciadas satisfactoriamente!" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Réinitialisation des collections réussie!" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Collections réinitialisées avec succès!" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gyűjtemények sikeresen visszaállítva!" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "コレクションが正常にリセットされました" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Collecties Succesvol Hersteld!" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Kolekcje zresetowane!" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Коллекции успешно сброшены!" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "รีเซ็ตคอลเลกชันสำเร็จแล้ว!" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Koleksiyonlar Başarıyla Sıfırlandı!" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -226,28 +838,113 @@ } }, "Community Translators" : { - + "localizations" : { + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Сообщество переводчиков" + } + } + } }, "Could not download wallpaper!" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "حدث فشل في تحميل الخلفية!" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "تعذر تحميل الخلفية!" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "لم يمكن تحميل الخلفية!" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nepodařilo se stáhnout tapetu!" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hintergrundbild konnte nicht heruntergeladen werden!" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "¡No se pudo descargar el fondo de pantalla!" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "¡No se pudo descargar el fondo de pantalla!" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Erro télécharge le fond d'écran!" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fond d'écran n'a pas pu être téléchargé!" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nem sikerült letölteni a háttérképet!" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "壁紙がダウンロードできませんでした" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Achtergrond downloaden mislukt!" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nie udało sie pobrać tapety!" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ошибка загрузки обоев!" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "ดาวน์โหลดวอลเปเปอร์ไม่สำเร็จ!" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Duvar Kağıdı İndirilemedi!" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -258,24 +955,96 @@ }, "Create Additional Fallback Method" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "انشئ طريقة بديلة اضافية لإستخدامها" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "إنشاء طريقة بديلة إضافية" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vytvořit Dodatečnou Záložní Metodu" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Zusätzliche Fallback-Methode erstellen" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Crear un método de respaldo adicional" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Crear Método de respaldo adicional" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Créer une méthode de secours supplémentaire" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Créer une méthode additionnelle de Fallback" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "További tartalék módszer létrehozása" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "追加のフォールバックメソッドの作成" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Maak een extra Terugval Methode" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Stworz opcjonalna metodę Fallbacku" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Создать свою Fallback Shortcut" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "สร้างวิธีสำรองเพิ่มเติม" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ek Fallback yöntemi ekle" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -287,24 +1056,102 @@ "Creating %@..." : { "comment" : "the message for the current image that is being generated", "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "جاري التصميم %@..." + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "إنشاء %@العنصر..." + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "جارٍ إنشاء %@..." + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vytvářím %@..." + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Erstelle %@..." + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Creando %@..." } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Creando %@..." + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Création %@..." } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Création de %@" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ készítése..." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ を作成中…" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Creëren %@…" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tworzenie %@" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Создание %@..." + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "กำลังสร้าง %@..." } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Oluşturuluyor %@..." + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -316,24 +1163,96 @@ "Creating CAML data..." : { "comment" : "translate this however you see fits", "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "جاري إنشاء ملف معلومات الخلفية…" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "إنشاء معلومات CAML..." + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vytvářím CAML data..." + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Erstelle CAML-Daten..." + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Creando datos CAML..." } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Creando datos CAML..." + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Création de données CAML..." } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Création des données CAML..." + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "CAML adat készítése..." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "CAMLデータの作成中…" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "CAML data creëren…" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tworzenie danych CAML..." + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Сбор данных..." + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "กำลังสร้างข้อมูล CAML" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "CAML verisi oluşturuluyor..." + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -344,24 +1263,96 @@ }, "Credits" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "مساهمين" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "الاعتمادات" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Kdo se podílel" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Credits" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Creditos" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Créditos" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Crédits" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Crédits" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Közreműködők" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "クレジット" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Met dank aan" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Twórcy" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Авторы" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "เครดิต" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Külçe" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -372,24 +1363,102 @@ }, "Detect" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "تم الكشف" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "تم التحقق" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "كشف" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Detekovat" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Erkennen" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Detectar" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Detectar" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Détecter" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Détecter" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Érzékelés" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "検出" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Detecteren" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wykryj" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Найдено" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "ตรวจจับ" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tespit et" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -400,24 +1469,96 @@ }, "Do you want to reset collections?" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "هل ترغب بإعادة تعيين المجموعات ؟" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "هل ترغب في إعادة ضبط المجموعات؟" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Přejete si resetovat kolekce?" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Möchten Sie die Sammlungen zurücksetzen?" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "¿Quieres reiniciar las colecciones?" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "¿Quieres reiniciar las colecciones?" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Voulez-vous réinitialiser les collections?" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voulez-vous réinitialiser les collections?" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Visszaszeretnéd állítani a gyűjteményeket?" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "コレクションをリセットしますか?" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wil je de collecties resetten?" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Czy chcesz zresetować kolekcje?" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Сбросить коллекции?" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "คุณต้องการรีเซ็ตคอลเลคชั่นหรือไม่?" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Koleksiyonları sıfırlamak istiyor musunuz?" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -428,52 +1569,202 @@ }, "Download Fallback Shortcut" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "تحميل الإختصار البديل" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "تحميل اختصار البديل" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Stáhnout Záložní Zkratku" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fallback Shortcut herunterladen" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Descargar acceso directo de respaldo" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Descargar atajo de respaldo" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Télécharger le raccourci de secours" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Téléchargement du raccourcis Fallback " + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tartalék parancs letöltése" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "フォールバックショートカットをダウンロード" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Download Terugval Snelkoppeling" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pobierz skrót fallback" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Скачать Fallback Shortcut" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "ดาวน์โหลด Shortcut สำรอง" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fallback kestirmesini indir" + } + }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải xuống phím tắt dự phòng" + "value" : "Tải xuống Phím tắt dự phòng" } } } }, "Download Tendies File" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "تحميل ملف ال Tendies" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "تحميل ملف Tendies" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "تحميل ملف Tendies" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Stáhnout Tendies Soubor" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tendies-Datei herunterladen" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Descargar archivo Tendies" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Descargar archivo Tendies" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Télécharger un fichier de Tendies" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Télécharger le fichier Tendies" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tendies fájl letöltése" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tendiesファイルをダウンロード" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Download Tendies Bestand" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pobierz pliki tendies" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Скачать файл Tendies" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "ดาวน์โหลดไฟล์ Tendies" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tendies dosyası indir" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -484,24 +1775,102 @@ }, "Downloading" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "جاري التحميل" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "يتم التحميل" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "يتم التحميل" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Stahuji" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Herunterladen" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Descargando" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Descargando" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Téléchargement" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Téléchargement" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Letöltés folyamatban" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ダウンロード中" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Downloaden" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pobieranie" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Загрузка" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "กำลังดาวน์โหลด" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "İndiriliyor" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -511,28 +1880,161 @@ } }, "Enjoy!" : { - + "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "استمتع!" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "استمتع!" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Viel spaß!" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Disfruta!" + } + }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Disfruta!" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Jouir!" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ciesz się tapetami!" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Вперёд!" + } + }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "เอ็นจอย!" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hãy thưởng thức!" + } + } + } }, "Enter App Hash" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "ادخل هاش التطبيق" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "أدخل الهاش" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Zadejte Hash Aplikace" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "App-Hash eingeben" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Ingresar el hash de la aplicación" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ingresar el hash de la app" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Saisir le App Hash" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Insérer le Hash de l'app" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Írd be az App hashjét" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "アプリハッシュを入力" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voer de App Hash in" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Podaj Hash Aplikacji" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Введите App Hash" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "ใส่แฮชแอป" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Uygulama Hash'i gir" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -543,24 +2045,96 @@ }, "Enter your PosterBoard app hash in Settings." : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "ادخل هاش تطبيق PosterBoard خاصتك بالإعدادات." + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "أدخل الهاش لتطبيق PosterBoard في الإعدادات." + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Zadejte váš hash PosterBoard aplikace v Nastavení." + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Geben Sie Ihren PosterBoard App-Hash in den Einstellungen ein." + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Ingrese el hash de su aplicación PosterBoard en Configuración." } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ingresa el hash de tu app PosterBoard en configuración." + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Entrez votre app hash de PosterBoard dans les Paramètres." } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Insérer votre PosterBoard hash de l'app dans les paramètres." + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Írd be a PosterBoard app hashedet a Beállításokban." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "設定でPosterBoardアプリのハッシュを入力してください。" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voer je PosterBoard app hash in instellingen toe" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Podaj hash aplikacji PosterBoard w ustawieniach." + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Введите свой App Hash в настройках" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "ใส่แฮชแอปโปสเตอร์บอร์ดของคุณในเมนูการตั้งค่า" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ayarlarda PosterBoard uygulama Hash'i girin." + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -571,24 +2145,102 @@ }, "Error" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "خطأ" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "خطاء" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "خطأ" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Chyba" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fehler" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Error" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Error" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Erreur" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Erreur" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hiba" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "エラー" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fout" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Błąd" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ошибка" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "ของผิดพลาด" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hata" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -599,24 +2251,102 @@ }, "Exploit" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "استغلال الثغرة" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "استغلال" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "مؤسس الثغرة" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exploit" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ausnutzen" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Exploit" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exploit" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Exploitation" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exploit" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exploit" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exploit" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Kwetsbaarheid" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exploit" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Эксплойт" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "Exploit" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Açığı Kullan" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -628,24 +2358,102 @@ "Extracting tendies..." : { "comment" : "happens when unzipping the files", "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "جاري استخراج ملفات ال ... tendies" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "استخراج tendies..." + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "جارٍ استخراج tendies..." + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Extrahuji tendies..." + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tendies werden extrahiert..." + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Extrayendo tendies..." } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Extrayendo tendies..." + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "L'extraction des tendies..." } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Excraction des tendies..." + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tendies kicsomagolása..." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tendiesを解凍中…" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Uitpakken tendies…" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wyciąganie tendies..." + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Извлечение .tendies..." + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "กำลังดึงข้อมูล tendies…" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tendies dışa aktarılıyor..." + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -656,24 +2464,102 @@ }, "Failed" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "فشل" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "فشل" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "فشل" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Selhalo" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gescheitert" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Fallido" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fallido" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Échec" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Échué" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sikertelen" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "失敗" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mislukt" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nie udało się" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ошибка" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "ไม่สำเร็จ" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Başarısız" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -684,24 +2570,102 @@ }, "Failed to import tendies" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "فشل في استيراد ال tendies" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "\"فشل في استيراد tendies\"" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "فشل في استيراد ملفات tendies" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Selhal import tendies" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Die Einfuhr von Tendies ist fehlgeschlagen" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "No se pudieron importar tendies" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "No se pudieron importar los tendies" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "N'a pas réussi à importer les tendies" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Échec de l'importation des tendies" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "A tendies importálása sikertelen" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tendiesのインポートに失敗しました" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toevoegen van tendies mislukt" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nie udało sie zaimportować tendies" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ошибка при импорте .tendies" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "นำเข้า tendies ไม่สำเร็จ" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tendies dosyaları içe aktarılırken hata oluştu" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -711,28 +2675,113 @@ } }, "Failed to Import Video" : { - + "localizations" : { + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ошибка при импорте видео" + } + } + } }, "Fallback Shortcut Creator" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "مصمم الإختصار البديل" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "إنشاء اختصار البدائل" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "صانع اختصار Fallback" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tvorba Záložní Zkratky" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fallback Shortcut Creator" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Creador de atajos de respaldo" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Creador del atajo de respaldo" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Créateur de raccourcis de secours" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Créateur de raccourcis Fallback" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tartalék parancs készítő" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "フォールバックショートカット作成者" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Terugval Snelkoppeling Maker" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tworzenie skrótu fallback" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Создатель Fallback Shortcut" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "ตัวสร้าง Shortcut สำรอง" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fallback Kestirme Oluşturucusu" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -743,24 +2792,96 @@ }, "Falling Back to Shortcut" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "جاري استخدام طريقة الاختصارات البديلة" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "الرجوع إلى الاختصار" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Přechod na Náhradní Zkratku" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rückgriff auf Kurzbefehle" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Regresar al atajo" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Recurriendo al atajo" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Retomber dans le raccourci" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Revenir au raccourcis" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Visszatérés a parancshoz" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ショートカットに戻る" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Terugvallen op Snelkoppeling" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Powracanie do skroru fallback" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Возвращение к Fallback" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "กำลังย้อนกลับไปใช้ Shortcut" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Kestirmeye geri düşülüyor" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -770,28 +2891,167 @@ } }, "Find Wallpapers" : { - + "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "العثور على خلفيات للجهاز" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "ابحث عن الخلفيات" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Finde Hintergrundbilder" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Encontrar fondos de pantalla" + } + }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Buscar fondos de pantalla" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Trouver des fonds d'écran" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Poszukaj tapet" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Галерея обоев" + } + }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ค้นหาวอลเปเปอร์" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tìm kiếm Hình nền" + } + } + } }, "Finish" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "إنهاء" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "إنهاء" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "أنهاء" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Dokončit" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abschließen" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Finalizar" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Terminar" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Finir" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Terminer" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Befejezés" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "終了" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Einde" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Koniec" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Готово" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "เสร็จ" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tamamla" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -802,24 +3062,102 @@ }, "Generating Video..." : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "جاري إنشاء الفيديو…" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "جارٍ إنشاء الفيديو..." + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "جارٍ إنشاء الفيديو..." + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Generuji Video..." + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Video wird generiert..." + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Generando vídeo..." } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Generando video…" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Générer des vidéos..." } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Géneration de la vidéo..." + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Videó generálása..." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "動画を生成中…" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Video Genereren" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Generawonie filmu.." + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Генерация видео..." + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "กำลังสร้างวิดีโอ" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Video oluşturuluyor..." + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -829,31 +3167,225 @@ } }, "Get Shortcut" : { - + "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "الحصول على الاختصار" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "احصل على الأختصار" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Kurzbefehl holen" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Obtener el atajo" + } + }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Conseguir el atajo" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Obtenir un raccourci" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Zdobądź skrót" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Получить Fallback" + } + }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "รับ Shortcut" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tải xuống Phím tắt" + } + } + } }, "Here is a tutorial to help you get started with the app." : { - + "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "هذا دليل تعليمي لمساعدتك على البدء بإستخدام التطبيق." + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "إليك دليل تعليمي لمساعدتك على البدء باستخدام التطبيق." + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aqui esta un tutorial para ayudarte a empezara a usar la aplicación" + } + }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aquí hay un tutorial para ayudarte a empezar a utilizar la aplicación." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voici un tutoriel pour vous aider à démarrer avec l'application." + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Poradnik jak korzystać z aplikacji." + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Эта инструкция поможет вам начать пользоваться данным приложением." + } + }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "นี่คือบทแนะนำเพื่อให้คุณเริ่มต้นใช้งานแอปได้" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Đây là hướng dẫn trước khi bạn bắt đầu sử dụng ứng dụng này." + } + } + } }, "Home" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "الرئيسية" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "الصفحة الرئيسية" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "الصفحة الرئيسية" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Domů" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Startseite" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Inicio" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Inicio" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Accueil" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Acceuil" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Főképernyő" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ホーム" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Thuis" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Dom" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Домой" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "หน้าหลัก" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ana sayfa" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -863,31 +3395,231 @@ } }, "Install Nugget" : { - + "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "تحميل Nugget" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "نزل Nuggrt" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nugget installieren" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Instala Nugget" + } + }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Instalar Nugget" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Installer Nugget" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Zainstaluj Nugget" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Установить Nugget" + } + }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ติดตั้ง Nugget" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tải xuống Nugget" + } + } + } }, "Install the Fallback Shortcut (Optional)" : { - + "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "تحميل الاختصار البديل ( اختياري )" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "تثبيت اختصار fallback (اختياري)" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Kurzbefehl als Fallback installieren (Optional)" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Instala el atajo de respaldo (opcional)" + } + }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Instalar el atajo de respaldo (opcional)" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Installer le raccourci de repli (optionnel)" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Zainstaluj skrót fallback (opcjonalne)" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Установите Fallback Shortcut (По желанию)" + } + }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ติดตั้ง Shortcut สำรอง (ไม่บังคับลง)" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cài đặt Phím tắt Dự phòng (Thích thì tải)" + } + } + } }, "Join the Discord" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "أنضم الى الديسكورد" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "انضم إلى Discord" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "انضم الى الدسكورد" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Přidej se na Discord Server" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Discord beitreten" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Unete a nuestro Discord" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Únete al Discord" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Rejoindre le Discord" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rejoigner le Discord" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Csatlakozz a Discordhoz" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Discordサーバに参加" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Meedoen aan Discord" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Dołącz do naszego Discorda" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Присоединиться к Discord серверу" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "เข้ารวม Discord" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Discord sunucusuna katıl" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -898,24 +3630,102 @@ }, "Links" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "روابط" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "روابط" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "روابط" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Odkazy" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Links" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Enlaces" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enlaces" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Liens" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Liens" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Linkek" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "リンク" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Links" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Linki" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ссылки" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "ลิงก์" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Linkler" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -927,24 +3737,102 @@ "Main Developer" : { "comment" : "leminlimez's contribution", "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "المطور الرئيسي" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "المطور الرئيسي" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "المطور الرئيسي" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hlavní Vývojář" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hauptentwickler" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Desarrollador Principal" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Desarrollador principal" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Développeur principal" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Développeur principal" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Főfejlesztő" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "メイン開発者" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hoofd Developer" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Główny developer" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Главный разработчик" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "ผู้พัฒนาหลัก" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ana geliştirici" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -955,24 +3843,102 @@ }, "Max Tendies Reached" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "تم بلوغ الحد الأقصى من ال Tendies" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "تم الوصول إلى الحد الأقصى من tendies" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "الحد الاقصى لـtendies وصل" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Maximální Počet Tendies Dosažen" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Maximale Tendies erreicht" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Cantidad Maxima de Tendies alcanzada" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Máximo de Tendies alcanzado" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Tendies maximales atteintes" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tendies maximum atteint" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Maximum Tendies elérve" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "tendiesの上限到達" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Maximale tendies Bereikt" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Limit tendies" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Достигнуто максимальное количество обоев" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "ถึงจำนวนสูงสุดของ Tendies แล้ว" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Maksimum tendies dosyası sınırına ulaşıldı" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -983,24 +3949,102 @@ }, "Next" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "التالي" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "التالي" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "التالي" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Další" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Weiter" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Siguiente" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Siguiente" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Suivant" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Suivant" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Következő" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "次" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Volgende" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Następny" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Далее" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "ถัดไป" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sonraki" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1011,24 +4055,102 @@ }, "Nugget GitHub" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "صفحة Nugget على GitHub" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nugget GitHub" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nugget Github" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nugger GitHub" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nugget GitHub" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Nugget Github" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "GitHub de Nugget" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Nugget GitHub" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nugget GitHub" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nugget GitHub" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nugget GitHub" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nugget GitHub" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nugget Github" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nugget Github" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "Nugget Github" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nugget GitHub" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1039,24 +4161,96 @@ }, "OK" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "حسناً" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "حسنا" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "OK" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "OK" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "OK" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "OK" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "OK" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "OK" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "OK" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "OK" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "OK" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "OK" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ок" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "โอเค" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tamam" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1065,26 +4259,168 @@ } } }, + "On your computer, download Nugget from the GitHub." : { + "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "على حاسوبك، قم بتحميل Nugget من GitHub." + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "قم بتنزيل Nugget على جهاز الكمبيوتر الخاص بك من GitHub." + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Auf Ihrem Computer installieren sie Nugget über GitHub." + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "En tu computadora, descargarlo desde GitHub" + } + }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "En tu computadora, descarga Nugget desde el GitHub." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sur votre ordinateur, téléchargez Nugget depuis GitHub." + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Na swoim komputerze pobierz Nugget z GitHuba." + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Установите Nugget из официального GitHub на ваш компьютер." + } + }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ดาวน์โหลด Nugget จาก GitHub บนคอมพิวเตอร์ของคุณ" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tải về Nugget trên máy tính từ Github." + } + } + } + }, "Only .tendies files can be downloaded!" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "فقط ملفات .tendies يمكن تحميلها!" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "فقط ملفات .tendies يمكن تحميلها!" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "فقط ملفات .tendies يمكن تحميلها!" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Staženy mohou být pouze .tendies soubory!" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Es können nur .tendies-Dateien heruntergeladen werden!" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Solo archivos .tendies pueden ser descargados" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "¡Solo archivos .tendies pueden ser descargados!" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Seuls les fichiers .tendies peuvent être téléchargés!" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Seulement les fichiers .tendies peuvent être téléchargés!" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Csak .tendies fájlt lehet letölteni!" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "tendiesファイルのみダウンロードできます" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Alleen .tendies bestanden kunnen worden gedownload!" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tylko pliki .tendies mogą być pobrane!" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Только файлы .tendies могут быть загружены!" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "สามารถดาวน์โหลดไฟล์ .tendies ได้เท่านั้น!" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sadece .tendies dosyaları indirilebilir!" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1094,28 +4430,167 @@ } }, "Open GitHub" : { - + "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "فتح GitHub" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "افتح على GitHub" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "GitHub öffnen" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abre GitHub" + } + }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abrir GitHub" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ouvrir GitHub" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Otwórz githuba" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Открыть GitHub" + } + }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "เปิด GitHub" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mở Github" + } + } + } }, "Please wait" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "الرجاء الإنتظار" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "الرجاء الانتظار" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please wait" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Prosím počkejte" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bitte warten" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Por favor espere" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Por favor espere" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Veuillez patienter" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Attendez s'il vous plait" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Kérlek várj" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "お待ちください" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Even geduld" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Proszę czekać" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Пожалуйста, подождите" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "กรุณารอ" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Lütfen bekleyin" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1126,24 +4601,102 @@ }, "Pocket Poster" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "بوكيت بوستر Pocket Poster" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pocket Poster Ar" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pocket Poster" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pocket Poster" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pocket Poster" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Pocket Poster" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pocket Poster" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Pocket Poster" } }, + "fr-CH" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pocket Poster" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pocket Poster" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pocket Poster" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pocket Poster" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pocket Poster" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pocket Poster" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "พ็อกเก็ตโปสเตอร์" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pocket Poster" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1154,24 +4707,90 @@ }, "PosterBoard failed to open directly. The fallback shortcut will now be opened." : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "فشل فتح تطبيق PosterBoard بشكل مباشر. سيتم فتح الاختصار البديل." + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "فشل PosterBoard في الفتح بشكل مباشر. سيتم فتح الاختصار البديل الآن." + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "PosterBoard se nemohl otevřít přímo. Otevře se záložní zkratka." + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "PosterBoard konnte nicht direkt geöffnet werden. Der Ersatz-Kurzebefehl wird nun geöffnet." + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "PosterBoard no se pudo abrir directamente. Ahora se abrirá el acceso directo alternativo." } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "PosterBoard no se pudo abrir directamente. Se utilizará el atajo de respaldo." + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "PosterBoard n'a pas pu s'ouvrir directement. Le raccourci de secours sera maintenant ouvert." } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "A PosterBoard közvetlen megnyitása sikertelen. A tartalék parancs most elindul." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "PosterBoardが直接開くことができませんでした。フォールバックショートカットが開きます。" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "PosterBoard gefaald om het direct te openen. De terugval snelkoppeling wordt nu geopend." + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nie udało sie otworzyć PosterBoard. Skrot fallback zostanie otwarty." + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "PosterBoard не был открыт напрямую. Открывается Fallback Shortcut" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "ไม่สามารถเปิดโปสเตอร์บอร์ดโดยตรง กำลังจะใช้ Shortcut สำรอง" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "PosterBoard doğrudan açılamadı. Fallback kestirmesi şimdi kullanılacak." + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1182,24 +4801,96 @@ }, "Release" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "الاصدار" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "الاصدار" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "الإصدار" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vydání" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Release" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Lanzar" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Lanzamiento" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Libération" } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Kiadás" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "リリース" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Uitbrengen" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wydanie" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Релиз" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "รีลีส" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sürüm" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1210,24 +4901,96 @@ }, "Replay Tutorial" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "اعادة تشغيل الدليل التعليمي" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "إعادة تشغيل الدليل" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "إعادة تشغيل الدليل التعليمي" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Přehrát návod" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tutorial erneut starten" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Reproducir de nuevo Tutorial" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Repetir el tutorial" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Répéter le tutoriel" } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tutorial újrajátszása" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "チュートリアルを再生" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tutorial opnieuw afspelen" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Powtórz poradnik" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Воспроизвести иструкцию заново" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "ดูบทแนะนำซ้ำ" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tekrar Oynatma Öğreticisi" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1238,24 +5001,90 @@ }, "Reset Collections" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "اعادة تعيين المجموعات" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "إعادة تعيين المجموعات" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Resetovat Kolekce" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sammlungen zurücksetzen" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Reiniciar colecciones" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reiniciar colecciones" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Réinitialiser les Collections" } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gyűjetmények visszaállítása" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "コレクションをリセット" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Collecties Terugzetten" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Zresetuj kolekcje" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Сбросить коллекции" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "รีเซ็ตคอลเลคชั่น" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Koleksiyonları sıfırla" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1266,24 +5095,96 @@ }, "Select Tendies" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "اختيار ال Tendies" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "حدد Tendies" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "اختار ملفات Tendies" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vybrat Tendies" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tendies auswählen" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Seleccionar Tendies" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Seleccionar Tendies" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Sélectionner Tendies" } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tendies kiválasztása" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tendiesを選択" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Kies Tendies" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wybierz tendies" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Выбрать Tendies" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "เลือก Tendies" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tendies dosyasını Seç" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1294,24 +5195,96 @@ }, "Selected Tendies" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "ال Tendies المختارة" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "تم تحديد Tendies" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "ملفات Tendies المختارة" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vybrané Tendies" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ausgewählte Tendies" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Tendies seleccionado" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tendies seleccionado" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Tendies sélectionnées" } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Kiválasztott Tendies" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "選択されたTendies" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Geselecteerden Tendies" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wybrane tendies" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Выбранные Tendies" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "Tendies ที่ถูกเลือก" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Seçilmiş Tendies dosyası" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1322,24 +5295,96 @@ }, "Skip" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "تخطي" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "تخطي" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "تخطي" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Přeskočit" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Überspringen" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Saltar" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Saltar" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Sauter" } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Kihagyás" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "スキップ" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Overslaan" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pomiń" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Пропустить" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "ข้าม" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Geç" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1350,24 +5395,96 @@ }, "Socials" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "وسائل التواصل" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "روابط التواصل الاجتماعي" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "روابط" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sociální Sítě" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Soziale Netzwerke" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Sociales" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sociales" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Sociales" } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Közösségi profilok" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ソーシャル" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sociale media" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sociale" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Социальные сети" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "โซเชียล" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sosyal Medya" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1378,24 +5495,96 @@ }, "Success!" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "تم بنجاح!" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "نجاح!" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "نجاح!" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Úspěch!" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Erfolg!" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Logrado!" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Éxito!" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Succès!" } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Siker!" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "成功" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gelukt!" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sukces!" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Готово!" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "สำเร็จ!" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Başarılı!" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1406,24 +5595,96 @@ }, "Successfully imported %@" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "تم الاستيراد بنجاح %@" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "تم استيراد %@ بنجاح" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "تم استيراد %@" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Úspěšně jsem importoval %@" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ wurde erfolgreich importiert" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Importado correctamente!" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ importado satisfactoriamente" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Importation réussie %@" } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sikeresen importáltuk a %@" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ のインポートに成功" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Succesvol toegevoegd %@" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Zaimportowano %@" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Успешный импорт %@" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "นำเข้า %@ สำเร็จ" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Başarıyla içe aktarıldı %@" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1434,24 +5695,96 @@ }, "Support on Ko-Fi" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "ادعمني على Ko-Fi" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "الدعم عبر Ko-Fi" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "ادعمني في Ko-Fi" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Podpořte nás na Ko-Fi" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Unterstütze bei Ko-Fi" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Apoyanos en Ko-Fi" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Apóyanos en Ko-Fi" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Support sur Ko-Fi" } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Támogass minket Ko-Fi-n" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ko-Fiでサポート" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Steun mij op Ko-Fi" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wesprzyj na Ko-Fi" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Поддержать на Ko-Fi" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "สนับสนุนบน Ko-Fi" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ko-Fi üzerinden destekleyin" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1462,24 +5795,84 @@ }, "The folder is improperly set up. Please tap \"Reset Collections\" and try again." : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "الملف لم يتم اعداده بشكل صحيح. الرجاء الضغط على \"اعادة تعيين المجموعات\" و المحاولة مجدداً." + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "المجلد غير مهيأ بشكل صحيح. يرجى الضغط على \"إعادة تعيين المجموعات\" واعادة المحاولة." + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Složka je nesprávně nastavena. Prosím klikněte na \"Resetovat Kolekce\" a zkuste to znovu." + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Der Ordner ist nicht ordnungsgemäß eingerichtet. Bitte tippen Sie auf \"Sammlungen zurücksetzen\" und versuchen Sie es erneut." + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "La carpeta no está configurada correctamente. Pulsa \"Restablecer colecciones\" y vuelve a intentarlo." } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "El folder no está configurado correctamente. Favor de presionar \"Reiniciar Colecciones\" e intente de nuevo." + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Le dossier est mal configuré. Appuyez sur \"Réinitialiser les Collections\" et réessayez." } }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "フォルダが正しく設定されていません。「コレクションをリセット」をタップして、もう一度やり直してください。" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "De folder is incorrect ingesteld. Druk alsjeblieft op “herstel Collecties” en probeer het opnieuw." + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Folder jest nieprawidłowo skonfigurowany. Kliknij „Resetuj kolekcje” i spróbuj ponownie." + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ошибка. Нажмите \"Сбросить коллекции\" и попробуйте снова." + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "โฟลเดอร์ถูกตั้งค่าไม่ถูกต้อง กรุณาแตะ \"รีเซ็ตคอลเลคชั่น\" แล้วลองอีกครั้ง" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Klasör uygunsuz kurulmuş. Lütfen \"Koleksiyonları Sıfırla\" tuşuna basıp tekrar deneyin." + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1490,24 +5883,96 @@ }, "The PosterBoard app will now open. Please close it from the app switcher." : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "تطبيق PosterBoard سيفتح الآن. الرجاء اغلاقه من واجهة التبديل بين التطبيقات." + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "سيتم فتح تطبيق PosterBoard الآن. يرجى إغلاقه من قائمة التطبيقات." + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "تطبيق PosterBoard بيفتح الان. قفله من السويتشر." + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "PosterBoard aplikace se teď otevře. Prosím zavřete ji z Nedávných aplikací." + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Die PosterBoard App wird nun geöffnet. Bitte schließen Sie sie über den App-Switcher." + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Se abrirá la aplicación PosterBoard. Ciérrela desde el selector de aplicaciones." } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "La app PosterBoard se abrirá. Por favor ciérrala del multitareas." + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "L'application PosterBoard est maintenant ouverte. Veuillez la fermer à partir du sélecteur d'applications." } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Megnyílik a PosterBoard alkalmazás. Kérjük, zárja be az alkalmazásváltóból." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "PosterBoardアプリが開きます。アプリスイッチャーから閉じてください。" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "De PosterBoard app opent nu. Sluit het af van de app switcher." + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aplikacja Posterboard zostanie otwarta. Proszę zamknąć ją w przełączniku aplikacji." + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "PosterBoard сейчас будет открыт. Закройте его принудительно" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "แอปโปสเตอร์บอร์ดจะถึกเปิด ให้คุณปิดมันในหน้าปัดขึ้น" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "PosterBoard uygulaması şimdi açılacak. Lütfen uygulama değiştiriciden kapatın." + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1517,16 +5982,169 @@ } }, "The video you imported is too long! Your video must be %@ seconds or less." : { - + "localizations" : { + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ваше видео слишком длинное! Оно должно быть не больше %@ секунд" + } + } + } }, - "To apply, PosterBoard will need to open.\n\nYou can install an optional shortcut if the original method fails." : { - + "To apply, PosterBoard will need to open." : { + "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "لتطبيق التغييرات، سنحتاج لفتح تطبيق PosterBoard." + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Um anzuwenden, Pocket Poster wird Posterboard öffnen." + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Para aplicar, PosterBoard necesitara abrirse." + } + }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Para aplicar, PosterBoard se abrirá." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pour l'appliquer, PosterBoard doit être ouvert." + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aby zastosować PosterBoard musi zostać otwarty." + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Чтобы обои установились, Pocket Poster потребуется открыть PosterBoard." + } + }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ในการใช้งาน ตัวแอป PosterBoard จะจำเป็นต้องเปิดขึ้นมา" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Để áp dụng, PosterBoard sẽ cần phải được mở." + } + } + } }, - "To get the app bundle id, Nugget is required.\n\nOn your computer, download Nugget from the GitHub." : { - + "To get the app bundle id, Nugget is required." : { + "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "للحصول على معرّف bundle id الخاص بالتطبيق، تطبيق Nugget ضروري." + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "للحصول على معرف حزمة التطبيق، يلزم استخدام Nugget." + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Um die App-Bundle-ID zu bekommen, wird Nugget benötigt." + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Para obteenr el bundle id de la aplicacion, se necesitará Nugget." + } + }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Para obtener el Bundle ID de la app, se necesita Nugget." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pour obtenir l'identifiant du bundle d'application, Nugget est nécessaire." + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aby uzyskać identyfikator pakietu aplikacji, wymagany jest Nugget." + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Чтобы получить ID приложения, потребуется Nugget." + } + }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ในการหา Bundle ID ของแอปจะต้องใช้ Nugget" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Để lấy ID gói của ứng dụng, bạn cần phải sử dụng Nugget." + } + } + } }, "Version %@ (%@)" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "الاصدار %1$@ (%2$@)" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "الإصدار %1$@ (%2$@)" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "الإصدار %1$@ (%2$@)" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Verze %1$@ (%2$@)" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Version %1$@ (%2$@)" + } + }, "en" : { "stringUnit" : { "state" : "new", @@ -1539,18 +6157,54 @@ "value" : "Version %1$@ (%2$@)" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Versión %1$@ (%2$@)" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Version %1$@ (%2$@)" } }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "バージョン %1$@ (%2$@)" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Versie %1$@ (%2$@)" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wersja %1@ (%2$@)" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Версия %1$@ (%2$@)" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "เวอร์ชั่น %1$@ (%2$@)" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sürüm %1$@ (%2$@)" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1561,24 +6215,84 @@ }, "Videos" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "الفيديوهات" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "الفديوهات" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Videa" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Videos" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Videos" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Videos" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Vidéos" } }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "動画" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Videos" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wideo" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Видео" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "วิดีโอ" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Videolar" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1589,24 +6303,84 @@ }, "View on GitHub" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "المشاهدة على GitHub" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "عرض على GitHub" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Zobrazit na GitHubu" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Auf GitHub ansehen" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Ver en GitHub" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ver en GitHub" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Voir sur GitHub" } }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "GitHubで見る" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bekijk op GitHub" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Zobacz na GitHubie" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "GitHub" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "ดูบน GitHub" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Github üzerinde görüntüle" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1617,24 +6391,90 @@ }, "Website Designer" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "مصمم الموقع" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "مصمم الموقع الإلكتروني" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "ديزانير الموقع" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Designer Webovky" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Website-Designer" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Diseñador de la pagina" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Diseñador del sitio web" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Concepteur de site web" } }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ウェブサイトデザイナー" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Website Designer" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Designer Strony" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Дизайнер Веб-сайта" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "ผู้ออกแบบเว็บไซต์" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "İnteret sayfası tasarımcısı" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1644,28 +6484,149 @@ } }, "Welcome to Pocket Poster!" : { - + "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "مرحباً ب Pocket Poster!" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "مرحبا الى Pocket Poster!" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Willkommen zum Pocket Poster!" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bienvenido a Pocket Poster!" + } + }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "¡Bienvenid@ a Pocket Poster!" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bienvenue à Pocket Poster!" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Witaj w Pocket Poster!" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Добро пожаловать в Pocket Poster!" + } + }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ยินดีสู่ Pocket Poster!" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Chào mừng đến với Pocket Poster!" + } + } + } }, "Would you like to download the file %@?" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "هل ترغب بتحميل الملف %@?" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "هل تريد تحميل الملف %@؟" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Přejete si stahnout soubor %@?" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Möchten Sie die Datei %@ herunterladen?" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "¿Quieres descargar el archivo %@?" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Deseas descargar el archivo %@?" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Voulez-vous télécharger le fichier %@?" } }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ファイルをダウンロードしますか?" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wil je dit bestand downloaden %@?" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Czy chcesz pobrać plik %@?" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Вы хотите скачать файл %@?" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "คุณต้องการดาวน์โหลดไฟล์ %@ หรือไม่?" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Dosyayı indirmek ister misiniz %@?" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1675,28 +6636,207 @@ } }, "You can find wallpapers on the official Cowabun.ga website." : { - + "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "يمكنك العثور على موقع Cowabun.ga الرسمي." + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "يمكنك العثور على الخلفيات على الموقع الرسمي Cowabun.ga." + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sie können Hintergrundbilder auf der offiziellen Cowabun.ga Webseite finden." + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Puedes encontrar fondos de pantalla en el sitio oficial Cowabun.ga" + } + }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Puedes encontrar fondos de pantalla en el sitio web oficial Cowabun.ga." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous pouvez trouver des fonds d'écran sur le site officiel de Cowabun.ga." + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mozesz znaleźć tapety na oficjalnej stronie Cowabun.ga" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Вы можете найти обои на официальном сайте Cowabun.ga." + } + }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "คุณสามารถหาวอลเปเปอร์ได้ที่เว็บไซต์ Cowabun.ga" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bạn có thể tìm kiếm các hình nền trên trang web Cowabun.ga." + } + } + } + }, + "You can install an optional shortcut if the original method fails." : { + "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "يمكنك تحميل اختصار اختياري اذا فشلت الطريقة الاساسية." + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sie können den optionalen Kurzbefehl installieren, wenn die originale Methode fehlgeschlagen hat." + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Puedes instalar un atajo opcional si el metodo original falla." + } + }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Puedes instalar un atajo opcional si el método original falla." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous pouvez installer un raccourci facultatif si la méthode originale échoue." + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Możesz zainstalować opcjonalny skrót jeżeli oryginalna metoda nie zadziała." + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Вы можете установить Fallback Shortcut если встроенный метод не работает." + } + }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "คุณสามารถติดตั้ง Shortcut เพิ่มได้ถ้าวิธีเดิมใช้ไม่ได้" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bạn có thể tải xuống Phím tắt Dự phòng nếu cách làm bình thường bị lỗi." + } + } + } }, "You can only apply %@ descriptors." : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "يمكنك فقط تطبيق %@ descriptors." + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "يمكنك تطبيق %@ وصف فقط." + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Můžete aplikovat pouze %@ descriptory." + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sie können nur %@-Deskriptoren anwenden." + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Sólo puedes aplicar descriptores %@." } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Solo puedes aplicar descriptores %@." + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Vous ne pouvez appliquer que des descripteurs %@." } }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ 記述子のみ適用できます。" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Je kan alleen kenmerken %@ aanpassen." + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Można stosować tylko deskryptory %@" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Вы можете установить только %@ дескрипторов." + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "คุณสามารถใช้ descriptors %@ ได้เท่านั้น" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sadece %@ descriptors uygulanabilir." + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1707,24 +6847,84 @@ }, "Your app hash is incorrect. Please set it again." : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "هاش تطبيقك خاطئ. رجاءً عيينه مرة اخرى." + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "الهاش الخاص بالتطبيق غير صحيح. يرجى إعادة الإعداد." + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Váš hash aplikace je nesprávný. Prosím nastavte ho znovu." + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ihr App-Hash ist falsch. Bitte stellen Sie ihn erneut ein." + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "El hash de tu aplicación es incorrecto. Por favor, configúralo de nuevo." } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "El Hash de tu app es incorrecto. Por favor configúralo de nuevo." + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Votre App Hash est incorrect. Veuillez le redéfinir." } }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "アプリのハッシュが正しくありません。もう一度設定してください。" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Jou app hash is incorrect. Stel hem opnieuw in." + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Twoj hash jest nieprawidłowy. Ustaw go jeszcze raz." + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ваш App hash неправильный. Впишите его заново." + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "แฮชแอปของคุณไม่ถูกต้อง กรุณาตั้งค่าใหม่อีกครั้ง" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Uygulama Hash'iniz geçersiz . Lütfen tekrar giriniz." + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1735,24 +6935,84 @@ }, "Your PosterBoard will refresh automatically." : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "تطبيق PosterBoard خاصتك سيتم تحديثه تلقائياً." + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "سيتم تحديث PosterBoard الخاص بك تلقائيًا." + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Váš PosterBoard se automaticky znovu načte." + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ihr PosterBoard wird automatisch aktualisiert." + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Su PosterBoard se actualizará automáticamente." } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Su PosterBoard se actualizará automáticamente." + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Votre PosterBoard se rafraîchit automatiquement." } }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "PosterBoardは自動的に更新されます。" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Jou PosterBoard ververst automatisch." + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Twój posterboard odświeży się automatycznie." + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ваш PosterBoard будет перезагружен автоматически." + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "โปสเตอร์บอร์ดของคุณจะรีเฟรชโดยอัตโนมัติ" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "PosterBoard'ınız otomatik olarak yenilenecektir." + } + }, "vi" : { "stringUnit" : { "state" : "translated", diff --git a/Pocket Poster/Pocket-Poster-InfoPlist.xcstrings b/Pocket Poster/Pocket-Poster-InfoPlist.xcstrings index 90f2088..e952db8 100644 --- a/Pocket Poster/Pocket-Poster-InfoPlist.xcstrings +++ b/Pocket Poster/Pocket-Poster-InfoPlist.xcstrings @@ -5,6 +5,36 @@ "comment" : "Bundle name", "extractionState" : "extracted_with_value", "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pocket Poster" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pocket Poster Ar" + } + }, + "ar-SA" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pocket Poster" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pocket Poster" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pocket Poster" + } + }, "en" : { "stringUnit" : { "state" : "new", @@ -17,18 +47,54 @@ "value" : "Pocket Poster" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pocket Poster" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Pocket Poster" } }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pocket Poster" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pocket Poster" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pocket Poster" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pocket Poster" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "Pocket Poster" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pocket Poster" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -39,24 +105,84 @@ }, "Nugget Wallpaper" : { "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "خلفيات Nugget" + } + }, + "ar-AE" : { + "stringUnit" : { + "state" : "translated", + "value" : "خلفيات Nugget" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nugget Tapeta" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nugget Hintergrundbilder" + } + }, "es" : { "stringUnit" : { "state" : "translated", "value" : "Nugget Wallpaper" } }, + "es-MX" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nugget Wallpaper" + } + }, "fr" : { "stringUnit" : { "state" : "translated", "value" : "Fond d'écran Nugget" } }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nugget Wallpaper" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nugget Achtergrond" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tapeta Nugget" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Обои Nugget" + } + }, "th" : { "stringUnit" : { "state" : "translated", "value" : "วอลเปเปอร์ Nugget" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nugget Duvar Kağıdı" + } + }, "vi" : { "stringUnit" : { "state" : "translated", diff --git a/Pocket Poster/Views/OnBoarding/OnBoardingPage.swift b/Pocket Poster/Views/OnBoarding/OnBoardingPage.swift index 399220b..21e9e94 100644 --- a/Pocket Poster/Views/OnBoarding/OnBoardingPage.swift +++ b/Pocket Poster/Views/OnBoarding/OnBoardingPage.swift @@ -35,14 +35,14 @@ let onBoardingCards: [OnBoardingPage] = [ ), .init( title: NSLocalizedString("Install the Fallback Shortcut (Optional)", comment: ""), - description: NSLocalizedString("To apply, PosterBoard will need to open.\n\nYou can install an optional shortcut if the original method fails.", comment: ""), + description: NSLocalizedString("To apply, PosterBoard will need to open.", comment: "") + "\n\n" + NSLocalizedString("You can install an optional shortcut if the original method fails.", comment: ""), image: "Shortcuts", link: URL(string: PosterBoardManager.ShortcutURL), linkName: NSLocalizedString("Get Shortcut", comment: "") ), .init( title: NSLocalizedString("Install Nugget", comment: ""), - description: NSLocalizedString("To get the app bundle id, Nugget is required.\n\nOn your computer, download Nugget from the GitHub.", comment: ""), + description: NSLocalizedString("To get the app bundle id, Nugget is required.", comment: "") + "\n\n" + NSLocalizedString("On your computer, download Nugget from the GitHub.", comment: ""), image: "Nugget", link: URL(string: "https://github.com/leminlimez/Nugget/releases/latest"), linkName: NSLocalizedString("Open GitHub", comment: "") From 80be3c8941b4b21276d3e7320482122c51221c5c Mon Sep 17 00:00:00 2001 From: leminlimez <59540996+leminlimez@users.noreply.github.com> Date: Sat, 21 Jun 2025 09:07:52 -0400 Subject: [PATCH 06/10] update vietnamese --- Pocket Poster/Localizable.xcstrings | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/Pocket Poster/Localizable.xcstrings b/Pocket Poster/Localizable.xcstrings index 746fa6d..8c31d75 100644 --- a/Pocket Poster/Localizable.xcstrings +++ b/Pocket Poster/Localizable.xcstrings @@ -844,6 +844,12 @@ "state" : "translated", "value" : "Сообщество переводчиков" } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cộng đồng các Phiên dịch viên" + } } } }, @@ -2681,6 +2687,12 @@ "state" : "translated", "value" : "Ошибка при импорте видео" } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nhập Video bị lỗi" + } } } }, @@ -5988,6 +6000,12 @@ "state" : "translated", "value" : "Ваше видео слишком длинное! Оно должно быть не больше %@ секунд" } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bạn nhập video dài quá! Video của bạn cần phải ít hơn hoặc vừa đủ %@ giây." + } } } }, From 6aa0598da4b0ad1a6312baeb6766ed5a6dbddcf5 Mon Sep 17 00:00:00 2001 From: leminlimez <59540996+leminlimez@users.noreply.github.com> Date: Sat, 21 Jun 2025 09:15:22 -0400 Subject: [PATCH 07/10] save carplay hash to make transition easier --- Pocket Poster/Views/SettingsView.swift | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Pocket Poster/Views/SettingsView.swift b/Pocket Poster/Views/SettingsView.swift index d00e3f1..baceedd 100644 --- a/Pocket Poster/Views/SettingsView.swift +++ b/Pocket Poster/Views/SettingsView.swift @@ -9,7 +9,8 @@ import SwiftUI struct SettingsView: View { // Prefs - @AppStorage("pbHash") var pbHash: String = "" + @AppStorage("pbHash") var pbHash: String = "" // PosterBoard hash + @AppStorage("cpHash") var cpHash: String = "" // CarPlay hash @State var checkingForHash: Bool = false @State var hashCheckTask: Task? = nil @@ -138,6 +139,9 @@ struct SettingsView: View { if let pb = items.first { pbHash = String(pb) } + if items.count >= 2 { + cpHash = String(items[1]) + } } } catch { print(error.localizedDescription) From eccf8926fdf1bf50eaf9e215f5d796e6cfe10a7f Mon Sep 17 00:00:00 2001 From: leminlimez <59540996+leminlimez@users.noreply.github.com> Date: Sat, 21 Jun 2025 09:50:17 -0400 Subject: [PATCH 08/10] update russian and turkish --- Pocket Poster/Localizable.xcstrings | 120 +++++++++++++++++- .../Views/OnBoarding/OnBoardingPage.swift | 20 +-- 2 files changed, 124 insertions(+), 16 deletions(-) diff --git a/Pocket Poster/Localizable.xcstrings b/Pocket Poster/Localizable.xcstrings index 8c31d75..86e3626 100644 --- a/Pocket Poster/Localizable.xcstrings +++ b/Pocket Poster/Localizable.xcstrings @@ -845,6 +845,12 @@ "value" : "Сообщество переводчиков" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toplum Çevirmenleri" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -1356,7 +1362,7 @@ "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Külçe" + "value" : "İtibarlar" } }, "vi" : { @@ -1450,7 +1456,7 @@ "ru" : { "stringUnit" : { "state" : "translated", - "value" : "Найдено" + "value" : "Верно" } }, "th" : { @@ -1932,7 +1938,7 @@ "ru" : { "stringUnit" : { "state" : "translated", - "value" : "Вперёд!" + "value" : "Наслаждайтесь!" } }, "th" : { @@ -1941,6 +1947,12 @@ "value" : "เอ็นจอย!" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tadına Var!" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -2688,6 +2700,12 @@ "value" : "Ошибка при импорте видео" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Video içe aktarılamadı" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -2958,6 +2976,12 @@ "value" : "ค้นหาวอลเปเปอร์" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Duvar Kağıtları Bul" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -3234,6 +3258,12 @@ "value" : "รับ Shortcut" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Kestirme Al" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -3292,6 +3322,12 @@ "value" : "นี่คือบทแนะนำเพื่อให้คุณเริ่มต้นใช้งานแอปได้" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Uygulamayı kullanmaya başlamak için bir eğitim videosu." + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -3383,7 +3419,7 @@ "ru" : { "stringUnit" : { "state" : "translated", - "value" : "Домой" + "value" : "Главная" } }, "th" : { @@ -3405,6 +3441,9 @@ } } } + }, + "How to Reset Collections" : { + }, "Install Nugget" : { "localizations" : { @@ -3453,7 +3492,7 @@ "ru" : { "stringUnit" : { "state" : "translated", - "value" : "Установить Nugget" + "value" : "Установите Nugget" } }, "th" : { @@ -3462,6 +3501,12 @@ "value" : "ติดตั้ง Nugget" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nugget'i indir" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -3526,6 +3571,12 @@ "value" : "ติดตั้ง Shortcut สำรอง (ไม่บังคับลง)" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fallback Kestirmesini indir (Opsiyonel)" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -4327,6 +4378,12 @@ "value" : "ดาวน์โหลด Nugget จาก GitHub บนคอมพิวเตอร์ของคุณ" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bilgisayarınızda Nugget'i GitHub'dan indirin." + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -4497,6 +4554,12 @@ "value" : "เปิด GitHub" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Github'ı Aç" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -4504,6 +4567,9 @@ } } } + }, + "Open the Language Settings" : { + }, "Please wait" : { "localizations" : { @@ -5304,6 +5370,9 @@ } } } + }, + "Set the Primary Language" : { + }, "Skip" : { "localizations" : { @@ -6001,6 +6070,12 @@ "value" : "Ваше видео слишком длинное! Оно должно быть не больше %@ секунд" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "İçe aktardığın video çok uzun! Video en fazla %@ veya daha az olmalı." + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -6059,6 +6134,12 @@ "value" : "ในการใช้งาน ตัวแอป PosterBoard จะจำเป็นต้องเปิดขึ้นมา" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Uygulamak için PosterBoard Açılacak." + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -6114,7 +6195,7 @@ "ru" : { "stringUnit" : { "state" : "translated", - "value" : "Чтобы получить ID приложения, потребуется Nugget." + "value" : "Чтобы получить App Hash, потребуется Nugget." } }, "th" : { @@ -6123,6 +6204,12 @@ "value" : "ในการหา Bundle ID ของแอปจะต้องใช้ Nugget" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Paket kimliğini almak için Nugget gereklidir." + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -6130,6 +6217,9 @@ } } } + }, + "Verify That It Worked" : { + }, "Version %@ (%@)" : { "localizations" : { @@ -6557,6 +6647,12 @@ "value" : "ยินดีสู่ Pocket Poster!" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pocket Poster'a Hoşgeldiniz!" + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -6709,6 +6805,12 @@ "value" : "คุณสามารถหาวอลเปเปอร์ได้ที่เว็บไซต์ Cowabun.ga" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cowabun.ga websitesinde duvar kağıtları bulabilirsiniz." + } + }, "vi" : { "stringUnit" : { "state" : "translated", @@ -6767,6 +6869,12 @@ "value" : "คุณสามารถติดตั้ง Shortcut เพิ่มได้ถ้าวิธีเดิมใช้ไม่ได้" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Orijinal yöntem başarısız olursa opsiyonel bir kestirme indirebilirsiniz." + } + }, "vi" : { "stringUnit" : { "state" : "translated", diff --git a/Pocket Poster/Views/OnBoarding/OnBoardingPage.swift b/Pocket Poster/Views/OnBoarding/OnBoardingPage.swift index 21e9e94..4e99f56 100644 --- a/Pocket Poster/Views/OnBoarding/OnBoardingPage.swift +++ b/Pocket Poster/Views/OnBoarding/OnBoardingPage.swift @@ -9,14 +9,14 @@ import SwiftUICore struct OnBoardingPage: Identifiable { var id = UUID() - var title: String + var title: LocalizedStringKey var description: String var image: String var link: URL? - var linkName: String? + var linkName: LocalizedStringKey? var gradientColors: [Color] - init(title: String, description: String, image: String, link: URL? = nil, linkName: String? = nil, gradientColors: [Color] = [Color("WelcomeLight"), Color("WelcomeDark")]) { + init(title: LocalizedStringKey, description: String, image: String, link: URL? = nil, linkName: LocalizedStringKey? = nil, gradientColors: [Color] = [Color("WelcomeLight"), Color("WelcomeDark")]) { self.id = UUID() self.title = title self.description = description @@ -29,30 +29,30 @@ struct OnBoardingPage: Identifiable { let onBoardingCards: [OnBoardingPage] = [ .init( - title: NSLocalizedString("Welcome to Pocket Poster!", comment: ""), + title: "Welcome to Pocket Poster!", description: NSLocalizedString("Here is a tutorial to help you get started with the app.", comment: ""), image: "Logo" ), .init( - title: NSLocalizedString("Install the Fallback Shortcut (Optional)", comment: ""), + title: "Install the Fallback Shortcut (Optional)", description: NSLocalizedString("To apply, PosterBoard will need to open.", comment: "") + "\n\n" + NSLocalizedString("You can install an optional shortcut if the original method fails.", comment: ""), image: "Shortcuts", link: URL(string: PosterBoardManager.ShortcutURL), - linkName: NSLocalizedString("Get Shortcut", comment: "") + linkName: "Get Shortcut" ), .init( - title: NSLocalizedString("Install Nugget", comment: ""), + title: "Install Nugget", description: NSLocalizedString("To get the app bundle id, Nugget is required.", comment: "") + "\n\n" + NSLocalizedString("On your computer, download Nugget from the GitHub.", comment: ""), image: "Nugget", link: URL(string: "https://github.com/leminlimez/Nugget/releases/latest"), - linkName: NSLocalizedString("Open GitHub", comment: "") + linkName: "Open GitHub" ), .init( - title: NSLocalizedString("Enjoy!", comment: ""), + title: "Enjoy!", description: NSLocalizedString("You can find wallpapers on the official Cowabun.ga website.", comment: ""), image: "Cowabunga", link: URL(string: PosterBoardManager.WallpapersURL), - linkName: NSLocalizedString("Find Wallpapers", comment: "") + linkName: "Find Wallpapers" ) ] From 71d37a38bb20acf83f0aca9bf675f3c172bb2fde Mon Sep 17 00:00:00 2001 From: leminlimez <59540996+leminlimez@users.noreply.github.com> Date: Sat, 21 Jun 2025 10:47:42 -0400 Subject: [PATCH 09/10] add time preview to video --- Pocket Poster/Localizable.xcstrings | 162 ++++++++++++++++-- .../Pocket-Poster-InfoPlist.xcstrings | 12 ++ .../Views/NavigatorViews/VideoView.swift | 61 +++++-- .../Views/OnBoarding/OnBoardingPage.swift | 20 +-- 4 files changed, 223 insertions(+), 32 deletions(-) diff --git a/Pocket Poster/Localizable.xcstrings b/Pocket Poster/Localizable.xcstrings index 86e3626..026fb97 100644 --- a/Pocket Poster/Localizable.xcstrings +++ b/Pocket Poster/Localizable.xcstrings @@ -839,6 +839,12 @@ }, "Community Translators" : { "localizations" : { + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fordítók" + } + }, "ru" : { "stringUnit" : { "state" : "translated", @@ -1929,6 +1935,12 @@ "value" : "Jouir!" } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Élvezd!" + } + }, "pl" : { "stringUnit" : { "state" : "translated", @@ -2694,6 +2706,12 @@ }, "Failed to Import Video" : { "localizations" : { + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Videó importálása sikertelen" + } + }, "ru" : { "stringUnit" : { "state" : "translated", @@ -2958,6 +2976,12 @@ "value" : "Trouver des fonds d'écran" } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Háttérképek találása" + } + }, "pl" : { "stringUnit" : { "state" : "translated", @@ -3240,6 +3264,12 @@ "value" : "Obtenir un raccourci" } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Shortcut letöltése" + } + }, "pl" : { "stringUnit" : { "state" : "translated", @@ -3304,6 +3334,12 @@ "value" : "Voici un tutoriel pour vous aider à démarrer avec l'application." } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Íme egy oktatóanyag, amely segít az alkalmazás használatának megkezdésében." + } + }, "pl" : { "stringUnit" : { "state" : "translated", @@ -3441,9 +3477,6 @@ } } } - }, - "How to Reset Collections" : { - }, "Install Nugget" : { "localizations" : { @@ -3483,6 +3516,12 @@ "value" : "Installer Nugget" } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nugget telepítése" + } + }, "pl" : { "stringUnit" : { "state" : "translated", @@ -3553,6 +3592,12 @@ "value" : "Installer le raccourci de repli (optionnel)" } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tartalék parancs telepítése" + } + }, "pl" : { "stringUnit" : { "state" : "translated", @@ -4360,6 +4405,12 @@ "value" : "Sur votre ordinateur, téléchargez Nugget depuis GitHub." } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "A számítógépeden, töltsd le a Nuggetet a GitHubról." + } + }, "pl" : { "stringUnit" : { "state" : "translated", @@ -4536,6 +4587,12 @@ "value" : "Ouvrir GitHub" } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "GitHub megnyitésa" + } + }, "pl" : { "stringUnit" : { "state" : "translated", @@ -4567,9 +4624,6 @@ } } } - }, - "Open the Language Settings" : { - }, "Please wait" : { "localizations" : { @@ -5370,9 +5424,6 @@ } } } - }, - "Set the Primary Language" : { - }, "Skip" : { "localizations" : { @@ -5918,6 +5969,12 @@ "value" : "Le dossier est mal configuré. Appuyez sur \"Réinitialiser les Collections\" et réessayez." } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "A mappa nincs megfelelően beállítva. Koppintson a \"Gyűjtemények visszaállítása\" gombra, és próbálja újra." + } + }, "ja" : { "stringUnit" : { "state" : "translated", @@ -6064,6 +6121,12 @@ }, "The video you imported is too long! Your video must be %@ seconds or less." : { "localizations" : { + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Az importált videó túl hosszú! A videó hossza legfeljebb %@ másodperc lehet." + } + }, "ru" : { "stringUnit" : { "state" : "translated", @@ -6116,6 +6179,12 @@ "value" : "Pour l'appliquer, PosterBoard doit être ouvert." } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Az alkalmazáshoz a PosterBoardnak meg kell nyílnia." + } + }, "pl" : { "stringUnit" : { "state" : "translated", @@ -6186,6 +6255,12 @@ "value" : "Pour obtenir l'identifiant du bundle d'application, Nugget est nécessaire." } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nuggetre van szükség az App Bundle id megszerzéséhez." + } + }, "pl" : { "stringUnit" : { "state" : "translated", @@ -6217,9 +6292,6 @@ } } } - }, - "Verify That It Worked" : { - }, "Version %@ (%@)" : { "localizations" : { @@ -6277,6 +6349,12 @@ "value" : "Version %1$@ (%2$@)" } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Verzió %1$@ (%2$@)" + } + }, "ja" : { "stringUnit" : { "state" : "translated", @@ -6365,6 +6443,12 @@ "value" : "Vidéos" } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Videók" + } + }, "ja" : { "stringUnit" : { "state" : "translated", @@ -6453,6 +6537,12 @@ "value" : "Voir sur GitHub" } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Megtekintés a GitHubon" + } + }, "ja" : { "stringUnit" : { "state" : "translated", @@ -6547,6 +6637,12 @@ "value" : "Concepteur de site web" } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Weboldal Designere" + } + }, "ja" : { "stringUnit" : { "state" : "translated", @@ -6629,6 +6725,12 @@ "value" : "Bienvenue à Pocket Poster!" } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Üdvözlünk a Pocket Poster-be!" + } + }, "pl" : { "stringUnit" : { "state" : "translated", @@ -6705,6 +6807,12 @@ "value" : "Voulez-vous télécharger le fichier %@?" } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Szeretnéd letölteni a(z) %@ fájlt?" + } + }, "ja" : { "stringUnit" : { "state" : "translated", @@ -6787,6 +6895,12 @@ "value" : "Vous pouvez trouver des fonds d'écran sur le site officiel de Cowabun.ga." } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Háttérképeket a hivatalos Cowabun.ga weboldalon találhatsz." + } + }, "pl" : { "stringUnit" : { "state" : "translated", @@ -6851,6 +6965,12 @@ "value" : "Vous pouvez installer un raccourci facultatif si la méthode originale échoue." } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Telepíthetsz egy opcionális parancsot, ha az eredeti módszer nem működik." + } + }, "pl" : { "stringUnit" : { "state" : "translated", @@ -6927,6 +7047,12 @@ "value" : "Vous ne pouvez appliquer que des descripteurs %@." } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Csak %@ descriptort alkalmazhatsz." + } + }, "ja" : { "stringUnit" : { "state" : "translated", @@ -7015,6 +7141,12 @@ "value" : "Votre App Hash est incorrect. Veuillez le redéfinir." } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Az App hashed helytelen. Kérlek állítsd be újra" + } + }, "ja" : { "stringUnit" : { "state" : "translated", @@ -7103,6 +7235,12 @@ "value" : "Votre PosterBoard se rafraîchit automatiquement." } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "A PosterBoardod automatikusan újra fog tölteni." + } + }, "ja" : { "stringUnit" : { "state" : "translated", diff --git a/Pocket Poster/Pocket-Poster-InfoPlist.xcstrings b/Pocket Poster/Pocket-Poster-InfoPlist.xcstrings index e952db8..16409c1 100644 --- a/Pocket Poster/Pocket-Poster-InfoPlist.xcstrings +++ b/Pocket Poster/Pocket-Poster-InfoPlist.xcstrings @@ -59,6 +59,12 @@ "value" : "Pocket Poster" } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pocket Poster" + } + }, "ja" : { "stringUnit" : { "state" : "translated", @@ -147,6 +153,12 @@ "value" : "Fond d'écran Nugget" } }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nugget Háttérkép" + } + }, "ja" : { "stringUnit" : { "state" : "translated", diff --git a/Pocket Poster/Views/NavigatorViews/VideoView.swift b/Pocket Poster/Views/NavigatorViews/VideoView.swift index 97267b8..ed56f69 100644 --- a/Pocket Poster/Views/NavigatorViews/VideoView.swift +++ b/Pocket Poster/Views/NavigatorViews/VideoView.swift @@ -14,12 +14,30 @@ struct VideoView: View { @AppStorage("ignoreDurationLimit") var ignoreDurationLimit: Bool = false @State var selectedVideo: PhotosPickerItem? + @State private var currentPage: Int = 0 + + @State private var currentDate = Date() + private let timer = Timer.publish(every: 1, on: .main, in: .common).autoconnect() // update every second + private var dateFormatter: DateFormatter { + let formatter = DateFormatter() + formatter.dateFormat = "EEEE, MMMM d" + return formatter + } + private var timeFormatter: DateFormatter { + let formatter = DateFormatter() + if Locale.current.hourCycle == .zeroToEleven || Locale.current.hourCycle == .oneToTwelve { + formatter.dateFormat = "h:mm" + } else { + formatter.dateFormat = "HH:mm" + } + return formatter + } var body: some View { VStack { GeometryReader { geom in - TabView { - ForEach(pbManager.videos) { vid in + TabView(selection: $currentPage) { + ForEach(Array(pbManager.videos.enumerated()), id: \.offset) { idx, vid in ZStack { switch vid.loadState { case .unknown: @@ -31,6 +49,17 @@ struct VideoView: View { .scaledToFill() .frame(width: geom.size.width * 0.7, height: geom.size.height * 0.8) .clipped() + VStack { + Text(dateFormatter.string(from: currentDate)) + .shadow(radius: 10) + + Text(timeFormatter.string(from: currentDate)) + .font(.system(size: 75, weight: .semibold, design: .rounded)) + .shadow(radius: 10) + Spacer() + } + .padding(.top, 45) + .foregroundStyle(.white) case .failed: Text("Failed") } @@ -39,6 +68,7 @@ struct VideoView: View { .shadow(radius: 5) .background(Color.black.opacity(0.6)) .cornerRadius(24) + .tag(idx) .overlay { RoundedRectangle(cornerRadius: 24) .stroke(.gray, lineWidth: 4) @@ -51,22 +81,30 @@ struct VideoView: View { .overlay( // Loops Button Button(action: { - if let index = pbManager.videos.firstIndex(of: vid) { - pbManager.videos[index].autoReverses = !vid.autoReverses - } + pbManager.videos[idx].autoReverses = !vid.autoReverses }) { Image(systemName: "arrow.left.arrow.right.circle") .font(.title) - .foregroundStyle(.black) + .foregroundStyle(Color(uiColor: .label)) .background { - Circle() - .foregroundStyle(vid.autoReverses ? .blue : .white) + if vid.autoReverses { + Circle() + .foregroundStyle(.blue.opacity(0.8)) + .shadow(radius: 5) + } else { + Circle() + .foregroundStyle(.regularMaterial) + .shadow(radius: 5) + } } }.offset(x: 8, y: -8), alignment: .topTrailing ) } .onDelete(perform: removeVideo) + .onReceive(timer) { input in + currentDate = input + } // MARK: Select Photo Option if selectedVideo == nil && pbManager.videos.count < 5 { @@ -90,6 +128,7 @@ struct VideoView: View { .shadow(radius: 5) .background(Color.black.opacity(0.6)) .cornerRadius(24) + .tag(pbManager.videos.count) .overlay { RoundedRectangle(cornerRadius: 24) .stroke(.gray, lineWidth: 4) @@ -109,6 +148,7 @@ struct VideoView: View { UIApplication.shared.alert(title: NSLocalizedString("Failed to Import Video", comment: ""), body: String(format: NSLocalizedString("The video you imported is too long! Your video must be %@ seconds or less.", comment: ""), "\(Int(VideoHandler.MaxDurationSecs))")) } else { pbManager.videos[id].loadState = .loaded(movie) + currentPage = id } } } else { @@ -124,7 +164,7 @@ struct VideoView: View { selectedVideo = nil } } - .tabViewStyle(.page) + .tabViewStyle(PageTabViewStyle(indexDisplayMode: .always)) } } } @@ -155,7 +195,8 @@ struct DeleteButton: View { .font(.title) .background { Circle() - .foregroundStyle(.white) + .foregroundStyle(.regularMaterial) + .shadow(radius: 5) } } .offset(x: -8, y: -8) diff --git a/Pocket Poster/Views/OnBoarding/OnBoardingPage.swift b/Pocket Poster/Views/OnBoarding/OnBoardingPage.swift index 4e99f56..21e9e94 100644 --- a/Pocket Poster/Views/OnBoarding/OnBoardingPage.swift +++ b/Pocket Poster/Views/OnBoarding/OnBoardingPage.swift @@ -9,14 +9,14 @@ import SwiftUICore struct OnBoardingPage: Identifiable { var id = UUID() - var title: LocalizedStringKey + var title: String var description: String var image: String var link: URL? - var linkName: LocalizedStringKey? + var linkName: String? var gradientColors: [Color] - init(title: LocalizedStringKey, description: String, image: String, link: URL? = nil, linkName: LocalizedStringKey? = nil, gradientColors: [Color] = [Color("WelcomeLight"), Color("WelcomeDark")]) { + init(title: String, description: String, image: String, link: URL? = nil, linkName: String? = nil, gradientColors: [Color] = [Color("WelcomeLight"), Color("WelcomeDark")]) { self.id = UUID() self.title = title self.description = description @@ -29,30 +29,30 @@ struct OnBoardingPage: Identifiable { let onBoardingCards: [OnBoardingPage] = [ .init( - title: "Welcome to Pocket Poster!", + title: NSLocalizedString("Welcome to Pocket Poster!", comment: ""), description: NSLocalizedString("Here is a tutorial to help you get started with the app.", comment: ""), image: "Logo" ), .init( - title: "Install the Fallback Shortcut (Optional)", + title: NSLocalizedString("Install the Fallback Shortcut (Optional)", comment: ""), description: NSLocalizedString("To apply, PosterBoard will need to open.", comment: "") + "\n\n" + NSLocalizedString("You can install an optional shortcut if the original method fails.", comment: ""), image: "Shortcuts", link: URL(string: PosterBoardManager.ShortcutURL), - linkName: "Get Shortcut" + linkName: NSLocalizedString("Get Shortcut", comment: "") ), .init( - title: "Install Nugget", + title: NSLocalizedString("Install Nugget", comment: ""), description: NSLocalizedString("To get the app bundle id, Nugget is required.", comment: "") + "\n\n" + NSLocalizedString("On your computer, download Nugget from the GitHub.", comment: ""), image: "Nugget", link: URL(string: "https://github.com/leminlimez/Nugget/releases/latest"), - linkName: "Open GitHub" + linkName: NSLocalizedString("Open GitHub", comment: "") ), .init( - title: "Enjoy!", + title: NSLocalizedString("Enjoy!", comment: ""), description: NSLocalizedString("You can find wallpapers on the official Cowabun.ga website.", comment: ""), image: "Cowabunga", link: URL(string: PosterBoardManager.WallpapersURL), - linkName: "Find Wallpapers" + linkName: NSLocalizedString("Find Wallpapers", comment: "") ) ] From 7bf227a6de3d55010acddefcb311295dee574717 Mon Sep 17 00:00:00 2001 From: leminlimez <59540996+leminlimez@users.noreply.github.com> Date: Sat, 21 Jun 2025 11:22:10 -0400 Subject: [PATCH 10/10] option to ignore video duration limit --- Pocket Poster.xcodeproj/project.pbxproj | 4 ++-- Pocket Poster/Localizable.xcstrings | 6 ++++++ Pocket Poster/Views/SettingsView.swift | 9 +++++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/Pocket Poster.xcodeproj/project.pbxproj b/Pocket Poster.xcodeproj/project.pbxproj index 07e4182..5b0f8ad 100644 --- a/Pocket Poster.xcodeproj/project.pbxproj +++ b/Pocket Poster.xcodeproj/project.pbxproj @@ -264,7 +264,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 5; + CURRENT_PROJECT_VERSION = 6; DEVELOPMENT_ASSET_PATHS = "\"Pocket Poster/Preview Content\""; DEVELOPMENT_TEAM = 2P4CP47H76; ENABLE_PREVIEWS = YES; @@ -296,7 +296,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 5; + CURRENT_PROJECT_VERSION = 6; DEVELOPMENT_ASSET_PATHS = "\"Pocket Poster/Preview Content\""; DEVELOPMENT_TEAM = 2P4CP47H76; ENABLE_PREVIEWS = YES; diff --git a/Pocket Poster/Localizable.xcstrings b/Pocket Poster/Localizable.xcstrings index 026fb97..2219868 100644 --- a/Pocket Poster/Localizable.xcstrings +++ b/Pocket Poster/Localizable.xcstrings @@ -1484,6 +1484,9 @@ } } } + }, + "Disable Video Duration Limit" : { + }, "Do you want to reset collections?" : { "localizations" : { @@ -4930,6 +4933,9 @@ } } } + }, + "Preferences" : { + }, "Release" : { "localizations" : { diff --git a/Pocket Poster/Views/SettingsView.swift b/Pocket Poster/Views/SettingsView.swift index baceedd..58bf135 100644 --- a/Pocket Poster/Views/SettingsView.swift +++ b/Pocket Poster/Views/SettingsView.swift @@ -11,6 +11,7 @@ struct SettingsView: View { // Prefs @AppStorage("pbHash") var pbHash: String = "" // PosterBoard hash @AppStorage("cpHash") var cpHash: String = "" // CarPlay hash + @AppStorage("ignoreDurationLimit") var ignoreDurationLimit: Bool = false @State var checkingForHash: Bool = false @State var hashCheckTask: Task? = nil @@ -46,6 +47,14 @@ struct SettingsView: View { Label("App Hash", systemImage: "lock.app.dashed") } + Section { + Toggle(isOn: $ignoreDurationLimit, label: { + Label("Disable Video Duration Limit", systemImage: "ruler") + }) + } header: { + Label("Preferences", systemImage: "gear") + } + Section { Button(action: { UIImpactFeedbackGenerator(style: .soft).impactOccurred()