@tracearr/translations 2.1.0-beta.7 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. package/dist/config.d.ts +4 -2
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.mobile.d.ts +4 -2
  4. package/dist/config.mobile.d.ts.map +1 -1
  5. package/dist/locales/af-ZA/common.json +251 -251
  6. package/dist/locales/af-ZA/mobile.json +125 -125
  7. package/dist/locales/af-ZA/notifications.json +226 -226
  8. package/dist/locales/af-ZA/pages.json +69 -67
  9. package/dist/locales/af-ZA/settings.json +446 -446
  10. package/dist/locales/ar-SA/common.json +251 -251
  11. package/dist/locales/ar-SA/mobile.json +125 -125
  12. package/dist/locales/ar-SA/notifications.json +226 -226
  13. package/dist/locales/ar-SA/pages.json +69 -67
  14. package/dist/locales/ar-SA/settings.json +446 -446
  15. package/dist/locales/ca-ES/common.json +251 -251
  16. package/dist/locales/ca-ES/mobile.json +125 -125
  17. package/dist/locales/ca-ES/notifications.json +226 -226
  18. package/dist/locales/ca-ES/pages.json +69 -67
  19. package/dist/locales/ca-ES/settings.json +446 -446
  20. package/dist/locales/cs-CZ/common.json +251 -251
  21. package/dist/locales/cs-CZ/mobile.json +125 -125
  22. package/dist/locales/cs-CZ/notifications.json +226 -226
  23. package/dist/locales/cs-CZ/pages.json +69 -67
  24. package/dist/locales/cs-CZ/settings.json +446 -446
  25. package/dist/locales/da-DK/common.json +251 -251
  26. package/dist/locales/da-DK/mobile.json +125 -125
  27. package/dist/locales/da-DK/notifications.json +226 -226
  28. package/dist/locales/da-DK/pages.json +69 -67
  29. package/dist/locales/da-DK/settings.json +446 -446
  30. package/dist/locales/de-DE/common.json +251 -251
  31. package/dist/locales/de-DE/mobile.json +125 -125
  32. package/dist/locales/de-DE/notifications.json +226 -226
  33. package/dist/locales/de-DE/pages.json +69 -67
  34. package/dist/locales/de-DE/settings.json +446 -446
  35. package/dist/locales/el-GR/common.json +251 -251
  36. package/dist/locales/el-GR/mobile.json +125 -125
  37. package/dist/locales/el-GR/notifications.json +226 -226
  38. package/dist/locales/el-GR/pages.json +69 -67
  39. package/dist/locales/el-GR/settings.json +446 -446
  40. package/dist/locales/en/pages.json +2 -1
  41. package/dist/locales/en-US/common.json +251 -251
  42. package/dist/locales/en-US/mobile.json +125 -125
  43. package/dist/locales/en-US/notifications.json +224 -224
  44. package/dist/locales/en-US/pages.json +57 -55
  45. package/dist/locales/en-US/settings.json +446 -446
  46. package/dist/locales/es-ES/common.json +251 -251
  47. package/dist/locales/es-ES/mobile.json +125 -125
  48. package/dist/locales/es-ES/notifications.json +226 -226
  49. package/dist/locales/es-ES/pages.json +69 -67
  50. package/dist/locales/es-ES/settings.json +446 -446
  51. package/dist/locales/fi-FI/common.json +251 -251
  52. package/dist/locales/fi-FI/mobile.json +125 -125
  53. package/dist/locales/fi-FI/notifications.json +226 -226
  54. package/dist/locales/fi-FI/pages.json +69 -67
  55. package/dist/locales/fi-FI/settings.json +446 -446
  56. package/dist/locales/fr-FR/common.json +251 -251
  57. package/dist/locales/fr-FR/notifications.json +226 -226
  58. package/dist/locales/fr-FR/pages.json +69 -67
  59. package/dist/locales/fr-FR/settings.json +446 -446
  60. package/dist/locales/he-IL/common.json +251 -251
  61. package/dist/locales/he-IL/mobile.json +125 -125
  62. package/dist/locales/he-IL/notifications.json +226 -226
  63. package/dist/locales/he-IL/pages.json +69 -67
  64. package/dist/locales/he-IL/settings.json +446 -446
  65. package/dist/locales/hu-HU/common.json +251 -251
  66. package/dist/locales/hu-HU/mobile.json +125 -125
  67. package/dist/locales/hu-HU/notifications.json +226 -226
  68. package/dist/locales/hu-HU/pages.json +69 -67
  69. package/dist/locales/hu-HU/settings.json +446 -446
  70. package/dist/locales/it-IT/common.json +251 -251
  71. package/dist/locales/it-IT/mobile.json +125 -125
  72. package/dist/locales/it-IT/notifications.json +226 -226
  73. package/dist/locales/it-IT/pages.json +69 -67
  74. package/dist/locales/it-IT/settings.json +446 -446
  75. package/dist/locales/ja-JP/common.json +251 -251
  76. package/dist/locales/ja-JP/mobile.json +125 -125
  77. package/dist/locales/ja-JP/notifications.json +226 -226
  78. package/dist/locales/ja-JP/pages.json +69 -67
  79. package/dist/locales/ja-JP/settings.json +446 -446
  80. package/dist/locales/ko-KR/common.json +251 -251
  81. package/dist/locales/ko-KR/mobile.json +125 -125
  82. package/dist/locales/ko-KR/notifications.json +226 -226
  83. package/dist/locales/ko-KR/pages.json +69 -67
  84. package/dist/locales/ko-KR/settings.json +446 -446
  85. package/dist/locales/nl-NL/common.json +251 -251
  86. package/dist/locales/nl-NL/notifications.json +226 -226
  87. package/dist/locales/nl-NL/pages.json +69 -67
  88. package/dist/locales/no-NO/common.json +251 -251
  89. package/dist/locales/no-NO/mobile.json +125 -125
  90. package/dist/locales/no-NO/notifications.json +226 -226
  91. package/dist/locales/no-NO/pages.json +69 -67
  92. package/dist/locales/no-NO/settings.json +446 -446
  93. package/dist/locales/pl-PL/common.json +251 -251
  94. package/dist/locales/pl-PL/mobile.json +125 -125
  95. package/dist/locales/pl-PL/notifications.json +226 -226
  96. package/dist/locales/pl-PL/pages.json +69 -67
  97. package/dist/locales/pl-PL/settings.json +446 -446
  98. package/dist/locales/pt-BR/common.json +251 -251
  99. package/dist/locales/pt-BR/mobile.json +125 -125
  100. package/dist/locales/pt-BR/notifications.json +226 -226
  101. package/dist/locales/pt-BR/pages.json +69 -67
  102. package/dist/locales/pt-BR/settings.json +446 -446
  103. package/dist/locales/pt-PT/common.json +251 -251
  104. package/dist/locales/pt-PT/mobile.json +125 -125
  105. package/dist/locales/pt-PT/notifications.json +226 -226
  106. package/dist/locales/pt-PT/pages.json +69 -67
  107. package/dist/locales/pt-PT/settings.json +446 -446
  108. package/dist/locales/ro-RO/common.json +251 -251
  109. package/dist/locales/ro-RO/mobile.json +125 -125
  110. package/dist/locales/ro-RO/notifications.json +226 -226
  111. package/dist/locales/ro-RO/pages.json +69 -67
  112. package/dist/locales/ro-RO/settings.json +446 -446
  113. package/dist/locales/ru-RU/common.json +251 -251
  114. package/dist/locales/ru-RU/mobile.json +125 -125
  115. package/dist/locales/ru-RU/notifications.json +226 -226
  116. package/dist/locales/ru-RU/pages.json +69 -67
  117. package/dist/locales/ru-RU/settings.json +446 -446
  118. package/dist/locales/sr-SP/common.json +251 -251
  119. package/dist/locales/sr-SP/mobile.json +125 -125
  120. package/dist/locales/sr-SP/notifications.json +226 -226
  121. package/dist/locales/sr-SP/pages.json +69 -67
  122. package/dist/locales/sr-SP/settings.json +446 -446
  123. package/dist/locales/sv-SE/common.json +251 -251
  124. package/dist/locales/sv-SE/mobile.json +125 -125
  125. package/dist/locales/sv-SE/notifications.json +226 -226
  126. package/dist/locales/sv-SE/pages.json +69 -67
  127. package/dist/locales/sv-SE/settings.json +446 -446
  128. package/dist/locales/tr-TR/common.json +251 -251
  129. package/dist/locales/tr-TR/mobile.json +125 -125
  130. package/dist/locales/tr-TR/notifications.json +226 -226
  131. package/dist/locales/tr-TR/pages.json +69 -67
  132. package/dist/locales/tr-TR/settings.json +446 -446
  133. package/dist/locales/uk-UA/common.json +251 -251
  134. package/dist/locales/uk-UA/mobile.json +125 -125
  135. package/dist/locales/uk-UA/notifications.json +226 -226
  136. package/dist/locales/uk-UA/pages.json +69 -67
  137. package/dist/locales/uk-UA/settings.json +446 -446
  138. package/dist/locales/vi-VN/common.json +251 -251
  139. package/dist/locales/vi-VN/mobile.json +125 -125
  140. package/dist/locales/vi-VN/notifications.json +226 -226
  141. package/dist/locales/vi-VN/pages.json +69 -67
  142. package/dist/locales/vi-VN/settings.json +446 -446
  143. package/dist/locales/zh-CN/common.json +251 -251
  144. package/dist/locales/zh-CN/mobile.json +125 -125
  145. package/dist/locales/zh-CN/notifications.json +226 -226
  146. package/dist/locales/zh-CN/pages.json +69 -67
  147. package/dist/locales/zh-CN/settings.json +446 -446
  148. package/dist/locales/zh-TW/common.json +251 -251
  149. package/dist/locales/zh-TW/mobile.json +125 -125
  150. package/dist/locales/zh-TW/notifications.json +226 -226
  151. package/dist/locales/zh-TW/pages.json +69 -67
  152. package/dist/locales/zh-TW/settings.json +446 -446
  153. package/package.json +1 -1
  154. package/src/locales/af-ZA/common.json +251 -251
  155. package/src/locales/af-ZA/mobile.json +125 -125
  156. package/src/locales/af-ZA/notifications.json +226 -226
  157. package/src/locales/af-ZA/pages.json +69 -67
  158. package/src/locales/af-ZA/settings.json +446 -446
  159. package/src/locales/ar-SA/common.json +251 -251
  160. package/src/locales/ar-SA/mobile.json +125 -125
  161. package/src/locales/ar-SA/notifications.json +226 -226
  162. package/src/locales/ar-SA/pages.json +69 -67
  163. package/src/locales/ar-SA/settings.json +446 -446
  164. package/src/locales/ca-ES/common.json +251 -251
  165. package/src/locales/ca-ES/mobile.json +125 -125
  166. package/src/locales/ca-ES/notifications.json +226 -226
  167. package/src/locales/ca-ES/pages.json +69 -67
  168. package/src/locales/ca-ES/settings.json +446 -446
  169. package/src/locales/cs-CZ/common.json +251 -251
  170. package/src/locales/cs-CZ/mobile.json +125 -125
  171. package/src/locales/cs-CZ/notifications.json +226 -226
  172. package/src/locales/cs-CZ/pages.json +69 -67
  173. package/src/locales/cs-CZ/settings.json +446 -446
  174. package/src/locales/da-DK/common.json +251 -251
  175. package/src/locales/da-DK/mobile.json +125 -125
  176. package/src/locales/da-DK/notifications.json +226 -226
  177. package/src/locales/da-DK/pages.json +69 -67
  178. package/src/locales/da-DK/settings.json +446 -446
  179. package/src/locales/de-DE/common.json +251 -251
  180. package/src/locales/de-DE/mobile.json +125 -125
  181. package/src/locales/de-DE/notifications.json +226 -226
  182. package/src/locales/de-DE/pages.json +69 -67
  183. package/src/locales/de-DE/settings.json +446 -446
  184. package/src/locales/el-GR/common.json +251 -251
  185. package/src/locales/el-GR/mobile.json +125 -125
  186. package/src/locales/el-GR/notifications.json +226 -226
  187. package/src/locales/el-GR/pages.json +69 -67
  188. package/src/locales/el-GR/settings.json +446 -446
  189. package/src/locales/en/pages.json +2 -1
  190. package/src/locales/en-US/common.json +251 -251
  191. package/src/locales/en-US/mobile.json +125 -125
  192. package/src/locales/en-US/notifications.json +224 -224
  193. package/src/locales/en-US/pages.json +57 -55
  194. package/src/locales/en-US/settings.json +446 -446
  195. package/src/locales/es-ES/common.json +251 -251
  196. package/src/locales/es-ES/mobile.json +125 -125
  197. package/src/locales/es-ES/notifications.json +226 -226
  198. package/src/locales/es-ES/pages.json +69 -67
  199. package/src/locales/es-ES/settings.json +446 -446
  200. package/src/locales/fi-FI/common.json +251 -251
  201. package/src/locales/fi-FI/mobile.json +125 -125
  202. package/src/locales/fi-FI/notifications.json +226 -226
  203. package/src/locales/fi-FI/pages.json +69 -67
  204. package/src/locales/fi-FI/settings.json +446 -446
  205. package/src/locales/fr-FR/common.json +251 -251
  206. package/src/locales/fr-FR/notifications.json +226 -226
  207. package/src/locales/fr-FR/pages.json +69 -67
  208. package/src/locales/fr-FR/settings.json +446 -446
  209. package/src/locales/he-IL/common.json +251 -251
  210. package/src/locales/he-IL/mobile.json +125 -125
  211. package/src/locales/he-IL/notifications.json +226 -226
  212. package/src/locales/he-IL/pages.json +69 -67
  213. package/src/locales/he-IL/settings.json +446 -446
  214. package/src/locales/hu-HU/common.json +251 -251
  215. package/src/locales/hu-HU/mobile.json +125 -125
  216. package/src/locales/hu-HU/notifications.json +226 -226
  217. package/src/locales/hu-HU/pages.json +69 -67
  218. package/src/locales/hu-HU/settings.json +446 -446
  219. package/src/locales/it-IT/common.json +251 -251
  220. package/src/locales/it-IT/mobile.json +125 -125
  221. package/src/locales/it-IT/notifications.json +226 -226
  222. package/src/locales/it-IT/pages.json +69 -67
  223. package/src/locales/it-IT/settings.json +446 -446
  224. package/src/locales/ja-JP/common.json +251 -251
  225. package/src/locales/ja-JP/mobile.json +125 -125
  226. package/src/locales/ja-JP/notifications.json +226 -226
  227. package/src/locales/ja-JP/pages.json +69 -67
  228. package/src/locales/ja-JP/settings.json +446 -446
  229. package/src/locales/ko-KR/common.json +251 -251
  230. package/src/locales/ko-KR/mobile.json +125 -125
  231. package/src/locales/ko-KR/notifications.json +226 -226
  232. package/src/locales/ko-KR/pages.json +69 -67
  233. package/src/locales/ko-KR/settings.json +446 -446
  234. package/src/locales/nl-NL/common.json +251 -251
  235. package/src/locales/nl-NL/notifications.json +226 -226
  236. package/src/locales/nl-NL/pages.json +69 -67
  237. package/src/locales/no-NO/common.json +251 -251
  238. package/src/locales/no-NO/mobile.json +125 -125
  239. package/src/locales/no-NO/notifications.json +226 -226
  240. package/src/locales/no-NO/pages.json +69 -67
  241. package/src/locales/no-NO/settings.json +446 -446
  242. package/src/locales/pl-PL/common.json +251 -251
  243. package/src/locales/pl-PL/mobile.json +125 -125
  244. package/src/locales/pl-PL/notifications.json +226 -226
  245. package/src/locales/pl-PL/pages.json +69 -67
  246. package/src/locales/pl-PL/settings.json +446 -446
  247. package/src/locales/pt-BR/common.json +251 -251
  248. package/src/locales/pt-BR/mobile.json +125 -125
  249. package/src/locales/pt-BR/notifications.json +226 -226
  250. package/src/locales/pt-BR/pages.json +69 -67
  251. package/src/locales/pt-BR/settings.json +446 -446
  252. package/src/locales/pt-PT/common.json +251 -251
  253. package/src/locales/pt-PT/mobile.json +125 -125
  254. package/src/locales/pt-PT/notifications.json +226 -226
  255. package/src/locales/pt-PT/pages.json +69 -67
  256. package/src/locales/pt-PT/settings.json +446 -446
  257. package/src/locales/ro-RO/common.json +251 -251
  258. package/src/locales/ro-RO/mobile.json +125 -125
  259. package/src/locales/ro-RO/notifications.json +226 -226
  260. package/src/locales/ro-RO/pages.json +69 -67
  261. package/src/locales/ro-RO/settings.json +446 -446
  262. package/src/locales/ru-RU/common.json +251 -251
  263. package/src/locales/ru-RU/mobile.json +125 -125
  264. package/src/locales/ru-RU/notifications.json +226 -226
  265. package/src/locales/ru-RU/pages.json +69 -67
  266. package/src/locales/ru-RU/settings.json +446 -446
  267. package/src/locales/sr-SP/common.json +251 -251
  268. package/src/locales/sr-SP/mobile.json +125 -125
  269. package/src/locales/sr-SP/notifications.json +226 -226
  270. package/src/locales/sr-SP/pages.json +69 -67
  271. package/src/locales/sr-SP/settings.json +446 -446
  272. package/src/locales/sv-SE/common.json +251 -251
  273. package/src/locales/sv-SE/mobile.json +125 -125
  274. package/src/locales/sv-SE/notifications.json +226 -226
  275. package/src/locales/sv-SE/pages.json +69 -67
  276. package/src/locales/sv-SE/settings.json +446 -446
  277. package/src/locales/tr-TR/common.json +251 -251
  278. package/src/locales/tr-TR/mobile.json +125 -125
  279. package/src/locales/tr-TR/notifications.json +226 -226
  280. package/src/locales/tr-TR/pages.json +69 -67
  281. package/src/locales/tr-TR/settings.json +446 -446
  282. package/src/locales/uk-UA/common.json +251 -251
  283. package/src/locales/uk-UA/mobile.json +125 -125
  284. package/src/locales/uk-UA/notifications.json +226 -226
  285. package/src/locales/uk-UA/pages.json +69 -67
  286. package/src/locales/uk-UA/settings.json +446 -446
  287. package/src/locales/vi-VN/common.json +251 -251
  288. package/src/locales/vi-VN/mobile.json +125 -125
  289. package/src/locales/vi-VN/notifications.json +226 -226
  290. package/src/locales/vi-VN/pages.json +69 -67
  291. package/src/locales/vi-VN/settings.json +446 -446
  292. package/src/locales/zh-CN/common.json +251 -251
  293. package/src/locales/zh-CN/mobile.json +125 -125
  294. package/src/locales/zh-CN/notifications.json +226 -226
  295. package/src/locales/zh-CN/pages.json +69 -67
  296. package/src/locales/zh-CN/settings.json +446 -446
  297. package/src/locales/zh-TW/common.json +251 -251
  298. package/src/locales/zh-TW/mobile.json +125 -125
  299. package/src/locales/zh-TW/notifications.json +226 -226
  300. package/src/locales/zh-TW/pages.json +69 -67
  301. package/src/locales/zh-TW/settings.json +446 -446
