@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": "Gastzugang erlauben",
4
- "allowGuestAccessDesc": "Wenn deaktiviert, kann sich nur der Serverbesitzer bei Tracearr anmelden",
5
- "description": "Konfigurieren, wer auf Tracearr zugreifen kann",
6
- "singleOwnerNote": "Hinweis: Wenn der Gastzugang deaktiviert ist, kann sich nur der Serverbesitzer anmelden. Alle anderen Benutzer sehen eine \"Access Denied\"-Nachricht.",
7
- "title": "Zugangskontrolle"
8
- },
9
- "account": {
10
- "createAccount": "Konto erstellen",
11
- "createYourAccount": "Konto erstellen, um zu beginnen",
12
- "displayName": "Anzeigename",
13
- "email": "E-Mail",
14
- "password": "Passwort",
15
- "signInToAccount": "Bei Konto anmelden",
16
- "useLocalAccount": "Stattdessen lokales Konto verwenden"
17
- },
18
- "advanced": {
19
- "connectionScenarios": "Verbindungsszenarien",
20
- "externalUrl": "Externe URL",
21
- "reverseProxy": "Reverse Proxy",
22
- "title": "Erweiterte Einstellungen",
23
- "trustProxy": "Proxy-Header vertrauen"
24
- },
25
- "backup": {
26
- "actions": "Aktionen",
27
- "backToBackups": "Zurück zu Backups",
28
- "backupHistory": "Backup-Verlauf",
29
- "createBackup": "Backup erstellen",
30
- "creating": "Sicherung wird erstellt...",
31
- "databaseSize": "Aktuelle Datenbankgröße: {{size}}",
32
- "date": "Datum",
33
- "dayFri": "Freitag",
34
- "dayMon": "Montag",
35
- "daySat": "Samstag",
36
- "daySun": "Sonntag",
37
- "dayThu": "Donnerstag",
38
- "dayTue": "Dienstag",
39
- "dayWed": "Mittwoch",
40
- "deleteConfirmDescription": "Sind Sie sicher, dass Sie diese Sicherung löschen möchten? Dies kann nicht rückgängig gemacht werden.",
41
- "deleteConfirmTitle": "Backup löschen",
42
- "description": "Sichern und Wiederherstellen Ihrer Tracearr-Daten",
43
- "filename": "Dateiname",
44
- "freeSpace": "Sicherungsverzeichnis freien Speicherplatz: {{size}}",
45
- "lowDiskSpace": "Geringer Speicherplatz — Sicherungen und Wiederherstellen erfordern mindestens das Doppelte der Datenbankgröße im freien Speicherplatz.",
46
- "noBackups": "Noch keine Sicherungen. Erstellen Sie Ihre erste Sicherung oben.",
47
- "restore": {
48
- "cannotRestore": "Wiederherstellung erfordert PostgreSQL Superuser-Berechtigungen. Bitte stellen Sie sicher, dass Ihr Datenbankbenutzer über Superuser-Rechte verfügt und versuchen Sie es erneut.",
49
- "complete": "Wiederherstellung erfolgreich abgeschlossen. Die Seite wird in Kürze aktualisiert.",
50
- "confirm": "Starte Wiederherstellung",
51
- "confirmLabel": "Ich verstehe, dass dies alle Daten ersetzen wird",
52
- "databaseSize": "Datenbankgröße",
53
- "failed": "Wiederherstellung fehlgeschlagen",
54
- "libraryItems": "Bibliothekselemente",
55
- "pgVersionMismatch": "Backup wurde auf PostgreSQL {{backupVersion}} erstellt, aber auf diesem Server läuft PostgreSQL {{serverVersion}}. Wiederherstellung eines Dump von einer neueren PostgreSQL-Version wird nicht unterstützt.",
56
- "rules": "Regeln",
57
- "selectedBackup": "Ausgewähltes Backup",
58
- "servers": "Server",
59
- "sessions": "Sitzungen",
60
- "tables": "Tabellen",
61
- "title": "Backup wiederherstellen",
62
- "tsVersionMismatch": "Backup wurde mit TimescaleDB {{backupVersion}} erstellt, aber dieser Server unterstützt nur bis zu TimescaleDB {{serverVersion}}.",
63
- "users": "Benutzer",
64
- "warning": "Die Wiederherstellung ersetzt alle vorhandenen Daten. Sie müssen sich nach dem Wiederherstellen erneut anmelden."
65
- },
66
- "restoreAction": "Wiederherstellen",
67
- "retentionCount": "Letzter halten",
68
- "retentionSuffix": "geplante Sicherungen",
69
- "schedule": "Geplante Sicherungen",
70
- "scheduleDaily": "Täglich",
71
- "scheduleDayOfMonth": "Tag des Monats",
72
- "scheduleDayOfMonthHint": "Bei Monaten mit weniger Tagen läuft die Sicherung am letzten Tag.",
73
- "scheduleDayOfWeek": "Wochentag",
74
- "scheduleDisabled": "Deaktiviert",
75
- "scheduleMonthly": "Monatlich",
76
- "scheduleTime": "Zeit ({{timezone}})",
77
- "scheduleType": "Zeitplan",
78
- "scheduleWeekly": "Wöchentlich",
79
- "size": "Größe",
80
- "title": "Backup",
81
- "toast": {
82
- "backupCreateFailed": "Fehler beim Erstellen der Sicherung",
83
- "backupCreated": "Sicherung erfolgreich erstellt",
84
- "backupDeleteFailed": "Fehler beim Löschen der Sicherung",
85
- "backupDeleted": "Sicherung gelöscht",
86
- "backupUploadFailed": "Fehler beim Hochladen der Sicherung",
87
- "backupUploaded": "Backup erfolgreich hochgeladen",
88
- "restoreStartFailed": "Fehler beim Starten der Wiederherstellung",
89
- "restoreStarted": "Wiederherstellung gestartet",
90
- "scheduleError": "Sicherungsplan konnte nicht gespeichert werden",
91
- "scheduleSaved": "Sicherungsplan gespeichert"
92
- },
93
- "type": "Typ",
94
- "typeManual": "Manuell",
95
- "typeScheduled": "Geplant",
96
- "typeUploaded": "Hochgeladen",
97
- "uploadBackup": "Sicherung hochladen",
98
- "uploading": "Hochladen...",
99
- "version": "Version"
2
+ "title": "Einstellungen",
3
+ "tabs": {
4
+ "general": "Allgemein",
5
+ "servers": "Server",
6
+ "notifications": "Benachrichtigungen",
7
+ "mobile": "Mobile App",
8
+ "tailscale": "Tailscale",
9
+ "import": "Importieren",
10
+ "advanced": "Erweitert",
11
+ "jobs": "Jobs",
12
+ "accessControl": "Zugangskontrolle",
13
+ "backup": "Backup"
100
14
  },
101
15
  "general": {
102
- "accentColor": "Akzentfarbe",
103
- "apiDocs": "API Docs",
104
- "apiKeyDesc": "Zugriff auf die Tracearr API für Drittanbieter-Integrationen wie Homarr, Home Assistant, etc.",
105
- "apiKeyReadAccess": "Ihr API-Schlüssel gewährt vollen Lesezugriff auf Ihre Tracearr-Daten.",
106
- "apiRateLimit": "API Rate Limit",
107
- "apiRateLimitDesc": "Maximum public API requests per minute per key. Restart required to apply.",
108
- "apiRateLimitSuffix": "/min",
16
+ "title": "Allgemeine Einstellungen",
17
+ "unitSystem": "Einheitensystem",
18
+ "metric": "Metrisch (km, km/h)",
19
+ "imperial": "Imperial (mi, mph)",
20
+ "timezone": "Zeitzone",
21
+ "primaryAuth": "Primäre Authentifizierungsmethode",
22
+ "localAccount": "Lokales Konto",
23
+ "plexAccount": "Plex-Konto",
24
+ "language": "Sprache",
25
+ "languageDescription": "Wählen Sie Ihre bevorzugte Anzeigesprache.",
26
+ "helpTranslate": "Hilf bei der Übersetzung von Tracearr",
27
+ "timeFormat": "Zeitformat",
28
+ "timeFormatDescription": "Wählen Sie, wie die Uhrzeit angezeigt wird.",
29
+ "timeFormat12h": "12-Stunden (1:30 Uhr)",
30
+ "timeFormat24h": "24 Stunden (13:30)",
109
31
  "appearance": "Erscheinung",
110
32
  "appearanceDesc": "Look and Feel von Tracearr anpassen",
33
+ "theme": "Thema",
34
+ "accentColor": "Akzentfarbe",
35
+ "default": "(Standard)",
36
+ "cyanDefault": "* Türkis ist die Standard-Akzentfarbe",
37
+ "themeLight": "Hell",
38
+ "themeDark": "Dunkel",
39
+ "themeSystem": "System",
111
40
  "application": "Anwendung",
112
41
  "applicationDesc": "Grundeinstellungen konfigurieren",
113
- "copyToClipboard": "In Zwischenablage kopieren",
114
- "cyanDefault": "* Türkis ist die Standard-Akzentfarbe",
115
- "default": "(Standard)",
116
- "detect": "Erkennen",
42
+ "unitSystemDesc": "Wählen Sie, wie Entfernungen und Geschwindigkeiten angezeigt werden",
43
+ "sessionSync": "Session Sync",
44
+ "sessionSyncDesc": "Aktiviere Session-Tracking für deine Medienserver",
45
+ "syncInterval": "Synchronisierungsintervall",
46
+ "syncIntervalDesc": "Abfragefrequenz für Jellyfin/Emby (5-300 Sekunden)",
47
+ "syncIntervalSuffix": "s",
48
+ "plexSseNote": "Plex verwendet Server-Sent Events (SSE) für nahezu sofortige Updates — keine Umfragen nötig.",
49
+ "jellyfinPollingNote": "Jellyfin/Emby werden im obigen Intervall befragt.",
117
50
  "enhancedGeoIP": "Verbesserte GeoIP-Suche",
118
51
  "enhancedGeoIPDesc": "Verwenden Sie Plex's GeoIP Dienst für genauere Standortdaten. Wenn aktiviert, werden IP-Adressen an plex gesendet. v für die Suchanfrage. Lokale MaxMind-Datenbank wird als Fallback verwendet.",
119
52
  "externalAccess": "Externer Zugriff",
120
53
  "externalAccessDesc": "Konfigurieren, wie sich externe Geräte (wie mobile Apps) mit Ihrem Server verbinden",
121
54
  "externalUrl": "Externe URL",
122
- "externalUrlDesc": "Die URL, die externe Geräte verwenden sollen, um diesen Server zu erreichen. Wird für QR-Codes und mobile App-Paare verwendet.",
123
55
  "externalUrlPlaceholder": "https://tracearr.example.com",
124
- "generateApiKeyPrompt": "Generieren Sie einen API-Schlüssel, um externe Integrationen zu aktivieren.",
125
- "generateKey": "Schlüssel generieren",
126
- "helpTranslate": "Hilf bei der Übersetzung von Tracearr",
127
- "imperial": "Imperial (mi, mph)",
128
- "iosHttpWarning": "iOS benötigt HTTPS für externe Verbindungen. Richten Sie einen Reverse-Proxy mit SSL ein.",
129
- "jellyfinPollingNote": "Jellyfin/Emby werden im obigen Intervall befragt.",
130
- "language": "Sprache",
131
- "languageDescription": "Wählen Sie Ihre bevorzugte Anzeigesprache.",
132
- "localAccount": "Lokales Konto",
56
+ "externalUrlDesc": "Die URL, die externe Geräte verwenden sollen, um diesen Server zu erreichen. Wird für QR-Codes und mobile App-Paare verwendet.",
57
+ "detect": "Erkennen",
133
58
  "localhostWarning": "Localhost URLs funktionieren nicht für externe Geräte. Verwenden Sie Ihre LAN-IP oder einen Domain-Namen.",
134
- "metric": "Metrisch (km, km/h)",
59
+ "iosHttpWarning": "iOS benötigt HTTPS für externe Verbindungen. Richten Sie einen Reverse-Proxy mit SSL ein.",
60
+ "apiKeyDesc": "Zugriff auf die Tracearr API für Drittanbieter-Integrationen wie Homarr, Home Assistant, etc.",
61
+ "apiDocs": "API Docs",
135
62
  "noApiKeyGenerated": "Kein API-Schlüssel generiert",
136
- "plexAccount": "Plex-Konto",
137
- "plexSseNote": "Plex verwendet Server-Sent Events (SSE) für nahezu sofortige Updates — keine Umfragen nötig.",
138
- "primaryAuth": "Primäre Authentifizierungsmethode",
139
- "publicApiSettings": "Public API",
140
- "publicApiSettingsDesc": "Configure watch-completion thresholds and request limits for the public API",
63
+ "copyToClipboard": "In Zwischenablage kopieren",
64
+ "apiKeyReadAccess": "Ihr API-Schlüssel gewährt vollen Lesezugriff auf Ihre Tracearr-Daten.",
65
+ "generateApiKeyPrompt": "Generieren Sie einen API-Schlüssel, um externe Integrationen zu aktivieren.",
141
66
  "regenerate": "Regenerieren",
67
+ "generateKey": "Schlüssel generieren",
142
68
  "regenerateApiKey": "API-Schlüssel neu generieren?",
143
69
  "regenerateApiKeyDesc": "Dies wird Ihren aktuellen API-Schlüssel ungültig machen. Jede Integration, die den alten Schlüssel verwendet, wird nicht mehr funktionieren.",
144
- "sessionSync": "Session Sync",
145
- "sessionSyncDesc": "Aktiviere Session-Tracking für deine Medienserver",
146
- "syncInterval": "Synchronisierungsintervall",
147
- "syncIntervalDesc": "Abfragefrequenz für Jellyfin/Emby (5-300 Sekunden)",
148
- "syncIntervalSuffix": "s",
149
- "theme": "Thema",
150
- "themeDark": "Dunkel",
151
- "themeLight": "Hell",
152
- "themeSystem": "System",
153
- "timeFormat": "Zeitformat",
154
- "timeFormat12h": "12-Stunden (1:30 Uhr)",
155
- "timeFormat24h": "24 Stunden (13:30)",
156
- "timeFormatDescription": "Wählen Sie, wie die Uhrzeit angezeigt wird.",
157
- "timezone": "Zeitzone",
158
- "title": "Allgemeine Einstellungen",
159
- "unitSystem": "Einheitensystem",
160
- "unitSystemDesc": "Wählen Sie, wie Entfernungen und Geschwindigkeiten angezeigt werden",
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": "Gefunden in Tautulli Einstellungen → Web-Interface → API Key.",
171
- "apiKeyPlaceholder": "Ihr Tautulli API-Schlüssel",
172
- "connectToTautulli": "Mit Tautulli verbinden",
173
- "connectedFound": "Verbunden! {{users}} Benutzer und {{records}} Verlaufsdaten.",
174
- "enrichMetadata": "Mit Medien-Metadaten bereichern (empfohlen)",
175
- "enrichMetadataHelp": "Ruft zusätzliche Metadaten von Ihrem Medienserver für importierte Sitzungen ab.",
176
- "enriched": "Angereichert",
177
- "errors": "Fehler",
178
- "exportBackupHelp": "Gehen Sie in Jellystat auf Einstellungen → Backup → Aktivitätssicherung um Ihre Daten zu exportieren.",
179
- "exportBackupHint": "Aktivitätssicherung von Jellystat exportieren",
180
- "howItWorks": "Wie der Import funktioniert",
181
- "howItWorksDesc": "Tracearr importiert alle historischen Beobachtungsdaten aus Ihrer Quelle. Dies kann eine Weile dauern, je nach Größe Ihrer Bibliothek.",
182
- "importComplete": "Import abgeschlossen",
183
- "importFailed": "Import fehlgeschlagen",
184
- "importHistory": "Importverlauf",
185
- "importHistoryDesc": "Importiere historische Beobachtungsdaten aus externen Quellen",
186
- "importInProgressGeneric": "Import läuft...",
187
- "importInProgressPercent": "Import im Gange ({{percent}}% vollständig)...",
188
- "importOptions": "Import-Optionen",
189
- "importProgress": "Importfortschritt",
190
- "imported": "Importiert",
191
- "importing": "Importieren...",
192
- "includeStreamDetails": "Detaillierte Streamdaten (Codecs, Bitrate, Auflösung) einschließen",
193
- "includeStreamDetailsHelp": "Importiert zusätzliche Streaminformationen. Kann die Importzeit erheblich erhöhen.",
194
- "jellyfinEmby": "Jellyfin/Emby (Jellystat)",
195
- "jellystat": "Aus Jellystat importieren",
196
- "noServers": "Keine Server verbunden",
197
- "noServersHint": "Sie benötigen mindestens einen verbundenen Server, um Daten zu importieren.",
198
- "overwriteFriendlyNames": "Überschreibe existierende Namen mit Tautulli Namen",
199
- "overwriteFriendlyNamesHelp": "Vorhandene Identitätsnamen in Tracearr werden durch die freundlichen Namen von Tautulli ersetzt.",
200
- "page": "Seite",
201
- "pleaseEnterDetails": "Bitte geben Sie Tautulli URL und API-Schlüssel ein",
202
- "pleaseSelectJsonFile": "Bitte wählen Sie eine JSON-Datei",
203
- "plex": "Plex (Tautulli)",
204
- "processed": "Verarbeitet",
205
- "recordsMayBeSkipped": "Datensätze können übersprungen werden, wenn:",
206
- "selectJellyfinServer": "Jellyfin oder Emby Server auswählen",
207
- "selectPlexServer": "Plex Server auswählen",
208
- "selectTargetServer": "Zielserver auswählen",
209
- "skipDuplicate": "Sitzung duplizieren — Die Sitzung wurde bereits importiert.",
210
- "skipInProgress": "In-progress Session — Aktive/unvollständige Sitzungen ohne Referenz-ID werden übersprungen.",
211
- "skipSyncHint": "Wenn viele Datensätze übersprungen werden, stellen Sie sicher, dass Sie Ihren Server kürzlich unter Einstellungen → Server synchronisiert haben.",
212
- "skipUserNotFoundJellyfin": "Benutzer nicht gefunden — Der Jellyfin/Emby Benutzer existiert nicht in Tracearr. Synchronisieren Sie Ihren Server zuerst, um alle Benutzer hinzuzufügen.",
213
- "skipUserNotFoundPlex": "Benutzer nicht gefunden — Der Plex Benutzer existiert nicht in Tracearr. Synchronisieren Sie Ihren Server zuerst, um alle Benutzer hinzuzufügen.",
214
- "skipped": "Übersprungen",
215
- "startImport": "Import starten",
216
- "startingImport": "Import wird gestartet...",
217
- "step1": "1",
218
- "step2": "2",
219
- "targetServer": "Target Server",
220
- "tautulli": "Aus Tautulli importieren",
221
- "tautulliUrl": "Tautulli URL",
222
- "tautulliUrlHelp": "Die URL Ihrer Tautulli Instanz.",
223
- "tautulliUrlPlaceholder": "http://localhost:8181",
224
- "testing": "Teste...",
225
- "testingConnection": "Teste Verbindung...",
226
- "title": "Daten importieren",
227
- "updateExistingRecords": "Aktualisiere vorhandene Datensätze mit Stream-Details",
228
- "updateExistingRecordsHelp": "Früher importierte Datensätze werden mit Stream-Qualitätsdaten aktualisiert.",
229
- "uploadJellystatBackup": "Jellystat Backup hochladen",
230
- "uploadingBackup": "Backup-Datei wird hochgeladen...",
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": "Verstanden",
248
- "message": "Alle Benutzer scheinen dieselbe IP-Adresse oder dieselben lokalen Netzwerk-IPs zu verwenden. Dies kann Auswirkungen auf die regelbasierte Logik für Standort oder IP-Adressen haben."
249
- },
250
- "jobs": {
251
- "backfill": "Backfill",
252
- "cleanup": "Bereinigen",
253
- "delayed": "verzögert",
254
- "description": "Verwalten Sie Hintergrund-Aufgaben, die Ihre Daten genau und optimieren.",
255
- "errors": "fehler",
256
- "jobHistory": "Aufgabenhistorie",
257
- "jobHistoryDesc": "Letzte Wartungsaufträge",
258
- "lastJobCompleted": "Letzter Job erfolgreich abgeschlossen",
259
- "lastJobFailed": "Letzter Job fehlgeschlagen",
260
- "mayTakeAWhile": "Dies kann eine Weile dauern",
261
- "mayTakeAWhileDesc": "Dieser Job kann je nach Größe Ihrer Bibliothek einige Minuten dauern.",
262
- "normalization": "Normalisierung",
263
- "processed": "verarbeitet",
264
- "queued": "in der Warteschlange",
265
- "runConfirm": "{{name}} ausführen?",
266
- "runJob": "Job ausführen",
267
- "running": "läuft",
268
- "runningState": "Laufend",
269
- "startJob": "Job starten",
270
- "title": "Wartungsarbeiten",
271
- "unchanged": "unverändert",
272
- "updated": "aktualisiert",
273
- "waiting": "Warten"
274
- },
275
- "mobile": {
276
- "addDevice": "Gerät hinzufügen",
277
- "connectedDevices": "Verbundene Geräte",
278
- "connectedDevicesDesc": "{{count}} Geräte gepaart mit Ihrem Server",
279
- "copyToken": "Token kopieren",
280
- "deviceName": "Gerätename",
281
- "deviceNamePlaceholder": "z.B. iPhone 15",
282
- "devicesConnected": "{{current}} von {{max}} Geräten verbunden",
283
- "disable": "Deaktivieren",
284
- "disableMobileAccess": "Mobilzugriff deaktivieren",
285
- "disableMobileAccessConfirm": "Dadurch werden alle mobilen Geräte getrennt und alle Sitzungen widerrufen. Sie können den mobilen Zugriff später wieder aktivieren.",
286
- "done": "Fertig",
287
- "downloadOnAppStore": "Im App Store herunterladen",
288
- "enableMobileAccess": "Mobiler Zugriff aktivieren",
289
- "enabling": "Aktivieren...",
290
- "expiresIn": "Läuft ab in {{time}}",
291
- "externalUrlBanner": "Reverse-Proxy oder Fernzugriff verwenden? Setze deinen",
292
- "externalUrlBannerLink": "Externe URL",
293
- "externalUrlBannerSuffix": "damit sich die mobile App mit Ihrem Server verbinden kann.",
294
- "externalUrlRequired": "Eine externe URL muss in den allgemeinen Einstellungen konfiguriert werden, damit mobile Paare funktionieren können.",
295
- "failedToGenerateToken": "Fehler beim Generieren des Token",
296
- "generateToken": "Pairing-Token generieren",
297
- "getOnGooglePlay": "Holen Sie es bei Google Play",
298
- "getTheApp": "Lade die App",
299
- "getTheAppDesc": "Laden Sie die Tracearr mobile App für iOS oder Android herunter",
300
- "mobileAccessDisabled": "Mobiler Zugriff deaktiviert",
301
- "mobileAccessDisabledDesc": "Mobiler Zugriff aktivieren, damit die Tracearr Mobile App sich mit Ihrem Server verbinden kann.",
302
- "noDevices": "Keine Geräte verbunden",
303
- "oneTimePairToken": "Einmaliges Paar-Token",
304
- "pairDevice": "Gerät koppeln",
305
- "pairNewDevice": "Neues Gerät verbinden",
306
- "pairNewDeviceDesc": "Scannen Sie den QR-Code mit der Tracearr Mobile App oder geben Sie das Token manuell ein.",
307
- "pairYourDevice": "Gerät koppeln",
308
- "pairYourDeviceDesc": "Scannen Sie den QR-Code mit der Tracearr App, um diesen Server zu verbinden.",
309
- "pendingTokens": "{{count}} ausstehende Paar Token",
310
- "removeDevice": "Gerät entfernen",
311
- "removeDeviceConfirm": "Sind Sie sicher, dass Sie {{deviceName}}entfernen möchten? Dieses Gerät muss erneut paaren, um sich neu zu verbinden.",
312
- "renameDevice": "Gerät umbenennen",
313
- "renameDeviceDesc": "Geben Sie einen Namen ein, um dieses Gerät in der Liste zu identifizieren.",
314
- "revokeAll": "Alle Sitzungen widerrufen",
315
- "revokeAllConfirm": "Dadurch werden alle mobilen Geräte getrennt. Sie müssen erneut paaren, um sich neu zu verbinden.",
316
- "revokeAllSessions": "Alle widerrufen",
317
- "scanQrCode": "QR-Code scannen",
318
- "title": "Mobile App",
319
- "tokenExpires": "Token läuft in {{time}} ab",
320
- "tokenExpiryNote": "Dieses Token läuft in 5 Minuten ab und kann nur einmal verwendet werden."
321
- },
322
- "notifications": {
323
- "agentCard": {
324
- "default": "Standard",
325
- "editSettings": "Einstellungen bearbeiten",
326
- "events": "Ereignisse",
327
- "notConfigured": "Nicht vollständig konfiguriert.",
328
- "saved": "Gespeichert",
329
- "sendTest": "Test senden"
330
- },
331
- "routing": {
332
- "discord": "Discord",
333
- "event": "Ereignis",
334
- "web": "Web",
335
- "webNote": "Push-Benachrichtigungen werden pro Gerät in der mobilen App konfiguriert.",
336
- "webToastNote": "zeigt Toastbenachrichtigungen in diesem Browser an.",
337
- "webhook": "Webhook"
338
- }
339
- },
340
- "plex": {
341
- "chooseServer": "Wähle aus, welcher Plex Media Server überwacht werden soll",
342
- "selectServer": "Server auswählen",
343
- "signInWithPlex": "Mit Plex anmelden",
344
- "signUpWithPlex": "Mit Plex registrieren"
345
- },
346
- "serverHealth": {
347
- "multipleUnreachable": "{{count}} Server nicht erreichbar {{serverNames}}",
348
- "unreachable": "{{serverName}} ist unerreichbar"
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": "Verbundene Server",
351
85
  "addServer": "Server hinzufügen",
352
- "addServerDialogDescOther": "Verbinden Sie einen Jellyfin oder Emby Server.",
353
- "addServerDialogDescPlex": "Wählen Sie einen Plex Server aus Ihrem verknüpften Konto.",
354
- "added": "{{date}} hinzugefügt",
355
- "allFieldsRequired": "Alle Felder sind erforderlich",
86
+ "serverName": "Servername",
87
+ "serverUrl": "Server-URL",
88
+ "syncInterval": "Synchronisierungsintervall",
89
+ "testConnection": "Verbindung testen",
90
+ "connectionSuccess": "Verbindung erfolgreich",
91
+ "connectionFailed": "Verbindung fehlgeschlagen",
92
+ "noServersConnected": "Keine Server verbunden",
93
+ "noServersConnectedHint": "Klicken Sie auf \"Server hinzufügen\", um einen Jellyfin oder Emby Server zu verbinden",
94
+ "serverType": "Servertyp",
95
+ "loadingAccounts": "Verknüpfte Plex-Konten werden geladen...",
96
+ "noPlexAccountsLinked": "Keine Plex-Konten verknüpft",
97
+ "noPlexAccountsLinkedHint": "Verbinden Sie oben ein Plex-Konto und kommen Sie dann wieder zu einem Server.",
98
+ "selectPlexAccount": "Plex Konto auswählen",
99
+ "chooseAccount": "Wähle ein Konto...",
100
+ "selectAccountHelp": "Wählen Sie aus, von welchem Plex Konto Sie Server entdecken möchten.",
356
101
  "allServersConnected": "Alle Server verbunden",
357
102
  "allServersConnectedDesc": "Alle Server dieses Kontos sind bereits verbunden.",
358
- "apiKeyHelp": "Gefunden im Dashboard Ihres Medienservers unter API-Keys oder Erweiterten Einstellungen.",
359
- "apiKeyHelpEmby": "Finden Sie dies in Emby Server → API-Schlüssel",
360
- "apiKeyHelpJellyfin": "Finden Sie dies in Jellyfin Dashboard → API-Tasten",
103
+ "serverUrlPlaceholder": "http://192.168.1.100:8096",
104
+ "serverUrlHelp": "Direkte URL zu Ihrem Jellyfin oder Emby Server. Verwenden Sie IP:port für beste Zuverlässigkeit.",
105
+ "serverNamePlaceholder": "Mein Medienserver",
361
106
  "apiKeyPlaceholder": "API-Schlüssel eingeben",
362
- "checkingConnection": "Checking connection…",
363
- "chooseAccount": "Wähle ein Konto...",
364
- "connectServer": "Server verbinden",
107
+ "apiKeyHelp": "Gefunden im Dashboard Ihres Medienservers unter API-Keys oder Erweiterten Einstellungen.",
365
108
  "connecting": "Verbinden...",
366
- "connectionFailed": "Verbindung fehlgeschlagen",
367
- "connectionSuccess": "Verbindung erfolgreich",
368
- "description": "Verwalten Sie Ihre verbundenen Plex, Jellyfin, und Emby Server",
369
- "discoveringConnections": "Verbindungen entdecken...",
370
- "discoveringServers": "Entdecke verfügbare Plex Servern...",
109
+ "connectServer": "Server verbinden",
110
+ "removeServer": "Server entfernen",
111
+ "removeServerConfirm": "Sind Sie sicher, dass Sie diesen Server entfernen möchten? Alle zugehörigen Sitzungsdaten werden gespeichert, aber Sie können keine neuen Sitzungen von diesem Server aus überwachen.",
371
112
  "editServer": "Server bearbeiten",
372
113
  "editServerDesc": "Servername oder Verbindungs-URL aktualisieren.",
373
- "loadingAccounts": "Verknüpfte Plex-Konten werden geladen...",
374
- "noPlexAccountsLinked": "Keine Plex-Konten verknüpft",
375
- "noPlexAccountsLinkedHint": "Verbinden Sie oben ein Plex-Konto und kommen Sie dann wieder zu einem Server.",
376
- "noServersConnected": "Keine Server verbunden",
377
- "noServersConnectedHint": "Klicken Sie auf \"Server hinzufügen\", um einen Jellyfin oder Emby Server zu verbinden",
114
+ "serverColor": "Serverfarbe",
115
+ "serverColorDesc": "Wird für die visuelle Zuordnung in der Mehrserver-Ansicht verwendet",
116
+ "updating": "Aktualisiere...",
117
+ "allFieldsRequired": "Alle Felder sind erforderlich",
118
+ "addServerDialogDescPlex": "Wählen Sie einen Plex Server aus Ihrem verknüpften Konto.",
119
+ "addServerDialogDescOther": "Verbinden Sie einen Jellyfin oder Emby Server.",
120
+ "description": "Verwalten Sie Ihre verbundenen Plex, Jellyfin, und Emby Server",
121
+ "discoveringServers": "Entdecke verfügbare Plex Servern...",
122
+ "discoveringConnections": "Verbindungen entdecken...",
378
123
  "plexAccount": "Plex-Konto",
124
+ "serverUrlHelpJellyfin": "Die URL, auf die Ihr Jellyfin-Server zugreifen kann",
125
+ "serverUrlHelpEmby": "Die URL, auf die Ihr Emby-Server zugreifen kann",
126
+ "apiKeyHelpJellyfin": "Finden Sie dies in Jellyfin Dashboard → API-Tasten",
127
+ "apiKeyHelpEmby": "Finden Sie dies in Emby Server → API-Schlüssel",
379
128
  "plexServerPlaceholder": "Mein Plex Server",
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": "Oder klicken Sie unten auf Aktualisieren, um nur die Namensänderung zu speichern.",
131
+ "added": "{{date}} hinzugefügt",
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": "Server entfernen",
412
- "removeServerConfirm": "Sind Sie sicher, dass Sie diesen Server entfernen möchten? Alle zugehörigen Sitzungsdaten werden gespeichert, aber Sie können keine neuen Sitzungen von diesem Server aus überwachen.",
413
- "selectAccountHelp": "Wählen Sie aus, von welchem Plex Konto Sie Server entdecken möchten.",
414
- "selectPlexAccount": "Plex Konto auswählen",
415
- "serverColor": "Serverfarbe",
416
- "serverColorDesc": "Wird für die visuelle Zuordnung in der Mehrserver-Ansicht verwendet",
417
- "serverName": "Servername",
418
- "serverNamePlaceholder": "Mein Medienserver",
419
- "serverType": "Servertyp",
420
- "serverUrl": "Server-URL",
421
- "serverUrlHelp": "Direkte URL zu Ihrem Jellyfin oder Emby Server. Verwenden Sie IP:port für beste Zuverlässigkeit.",
422
- "serverUrlHelpEmby": "Die URL, auf die Ihr Emby-Server zugreifen kann",
423
- "serverUrlHelpJellyfin": "Die URL, auf die Ihr Jellyfin-Server zugreifen kann",
424
- "serverUrlPlaceholder": "http://192.168.1.100:8096",
425
- "setupRealtime": "Set up real-time updates",
426
- "realtimeError": "Real-time error",
427
- "syncInterval": "Synchronisierungsintervall",
428
- "testConnection": "Verbindung testen",
429
- "title": "Verbundene Server",
430
- "updateHint": "Oder klicken Sie unten auf Aktualisieren, um nur die Namensänderung zu speichern.",
431
- "updating": "Aktualisiere..."
432
- },
433
- "tabs": {
434
- "accessControl": "Zugangskontrolle",
435
- "advanced": "Erweitert",
436
- "backup": "Backup",
437
- "general": "Allgemein",
438
- "import": "Importieren",
439
- "jobs": "Jobs",
440
- "mobile": "Mobile App",
441
- "notifications": "Benachrichtigungen",
442
- "servers": "Server",
443
- "tailscale": "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": "Autorisieren in Tailscale",
447
- "awaitingAuth": "Warte auf Authorisierung...",
448
- "connected": "Tailscale ist verbunden. Ihre Tracearr Instanz ist im tailnet verfügbar.",
449
- "description": "Greifen Sie ohne Port-Weiterleitung auf Tracearr sicher über Ihr Tailscale Netzwerk zu.",
450
- "disable": "Tailscale deaktivieren",
451
- "disableConfirmDescription": "Dadurch wird Tracearr von Ihrem tailnet getrennt. Sie können ohne erneutes Autorisieren wieder aktivieren.",
452
- "disableConfirmTitle": "Tailscale deaktivieren?",
453
- "disabledDescription": "Aktivieren Sie die Tailscale, um Tracearr in Ihr privates tailnet zu intrigieren. Keine Portweiterleitung oder Reverse Proxy erforderlich.",
454
- "dnsName": "DNS-Name",
455
- "enable": "Tailscale aktivieren",
456
- "exitNodeNone": "Keine Auswahl",
457
- "exitNodeOffline": "(offline)",
458
- "hideLogs": "Protokolle ausblenden",
459
- "hostname": "Hostname",
460
- "hostnameHint": "Optionaler benutzerdefinierter Name für dieses Gerät in Ihrem tailnet. Nur Buchstaben, Zahlen und Bindestriche.",
461
- "hostnameLabel": "Hostname des Gerätes",
462
- "noLogs": "Keine Protokollausgabe verfügbar.",
463
- "notAvailable": "Tailscale-Binärdatei nicht gefunden. Diese Funktion ist nur verfügbar, wenn das offizielle Docker-Image ausgeführt wird.",
464
- "resetConfirmDescription": "Dies trennt Tracearr von Ihrem tailnet und entfernt die Geräteidentität. Wenn Sie es erneut aktivieren, müssen Sie erneut autorisieren.",
465
- "resetConfirmTitle": "Reset Tailscale?",
466
- "showLogs": "Protokolle anzeigen",
467
- "starting": "Tailscale starten...",
468
- "stopping": "Tailscale stoppen.. ",
469
- "tailnetUrl": "URL",
470
- "title": "Tailscale VPN",
471
- "toast": {
472
- "disableFailed": "Fehler beim Deaktivieren von Tailscale",
473
- "disabled": "Tailscale wurde deaktiviert.",
474
- "enableFailed": "Fehler beim Aktivieren von Tailscale",
475
- "exitNodeFailed": "Fehler beim Setzen der Exit Node",
476
- "exitNodeSet": "Exit Node aktualisiert.",
477
- "reset": "Tailscale wurde zurückgesetzt.",
478
- "resetFailed": "Fehler beim Zurücksetzen der Tailscale"
166
+ "mobile": {
167
+ "title": "Mobile App",
168
+ "pairDevice": "Gerät koppeln",
169
+ "connectedDevices": "Verbundene Geräte",
170
+ "generateToken": "Pairing-Token generieren",
171
+ "scanQrCode": "QR-Code scannen",
172
+ "tokenExpires": "Token läuft in {{time}} ab",
173
+ "noDevices": "Keine Geräte verbunden",
174
+ "revokeAll": "Alle Sitzungen widerrufen",
175
+ "getTheApp": "Lade die App",
176
+ "getTheAppDesc": "Laden Sie die Tracearr mobile App für iOS oder Android herunter",
177
+ "getOnGooglePlay": "Holen Sie es bei Google Play",
178
+ "downloadOnAppStore": "Im App Store herunterladen",
179
+ "pairYourDevice": "Gerät koppeln",
180
+ "pairYourDeviceDesc": "Scannen Sie den QR-Code mit der Tracearr App, um diesen Server zu verbinden.",
181
+ "externalUrlRequired": "Eine externe URL muss in den allgemeinen Einstellungen konfiguriert werden, damit mobile Paare funktionieren können.",
182
+ "mobileAccessDisabled": "Mobiler Zugriff deaktiviert",
183
+ "mobileAccessDisabledDesc": "Mobiler Zugriff aktivieren, damit die Tracearr Mobile App sich mit Ihrem Server verbinden kann.",
184
+ "enableMobileAccess": "Mobiler Zugriff aktivieren",
185
+ "enabling": "Aktivieren...",
186
+ "devicesConnected": "{{current}} von {{max}} Geräten verbunden",
187
+ "pendingTokens": "{{count}} ausstehende Paar Token",
188
+ "addDevice": "Gerät hinzufügen",
189
+ "disableMobileAccess": "Mobilzugriff deaktivieren",
190
+ "connectedDevicesDesc": "{{count}} Geräte gepaart mit Ihrem Server",
191
+ "revokeAllSessions": "Alle widerrufen",
192
+ "pairNewDevice": "Neues Gerät verbinden",
193
+ "pairNewDeviceDesc": "Scannen Sie den QR-Code mit der Tracearr Mobile App oder geben Sie das Token manuell ein.",
194
+ "expiresIn": "Läuft ab in {{time}}",
195
+ "oneTimePairToken": "Einmaliges Paar-Token",
196
+ "copyToken": "Token kopieren",
197
+ "tokenExpiryNote": "Dieses Token läuft in 5 Minuten ab und kann nur einmal verwendet werden.",
198
+ "done": "Fertig",
199
+ "disableMobileAccessConfirm": "Dadurch werden alle mobilen Geräte getrennt und alle Sitzungen widerrufen. Sie können den mobilen Zugriff später wieder aktivieren.",
200
+ "disable": "Deaktivieren",
201
+ "revokeAllConfirm": "Dadurch werden alle mobilen Geräte getrennt. Sie müssen erneut paaren, um sich neu zu verbinden.",
202
+ "renameDevice": "Gerät umbenennen",
203
+ "renameDeviceDesc": "Geben Sie einen Namen ein, um dieses Gerät in der Liste zu identifizieren.",
204
+ "deviceName": "Gerätename",
205
+ "deviceNamePlaceholder": "z.B. iPhone 15",
206
+ "removeDevice": "Gerät entfernen",
207
+ "failedToGenerateToken": "Fehler beim Generieren des Token",
208
+ "removeDeviceConfirm": "Sind Sie sicher, dass Sie {{deviceName}}entfernen möchten? Dieses Gerät muss erneut paaren, um sich neu zu verbinden.",
209
+ "externalUrlBanner": "Reverse-Proxy oder Fernzugriff verwenden? Setze deinen",
210
+ "externalUrlBannerLink": "Externe URL",
211
+ "externalUrlBannerSuffix": "damit sich die mobile App mit Ihrem Server verbinden kann."
212
+ },
213
+ "tailscale": {
214
+ "title": "Tailscale VPN",
215
+ "description": "Greifen Sie ohne Port-Weiterleitung auf Tracearr sicher über Ihr Tailscale Netzwerk zu.",
216
+ "notAvailable": "Tailscale-Binärdatei nicht gefunden. Diese Funktion ist nur verfügbar, wenn das offizielle Docker-Image ausgeführt wird.",
217
+ "disabledDescription": "Aktivieren Sie die Tailscale, um Tracearr in Ihr privates tailnet zu intrigieren. Keine Portweiterleitung oder Reverse Proxy erforderlich.",
218
+ "hostnameLabel": "Hostname des Gerätes",
219
+ "hostnameHint": "Optionaler benutzerdefinierter Name für dieses Gerät in Ihrem tailnet. Nur Buchstaben, Zahlen und Bindestriche.",
220
+ "enable": "Tailscale aktivieren",
221
+ "disable": "Tailscale deaktivieren",
222
+ "starting": "Tailscale starten...",
223
+ "stopping": "Tailscale stoppen.. ",
224
+ "awaitingAuth": "Warte auf Authorisierung...",
225
+ "authorize": "Autorisieren in Tailscale",
226
+ "connected": "Tailscale ist verbunden. Ihre Tracearr Instanz ist im tailnet verfügbar.",
227
+ "hostname": "Hostname",
228
+ "dnsName": "DNS-Name",
229
+ "tailnetUrl": "URL",
230
+ "showLogs": "Protokolle anzeigen",
231
+ "hideLogs": "Protokolle ausblenden",
232
+ "noLogs": "Keine Protokollausgabe verfügbar.",
233
+ "exitNodeNone": "Keine Auswahl",
234
+ "exitNodeOffline": "(offline)",
235
+ "unknownError": "Ein unbekannter Fehler ist aufgetreten.",
236
+ "disableConfirmTitle": "Tailscale deaktivieren?",
237
+ "disableConfirmDescription": "Dadurch wird Tracearr von Ihrem tailnet getrennt. Sie können ohne erneutes Autorisieren wieder aktivieren.",
238
+ "resetConfirmTitle": "Reset Tailscale?",
239
+ "resetConfirmDescription": "Dies trennt Tracearr von Ihrem tailnet und entfernt die Geräteidentität. Wenn Sie es erneut aktivieren, müssen Sie erneut autorisieren.",
240
+ "toast": {
241
+ "disabled": "Tailscale wurde deaktiviert.",
242
+ "enableFailed": "Fehler beim Aktivieren von Tailscale",
243
+ "disableFailed": "Fehler beim Deaktivieren von Tailscale",
244
+ "reset": "Tailscale wurde zurückgesetzt.",
245
+ "resetFailed": "Fehler beim Zurücksetzen der Tailscale",
246
+ "exitNodeSet": "Exit Node aktualisiert.",
247
+ "exitNodeFailed": "Fehler beim Setzen der Exit Node"
248
+ }
249
+ },
250
+ "webhooks": {
251
+ "title": "Webhook-Konfiguration",
252
+ "discordWebhook": "Discord Webhook-URL",
253
+ "ntfyTopic": "Ntfy Topic",
254
+ "customWebhook": "Benutzerdefinierte Webhook-URL",
255
+ "webhookFormat": "Webhook-Format",
256
+ "testWebhook": "Webhook testen"
257
+ },
258
+ "jobs": {
259
+ "title": "Wartungsarbeiten",
260
+ "description": "Verwalten Sie Hintergrund-Aufgaben, die Ihre Daten genau und optimieren.",
261
+ "normalization": "Normalisierung",
262
+ "backfill": "Backfill",
263
+ "cleanup": "Bereinigen",
264
+ "running": "läuft",
265
+ "queued": "in der Warteschlange",
266
+ "delayed": "verzögert",
267
+ "waiting": "Warten",
268
+ "runningState": "Laufend",
269
+ "runJob": "Job ausführen",
270
+ "processed": "verarbeitet",
271
+ "updated": "aktualisiert",
272
+ "unchanged": "unverändert",
273
+ "errors": "fehler",
274
+ "lastJobCompleted": "Letzter Job erfolgreich abgeschlossen",
275
+ "lastJobFailed": "Letzter Job fehlgeschlagen",
276
+ "jobHistory": "Aufgabenhistorie",
277
+ "jobHistoryDesc": "Letzte Wartungsaufträge",
278
+ "runConfirm": "{{name}} ausführen?",
279
+ "mayTakeAWhile": "Dies kann eine Weile dauern",
280
+ "mayTakeAWhileDesc": "Dieser Job kann je nach Größe Ihrer Bibliothek einige Minuten dauern.",
281
+ "startJob": "Job starten"
282
+ },
283
+ "notifications": {
284
+ "routing": {
285
+ "event": "Ereignis",
286
+ "web": "Web",
287
+ "discord": "Discord",
288
+ "webhook": "Webhook",
289
+ "webNote": "Push-Benachrichtigungen werden pro Gerät in der mobilen App konfiguriert.",
290
+ "webToastNote": "zeigt Toastbenachrichtigungen in diesem Browser an."
479
291
  },
480
- "unknownError": "Ein unbekannter Fehler ist aufgetreten."
292
+ "agentCard": {
293
+ "saved": "Gespeichert",
294
+ "default": "Standard",
295
+ "events": "Ereignisse",
296
+ "sendTest": "Test senden",
297
+ "notConfigured": "Nicht vollständig konfiguriert.",
298
+ "editSettings": "Einstellungen bearbeiten"
299
+ }
300
+ },
301
+ "advanced": {
302
+ "title": "Erweiterte Einstellungen",
303
+ "externalUrl": "Externe URL",
304
+ "trustProxy": "Proxy-Header vertrauen",
305
+ "reverseProxy": "Reverse Proxy",
306
+ "connectionScenarios": "Verbindungsszenarien"
307
+ },
308
+ "accessControl": {
309
+ "title": "Zugangskontrolle",
310
+ "description": "Konfigurieren, wer auf Tracearr zugreifen kann",
311
+ "allowGuestAccess": "Gastzugang erlauben",
312
+ "allowGuestAccessDesc": "Wenn deaktiviert, kann sich nur der Serverbesitzer bei Tracearr anmelden",
313
+ "singleOwnerNote": "Hinweis: Wenn der Gastzugang deaktiviert ist, kann sich nur der Serverbesitzer anmelden. Alle anderen Benutzer sehen eine \"Access Denied\"-Nachricht."
314
+ },
315
+ "import": {
316
+ "title": "Daten importieren",
317
+ "jellystat": "Aus Jellystat importieren",
318
+ "tautulli": "Aus Tautulli importieren",
319
+ "importProgress": "Importfortschritt",
320
+ "importComplete": "Import abgeschlossen",
321
+ "importFailed": "Import fehlgeschlagen",
322
+ "processed": "Verarbeitet",
323
+ "page": "Seite",
324
+ "imported": "Importiert",
325
+ "skipped": "Übersprungen",
326
+ "enriched": "Angereichert",
327
+ "errors": "Fehler",
328
+ "noServers": "Keine Server verbunden",
329
+ "noServersHint": "Sie benötigen mindestens einen verbundenen Server, um Daten zu importieren.",
330
+ "tautulliUrl": "Tautulli URL",
331
+ "tautulliUrlPlaceholder": "http://localhost:8181",
332
+ "tautulliUrlHelp": "Die URL Ihrer Tautulli Instanz.",
333
+ "apiKeyHelp": "Gefunden in Tautulli Einstellungen → Web-Interface → API Key.",
334
+ "testing": "Teste...",
335
+ "connectToTautulli": "Mit Tautulli verbinden",
336
+ "importHistory": "Importverlauf",
337
+ "targetServer": "Target Server",
338
+ "selectPlexServer": "Plex Server auswählen",
339
+ "overwriteFriendlyNames": "Überschreibe existierende Namen mit Tautulli Namen",
340
+ "overwriteFriendlyNamesHelp": "Vorhandene Identitätsnamen in Tracearr werden durch die freundlichen Namen von Tautulli ersetzt.",
341
+ "includeStreamDetails": "Detaillierte Streamdaten (Codecs, Bitrate, Auflösung) einschließen",
342
+ "includeStreamDetailsHelp": "Importiert zusätzliche Streaminformationen. Kann die Importzeit erheblich erhöhen.",
343
+ "importing": "Importieren...",
344
+ "startImport": "Import starten",
345
+ "howItWorks": "Wie der Import funktioniert",
346
+ "howItWorksDesc": "Tracearr importiert alle historischen Beobachtungsdaten aus Ihrer Quelle. Dies kann eine Weile dauern, je nach Größe Ihrer Bibliothek.",
347
+ "recordsMayBeSkipped": "Datensätze können übersprungen werden, wenn:",
348
+ "selectTargetServer": "Zielserver auswählen",
349
+ "selectJellyfinServer": "Jellyfin oder Emby Server auswählen",
350
+ "uploadJellystatBackup": "Jellystat Backup hochladen",
351
+ "exportBackupHint": "Aktivitätssicherung von Jellystat exportieren",
352
+ "exportBackupHelp": "Gehen Sie in Jellystat auf Einstellungen → Backup → Aktivitätssicherung um Ihre Daten zu exportieren.",
353
+ "importOptions": "Import-Optionen",
354
+ "enrichMetadata": "Mit Medien-Metadaten bereichern (empfohlen)",
355
+ "enrichMetadataHelp": "Ruft zusätzliche Metadaten von Ihrem Medienserver für importierte Sitzungen ab.",
356
+ "updateExistingRecords": "Aktualisiere vorhandene Datensätze mit Stream-Details",
357
+ "updateExistingRecordsHelp": "Früher importierte Datensätze werden mit Stream-Qualitätsdaten aktualisiert.",
358
+ "pleaseEnterDetails": "Bitte geben Sie Tautulli URL und API-Schlüssel ein",
359
+ "testingConnection": "Teste Verbindung...",
360
+ "pleaseSelectJsonFile": "Bitte wählen Sie eine JSON-Datei",
361
+ "uploadingBackup": "Backup-Datei wird hochgeladen...",
362
+ "importHistoryDesc": "Importiere historische Beobachtungsdaten aus externen Quellen",
363
+ "plex": "Plex (Tautulli)",
364
+ "jellyfinEmby": "Jellyfin/Emby (Jellystat)",
365
+ "step1": "1",
366
+ "step2": "2",
367
+ "apiKeyPlaceholder": "Ihr Tautulli API-Schlüssel",
368
+ "skipUserNotFoundPlex": "Benutzer nicht gefunden — Der Plex Benutzer existiert nicht in Tracearr. Synchronisieren Sie Ihren Server zuerst, um alle Benutzer hinzuzufügen.",
369
+ "skipDuplicate": "Sitzung duplizieren — Die Sitzung wurde bereits importiert.",
370
+ "skipInProgress": "In-progress Session — Aktive/unvollständige Sitzungen ohne Referenz-ID werden übersprungen.",
371
+ "skipUserNotFoundJellyfin": "Benutzer nicht gefunden — Der Jellyfin/Emby Benutzer existiert nicht in Tracearr. Synchronisieren Sie Ihren Server zuerst, um alle Benutzer hinzuzufügen.",
372
+ "skipSyncHint": "Wenn viele Datensätze übersprungen werden, stellen Sie sicher, dass Sie Ihren Server kürzlich unter Einstellungen → Server synchronisiert haben.",
373
+ "importInProgressPercent": "Import im Gange ({{percent}}% vollständig)...",
374
+ "importInProgressGeneric": "Import läuft...",
375
+ "startingImport": "Import wird gestartet...",
376
+ "connectedFound": "Verbunden! {{users}} Benutzer und {{records}} Verlaufsdaten.",
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": "Mit Plex anmelden",
394
+ "signUpWithPlex": "Mit Plex registrieren",
395
+ "selectServer": "Server auswählen",
396
+ "chooseServer": "Wähle aus, welcher Plex Media Server überwacht werden soll"
397
+ },
398
+ "account": {
399
+ "createAccount": "Konto erstellen",
400
+ "email": "E-Mail",
401
+ "password": "Passwort",
402
+ "displayName": "Anzeigename",
403
+ "createYourAccount": "Konto erstellen, um zu beginnen",
404
+ "signInToAccount": "Bei Konto anmelden",
405
+ "useLocalAccount": "Stattdessen lokales Konto verwenden"
481
406
  },
482
- "title": "Einstellungen",
483
407
  "update": {
484
- "betaUpdate": "Beta Update",
485
- "newVersion": "Neue Version",
486
- "pullInstructions": "Starten Sie nach dem laden Ihren Container neu, um das Update anzuwenden.",
487
- "releaseNotes": "Release Notes",
488
- "stableRelease": "Stable Release",
489
408
  "title": "Update verfügbar",
409
+ "releaseNotes": "Release Notes",
490
410
  "updateCommand": "Befehl aktualisieren",
411
+ "pullInstructions": "Starten Sie nach dem laden Ihren Container neu, um das Update anzuwenden.",
412
+ "stableRelease": "Stable Release",
413
+ "betaUpdate": "Beta Update",
414
+ "newVersion": "Neue Version",
491
415
  "versionAvailable": "{{version}} verfügabr"
492
416
  },
493
- "webhooks": {
494
- "customWebhook": "Benutzerdefinierte Webhook-URL",
495
- "discordWebhook": "Discord Webhook-URL",
496
- "ntfyTopic": "Ntfy Topic",
497
- "testWebhook": "Webhook testen",
498
- "title": "Webhook-Konfiguration",
499
- "webhookFormat": "Webhook-Format"
417
+ "serverHealth": {
418
+ "unreachable": "{{serverName}} ist unerreichbar",
419
+ "multipleUnreachable": "{{count}} Server nicht erreichbar {{serverNames}}"
420
+ },
421
+ "ipWarning": {
422
+ "message": "Alle Benutzer scheinen dieselbe IP-Adresse oder dieselben lokalen Netzwerk-IPs zu verwenden. Dies kann Auswirkungen auf die regelbasierte Logik für Standort oder IP-Adressen haben.",
423
+ "acknowledge": "Verstanden"
424
+ },
425
+ "backup": {
426
+ "title": "Backup",
427
+ "backToBackups": "Zurück zu Backups",
428
+ "description": "Sichern und Wiederherstellen Ihrer Tracearr-Daten",
429
+ "createBackup": "Backup erstellen",
430
+ "creating": "Sicherung wird erstellt...",
431
+ "uploadBackup": "Sicherung hochladen",
432
+ "uploading": "Hochladen...",
433
+ "databaseSize": "Aktuelle Datenbankgröße: {{size}}",
434
+ "freeSpace": "Sicherungsverzeichnis freien Speicherplatz: {{size}}",
435
+ "lowDiskSpace": "Geringer Speicherplatz — Sicherungen und Wiederherstellen erfordern mindestens das Doppelte der Datenbankgröße im freien Speicherplatz.",
436
+ "backupHistory": "Backup-Verlauf",
437
+ "noBackups": "Noch keine Sicherungen. Erstellen Sie Ihre erste Sicherung oben.",
438
+ "filename": "Dateiname",
439
+ "size": "Größe",
440
+ "date": "Datum",
441
+ "type": "Typ",
442
+ "version": "Version",
443
+ "actions": "Aktionen",
444
+ "typeManual": "Manuell",
445
+ "typeScheduled": "Geplant",
446
+ "typeUploaded": "Hochgeladen",
447
+ "restoreAction": "Wiederherstellen",
448
+ "deleteConfirmTitle": "Backup löschen",
449
+ "deleteConfirmDescription": "Sind Sie sicher, dass Sie diese Sicherung löschen möchten? Dies kann nicht rückgängig gemacht werden.",
450
+ "schedule": "Geplante Sicherungen",
451
+ "scheduleType": "Zeitplan",
452
+ "scheduleDisabled": "Deaktiviert",
453
+ "scheduleDaily": "Täglich",
454
+ "scheduleWeekly": "Wöchentlich",
455
+ "scheduleMonthly": "Monatlich",
456
+ "scheduleTime": "Zeit ({{timezone}})",
457
+ "scheduleDayOfWeek": "Wochentag",
458
+ "scheduleDayOfMonth": "Tag des Monats",
459
+ "scheduleDayOfMonthHint": "Bei Monaten mit weniger Tagen läuft die Sicherung am letzten Tag.",
460
+ "retentionCount": "Letzter halten",
461
+ "retentionSuffix": "geplante Sicherungen",
462
+ "daySun": "Sonntag",
463
+ "dayMon": "Montag",
464
+ "dayTue": "Dienstag",
465
+ "dayWed": "Mittwoch",
466
+ "dayThu": "Donnerstag",
467
+ "dayFri": "Freitag",
468
+ "daySat": "Samstag",
469
+ "restore": {
470
+ "title": "Backup wiederherstellen",
471
+ "selectedBackup": "Ausgewähltes Backup",
472
+ "databaseSize": "Datenbankgröße",
473
+ "sessions": "Sitzungen",
474
+ "users": "Benutzer",
475
+ "servers": "Server",
476
+ "rules": "Regeln",
477
+ "libraryItems": "Bibliothekselemente",
478
+ "tables": "Tabellen",
479
+ "warning": "Die Wiederherstellung ersetzt alle vorhandenen Daten. Sie müssen sich nach dem Wiederherstellen erneut anmelden.",
480
+ "confirmLabel": "Ich verstehe, dass dies alle Daten ersetzen wird",
481
+ "confirm": "Starte Wiederherstellung",
482
+ "complete": "Wiederherstellung erfolgreich abgeschlossen. Die Seite wird in Kürze aktualisiert.",
483
+ "failed": "Wiederherstellung fehlgeschlagen",
484
+ "cannotRestore": "Wiederherstellung erfordert PostgreSQL Superuser-Berechtigungen. Bitte stellen Sie sicher, dass Ihr Datenbankbenutzer über Superuser-Rechte verfügt und versuchen Sie es erneut.",
485
+ "pgVersionMismatch": "Backup wurde auf PostgreSQL {{backupVersion}} erstellt, aber auf diesem Server läuft PostgreSQL {{serverVersion}}. Wiederherstellung eines Dump von einer neueren PostgreSQL-Version wird nicht unterstützt.",
486
+ "tsVersionMismatch": "Backup wurde mit TimescaleDB {{backupVersion}} erstellt, aber dieser Server unterstützt nur bis zu TimescaleDB {{serverVersion}}."
487
+ },
488
+ "toast": {
489
+ "backupCreated": "Sicherung erfolgreich erstellt",
490
+ "backupCreateFailed": "Fehler beim Erstellen der Sicherung",
491
+ "backupUploaded": "Backup erfolgreich hochgeladen",
492
+ "backupUploadFailed": "Fehler beim Hochladen der Sicherung",
493
+ "backupDeleted": "Sicherung gelöscht",
494
+ "backupDeleteFailed": "Fehler beim Löschen der Sicherung",
495
+ "restoreStarted": "Wiederherstellung gestartet",
496
+ "restoreStartFailed": "Fehler beim Starten der Wiederherstellung",
497
+ "scheduleSaved": "Sicherungsplan gespeichert",
498
+ "scheduleError": "Sicherungsplan konnte nicht gespeichert werden"
499
+ }
500
500
  }
501
501
  }