@@ -1,501 +1,501 @@
1
1
  {
2
- "accessControl": {
3
- "allowGuestAccess": "السماح للزائر بالوصول",
4
- "allowGuestAccessDesc": "عند التعطيل، يمكن لمالك الخادم فقط تسجيل الدخول إلى Tracearr",
5
- "description": "تكوين من يمكنه الوصول إلى Tracearr",
6
- "singleOwnerNote": "ملاحظة: عندما يتم تعطيل وصول الضيف، فقط مالك الخادم يمكنه تسجيل الدخول. جميع المستخدمين الآخرين سيشاهدون رسالة \"رفض الوصول\".",
7
- "title": "التحكم بالدخول"
8
- },
9
- "account": {
10
- "createAccount": "إنشاء حساب",
11
- "createYourAccount": "أنشئ حسابك للبدء",
12
- "displayName": "اسم العرض",
13
- "email": "البريد الإلكتروني",
14
- "password": "كلمة المرور",
15
- "signInToAccount": "تسجيل الدخول إلى حسابك",
16
- "useLocalAccount": "استخدام الحساب المحلي بدلاً من ذلك"
17
- },
18
- "advanced": {
19
- "connectionScenarios": "سيناريوهات الاتصال",
20
- "externalUrl": "رابط خارجي",
21
- "reverseProxy": "عكس الوكيل",
22
- "title": "الإعدادات المتقدمة",
23
- "trustProxy": "ترويسات الوكيل"
24
- },
25
- "backup": {
26
- "actions": "الإجراءات",
27
- "backToBackups": "العودة إلى النسخ الاحتياطي",
28
- "backupHistory": "سجل النسخ الاحتياطي",
29
- "createBackup": "إنشاء نسخة احتياطية",
30
- "creating": "إنشاء نسخة احتياطية...",
31
- "databaseSize": "حجم قاعدة البيانات الحالية: {{size}}",
32
- "date": "التاريخ",
33
- "dayFri": "الجمعة",
34
- "dayMon": "الاثنين",
35
- "daySat": "السبت",
36
- "daySun": "الأحد",
37
- "dayThu": "الخميس",
38
- "dayTue": "الثلاثاء",
39
- "dayWed": "الأربعاء",
40
- "deleteConfirmDescription": "هل أنت متأكد من أنك تريد حذف هذه النسخة الاحتياطية؟ لا يمكن التراجع عن ذلك.",
41
- "deleteConfirmTitle": "حذف النسخ الاحتياطي",
42
- "description": "النسخ الاحتياطي واستعادة بيانات Tracearr",
43
- "filename": "اسم الملف",
44
- "freeSpace": "مساحة مجانية لدليل النسخ الاحتياطي: {{size}}",
45
- "lowDiskSpace": "مساحة القرص المنخفض - تتطلب النسخ الاحتياطية والاستعادة ضعف حجم قاعدة البيانات في المساحة الحرة على الأقل.",
46
- "noBackups": "لا توجد نسخ احتياطية حتى الآن. أنشئ النسخة الاحتياطية الأولى أعلاه.",
47
- "restore": {
48
- "cannotRestore": "تتطلب الإستعادة امتيازات PostgreSQL للمستخدم المتميز. الرجاء التأكد من أن مستخدم قاعدة البيانات لديه امتيازات المستخدم المتميز وحاول مرة أخرى.",
49
- "complete": "اكتمل الاستعادة بنجاح. سيتم تحديث الصفحة قريباً.",
50
- "confirm": "بدء الاستعادة",
51
- "confirmLabel": "أفهم أن هذا سيحل محل جميع البيانات",
52
- "databaseSize": "حجم قاعدة البيانات",
53
- "failed": "فشل الاستعادة",
54
- "libraryItems": "عناصر المكتبة",
55
- "pgVersionMismatch": "تم إنشاء النسخ الاحتياطي على PostgreSQL {{backupVersion}} ولكن هذا الخادم يعمل PostgreSQL {{serverVersion}}. استعادة الإغراق من إصدار PostgreSQL الأحدث غير مدعوم.",
56
- "rules": "القواعد",
57
- "selectedBackup": "النسخ الاحتياطي المحدد",
58
- "servers": "خوادم",
59
- "sessions": "الجلسات",
60
- "tables": "الجداول",
61
- "title": "استعادة النسخ الاحتياطي",
62
- "tsVersionMismatch": "تم إنشاء نسخة احتياطية مع TimescaleDB {{backupVersion}} ولكن هذا الخادم يدعم فقط حتى TimescaleDB {{serverVersion}}.",
63
- "users": "المستخدمون",
64
- "warning": "الاستعادة سوف تحل محل جميع البيانات الموجودة. سوف تحتاج إلى إعادة تسجيل الدخول بعد اكتمال الاستعادة."
65
- },
66
- "restoreAction": "إستعادة",
67
- "retentionCount": "الحفاظ على الأخير",
68
- "retentionSuffix": "النسخ الاحتياطية المجدولة",
69
- "schedule": "النسخ الاحتياطية المجدولة",
70
- "scheduleDaily": "يومياً",
71
- "scheduleDayOfMonth": "يوم الشهر",
72
- "scheduleDayOfMonthHint": "في غضون أشهر بأيام أقل، تعمل النسخة الاحتياطية في اليوم الأخير.",
73
- "scheduleDayOfWeek": "يوم من الأسبوع",
74
- "scheduleDisabled": "معطل",
75
- "scheduleMonthly": "شهريا",
76
- "scheduleTime": "الوقت ({{timezone}})",
77
- "scheduleType": "الجدول",
78
- "scheduleWeekly": "أسبوعيا",
79
- "size": "الحجم",
80
- "title": "النسخ الاحتياطي",
81
- "toast": {
82
- "backupCreateFailed": "فشل إنشاء نسخة احتياطية",
83
- "backupCreated": "تم إنشاء النسخ الاحتياطي بنجاح",
84
- "backupDeleteFailed": "فشل في حذف النسخة الاحتياطية",
85
- "backupDeleted": "تم حذف النسخ الاحتياطي",
86
- "backupUploadFailed": "فشل في تحميل النسخة الاحتياطية",
87
- "backupUploaded": "تم رفع النسخ الاحتياطي بنجاح",
88
- "restoreStartFailed": "فشل في بدء الاستعادة",
89
- "restoreStarted": "بدأت الإستعادة",
90
- "scheduleError": "فشل في حفظ جدول النسخ الاحتياطي",
91
- "scheduleSaved": "تم حفظ جدول النسخ الاحتياطي"
92
- },
93
- "type": "نوع",
94
- "typeManual": "دليل",
95
- "typeScheduled": "مجدولة",
96
- "typeUploaded": "تم الرفع",
97
- "uploadBackup": "تحميل نسخة احتياطية",
98
- "uploading": "تحميل...",
99
- "version": "الإصدار"
2
+ "title": "الإعدادات",
3
+ "tabs": {
4
+ "general": "عام",
5
+ "servers": "خوادم",
6
+ "notifications": "الإشعارات",
7
+ "mobile": "تطبيق الجوال",
8
+ "tailscale": "مقياس",
9
+ "import": "استيراد",
10
+ "advanced": "متقدم",
11
+ "jobs": "الوظائف",
12
+ "accessControl": "التحكم بالدخول",
13
+ "backup": "النسخ الاحتياطي"
100
14
  },
101
15
  "general": {
102
- "accentColor": "لون اللكنة",
103
- "apiDocs": "API Docs",
104
- "apiKeyDesc": "الوصول إلى واجهة برمجة تطبيقات Tracearr لتكامل أطراف ثالثة مثل Homarr، مساعد المنزل، إلخ.",
105
- "apiKeyReadAccess": "مفتاح API الخاص بك يمنح الوصول الكامل للقراءة إلى بيانات Tracearr الخاصة بك.",
106
- "apiRateLimit": "API Rate Limit",
107
- "apiRateLimitDesc": "Maximum public API requests per minute per key. Restart required to apply.",
108
- "apiRateLimitSuffix": "/min",
16
+ "title": "الإعدادات العامة",
17
+ "unitSystem": "نظام الوحدة",
18
+ "metric": "متر (كم/كم/ساعة)",
19
+ "imperial": "امبراطورية (مالى, mph)",
20
+ "timezone": "Timezone",
21
+ "primaryAuth": "طريقة المصادقة الرئيسية",
22
+ "localAccount": "الحساب المحلي",
23
+ "plexAccount": "حساب Plex",
24
+ "language": "اللغة",
25
+ "languageDescription": "اختر لغة العرض المفضلة لديك.",
26
+ "helpTranslate": "المساعدة في ترجمة Tracearr",
27
+ "timeFormat": "تنسيق الوقت",
28
+ "timeFormatDescription": "اختر كيف يتم عرض الأوقات.",
29
+ "timeFormat12h": "12 ساعة (1:30 PM)",
30
+ "timeFormat24h": "24 ساعة (13:30)",
109
31
  "appearance": "المظهر",
110
32
  "appearanceDesc": "تخصيص مظهر وشعور Tracearr",
33
+ "theme": "السمة",
34
+ "accentColor": "لون اللكنة",
35
+ "default": "(افتراضي)",
36
+ "cyanDefault": "* سماوي هو لون اللكنة الافتراضي",
37
+ "themeLight": "فاتح",
38
+ "themeDark": "داكن",
39
+ "themeSystem": "النظام",
111
40
  "application": "تطبيق",
112
41
  "applicationDesc": "تهيئة إعدادات التطبيق الأساسية",
113
- "copyToClipboard": "نسخ إلى الحافظة",
114
- "cyanDefault": "* سماوي هو لون اللكنة الافتراضي",
115
- "default": "(افتراضي)",
116
- "detect": "الكشف",
42
+ "unitSystemDesc": "اختر كيف يتم عرض المسافات والسرعات",
43
+ "sessionSync": "مزامنة الجلسة",
44
+ "sessionSyncDesc": "تمكين تتبع الجلسة لخوادم الوسائط الخاصة بك",
45
+ "syncInterval": "الفاصل الزمني للمزامنة",
46
+ "syncIntervalDesc": "تردد الاقتراع لجليفين/إمبي (5-300 ثانية)",
47
+ "syncIntervalSuffix": "ثواني",
48
+ "plexSseNote": "يستخدم Plex أحداث الخادم المرسلة (SSE) للتحديثات شبه الفورية - لا حاجة إلى الاقتراع.",
49
+ "jellyfinPollingNote": "يتم استطلاع/إمبي على الفاصل الزمني أعلاه.",
117
50
  "enhancedGeoIP": "بحث محسّن عن GeoIP",
118
51
  "enhancedGeoIPDesc": "استخدم خدمة Plex's GeoIP لمزيد من دقة بيانات الموقع. عند التفعيل، يتم إرسال عناوين IP إلى العنوان. v للبحث . قاعدة بيانات MaxMind المحلية تستخدم كرد فعل.",
119
52
  "externalAccess": "الوصول الخارجي",
120
53
  "externalAccessDesc": "تكوين كيفية اتصال الأجهزة الخارجية (مثل تطبيقات الجوال) بالخادم الخاص بك",
121
54
  "externalUrl": "رابط خارجي",
122
- "externalUrlDesc": "الرابط الذي يجب أن تستخدمه الأجهزة الخارجية للوصول إلى هذا الخادم. يستخدم لرموز QR واقران تطبيقات الجوال.",
123
55
  "externalUrlPlaceholder": "https://tracearr.example.com",
124
- "generateApiKeyPrompt": "إنشاء مفتاح API لتمكين التكاملات الخارجية.",
125
- "generateKey": "إنشاء مفتاح",
126
- "helpTranslate": "المساعدة في ترجمة Tracearr",
127
- "imperial": "امبراطورية (مالى, mph)",
128
- "iosHttpWarning": "يتطلب نظام iOS HTTPS للاتصالات الخارجية. إعداد وكيل عكسي مع SSL.",
129
- "jellyfinPollingNote": "يتم استطلاع/إمبي على الفاصل الزمني أعلاه.",
130
- "language": "اللغة",
131
- "languageDescription": "اختر لغة العرض المفضلة لديك.",
132
- "localAccount": "الحساب المحلي",
56
+ "externalUrlDesc": "الرابط الذي يجب أن تستخدمه الأجهزة الخارجية للوصول إلى هذا الخادم. يستخدم لرموز QR واقران تطبيقات الجوال.",
57
+ "detect": "الكشف",
133
58
  "localhostWarning": "لن تعمل عناوين URL المحلية على الأجهزة الخارجية. استخدم IP الشبكة المحلية أو اسم النطاق.",
134
- "metric": "متر (كم/كم/ساعة)",
59
+ "iosHttpWarning": "يتطلب نظام iOS HTTPS للاتصالات الخارجية. إعداد وكيل عكسي مع SSL.",
60
+ "apiKeyDesc": "الوصول إلى واجهة برمجة تطبيقات Tracearr لتكامل أطراف ثالثة مثل Homarr، مساعد المنزل، إلخ.",
61
+ "apiDocs": "API Docs",
135
62
  "noApiKeyGenerated": "لم يتم إنشاء مفتاح API",
136
- "plexAccount": "حساب Plex",
137
- "plexSseNote": "يستخدم Plex أحداث الخادم المرسلة (SSE) للتحديثات شبه الفورية - لا حاجة إلى الاقتراع.",
138
- "primaryAuth": "طريقة المصادقة الرئيسية",
139
- "publicApiSettings": "Public API",
140
- "publicApiSettingsDesc": "Configure watch-completion thresholds and request limits for the public API",
63
+ "copyToClipboard": "نسخ إلى الحافظة",
64
+ "apiKeyReadAccess": "مفتاح API الخاص بك يمنح الوصول الكامل للقراءة إلى بيانات Tracearr الخاصة بك.",
65
+ "generateApiKeyPrompt": "إنشاء مفتاح API لتمكين التكاملات الخارجية.",
141
66
  "regenerate": "تجديد",
67
+ "generateKey": "إنشاء مفتاح",
142
68
  "regenerateApiKey": "إعادة إنشاء مفتاح API؟",
143
69
  "regenerateApiKeyDesc": "سيؤدي هذا إلى إبطال مفتاح API الحالي. أي تكامل باستخدام المفتاح القديم سيتوقف عن العمل.",
144
- "sessionSync": "مزامنة الجلسة",
145
- "sessionSyncDesc": "تمكين تتبع الجلسة لخوادم الوسائط الخاصة بك",
146
- "syncInterval": "الفاصل الزمني للمزامنة",
147
- "syncIntervalDesc": "تردد الاقتراع لجليفين/إمبي (5-300 ثانية)",
148
- "syncIntervalSuffix": "ثواني",
149
- "theme": "السمة",
150
- "themeDark": "داكن",
151
- "themeLight": "فاتح",
152
- "themeSystem": "النظام",
153
- "timeFormat": "تنسيق الوقت",
154
- "timeFormat12h": "12 ساعة (1:30 PM)",
155
- "timeFormat24h": "24 ساعة (13:30)",
156
- "timeFormatDescription": "اختر كيف يتم عرض الأوقات.",
157
- "timezone": "Timezone",
158
- "title": "الإعدادات العامة",
159
- "unitSystem": "نظام الوحدة",
160
- "unitSystemDesc": "اختر كيف يتم عرض المسافات والسرعات",
70
+ "publicApiSettings": "Public API",
71
+ "publicApiSettingsDesc": "Configure watch-completion thresholds and request limits for the public API",
161
72
  "watchedThresholdMovie": "Movie Watched Threshold",
162
73
  "watchedThresholdMovieDesc": "Percentage of a movie that must be watched before it's marked complete",
74
+ "watchedThresholdTv": "TV Episode Watched Threshold",
75
+ "watchedThresholdTvDesc": "Percentage of an episode that must be watched before it's marked complete",
163
76
  "watchedThresholdMusic": "Track Watched Threshold",
164
77
  "watchedThresholdMusicDesc": "Percentage of a track that must be played before it's marked complete",
165
78
  "watchedThresholdSuffix": "%",
166
- "watchedThresholdTv": "TV Episode Watched Threshold",
167
- "watchedThresholdTvDesc": "Percentage of an episode that must be watched before it's marked complete"
168
- },
169
- "import": {
170
- "apiKeyHelp": "تم العثور على إعدادات Tautulli → واجهة ويب → API المفتاح.",
171
- "apiKeyPlaceholder": "مفتاح Tautulli API الخاص بك",
172
- "connectToTautulli": "الاتصال بـ Tautulli",
173
- "connectedFound": "متصل! العثور على المستخدمين {{users}} وسجلات المحفوظات {{records}}.",
174
- "enrichMetadata": "إثراء بالبيانات الوصفية للوسائط (موصى به)",
175
- "enrichMetadataHelp": "يجلب بيانات التعريف الإضافية من خادم الوسائط الخاص بك للجلسات المستوردة.",
176
- "enriched": "إثراء",
177
- "errors": "أخطاء",
178
- "exportBackupHelp": "في Jellystat، انتقل إلى الإعدادات → النسخ الاحتياطي للأنشطة لتصدير بياناتك.",
179
- "exportBackupHint": "تصدير نسخة احتياطية للنشاط من Jellystat",
180
- "howItWorks": "كيف يعمل الاستيراد",
181
- "howItWorksDesc": "ستورد Tracearr جميع بيانات الساعة التاريخية من مصدرك. قد يستغرق هذا بعض الوقت اعتماداً على حجم مكتبتك.",
182
- "importComplete": "اكتمل الاستيراد",
183
- "importFailed": "فشل الاستيراد",
184
- "importHistory": "تاريخ الاستيراد",
185
- "importHistoryDesc": "استيراد بيانات المراقبة التاريخية من المصادر الخارجية",
186
- "importInProgressGeneric": "جار الاستيراد...",
187
- "importInProgressPercent": "جار الاستيراد ({{percent}}% مكتمل)...",
188
- "importOptions": "خيارات الاستيراد",
189
- "importProgress": "تقدم الاستيراد",
190
- "imported": "مستورد",
191
- "importing": "استيراد...",
192
- "includeStreamDetails": "تضمين بيانات البث التفصيلي (الترميزات، البت، الدقة)",
193
- "includeStreamDetailsHelp": "استيراد معلومات تدفق إضافية. قد تزيد من وقت الاستيراد بشكل كبير.",
194
- "jellyfinEmby": "Jellyfin/Emby (Jellystat)",
195
- "jellystat": "استيراد من جيليستات",
196
- "noServers": "لا يوجد خوادم متصلة",
197
- "noServersHint": "تحتاج إلى خادم واحد على الأقل متصل لاستيراد البيانات.",
198
- "overwriteFriendlyNames": "الكتابة فوق الأسماء الصديقة الموجودة مع أسماء تاتوللي",
199
- "overwriteFriendlyNamesHelp": "وستستعاض عن أسماء الهوية الموجودة في تريكير بالأسماء الصديقة من تاتولي.",
200
- "page": "الصفحة",
201
- "pleaseEnterDetails": "الرجاء إدخال رابط Tautulli ومفتاح API",
202
- "pleaseSelectJsonFile": "الرجاء تحديد ملف JSON",
203
- "plex": "Plex (Tautulli)",
204
- "processed": "معالجة",
205
- "recordsMayBeSkipped": "يمكن تخطي السجلات إذا:",
206
- "selectJellyfinServer": "حدد خادم Jellyfin أو Emby",
207
- "selectPlexServer": "حدد خادم Plex",
208
- "selectTargetServer": "حدد الخادم المستهدف",
209
- "skipDuplicate": "4 - الدورة المزدوجة - كانت الدورة قد استوردت من قبل.",
210
- "skipInProgress": "الدورة التقدمية - الدورات الفعالة/غير المكتملة بدون معرف مرجعي.",
211
- "skipSyncHint": "إذا تم تخطي العديد من السجلات، تأكد من مزامنة الخادم الخاص بك مؤخرا في الإعدادات → الخوادم.",
212
- "skipUserNotFoundJellyfin": "المستخدم غير موجود - مستخدم Jellyfin/Emby غير موجود في Tracearr. قم بمزامنة الخادم الخاص بك أولاً لإضافة جميع المستخدمين.",
213
- "skipUserNotFoundPlex": "المستخدم غير موجود - مستخدم Plex غير موجود في Tracearr. قم بمزامنة الخادم الخاص بك أولاً لإضافة جميع المستخدمين.",
214
- "skipped": "تخطي",
215
- "startImport": "بدء الاستيراد",
216
- "startingImport": "بدء الاستيراد...",
217
- "step1": "1",
218
- "step2": "2",
219
- "targetServer": "Target Server",
220
- "tautulli": "استيراد من TTTulli",
221
- "tautulliUrl": "رابط Tautulli",
222
- "tautulliUrlHelp": "عنوان URL الخاص بنموذج Tautulli الخاص بك.",
223
- "tautulliUrlPlaceholder": "http://localhost:8181",
224
- "testing": "اختبار...",
225
- "testingConnection": "اختبار الاتصال...",
226
- "title": "استيراد البيانات",
227
- "updateExistingRecords": "تحديث السجلات الموجودة مع تفاصيل البث",
228
- "updateExistingRecordsHelp": "سيتم تحديث السجلات التي تم استيرادها سابقا مع بيانات جودة التدفق.",
229
- "uploadJellystatBackup": "تحميل نسخة Jellystat الاحتياطية",
230
- "uploadingBackup": "تحميل ملف النسخ الاحتياطي...",
231
- "playbackReporting": "Playback Reporting Plugin",
232
- "playbackReportingDesc": "Import history directly from the Playback Reporting plugin installed on your Jellyfin or Emby server. No file export needed.",
233
- "checkPlugin": "Check Plugin",
234
- "checkingPlugin": "Checking...",
235
- "pluginFound": "Plugin found: {{records}} records from {{oldestDate}} to {{newestDate}}",
236
- "pluginNotInstalled": "The Playback Reporting plugin is not installed on this server, or Tracearr cannot reach it. Install it from the server's plugin catalog to start recording history, or use the Jellystat import below.",
237
- "serverTimezone": "Server Timezone",
238
- "serverTimezoneHelp": "Must match the timezone configured on your media server host, not your browser's timezone. Playback Reporting timestamps are stored in local server time.",
239
- "importFullRange": "Import full history",
240
- "importFullRangeHelp": "By default only history older than Tracearr's earliest tracked session for this server is imported, so sessions Tracearr already recorded are never duplicated. Enable this to import the plugin's entire history regardless of overlap, if your Tracearr history has gaps. Exact duplicates are still skipped.",
241
- "overlapSkipped": "{{count}} skipped as overlap",
242
- "duplicates": "{{count}} duplicates skipped",
243
- "skipOverlap": "Overlapping record - the timestamp falls inside the period Tracearr already tracks for this server. Enable full-range import to include it.",
244
- "skipDuplicatePlugin": "Duplicate record - already imported directly or arrived earlier via a Jellystat import of the same plugin data."
245
- },
246
- "ipWarning": {
247
- "acknowledge": "فهمت ذلك",
248
- "message": "يبدو أن جميع المستخدمين يستخدمون نفس عنوان IP أو عناوين IP للشبكة المحلية. قد يؤثر هذا على المنطق القائم على القواعد للموقع أو عناوين IP"
249
- },
250
- "jobs": {
251
- "backfill": "خلاصة",
252
- "cleanup": "تنظيف",
253
- "delayed": "تأخير",
254
- "description": "إدارة مهام الخلفية التي تحافظ على دقة البيانات الخاصة بك وتحسينها.",
255
- "errors": "أخطاء",
256
- "jobHistory": "سجل الوظائف",
257
- "jobHistoryDesc": "عمليات إعدام وظائف الصيانة الأخيرة",
258
- "lastJobCompleted": "اكتملت آخر مهمة بنجاح",
259
- "lastJobFailed": "فشل آخر عمل",
260
- "mayTakeAWhile": "قد يستغرق هذا بعض الوقت",
261
- "mayTakeAWhileDesc": "قد يستغرق إنجاز هذه المهمة عدة دقائق تبعاً لحجم مكتبتك.",
262
- "normalization": "التطبيع",
263
- "processed": "معالجة",
264
- "queued": "قائمة الانتظار",
265
- "runConfirm": "تشغيل {{name}}?",
266
- "runJob": "تشغيل الوظيفة",
267
- "running": "تشغيل",
268
- "runningState": "تشغيل",
269
- "startJob": "بدء العمل",
270
- "title": "وظائف الصيانة",
271
- "unchanged": "بدون تغيير",
272
- "updated": "تم التحديث",
273
- "waiting": "في انتظار"
274
- },
275
- "mobile": {
276
- "addDevice": "إضافة جهاز",
277
- "connectedDevices": "الأجهزة المتصلة",
278
- "connectedDevicesDesc": "{{count}} devices paired to your server",
279
- "copyToken": "نسخ الرمز المميز",
280
- "deviceName": "اسم الجهاز",
281
- "deviceNamePlaceholder": "مثل iPhone 15",
282
- "devicesConnected": "{{current}} of {{max}} devices connected",
283
- "disable": "تعطيل",
284
- "disableMobileAccess": "تعطيل وصول الجوال",
285
- "disableMobileAccessConfirm": "سيؤدي هذا إلى قطع الاتصال بجميع الأجهزة المحمولة وإلغاء جميع الجلسات. يمكنك إعادة تمكين الوصول إلى الهاتف في وقت لاحق.",
286
- "done": "تم",
287
- "downloadOnAppStore": "تحميل على متجر التطبيقات",
288
- "enableMobileAccess": "تمكين الوصول إلى الجوال",
289
- "enabling": "تفعيل...",
290
- "expiresIn": "تنتهي الصلاحية في {{time}}",
291
- "externalUrlBanner": "استخدام الوكيل العكسي أو الوصول عن بعد؟ تعيين الخاص بك",
292
- "externalUrlBannerLink": "رابط خارجي",
293
- "externalUrlBannerSuffix": "حتى يمكن لتطبيق الجوال الاتصال بالخادم الخاص بك.",
294
- "externalUrlRequired": "يجب تكوين عنوان URL خارجي في الإعدادات العامة للإقران بالجوال للعمل.",
295
- "failedToGenerateToken": "فشل في توليد الرمز المميز",
296
- "generateToken": "إنشاء رمز الاقتران",
297
- "getOnGooglePlay": "احصل عليها على جوجل بلاي",
298
- "getTheApp": "احصل على التطبيق",
299
- "getTheAppDesc": "تحميل تطبيق Tracearr المحمول لنظام iOS أو Android",
300
- "mobileAccessDisabled": "تم تعطيل الوصول إلى الجوال",
301
- "mobileAccessDisabledDesc": "تمكين الوصول إلى الجوال للسماح لتطبيق Tracearr المحمول بالاتصال بالخادم الخاص بك.",
302
- "noDevices": "لا توجد أجهزة متصلة",
303
- "oneTimePairToken": "رمز اقتران لمرة واحدة",
304
- "pairDevice": "جهاز الاقتران",
305
- "pairNewDevice": "إقران جهاز جديد",
306
- "pairNewDeviceDesc": "قم بمسح رمز QR باستخدام تطبيق Tracearr المحمول، أو أدخل الرمز المميز يدويا.",
307
- "pairYourDevice": "إقران جهازك",
308
- "pairYourDeviceDesc": "قم بمسح رمز QR باستخدام تطبيق Tracearr للاتصال بهذا الخادم.",
309
- "pendingTokens": "{{count}} رموز مزدوجة معلقة",
310
- "removeDevice": "إزالة الجهاز",
311
- "removeDeviceConfirm": "هل أنت متأكد من أنك تريد إزالة {{deviceName}}؟ سيحتاج هذا الجهاز إلى الإقران مرة أخرى لإعادة الاتصال.",
312
- "renameDevice": "إعادة تسمية الجهاز",
313
- "renameDeviceDesc": "أدخل اسما للتعرف على هذا الجهاز في القائمة.",
314
- "revokeAll": "إلغاء جميع الجلسات",
315
- "revokeAllConfirm": "سيؤدي هذا إلى قطع الاتصال بجميع الأجهزة المحمولة. سوف تحتاج إلى الإقران مرة أخرى لإعادة الاتصال.",
316
- "revokeAllSessions": "إلغاء الكل",
317
- "scanQrCode": "Scan QR Code",
318
- "title": "تطبيق الجوال",
319
- "tokenExpires": "تنتهي صلاحية الرمز المميز في {{time}}",
320
- "tokenExpiryNote": "تنتهي صلاحية هذا الرمز المميز في 5 دقائق ولا يمكن استخدامه إلا لمرة واحدة."
321
- },
322
- "notifications": {
323
- "agentCard": {
324
- "default": "الافتراضي",
325
- "editSettings": "تعديل الإعدادات",
326
- "events": "الأحداث",
327
- "notConfigured": "لم يتم تكوينه بالكامل.",
328
- "saved": "محفوظ",
329
- "sendTest": "إرسال اختبار"
330
- },
331
- "routing": {
332
- "discord": "ديسكورد",
333
- "event": "الحدث",
334
- "web": "ويب",
335
- "webNote": "يتم تكوين الإشعارات لكل جهاز في تطبيق الجوال.",
336
- "webToastNote": "تظهر التنبيهات المنبثقة في هذا المتصفح.",
337
- "webhook": "ويبهوك"
338
- }
339
- },
340
- "plex": {
341
- "chooseServer": "اختر خادم Plex Media لمراقبة",
342
- "selectServer": "حدد الخادم",
343
- "signInWithPlex": "تسجيل الدخول باستخدام Plex",
344
- "signUpWithPlex": "قم بالتسجيل باستخدام Plex"
345
- },
346
- "serverHealth": {
347
- "multipleUnreachable": "{{count}} خوادم لا يمكن الوصول إليها: {{serverNames}}",
348
- "unreachable": "{{serverName}} غير قابل للوصول"
79
+ "apiRateLimit": "API Rate Limit",
80
+ "apiRateLimitDesc": "Maximum public API requests per minute per key. Restart required to apply.",
81
+ "apiRateLimitSuffix": "/min"
349
82
  },
350
83
  "servers": {
84
+ "title": "خوادم متصلة",
351
85
  "addServer": "إضافة خادم",
352
- "addServerDialogDescOther": "ربط خادم Jellyfin أو Embi.",
353
- "addServerDialogDescPlex": "حدد خادم Plex من حسابك المرتبط.",
354
- "added": "أضيف {{date}}",
355
- "allFieldsRequired": "جميع الحقول مطلوبة",
86
+ "serverName": "اسم الخادم",
87
+ "serverUrl": "رابط الخادم",
88
+ "syncInterval": "الفاصل الزمني للمزامنة",
89
+ "testConnection": "اختبار الاتصال",
90
+ "connectionSuccess": "تم الاتصال بنجاح",
91
+ "connectionFailed": "فشل الاتصال",
92
+ "noServersConnected": "لا يوجد خوادم متصلة",
93
+ "noServersConnectedHint": "انقر فوق \"إضافة خادم\" لربط خادم Jellyfin أو Emby",
94
+ "serverType": "نوع الخادم",
95
+ "loadingAccounts": "تحميل حسابات Plex المرتبطة...",
96
+ "noPlexAccountsLinked": "لا توجد حسابات Plex مرتبطة",
97
+ "noPlexAccountsLinkedHint": "اربط حساب Plex أعلاه، ثم عد لإضافة خادم.",
98
+ "selectPlexAccount": "حدد حساب Plex",
99
+ "chooseAccount": "اختر حساب...",
100
+ "selectAccountHelp": "حدد حساب Plex لاكتشاف الخوادم منه.",
356
101
  "allServersConnected": "جميع الخوادم متصلة",
357
102
  "allServersConnectedDesc": "جميع الخوادم من هذا الحساب متصلة.",
358
- "apiKeyHelp": "موجود في لوحة تحكم خادم الوسائط الخاصة بك تحت مفاتيح API أو الإعدادات المتقدمة.",
359
- "apiKeyHelpEmby": "العثور على هذا في خادم Emby → API مفاتيح",
360
- "apiKeyHelpJellyfin": "ابحث عن هذا في لوحة تحكم جليفين → مفاتيح API",
103
+ "serverUrlPlaceholder": "http://192.168.1.100:8096",
104
+ "serverUrlHelp": "عنوان URL مباشر إلى خادم Jellyfin أو Emby الخاص بك. استخدم IP:port للحصول على أفضل موثوقية.",
105
+ "serverNamePlaceholder": "خادم الوسائط الخاص بي",
361
106
  "apiKeyPlaceholder": "أدخل مفتاح API الخاص بك",
362
- "checkingConnection": "Checking connection…",
363
- "chooseAccount": "اختر حساب...",
364
- "connectServer": "الاتصال بالخادم",
107
+ "apiKeyHelp": "موجود في لوحة تحكم خادم الوسائط الخاصة بك تحت مفاتيح API أو الإعدادات المتقدمة.",
365
108
  "connecting": "جاري الاتصال...",
366
- "connectionFailed": "فشل الاتصال",
367
- "connectionSuccess": "تم الاتصال بنجاح",
368
- "description": "إدارة خوادم Plex، Jellyfin، و Emby",
369
- "discoveringConnections": "اكتشاف الاتصالات...",
370
- "discoveringServers": "اكتشاف خوادم Plex المتاحة...",
109
+ "connectServer": "الاتصال بالخادم",
110
+ "removeServer": "إزالة الخادم",
111
+ "removeServerConfirm": "هل أنت متأكد من أنك تريد إزالة هذا الخادم؟ سيتم الاحتفاظ بجميع بيانات الجلسة المرتبطة بذلك، ولكن لن تتمكن من مراقبة الجلسات الجديدة من هذا الخادم.",
371
112
  "editServer": "تعديل الخادم",
372
113
  "editServerDesc": "تحديث اسم الخادم أو رابط الاتصال.",
373
- "loadingAccounts": "تحميل حسابات Plex المرتبطة...",
374
- "noPlexAccountsLinked": "لا توجد حسابات Plex مرتبطة",
375
- "noPlexAccountsLinkedHint": "اربط حساب Plex أعلاه، ثم عد لإضافة خادم.",
376
- "noServersConnected": "لا يوجد خوادم متصلة",
377
- "noServersConnectedHint": "انقر فوق \"إضافة خادم\" لربط خادم Jellyfin أو Emby",
114
+ "serverColor": "لون الخادم",
115
+ "serverColorDesc": "تستخدم للإسناد المرئي في عرض متعدد الخوادم",
116
+ "updating": "تحديث...",
117
+ "allFieldsRequired": "جميع الحقول مطلوبة",
118
+ "addServerDialogDescPlex": "حدد خادم Plex من حسابك المرتبط.",
119
+ "addServerDialogDescOther": "ربط خادم Jellyfin أو Embi.",
120
+ "description": "إدارة خوادم Plex، Jellyfin، و Emby",
121
+ "discoveringServers": "اكتشاف خوادم Plex المتاحة...",
122
+ "discoveringConnections": "اكتشاف الاتصالات...",
378
123
  "plexAccount": "حساب Plex",
124
+ "serverUrlHelpJellyfin": "عنوان URL حيث يمكن الوصول إلى خادم Jellyfin",
125
+ "serverUrlHelpEmby": "عنوان URL حيث يمكن الوصول إلى خادم Emby الخاص بك",
126
+ "apiKeyHelpJellyfin": "ابحث عن هذا في لوحة تحكم جليفين → مفاتيح API",
127
+ "apiKeyHelpEmby": "العثور على هذا في خادم Emby → API مفاتيح",
379
128
  "plexServerPlaceholder": "خادم Plex الخاص بي",
380
129
  "plexServerUrlPlaceholder": "http://192.168.1.100:32400",
381
- "pluginUpdateAvailable": "Plugin update available",
382
- "pluginVersion": "plugin v{{version}}",
383
- "pollingMode": "Polling",
384
- "posterSource": {
385
- "automatic": "Automatic (most recent)",
386
- "description": "When a title is on more than one server, use this server's poster. If it doesn't have one, we'll fall back to the most recently added copy.",
387
- "emptyHint": "Add a server to choose a preferred poster source.",
388
- "label": "Preferred Poster Source",
389
- "title": "Poster Preferences",
390
- "titleDesc": "Choose which server's poster is shown when a title exists on more than one server"
391
- },
130
+ "updateHint": "أو انقر فوق التحديث أدناه لحفظ تغيير الاسم فقط.",
131
+ "added": "أضيف {{date}}",
392
132
  "realtimeActive": "Real-time updates active",
133
+ "pollingMode": "Polling",
134
+ "setupRealtime": "Set up real-time updates",
135
+ "realtimeError": "Real-time error",
136
+ "checkingConnection": "Checking connection…",
137
+ "pluginVersion": "plugin v{{version}}",
138
+ "pluginUpdateAvailable": "Plugin update available",
393
139
  "realtimeDialog": {
394
- "autoDetectNote": "Restart Jellyfin or Emby after installing the plugin; the restart is required. Tracearr itself needs no restart and picks the plugin up automatically.",
395
- "close": "Close",
396
- "copyUrl": "Copy URL",
140
+ "title": "Enable real-time updates",
141
+ "updateTitle": "Update the Tracearr SSE plugin",
142
+ "jellyfinDescription": "Install the Tracearr SSE plugin to get instant session updates without waiting for the next poll.",
397
143
  "embyDescription": "Install the Tracearr SSE plugin to get instant session updates without waiting for the next poll.",
398
- "embyReleasesUrl": "https://github.com/Tracearr/Media-Server-SSE/releases",
144
+ "jellyfinUpdateDescription": "A newer plugin release is available. Open your Jellyfin dashboard, go to Plugins, Catalog, and update Tracearr SSE, then restart Jellyfin.",
399
145
  "embyUpdateDescription": "A newer plugin release is available. Download the latest release zip, replace the plugin DLL in your Emby plugins folder, and restart Emby.",
400
- "jellyfinDescription": "Install the Tracearr SSE plugin to get instant session updates without waiting for the next poll.",
146
+ "repositoryUrl": "Repository URL",
147
+ "copyUrl": "Copy URL",
401
148
  "jellyfinRepoUrl": "https://raw.githubusercontent.com/Tracearr/Media-Server-SSE/main/manifest.json",
402
- "jellyfinUpdateDescription": "A newer plugin release is available. Open your Jellyfin dashboard, go to Plugins, Catalog, and update Tracearr SSE, then restart Jellyfin.",
149
+ "embyReleasesUrl": "https://github.com/Tracearr/Media-Server-SSE/releases",
403
150
  "openReleases": "Open releases page",
404
- "repositoryUrl": "Repository URL",
405
- "title": "Enable real-time updates",
406
- "updateTitle": "Update the Tracearr SSE plugin",
151
+ "autoDetectNote": "Restart Jellyfin or Emby after installing the plugin; the restart is required. Tracearr itself needs no restart and picks the plugin up automatically.",
152
+ "close": "Close",
407
153
  "issueBlocked": "The server reports the plugin as installed and active, but Tracearr gets a 404 from its endpoint. A reverse proxy blocking the path is the usual cause.",
408
154
  "issueRestartRequired": "The plugin is installed, but the media server needs a restart before it activates.",
409
155
  "issueMalfunctioned": "The server reports the plugin failed to load. Updating the plugin or the media server usually clears this."
410
156
  },
411
- "removeServer": "إزالة الخادم",
412
- "removeServerConfirm": "هل أنت متأكد من أنك تريد إزالة هذا الخادم؟ سيتم الاحتفاظ بجميع بيانات الجلسة المرتبطة بذلك، ولكن لن تتمكن من مراقبة الجلسات الجديدة من هذا الخادم.",
413
- "selectAccountHelp": "حدد حساب Plex لاكتشاف الخوادم منه.",
414
- "selectPlexAccount": "حدد حساب Plex",
415
- "serverColor": "لون الخادم",
416
- "serverColorDesc": "تستخدم للإسناد المرئي في عرض متعدد الخوادم",
417
- "serverName": "اسم الخادم",
418
- "serverNamePlaceholder": "خادم الوسائط الخاص بي",
419
- "serverType": "نوع الخادم",
420
- "serverUrl": "رابط الخادم",
421
- "serverUrlHelp": "عنوان URL مباشر إلى خادم Jellyfin أو Emby الخاص بك. استخدم IP:port للحصول على أفضل موثوقية.",
422
- "serverUrlHelpEmby": "عنوان URL حيث يمكن الوصول إلى خادم Emby الخاص بك",
423
- "serverUrlHelpJellyfin": "عنوان URL حيث يمكن الوصول إلى خادم Jellyfin",
424
- "serverUrlPlaceholder": "http://192.168.1.100:8096",
425
- "setupRealtime": "Set up real-time updates",
426
- "realtimeError": "Real-time error",
427
- "syncInterval": "الفاصل الزمني للمزامنة",
428
- "testConnection": "اختبار الاتصال",
429
- "title": "خوادم متصلة",
430
- "updateHint": "أو انقر فوق التحديث أدناه لحفظ تغيير الاسم فقط.",
431
- "updating": "تحديث..."
432
- },
433
- "tabs": {
434
- "accessControl": "التحكم بالدخول",
435
- "advanced": "متقدم",
436
- "backup": "النسخ الاحتياطي",
437
- "general": "عام",
438
- "import": "استيراد",
439
- "jobs": "الوظائف",
440
- "mobile": "تطبيق الجوال",
441
- "notifications": "الإشعارات",
442
- "servers": "خوادم",
443
- "tailscale": "مقياس"
157
+ "posterSource": {
158
+ "title": "Poster Preferences",
159
+ "titleDesc": "Choose which server's poster is shown when a title exists on more than one server",
160
+ "label": "Preferred Poster Source",
161
+ "description": "When a title is on more than one server, use this server's poster. If it doesn't have one, we'll fall back to the most recently added copy.",
162
+ "automatic": "Automatic (most recent)",
163
+ "emptyHint": "Add a server to choose a preferred poster source."
164
+ }
444
165
  },
445
- "tailscale": {
446
- "authorize": "التصريح في الجدول",
447
- "awaitingAuth": "في انتظار التفويض...",
448
- "connected": "تم توصيل المقياس الإلكتروني. مثيل Tracearr الخاص بك متاح على شبكة الذاكرة.",
449
- "description": "الوصول إلى Tracearr بشكل آمن على شبكة النطاق دون شحن المنفذ الخاصة بك.",
450
- "disable": "تعطيل المقياس",
451
- "disableConfirmDescription": "سيؤدي هذا إلى قطع اتصال Tracearr من الخيل الخاص بك. يمكنك إعادة التفعيل دون إعادة ترخيص.",
452
- "disableConfirmTitle": "تعطيل المقياس الخطي؟",
453
- "disabledDescription": "تمكين Tailscale لوضع Tracearr على جهازك الخاص. لا يتطلب إعادة توجيه المنفذ أو عكس الوكيل المطلوب.",
454
- "dnsName": "اسم DNS",
455
- "enable": "تمكين المقياس",
456
- "exitNodeNone": "لا",
457
- "exitNodeOffline": "(دون اتصال)",
458
- "hideLogs": "إخفاء السجلات",
459
- "hostname": "Hostname",
460
- "hostnameHint": "إختيار اسم مخصص لهذا الجهاز على شبكة الذيل الخاصة بك. الأحرف والأرقام والوصلات فقط.",
461
- "hostnameLabel": "اسم مضيف الجهاز",
462
- "noLogs": "لا يوجد سجل إخراج متاح.",
463
- "notAvailable": "لم يتم العثور على ثنائيات المقياس الخطي. هذه الميزة متوفرة فقط عند تشغيل صورة Docker الرسمية.",
464
- "resetConfirmDescription": "سيؤدي هذا إلى قطع اتصال Tracearr من ذاكرة التخزين الخاصة بك وإزالة هوية الجهاز. سوف تحتاج إلى إعادة التصريح إذا قمت بتمكينه مرة أخرى.",
465
- "resetConfirmTitle": "Reset Tailscale?",
466
- "showLogs": "إظهار السجلات",
467
- "starting": "جارٍ البدء في النطاق السريع...",
468
- "stopping": "إيقاف النطاق السريع...",
469
- "tailnetUrl": "الرابط",
470
- "title": "شبكة VPN للنطاق",
471
- "toast": {
472
- "disableFailed": "فشل في تعطيل الجدول",
473
- "disabled": "تم تعطيل المقياس الخطي.",
474
- "enableFailed": "فشل في تمكين النطاق",
475
- "exitNodeFailed": "فشل في تعيين الخروج من العقدة",
476
- "exitNodeSet": "تم تحديث عقدة الخروج",
477
- "reset": "تم إعادة تعيين الجدول الخطي.",
478
- "resetFailed": "فشل في إعادة تعيين النطاق"
166
+ "mobile": {
167
+ "title": "تطبيق الجوال",
168
+ "pairDevice": "جهاز الاقتران",
169
+ "connectedDevices": "الأجهزة المتصلة",
170
+ "generateToken": "إنشاء رمز الاقتران",
171
+ "scanQrCode": "Scan QR Code",
172
+ "tokenExpires": "تنتهي صلاحية الرمز المميز في {{time}}",
173
+ "noDevices": "لا توجد أجهزة متصلة",
174
+ "revokeAll": "إلغاء جميع الجلسات",
175
+ "getTheApp": "احصل على التطبيق",
176
+ "getTheAppDesc": "تحميل تطبيق Tracearr المحمول لنظام iOS أو Android",
177
+ "getOnGooglePlay": "احصل عليها على جوجل بلاي",
178
+ "downloadOnAppStore": "تحميل على متجر التطبيقات",
179
+ "pairYourDevice": "إقران جهازك",
180
+ "pairYourDeviceDesc": "قم بمسح رمز QR باستخدام تطبيق Tracearr للاتصال بهذا الخادم.",
181
+ "externalUrlRequired": "يجب تكوين عنوان URL خارجي في الإعدادات العامة للإقران بالجوال للعمل.",
182
+ "mobileAccessDisabled": "تم تعطيل الوصول إلى الجوال",
183
+ "mobileAccessDisabledDesc": "تمكين الوصول إلى الجوال للسماح لتطبيق Tracearr المحمول بالاتصال بالخادم الخاص بك.",
184
+ "enableMobileAccess": "تمكين الوصول إلى الجوال",
185
+ "enabling": "تفعيل...",
186
+ "devicesConnected": "{{current}} of {{max}} devices connected",
187
+ "pendingTokens": "{{count}} رموز مزدوجة معلقة",
188
+ "addDevice": "إضافة جهاز",
189
+ "disableMobileAccess": "تعطيل وصول الجوال",
190
+ "connectedDevicesDesc": "{{count}} devices paired to your server",
191
+ "revokeAllSessions": "إلغاء الكل",
192
+ "pairNewDevice": "إقران جهاز جديد",
193
+ "pairNewDeviceDesc": "قم بمسح رمز QR باستخدام تطبيق Tracearr المحمول، أو أدخل الرمز المميز يدويا.",
194
+ "expiresIn": "تنتهي الصلاحية في {{time}}",
195
+ "oneTimePairToken": "رمز اقتران لمرة واحدة",
196
+ "copyToken": "نسخ الرمز المميز",
197
+ "tokenExpiryNote": "تنتهي صلاحية هذا الرمز المميز في 5 دقائق ولا يمكن استخدامه إلا لمرة واحدة.",
198
+ "done": "تم",
199
+ "disableMobileAccessConfirm": "سيؤدي هذا إلى قطع الاتصال بجميع الأجهزة المحمولة وإلغاء جميع الجلسات. يمكنك إعادة تمكين الوصول إلى الهاتف في وقت لاحق.",
200
+ "disable": "تعطيل",
201
+ "revokeAllConfirm": "سيؤدي هذا إلى قطع الاتصال بجميع الأجهزة المحمولة. سوف تحتاج إلى الإقران مرة أخرى لإعادة الاتصال.",
202
+ "renameDevice": "إعادة تسمية الجهاز",
203
+ "renameDeviceDesc": "أدخل اسما للتعرف على هذا الجهاز في القائمة.",
204
+ "deviceName": "اسم الجهاز",
205
+ "deviceNamePlaceholder": "مثل iPhone 15",
206
+ "removeDevice": "إزالة الجهاز",
207
+ "failedToGenerateToken": "فشل في توليد الرمز المميز",
208
+ "removeDeviceConfirm": "هل أنت متأكد من أنك تريد إزالة {{deviceName}}؟ سيحتاج هذا الجهاز إلى الإقران مرة أخرى لإعادة الاتصال.",
209
+ "externalUrlBanner": "استخدام الوكيل العكسي أو الوصول عن بعد؟ تعيين الخاص بك",
210
+ "externalUrlBannerLink": "رابط خارجي",
211
+ "externalUrlBannerSuffix": "حتى يمكن لتطبيق الجوال الاتصال بالخادم الخاص بك."
212
+ },
213
+ "tailscale": {
214
+ "title": "شبكة VPN للنطاق",
215
+ "description": "الوصول إلى Tracearr بشكل آمن على شبكة النطاق دون شحن المنفذ الخاصة بك.",
216
+ "notAvailable": "لم يتم العثور على ثنائيات المقياس الخطي. هذه الميزة متوفرة فقط عند تشغيل صورة Docker الرسمية.",
217
+ "disabledDescription": "تمكين Tailscale لوضع Tracearr على جهازك الخاص. لا يتطلب إعادة توجيه المنفذ أو عكس الوكيل المطلوب.",
218
+ "hostnameLabel": "اسم مضيف الجهاز",
219
+ "hostnameHint": "إختيار اسم مخصص لهذا الجهاز على شبكة الذيل الخاصة بك. الأحرف والأرقام والوصلات فقط.",
220
+ "enable": "تمكين المقياس",
221
+ "disable": "تعطيل المقياس",
222
+ "starting": "جارٍ البدء في النطاق السريع...",
223
+ "stopping": "إيقاف النطاق السريع...",
224
+ "awaitingAuth": "في انتظار التفويض...",
225
+ "authorize": "التصريح في الجدول",
226
+ "connected": "تم توصيل المقياس الإلكتروني. مثيل Tracearr الخاص بك متاح على شبكة الذاكرة.",
227
+ "hostname": "Hostname",
228
+ "dnsName": "اسم DNS",
229
+ "tailnetUrl": "الرابط",
230
+ "showLogs": "إظهار السجلات",
231
+ "hideLogs": "إخفاء السجلات",
232
+ "noLogs": "لا يوجد سجل إخراج متاح.",
233
+ "exitNodeNone": "لا",
234
+ "exitNodeOffline": "(دون اتصال)",
235
+ "unknownError": "حدث خطأ غير معروف.",
236
+ "disableConfirmTitle": "تعطيل المقياس الخطي؟",
237
+ "disableConfirmDescription": "سيؤدي هذا إلى قطع اتصال Tracearr من الخيل الخاص بك. يمكنك إعادة التفعيل دون إعادة ترخيص.",
238
+ "resetConfirmTitle": "Reset Tailscale?",
239
+ "resetConfirmDescription": "سيؤدي هذا إلى قطع اتصال Tracearr من ذاكرة التخزين الخاصة بك وإزالة هوية الجهاز. سوف تحتاج إلى إعادة التصريح إذا قمت بتمكينه مرة أخرى.",
240
+ "toast": {
241
+ "disabled": "تم تعطيل المقياس الخطي.",
242
+ "enableFailed": "فشل في تمكين النطاق",
243
+ "disableFailed": "فشل في تعطيل الجدول",
244
+ "reset": "تم إعادة تعيين الجدول الخطي.",
245
+ "resetFailed": "فشل في إعادة تعيين النطاق",
246
+ "exitNodeSet": "تم تحديث عقدة الخروج",
247
+ "exitNodeFailed": "فشل في تعيين الخروج من العقدة"
248
+ }
249
+ },
250
+ "webhooks": {
251
+ "title": "تكوين Webhook",
252
+ "discordWebhook": "رابط ديسكورد Webhook",
253
+ "ntfyTopic": "موضوع Ntfy",
254
+ "customWebhook": "رابط Webhook مخصص",
255
+ "webhookFormat": "تنسيق Webhook",
256
+ "testWebhook": "اختبار Webhook"
257
+ },
258
+ "jobs": {
259
+ "title": "وظائف الصيانة",
260
+ "description": "إدارة مهام الخلفية التي تحافظ على دقة البيانات الخاصة بك وتحسينها.",
261
+ "normalization": "التطبيع",
262
+ "backfill": "خلاصة",
263
+ "cleanup": "تنظيف",
264
+ "running": "تشغيل",
265
+ "queued": "قائمة الانتظار",
266
+ "delayed": "تأخير",
267
+ "waiting": "في انتظار",
268
+ "runningState": "تشغيل",
269
+ "runJob": "تشغيل الوظيفة",
270
+ "processed": "معالجة",
271
+ "updated": "تم التحديث",
272
+ "unchanged": "بدون تغيير",
273
+ "errors": "أخطاء",
274
+ "lastJobCompleted": "اكتملت آخر مهمة بنجاح",
275
+ "lastJobFailed": "فشل آخر عمل",
276
+ "jobHistory": "سجل الوظائف",
277
+ "jobHistoryDesc": "عمليات إعدام وظائف الصيانة الأخيرة",
278
+ "runConfirm": "تشغيل {{name}}?",
279
+ "mayTakeAWhile": "قد يستغرق هذا بعض الوقت",
280
+ "mayTakeAWhileDesc": "قد يستغرق إنجاز هذه المهمة عدة دقائق تبعاً لحجم مكتبتك.",
281
+ "startJob": "بدء العمل"
282
+ },
283
+ "notifications": {
284
+ "routing": {
285
+ "event": "الحدث",
286
+ "web": "ويب",
287
+ "discord": "ديسكورد",
288
+ "webhook": "ويبهوك",
289
+ "webNote": "يتم تكوين الإشعارات لكل جهاز في تطبيق الجوال.",
290
+ "webToastNote": "تظهر التنبيهات المنبثقة في هذا المتصفح."
479
291
  },
480
- "unknownError": "حدث خطأ غير معروف."
292
+ "agentCard": {
293
+ "saved": "محفوظ",
294
+ "default": "الافتراضي",
295
+ "events": "الأحداث",
296
+ "sendTest": "إرسال اختبار",
297
+ "notConfigured": "لم يتم تكوينه بالكامل.",
298
+ "editSettings": "تعديل الإعدادات"
299
+ }
300
+ },
301
+ "advanced": {
302
+ "title": "الإعدادات المتقدمة",
303
+ "externalUrl": "رابط خارجي",
304
+ "trustProxy": "ترويسات الوكيل",
305
+ "reverseProxy": "عكس الوكيل",
306
+ "connectionScenarios": "سيناريوهات الاتصال"
307
+ },
308
+ "accessControl": {
309
+ "title": "التحكم بالدخول",
310
+ "description": "تكوين من يمكنه الوصول إلى Tracearr",
311
+ "allowGuestAccess": "السماح للزائر بالوصول",
312
+ "allowGuestAccessDesc": "عند التعطيل، يمكن لمالك الخادم فقط تسجيل الدخول إلى Tracearr",
313
+ "singleOwnerNote": "ملاحظة: عندما يتم تعطيل وصول الضيف، فقط مالك الخادم يمكنه تسجيل الدخول. جميع المستخدمين الآخرين سيشاهدون رسالة \"رفض الوصول\"."
314
+ },
315
+ "import": {
316
+ "title": "استيراد البيانات",
317
+ "jellystat": "استيراد من جيليستات",
318
+ "tautulli": "استيراد من TTTulli",
319
+ "importProgress": "تقدم الاستيراد",
320
+ "importComplete": "اكتمل الاستيراد",
321
+ "importFailed": "فشل الاستيراد",
322
+ "processed": "معالجة",
323
+ "page": "الصفحة",
324
+ "imported": "مستورد",
325
+ "skipped": "تخطي",
326
+ "enriched": "إثراء",
327
+ "errors": "أخطاء",
328
+ "noServers": "لا يوجد خوادم متصلة",
329
+ "noServersHint": "تحتاج إلى خادم واحد على الأقل متصل لاستيراد البيانات.",
330
+ "tautulliUrl": "رابط Tautulli",
331
+ "tautulliUrlPlaceholder": "http://localhost:8181",
332
+ "tautulliUrlHelp": "عنوان URL الخاص بنموذج Tautulli الخاص بك.",
333
+ "apiKeyHelp": "تم العثور على إعدادات Tautulli → واجهة ويب → API المفتاح.",
334
+ "testing": "اختبار...",
335
+ "connectToTautulli": "الاتصال بـ Tautulli",
336
+ "importHistory": "تاريخ الاستيراد",
337
+ "targetServer": "Target Server",
338
+ "selectPlexServer": "حدد خادم Plex",
339
+ "overwriteFriendlyNames": "الكتابة فوق الأسماء الصديقة الموجودة مع أسماء تاتوللي",
340
+ "overwriteFriendlyNamesHelp": "وستستعاض عن أسماء الهوية الموجودة في تريكير بالأسماء الصديقة من تاتولي.",
341
+ "includeStreamDetails": "تضمين بيانات البث التفصيلي (الترميزات، البت، الدقة)",
342
+ "includeStreamDetailsHelp": "استيراد معلومات تدفق إضافية. قد تزيد من وقت الاستيراد بشكل كبير.",
343
+ "importing": "استيراد...",
344
+ "startImport": "بدء الاستيراد",
345
+ "howItWorks": "كيف يعمل الاستيراد",
346
+ "howItWorksDesc": "ستورد Tracearr جميع بيانات الساعة التاريخية من مصدرك. قد يستغرق هذا بعض الوقت اعتماداً على حجم مكتبتك.",
347
+ "recordsMayBeSkipped": "يمكن تخطي السجلات إذا:",
348
+ "selectTargetServer": "حدد الخادم المستهدف",
349
+ "selectJellyfinServer": "حدد خادم Jellyfin أو Emby",
350
+ "uploadJellystatBackup": "تحميل نسخة Jellystat الاحتياطية",
351
+ "exportBackupHint": "تصدير نسخة احتياطية للنشاط من Jellystat",
352
+ "exportBackupHelp": "في Jellystat، انتقل إلى الإعدادات → النسخ الاحتياطي للأنشطة لتصدير بياناتك.",
353
+ "importOptions": "خيارات الاستيراد",
354
+ "enrichMetadata": "إثراء بالبيانات الوصفية للوسائط (موصى به)",
355
+ "enrichMetadataHelp": "يجلب بيانات التعريف الإضافية من خادم الوسائط الخاص بك للجلسات المستوردة.",
356
+ "updateExistingRecords": "تحديث السجلات الموجودة مع تفاصيل البث",
357
+ "updateExistingRecordsHelp": "سيتم تحديث السجلات التي تم استيرادها سابقا مع بيانات جودة التدفق.",
358
+ "pleaseEnterDetails": "الرجاء إدخال رابط Tautulli ومفتاح API",
359
+ "testingConnection": "اختبار الاتصال...",
360
+ "pleaseSelectJsonFile": "الرجاء تحديد ملف JSON",
361
+ "uploadingBackup": "تحميل ملف النسخ الاحتياطي...",
362
+ "importHistoryDesc": "استيراد بيانات المراقبة التاريخية من المصادر الخارجية",
363
+ "plex": "Plex (Tautulli)",
364
+ "jellyfinEmby": "Jellyfin/Emby (Jellystat)",
365
+ "step1": "1",
366
+ "step2": "2",
367
+ "apiKeyPlaceholder": "مفتاح Tautulli API الخاص بك",
368
+ "skipUserNotFoundPlex": "المستخدم غير موجود - مستخدم Plex غير موجود في Tracearr. قم بمزامنة الخادم الخاص بك أولاً لإضافة جميع المستخدمين.",
369
+ "skipDuplicate": "4 - الدورة المزدوجة - كانت الدورة قد استوردت من قبل.",
370
+ "skipInProgress": "الدورة التقدمية - الدورات الفعالة/غير المكتملة بدون معرف مرجعي.",
371
+ "skipUserNotFoundJellyfin": "المستخدم غير موجود - مستخدم Jellyfin/Emby غير موجود في Tracearr. قم بمزامنة الخادم الخاص بك أولاً لإضافة جميع المستخدمين.",
372
+ "skipSyncHint": "إذا تم تخطي العديد من السجلات، تأكد من مزامنة الخادم الخاص بك مؤخرا في الإعدادات → الخوادم.",
373
+ "importInProgressPercent": "جار الاستيراد ({{percent}}% مكتمل)...",
374
+ "importInProgressGeneric": "جار الاستيراد...",
375
+ "startingImport": "بدء الاستيراد...",
376
+ "connectedFound": "متصل! العثور على المستخدمين {{users}} وسجلات المحفوظات {{records}}.",
377
+ "playbackReporting": "Playback Reporting Plugin",
378
+ "playbackReportingDesc": "Import history directly from the Playback Reporting plugin installed on your Jellyfin or Emby server. No file export needed.",
379
+ "checkPlugin": "Check Plugin",
380
+ "checkingPlugin": "Checking...",
381
+ "pluginFound": "Plugin found: {{records}} records from {{oldestDate}} to {{newestDate}}",
382
+ "pluginNotInstalled": "The Playback Reporting plugin is not installed on this server, or Tracearr cannot reach it. Install it from the server's plugin catalog to start recording history, or use the Jellystat import below.",
383
+ "serverTimezone": "Server Timezone",
384
+ "serverTimezoneHelp": "Must match the timezone configured on your media server host, not your browser's timezone. Playback Reporting timestamps are stored in local server time.",
385
+ "importFullRange": "Import full history",
386
+ "importFullRangeHelp": "By default only history older than Tracearr's earliest tracked session for this server is imported, so sessions Tracearr already recorded are never duplicated. Enable this to import the plugin's entire history regardless of overlap, if your Tracearr history has gaps. Exact duplicates are still skipped.",
387
+ "overlapSkipped": "{{count}} skipped as overlap",
388
+ "duplicates": "{{count}} duplicates skipped",
389
+ "skipOverlap": "Overlapping record - the timestamp falls inside the period Tracearr already tracks for this server. Enable full-range import to include it.",
390
+ "skipDuplicatePlugin": "Duplicate record - already imported directly or arrived earlier via a Jellystat import of the same plugin data."
391
+ },
392
+ "plex": {
393
+ "signInWithPlex": "تسجيل الدخول باستخدام Plex",
394
+ "signUpWithPlex": "قم بالتسجيل باستخدام Plex",
395
+ "selectServer": "حدد الخادم",
396
+ "chooseServer": "اختر خادم Plex Media لمراقبة"
397
+ },
398
+ "account": {
399
+ "createAccount": "إنشاء حساب",
400
+ "email": "البريد الإلكتروني",
401
+ "password": "كلمة المرور",
402
+ "displayName": "اسم العرض",
403
+ "createYourAccount": "أنشئ حسابك للبدء",
404
+ "signInToAccount": "تسجيل الدخول إلى حسابك",
405
+ "useLocalAccount": "استخدام الحساب المحلي بدلاً من ذلك"
481
406
  },
482
- "title": "الإعدادات",
483
407
  "update": {
484
- "betaUpdate": "تحديث بيتا",
485
- "newVersion": "نسخة جديدة",
486
- "pullInstructions": "بعد السحب ، أعد تشغيل الحاوية لتطبيق التحديث.",
487
- "releaseNotes": "ملاحظات الإصدار",
488
- "stableRelease": "الإصدار المستقر",
489
408
  "title": "تحديث متوفر",
409
+ "releaseNotes": "ملاحظات الإصدار",
490
410
  "updateCommand": "تحديث الأمر",
411
+ "pullInstructions": "بعد السحب ، أعد تشغيل الحاوية لتطبيق التحديث.",
412
+ "stableRelease": "الإصدار المستقر",
413
+ "betaUpdate": "تحديث بيتا",
414
+ "newVersion": "نسخة جديدة",
491
415
  "versionAvailable": "{{version}} available"
492
416
  },
493
- "webhooks": {
494
- "customWebhook": "رابط Webhook مخصص",
495
- "discordWebhook": "رابط ديسكورد Webhook",
496
- "ntfyTopic": "موضوع Ntfy",
497
- "testWebhook": "اختبار Webhook",
498
- "title": "تكوين Webhook",
499
- "webhookFormat": "تنسيق Webhook"
417
+ "serverHealth": {
418
+ "unreachable": "{{serverName}} غير قابل للوصول",
419
+ "multipleUnreachable": "{{count}} خوادم لا يمكن الوصول إليها: {{serverNames}}"
420
+ },
421
+ "ipWarning": {
422
+ "message": "يبدو أن جميع المستخدمين يستخدمون نفس عنوان IP أو عناوين IP للشبكة المحلية. قد يؤثر هذا على المنطق القائم على القواعد للموقع أو عناوين IP",
423
+ "acknowledge": "فهمت ذلك"
424
+ },
425
+ "backup": {
426
+ "title": "النسخ الاحتياطي",
427
+ "backToBackups": "العودة إلى النسخ الاحتياطي",
428
+ "description": "النسخ الاحتياطي واستعادة بيانات Tracearr",
429
+ "createBackup": "إنشاء نسخة احتياطية",
430
+ "creating": "إنشاء نسخة احتياطية...",
431
+ "uploadBackup": "تحميل نسخة احتياطية",
432
+ "uploading": "تحميل...",
433
+ "databaseSize": "حجم قاعدة البيانات الحالية: {{size}}",
434
+ "freeSpace": "مساحة مجانية لدليل النسخ الاحتياطي: {{size}}",
435
+ "lowDiskSpace": "مساحة القرص المنخفض - تتطلب النسخ الاحتياطية والاستعادة ضعف حجم قاعدة البيانات في المساحة الحرة على الأقل.",
436
+ "backupHistory": "سجل النسخ الاحتياطي",
437
+ "noBackups": "لا توجد نسخ احتياطية حتى الآن. أنشئ النسخة الاحتياطية الأولى أعلاه.",
438
+ "filename": "اسم الملف",
439
+ "size": "الحجم",
440
+ "date": "التاريخ",
441
+ "type": "نوع",
442
+ "version": "الإصدار",
443
+ "actions": "الإجراءات",
444
+ "typeManual": "دليل",
445
+ "typeScheduled": "مجدولة",
446
+ "typeUploaded": "تم الرفع",
447
+ "restoreAction": "إستعادة",
448
+ "deleteConfirmTitle": "حذف النسخ الاحتياطي",
449
+ "deleteConfirmDescription": "هل أنت متأكد من أنك تريد حذف هذه النسخة الاحتياطية؟ لا يمكن التراجع عن ذلك.",
450
+ "schedule": "النسخ الاحتياطية المجدولة",
451
+ "scheduleType": "الجدول",
452
+ "scheduleDisabled": "معطل",
453
+ "scheduleDaily": "يومياً",
454
+ "scheduleWeekly": "أسبوعيا",
455
+ "scheduleMonthly": "شهريا",
456
+ "scheduleTime": "الوقت ({{timezone}})",
457
+ "scheduleDayOfWeek": "يوم من الأسبوع",
458
+ "scheduleDayOfMonth": "يوم الشهر",
459
+ "scheduleDayOfMonthHint": "في غضون أشهر بأيام أقل، تعمل النسخة الاحتياطية في اليوم الأخير.",
460
+ "retentionCount": "الحفاظ على الأخير",
461
+ "retentionSuffix": "النسخ الاحتياطية المجدولة",
462
+ "daySun": "الأحد",
463
+ "dayMon": "الاثنين",
464
+ "dayTue": "الثلاثاء",
465
+ "dayWed": "الأربعاء",
466
+ "dayThu": "الخميس",
467
+ "dayFri": "الجمعة",
468
+ "daySat": "السبت",
469
+ "restore": {
470
+ "title": "استعادة النسخ الاحتياطي",
471
+ "selectedBackup": "النسخ الاحتياطي المحدد",
472
+ "databaseSize": "حجم قاعدة البيانات",
473
+ "sessions": "الجلسات",
474
+ "users": "المستخدمون",
475
+ "servers": "خوادم",
476
+ "rules": "القواعد",
477
+ "libraryItems": "عناصر المكتبة",
478
+ "tables": "الجداول",
479
+ "warning": "الاستعادة سوف تحل محل جميع البيانات الموجودة. سوف تحتاج إلى إعادة تسجيل الدخول بعد اكتمال الاستعادة.",
480
+ "confirmLabel": "أفهم أن هذا سيحل محل جميع البيانات",
481
+ "confirm": "بدء الاستعادة",
482
+ "complete": "اكتمل الاستعادة بنجاح. سيتم تحديث الصفحة قريباً.",
483
+ "failed": "فشل الاستعادة",
484
+ "cannotRestore": "تتطلب الإستعادة امتيازات PostgreSQL للمستخدم المتميز. الرجاء التأكد من أن مستخدم قاعدة البيانات لديه امتيازات المستخدم المتميز وحاول مرة أخرى.",
485
+ "pgVersionMismatch": "تم إنشاء النسخ الاحتياطي على PostgreSQL {{backupVersion}} ولكن هذا الخادم يعمل PostgreSQL {{serverVersion}}. استعادة الإغراق من إصدار PostgreSQL الأحدث غير مدعوم.",
486
+ "tsVersionMismatch": "تم إنشاء نسخة احتياطية مع TimescaleDB {{backupVersion}} ولكن هذا الخادم يدعم فقط حتى TimescaleDB {{serverVersion}}."
487
+ },
488
+ "toast": {
489
+ "backupCreated": "تم إنشاء النسخ الاحتياطي بنجاح",
490
+ "backupCreateFailed": "فشل إنشاء نسخة احتياطية",
491
+ "backupUploaded": "تم رفع النسخ الاحتياطي بنجاح",
492
+ "backupUploadFailed": "فشل في تحميل النسخة الاحتياطية",
493
+ "backupDeleted": "تم حذف النسخ الاحتياطي",
494
+ "backupDeleteFailed": "فشل في حذف النسخة الاحتياطية",
495
+ "restoreStarted": "بدأت الإستعادة",
496
+ "restoreStartFailed": "فشل في بدء الاستعادة",
497
+ "scheduleSaved": "تم حفظ جدول النسخ الاحتياطي",
498
+ "scheduleError": "فشل في حفظ جدول النسخ الاحتياطي"
499
+ }
500
500
  }
501
501
  }