@tracearr/translations 2.2.0-beta.2 → 2.2.0-beta.3

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 (318) hide show
  1. package/dist/config.d.ts +3349 -1105
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.mobile.d.ts +3349 -1105
  4. package/dist/config.mobile.d.ts.map +1 -1
  5. package/dist/index.d.ts +2 -2
  6. package/dist/index.js +2 -2
  7. package/dist/locales/af-ZA/common.json +282 -250
  8. package/dist/locales/af-ZA/nav.json +21 -17
  9. package/dist/locales/af-ZA/notifications.json +22 -38
  10. package/dist/locales/af-ZA/pages.json +1170 -97
  11. package/dist/locales/af-ZA/settings.json +455 -426
  12. package/dist/locales/ar-SA/common.json +282 -250
  13. package/dist/locales/ar-SA/nav.json +21 -17
  14. package/dist/locales/ar-SA/notifications.json +22 -38
  15. package/dist/locales/ar-SA/pages.json +1170 -97
  16. package/dist/locales/ar-SA/settings.json +455 -426
  17. package/dist/locales/ca-ES/common.json +282 -250
  18. package/dist/locales/ca-ES/nav.json +21 -17
  19. package/dist/locales/ca-ES/notifications.json +22 -38
  20. package/dist/locales/ca-ES/pages.json +1170 -97
  21. package/dist/locales/ca-ES/settings.json +455 -426
  22. package/dist/locales/cs-CZ/common.json +282 -250
  23. package/dist/locales/cs-CZ/nav.json +21 -17
  24. package/dist/locales/cs-CZ/notifications.json +22 -38
  25. package/dist/locales/cs-CZ/pages.json +1170 -97
  26. package/dist/locales/cs-CZ/settings.json +455 -426
  27. package/dist/locales/da-DK/common.json +282 -250
  28. package/dist/locales/da-DK/nav.json +21 -17
  29. package/dist/locales/da-DK/notifications.json +22 -38
  30. package/dist/locales/da-DK/pages.json +1170 -97
  31. package/dist/locales/da-DK/settings.json +455 -426
  32. package/dist/locales/de-DE/common.json +282 -250
  33. package/dist/locales/de-DE/nav.json +21 -17
  34. package/dist/locales/de-DE/notifications.json +22 -38
  35. package/dist/locales/de-DE/pages.json +1170 -97
  36. package/dist/locales/de-DE/settings.json +455 -426
  37. package/dist/locales/el-GR/common.json +282 -250
  38. package/dist/locales/el-GR/nav.json +21 -17
  39. package/dist/locales/el-GR/notifications.json +22 -38
  40. package/dist/locales/el-GR/pages.json +1170 -97
  41. package/dist/locales/el-GR/settings.json +455 -426
  42. package/dist/locales/en/common.json +36 -4
  43. package/dist/locales/en/nav.json +6 -2
  44. package/dist/locales/en/notifications.json +13 -29
  45. package/dist/locales/en/pages.json +1187 -114
  46. package/dist/locales/en/settings.json +31 -2
  47. package/dist/locales/en-US/common.json +282 -250
  48. package/dist/locales/en-US/nav.json +21 -17
  49. package/dist/locales/en-US/notifications.json +22 -38
  50. package/dist/locales/en-US/pages.json +1170 -97
  51. package/dist/locales/en-US/settings.json +455 -426
  52. package/dist/locales/es-ES/common.json +282 -250
  53. package/dist/locales/es-ES/nav.json +21 -17
  54. package/dist/locales/es-ES/notifications.json +22 -38
  55. package/dist/locales/es-ES/pages.json +1170 -97
  56. package/dist/locales/es-ES/settings.json +455 -426
  57. package/dist/locales/fi-FI/common.json +282 -250
  58. package/dist/locales/fi-FI/nav.json +21 -17
  59. package/dist/locales/fi-FI/notifications.json +22 -38
  60. package/dist/locales/fi-FI/pages.json +1170 -97
  61. package/dist/locales/fi-FI/settings.json +455 -426
  62. package/dist/locales/fr-FR/common.json +282 -250
  63. package/dist/locales/fr-FR/nav.json +21 -17
  64. package/dist/locales/fr-FR/notifications.json +22 -38
  65. package/dist/locales/fr-FR/pages.json +1170 -97
  66. package/dist/locales/fr-FR/settings.json +455 -426
  67. package/dist/locales/he-IL/common.json +282 -250
  68. package/dist/locales/he-IL/nav.json +21 -17
  69. package/dist/locales/he-IL/notifications.json +22 -38
  70. package/dist/locales/he-IL/pages.json +1170 -97
  71. package/dist/locales/he-IL/settings.json +455 -426
  72. package/dist/locales/hu-HU/common.json +282 -250
  73. package/dist/locales/hu-HU/nav.json +21 -17
  74. package/dist/locales/hu-HU/notifications.json +22 -38
  75. package/dist/locales/hu-HU/pages.json +1170 -97
  76. package/dist/locales/hu-HU/settings.json +455 -426
  77. package/dist/locales/it-IT/common.json +282 -250
  78. package/dist/locales/it-IT/nav.json +21 -17
  79. package/dist/locales/it-IT/notifications.json +22 -38
  80. package/dist/locales/it-IT/pages.json +1170 -97
  81. package/dist/locales/it-IT/settings.json +455 -426
  82. package/dist/locales/ja-JP/common.json +282 -250
  83. package/dist/locales/ja-JP/nav.json +21 -17
  84. package/dist/locales/ja-JP/notifications.json +22 -38
  85. package/dist/locales/ja-JP/pages.json +1170 -97
  86. package/dist/locales/ja-JP/settings.json +455 -426
  87. package/dist/locales/ko-KR/common.json +282 -250
  88. package/dist/locales/ko-KR/nav.json +21 -17
  89. package/dist/locales/ko-KR/notifications.json +22 -38
  90. package/dist/locales/ko-KR/pages.json +1170 -97
  91. package/dist/locales/ko-KR/settings.json +455 -426
  92. package/dist/locales/nl-NL/common.json +282 -250
  93. package/dist/locales/nl-NL/nav.json +21 -17
  94. package/dist/locales/nl-NL/notifications.json +22 -38
  95. package/dist/locales/nl-NL/pages.json +1170 -97
  96. package/dist/locales/nl-NL/settings.json +455 -426
  97. package/dist/locales/no-NO/common.json +282 -250
  98. package/dist/locales/no-NO/nav.json +21 -17
  99. package/dist/locales/no-NO/notifications.json +22 -38
  100. package/dist/locales/no-NO/pages.json +1170 -97
  101. package/dist/locales/no-NO/settings.json +455 -426
  102. package/dist/locales/pl-PL/common.json +282 -250
  103. package/dist/locales/pl-PL/nav.json +21 -17
  104. package/dist/locales/pl-PL/notifications.json +22 -38
  105. package/dist/locales/pl-PL/pages.json +1170 -97
  106. package/dist/locales/pl-PL/settings.json +455 -426
  107. package/dist/locales/pt-BR/common.json +282 -250
  108. package/dist/locales/pt-BR/nav.json +21 -17
  109. package/dist/locales/pt-BR/notifications.json +22 -38
  110. package/dist/locales/pt-BR/pages.json +1170 -97
  111. package/dist/locales/pt-BR/settings.json +455 -426
  112. package/dist/locales/pt-PT/common.json +282 -250
  113. package/dist/locales/pt-PT/nav.json +21 -17
  114. package/dist/locales/pt-PT/notifications.json +22 -38
  115. package/dist/locales/pt-PT/pages.json +1170 -97
  116. package/dist/locales/pt-PT/settings.json +455 -426
  117. package/dist/locales/ro-RO/common.json +282 -250
  118. package/dist/locales/ro-RO/nav.json +21 -17
  119. package/dist/locales/ro-RO/notifications.json +22 -38
  120. package/dist/locales/ro-RO/pages.json +1170 -97
  121. package/dist/locales/ro-RO/settings.json +455 -426
  122. package/dist/locales/ru-RU/common.json +282 -250
  123. package/dist/locales/ru-RU/nav.json +21 -17
  124. package/dist/locales/ru-RU/notifications.json +22 -38
  125. package/dist/locales/ru-RU/pages.json +1170 -97
  126. package/dist/locales/ru-RU/settings.json +455 -426
  127. package/dist/locales/sr-SP/common.json +282 -250
  128. package/dist/locales/sr-SP/nav.json +21 -17
  129. package/dist/locales/sr-SP/notifications.json +22 -38
  130. package/dist/locales/sr-SP/pages.json +1170 -97
  131. package/dist/locales/sr-SP/settings.json +455 -426
  132. package/dist/locales/sv-SE/common.json +282 -250
  133. package/dist/locales/sv-SE/nav.json +21 -17
  134. package/dist/locales/sv-SE/notifications.json +22 -38
  135. package/dist/locales/sv-SE/pages.json +1170 -97
  136. package/dist/locales/sv-SE/settings.json +455 -426
  137. package/dist/locales/tr-TR/common.json +282 -250
  138. package/dist/locales/tr-TR/nav.json +21 -17
  139. package/dist/locales/tr-TR/notifications.json +22 -38
  140. package/dist/locales/tr-TR/pages.json +1170 -97
  141. package/dist/locales/tr-TR/settings.json +455 -426
  142. package/dist/locales/uk-UA/common.json +282 -250
  143. package/dist/locales/uk-UA/nav.json +21 -17
  144. package/dist/locales/uk-UA/notifications.json +22 -38
  145. package/dist/locales/uk-UA/pages.json +1170 -97
  146. package/dist/locales/uk-UA/settings.json +455 -426
  147. package/dist/locales/vi-VN/common.json +282 -250
  148. package/dist/locales/vi-VN/nav.json +21 -17
  149. package/dist/locales/vi-VN/notifications.json +22 -38
  150. package/dist/locales/vi-VN/pages.json +1170 -97
  151. package/dist/locales/vi-VN/settings.json +455 -426
  152. package/dist/locales/zh-CN/common.json +282 -250
  153. package/dist/locales/zh-CN/nav.json +21 -17
  154. package/dist/locales/zh-CN/notifications.json +22 -38
  155. package/dist/locales/zh-CN/pages.json +1170 -97
  156. package/dist/locales/zh-CN/settings.json +455 -426
  157. package/dist/locales/zh-TW/common.json +282 -250
  158. package/dist/locales/zh-TW/nav.json +21 -17
  159. package/dist/locales/zh-TW/notifications.json +22 -38
  160. package/dist/locales/zh-TW/pages.json +1170 -97
  161. package/dist/locales/zh-TW/settings.json +455 -426
  162. package/package.json +1 -1
  163. package/src/index.ts +2 -2
  164. package/src/locales/af-ZA/common.json +282 -250
  165. package/src/locales/af-ZA/nav.json +21 -17
  166. package/src/locales/af-ZA/notifications.json +22 -38
  167. package/src/locales/af-ZA/pages.json +1170 -97
  168. package/src/locales/af-ZA/settings.json +455 -426
  169. package/src/locales/ar-SA/common.json +282 -250
  170. package/src/locales/ar-SA/nav.json +21 -17
  171. package/src/locales/ar-SA/notifications.json +22 -38
  172. package/src/locales/ar-SA/pages.json +1170 -97
  173. package/src/locales/ar-SA/settings.json +455 -426
  174. package/src/locales/ca-ES/common.json +282 -250
  175. package/src/locales/ca-ES/nav.json +21 -17
  176. package/src/locales/ca-ES/notifications.json +22 -38
  177. package/src/locales/ca-ES/pages.json +1170 -97
  178. package/src/locales/ca-ES/settings.json +455 -426
  179. package/src/locales/cs-CZ/common.json +282 -250
  180. package/src/locales/cs-CZ/nav.json +21 -17
  181. package/src/locales/cs-CZ/notifications.json +22 -38
  182. package/src/locales/cs-CZ/pages.json +1170 -97
  183. package/src/locales/cs-CZ/settings.json +455 -426
  184. package/src/locales/da-DK/common.json +282 -250
  185. package/src/locales/da-DK/nav.json +21 -17
  186. package/src/locales/da-DK/notifications.json +22 -38
  187. package/src/locales/da-DK/pages.json +1170 -97
  188. package/src/locales/da-DK/settings.json +455 -426
  189. package/src/locales/de-DE/common.json +282 -250
  190. package/src/locales/de-DE/nav.json +21 -17
  191. package/src/locales/de-DE/notifications.json +22 -38
  192. package/src/locales/de-DE/pages.json +1170 -97
  193. package/src/locales/de-DE/settings.json +455 -426
  194. package/src/locales/el-GR/common.json +282 -250
  195. package/src/locales/el-GR/nav.json +21 -17
  196. package/src/locales/el-GR/notifications.json +22 -38
  197. package/src/locales/el-GR/pages.json +1170 -97
  198. package/src/locales/el-GR/settings.json +455 -426
  199. package/src/locales/en/common.json +36 -4
  200. package/src/locales/en/nav.json +6 -2
  201. package/src/locales/en/notifications.json +13 -29
  202. package/src/locales/en/pages.json +1187 -114
  203. package/src/locales/en/settings.json +31 -2
  204. package/src/locales/en-US/common.json +282 -250
  205. package/src/locales/en-US/nav.json +21 -17
  206. package/src/locales/en-US/notifications.json +22 -38
  207. package/src/locales/en-US/pages.json +1170 -97
  208. package/src/locales/en-US/settings.json +455 -426
  209. package/src/locales/es-ES/common.json +282 -250
  210. package/src/locales/es-ES/nav.json +21 -17
  211. package/src/locales/es-ES/notifications.json +22 -38
  212. package/src/locales/es-ES/pages.json +1170 -97
  213. package/src/locales/es-ES/settings.json +455 -426
  214. package/src/locales/fi-FI/common.json +282 -250
  215. package/src/locales/fi-FI/nav.json +21 -17
  216. package/src/locales/fi-FI/notifications.json +22 -38
  217. package/src/locales/fi-FI/pages.json +1170 -97
  218. package/src/locales/fi-FI/settings.json +455 -426
  219. package/src/locales/fr-FR/common.json +282 -250
  220. package/src/locales/fr-FR/nav.json +21 -17
  221. package/src/locales/fr-FR/notifications.json +22 -38
  222. package/src/locales/fr-FR/pages.json +1170 -97
  223. package/src/locales/fr-FR/settings.json +455 -426
  224. package/src/locales/he-IL/common.json +282 -250
  225. package/src/locales/he-IL/nav.json +21 -17
  226. package/src/locales/he-IL/notifications.json +22 -38
  227. package/src/locales/he-IL/pages.json +1170 -97
  228. package/src/locales/he-IL/settings.json +455 -426
  229. package/src/locales/hu-HU/common.json +282 -250
  230. package/src/locales/hu-HU/nav.json +21 -17
  231. package/src/locales/hu-HU/notifications.json +22 -38
  232. package/src/locales/hu-HU/pages.json +1170 -97
  233. package/src/locales/hu-HU/settings.json +455 -426
  234. package/src/locales/it-IT/common.json +282 -250
  235. package/src/locales/it-IT/nav.json +21 -17
  236. package/src/locales/it-IT/notifications.json +22 -38
  237. package/src/locales/it-IT/pages.json +1170 -97
  238. package/src/locales/it-IT/settings.json +455 -426
  239. package/src/locales/ja-JP/common.json +282 -250
  240. package/src/locales/ja-JP/nav.json +21 -17
  241. package/src/locales/ja-JP/notifications.json +22 -38
  242. package/src/locales/ja-JP/pages.json +1170 -97
  243. package/src/locales/ja-JP/settings.json +455 -426
  244. package/src/locales/ko-KR/common.json +282 -250
  245. package/src/locales/ko-KR/nav.json +21 -17
  246. package/src/locales/ko-KR/notifications.json +22 -38
  247. package/src/locales/ko-KR/pages.json +1170 -97
  248. package/src/locales/ko-KR/settings.json +455 -426
  249. package/src/locales/nl-NL/common.json +282 -250
  250. package/src/locales/nl-NL/nav.json +21 -17
  251. package/src/locales/nl-NL/notifications.json +22 -38
  252. package/src/locales/nl-NL/pages.json +1170 -97
  253. package/src/locales/nl-NL/settings.json +455 -426
  254. package/src/locales/no-NO/common.json +282 -250
  255. package/src/locales/no-NO/nav.json +21 -17
  256. package/src/locales/no-NO/notifications.json +22 -38
  257. package/src/locales/no-NO/pages.json +1170 -97
  258. package/src/locales/no-NO/settings.json +455 -426
  259. package/src/locales/pl-PL/common.json +282 -250
  260. package/src/locales/pl-PL/nav.json +21 -17
  261. package/src/locales/pl-PL/notifications.json +22 -38
  262. package/src/locales/pl-PL/pages.json +1170 -97
  263. package/src/locales/pl-PL/settings.json +455 -426
  264. package/src/locales/pt-BR/common.json +282 -250
  265. package/src/locales/pt-BR/nav.json +21 -17
  266. package/src/locales/pt-BR/notifications.json +22 -38
  267. package/src/locales/pt-BR/pages.json +1170 -97
  268. package/src/locales/pt-BR/settings.json +455 -426
  269. package/src/locales/pt-PT/common.json +282 -250
  270. package/src/locales/pt-PT/nav.json +21 -17
  271. package/src/locales/pt-PT/notifications.json +22 -38
  272. package/src/locales/pt-PT/pages.json +1170 -97
  273. package/src/locales/pt-PT/settings.json +455 -426
  274. package/src/locales/ro-RO/common.json +282 -250
  275. package/src/locales/ro-RO/nav.json +21 -17
  276. package/src/locales/ro-RO/notifications.json +22 -38
  277. package/src/locales/ro-RO/pages.json +1170 -97
  278. package/src/locales/ro-RO/settings.json +455 -426
  279. package/src/locales/ru-RU/common.json +282 -250
  280. package/src/locales/ru-RU/nav.json +21 -17
  281. package/src/locales/ru-RU/notifications.json +22 -38
  282. package/src/locales/ru-RU/pages.json +1170 -97
  283. package/src/locales/ru-RU/settings.json +455 -426
  284. package/src/locales/sr-SP/common.json +282 -250
  285. package/src/locales/sr-SP/nav.json +21 -17
  286. package/src/locales/sr-SP/notifications.json +22 -38
  287. package/src/locales/sr-SP/pages.json +1170 -97
  288. package/src/locales/sr-SP/settings.json +455 -426
  289. package/src/locales/sv-SE/common.json +282 -250
  290. package/src/locales/sv-SE/nav.json +21 -17
  291. package/src/locales/sv-SE/notifications.json +22 -38
  292. package/src/locales/sv-SE/pages.json +1170 -97
  293. package/src/locales/sv-SE/settings.json +455 -426
  294. package/src/locales/tr-TR/common.json +282 -250
  295. package/src/locales/tr-TR/nav.json +21 -17
  296. package/src/locales/tr-TR/notifications.json +22 -38
  297. package/src/locales/tr-TR/pages.json +1170 -97
  298. package/src/locales/tr-TR/settings.json +455 -426
  299. package/src/locales/uk-UA/common.json +282 -250
  300. package/src/locales/uk-UA/nav.json +21 -17
  301. package/src/locales/uk-UA/notifications.json +22 -38
  302. package/src/locales/uk-UA/pages.json +1170 -97
  303. package/src/locales/uk-UA/settings.json +455 -426
  304. package/src/locales/vi-VN/common.json +282 -250
  305. package/src/locales/vi-VN/nav.json +21 -17
  306. package/src/locales/vi-VN/notifications.json +22 -38
  307. package/src/locales/vi-VN/pages.json +1170 -97
  308. package/src/locales/vi-VN/settings.json +455 -426
  309. package/src/locales/zh-CN/common.json +282 -250
  310. package/src/locales/zh-CN/nav.json +21 -17
  311. package/src/locales/zh-CN/notifications.json +22 -38
  312. package/src/locales/zh-CN/pages.json +1170 -97
  313. package/src/locales/zh-CN/settings.json +455 -426
  314. package/src/locales/zh-TW/common.json +282 -250
  315. package/src/locales/zh-TW/nav.json +21 -17
  316. package/src/locales/zh-TW/notifications.json +22 -38
  317. package/src/locales/zh-TW/pages.json +1170 -97
  318. package/src/locales/zh-TW/settings.json +455 -426
@@ -1,475 +1,504 @@
1
1
  {
2
- "title": "Réglages",
3
- "tabs": {
4
- "general": "Général",
5
- "servers": "Serveurs",
6
- "notifications": "Notifications",
7
- "mobile": "Application mobile",
8
- "tailscale": "Tailscale",
9
- "import": "Importation",
10
- "advanced": "Avancé",
11
- "jobs": "Tâches",
12
- "accessControl": "Contrôle d'accès",
13
- "backup": "Sauvegarde"
2
+ "accessControl": {
3
+ "allowGuestAccess": "Autoriser l'accès aux invités",
4
+ "allowGuestAccessDesc": "Lorsque désactivé, seul le propriétaire du serveur peut se connecter à Tracearr",
5
+ "description": "Configurer qui peut accéder à Tracearr",
6
+ "singleOwnerNote": "Remarque : Lorsque l'accès des invités est désactivé, seul le propriétaire du serveur peut se connecter. Tous les autres utilisateurs verront un message \"Accès refusé\".",
7
+ "title": "Contrôle d'accès"
8
+ },
9
+ "account": {
10
+ "createAccount": "Créer un compte",
11
+ "createYourAccount": "Créez votre compte pour démarrer",
12
+ "displayName": "Nom d'affichage",
13
+ "email": "Email",
14
+ "password": "Mot de passe",
15
+ "signInToAccount": "Connectez-vous à votre compte",
16
+ "useLocalAccount": "Utiliser un compte local à la place"
17
+ },
18
+ "advanced": {
19
+ "connectionScenarios": "Scénarios de connexion",
20
+ "externalUrl": "URL externe",
21
+ "reverseProxy": "Proxy inversé",
22
+ "title": "Réglages avancés",
23
+ "trustProxy": "En-têtes de confiance du Proxy"
24
+ },
25
+ "backup": {
26
+ "actions": "Actions",
27
+ "backToBackups": "Retour aux sauvegardes",
28
+ "backupHistory": "Historique des sauvegardes",
29
+ "createBackup": "Créer une sauvegarde",
30
+ "creating": "Création de la sauvegarde...",
31
+ "databaseSize": "Taille actuelle de la base de données : {{size}}",
32
+ "date": "Date",
33
+ "dayFri": "Vendredi",
34
+ "dayMon": "Lundi",
35
+ "daySat": "Samedi",
36
+ "daySun": "Dimanche",
37
+ "dayThu": "Jeudi",
38
+ "dayTue": "Mardi",
39
+ "dayWed": "Mercredi",
40
+ "deleteConfirmDescription": "Êtes-vous sûr de vouloir supprimer cette sauvegarde ? Cette action est irréversible.",
41
+ "deleteConfirmTitle": "Supprimer la sauvegarde",
42
+ "description": "Sauvegardez et restaurez vos données Tracearr",
43
+ "filename": "Nom du fichier",
44
+ "freeSpace": "Espace libre dans le répertoire de sauvegarde : {{size}}",
45
+ "lowDiskSpace": "Espace disque faible — les sauvegardes et restaurations nécessitent au moins deux fois la taille de la base de données en espace libre.",
46
+ "noBackups": "Aucune sauvegarde pour le moment. Créez votre première sauvegarde ci-dessus.",
47
+ "restore": {
48
+ "automations": "Automations",
49
+ "cannotRestore": "La restauration nécessite des privilèges de superutilisateur PostgreSQL. Veuillez vous assurer que votre utilisateur de base de données dispose de ces privilèges, puis réessayez.",
50
+ "complete": "Restauration effectuée avec succès. La page s'actualisera sous peu.",
51
+ "confirm": "Démarrer la restauration",
52
+ "confirmLabel": "Je comprends que cela remplacera toutes les données",
53
+ "databaseSize": "Taille de la base de données",
54
+ "failed": "Échec de la restauration",
55
+ "libraryItems": "Éléments de la bibliothèque",
56
+ "pgVersionMismatch": "La sauvegarde a été créée avec PostgreSQL {{backupVersion}}, mais ce serveur utilise PostgreSQL {{serverVersion}}. La restauration d'une sauvegarde issue d'une version plus récente de PostgreSQL n'est pas prise en charge.",
57
+ "selectedBackup": "Sauvegarde sélectionnée",
58
+ "servers": "Serveurs",
59
+ "sessions": "Sessions",
60
+ "tables": "Tableaux",
61
+ "title": "Restaurer la sauvegarde",
62
+ "tsVersionMismatch": "La sauvegarde a été créée avec TimescaleDB {{backupVersion}}, mais ce serveur ne prend en charge que jusqu'à TimescaleDB {{serverVersion}}.",
63
+ "users": "Utilisateurs",
64
+ "warning": "La restauration remplacera toutes les données existantes. Vous devrez vous reconnecter une fois la restauration complétée."
65
+ },
66
+ "restoreAction": "Restaurer",
67
+ "retentionCount": "Garder les dernières :",
68
+ "retentionSuffix": "sauvegardes planifiées",
69
+ "schedule": "Sauvegardes planifiées",
70
+ "scheduleDaily": "Journalière",
71
+ "scheduleDayOfMonth": "Jour du mois",
72
+ "scheduleDayOfMonthHint": "Pour les mois comportant moins de jours, la sauvegarde est effectuée le dernier jour du mois.",
73
+ "scheduleDayOfWeek": "Jour de la semaine",
74
+ "scheduleDisabled": "Désactivé",
75
+ "scheduleMonthly": "Mensuelle",
76
+ "scheduleTime": "Heure ({{timezone}})",
77
+ "scheduleType": "Planification",
78
+ "scheduleWeekly": "Hebdomadaire",
79
+ "size": "Taille",
80
+ "title": "Sauvegarde",
81
+ "toast": {
82
+ "backupCreateFailed": "Échec de création de la sauvegarde",
83
+ "backupCreated": "Sauvegarde créée avec succès",
84
+ "backupDeleteFailed": "Échec de suppression de la sauvegarde",
85
+ "backupDeleted": "Sauvegarde supprimée",
86
+ "backupUploadFailed": "Échec du téléversement de la sauvegarde",
87
+ "backupUploaded": "Sauvegarde téléversée avec succès",
88
+ "restoreStartFailed": "Échec du démarrage de la restauration",
89
+ "restoreStarted": "La restauration a démarré",
90
+ "scheduleError": "Échec de l'enregistrement de la planification de la sauvegarde",
91
+ "scheduleSaved": "Planification de la sauvegarde enregistrée"
92
+ },
93
+ "type": "Type",
94
+ "typeManual": "Manuelle",
95
+ "typeScheduled": "Planifiée",
96
+ "typeUploaded": "Téléversé",
97
+ "uploadBackup": "Téléverser une sauvegarde",
98
+ "uploading": "Téléversement...",
99
+ "version": "Version"
14
100
  },
15
101
  "general": {
16
- "title": "Réglages généraux",
17
- "unitSystem": "Système d'unité",
18
- "metric": "Métrique (km, km/h)",
19
- "imperial": "Impérial (mi, mph)",
20
- "timezone": "Fuseau horaire",
21
- "primaryAuth": "Méthode d'authentification principale",
22
- "localAccount": "Compte local",
23
- "plexAccount": "Compte Plex",
24
- "language": "Langue",
25
- "languageDescription": "Choisissez votre langue d'affichage préférée.",
26
- "helpTranslate": "Aidez-nous à traduire Tracearr",
27
- "timeFormat": "Format horaire",
28
- "timeFormatDescription": "Choisissez comment l'heure est affichée.",
29
- "timeFormat12h": "Format 12 heures (1:30 PM)",
30
- "timeFormat24h": "Format 24 heures (13:30)",
102
+ "accentColor": "Couleur d'accentuation",
103
+ "apiDocs": "API Docs",
104
+ "apiKeyDesc": "Accédez à l'API Tracearr pour des intégrations tierces comme Homarr, Home Assistant, etc.",
105
+ "apiKeyReadAccess": "Votre clé API vous donne un accès en lecture complète à vos données Tracearr.",
106
+ "apiRateLimit": "API Rate Limit",
107
+ "apiRateLimitDesc": "Maximum public API requests per minute per key. Restart required to apply.",
108
+ "apiRateLimitSuffix": "/min",
31
109
  "appearance": "Apparence",
32
110
  "appearanceDesc": "Personnaliser l'apparence de Tracearr",
33
- "theme": "Thème",
34
- "accentColor": "Couleur d'accentuation",
35
- "default": "(par défaut)",
36
- "cyanDefault": "* Cyan est la couleur d'accentuation par défaut",
37
- "themeLight": "Lumière",
38
- "themeDark": "Sombre",
39
- "themeSystem": "Système",
40
111
  "application": "Application",
41
112
  "applicationDesc": "Configurer les paramètres de base de l'application",
42
- "unitSystemDesc": "Choisir comment les distances et les vitesses sont affichées",
43
- "sessionSync": "Synchronisation de session",
44
- "sessionSyncDesc": "Activer le suivi de session pour vos serveurs multimédia",
45
- "syncInterval": "Intervalle de synchronisation",
46
- "syncIntervalDesc": "Fréquence de vote pour Jellyfin/Emby (5-300 secondes)",
47
- "syncIntervalSuffix": "s",
48
- "plexSseNote": "Plex utilise Server-Sent Events (SSE) pour des mises à jour quasi instantanées — aucun sondage n'est nécessaire.",
49
- "jellyfinPollingNote": "Les sondages de Jellyfin/Emby sont effectués à l'intervalle ci-dessus.",
113
+ "copyToClipboard": "Copier dans le presse-papiers",
114
+ "cyanDefault": "* Cyan est la couleur d'accentuation par défaut",
115
+ "default": "(par défaut)",
116
+ "detect": "Détecter",
50
117
  "enhancedGeoIP": "Recherche GeoIP améliorée",
51
118
  "enhancedGeoIPDesc": "Utiliser le service GeoIP de Plex pour des données de localisation plus précises. Lorsqu'il est activé, les adresses IP sont envoyées à plex. v pour la recherche. La base de données locale MaxMind est utilisée comme repli.",
52
119
  "externalAccess": "Accès externe",
53
120
  "externalAccessDesc": "Configurer comment les appareils externes (comme les applications mobiles) se connectent à votre serveur",
54
121
  "externalUrl": "URL externe",
55
- "externalUrlPlaceholder": "https://tracearr.example.com",
56
122
  "externalUrlDesc": "L'URL que les appareils externes doivent utiliser pour atteindre ce serveur. Utilisé pour les codes QR et l'appairage de l'application mobile.",
57
- "detect": "Détecter",
58
- "localhostWarning": "Les URL de l'hôte local ne fonctionneront pas pour les périphériques externes. Utilisez votre IP LAN ou un nom de domaine.",
123
+ "externalUrlPlaceholder": "https://tracearr.example.com",
124
+ "generateApiKeyPrompt": "Générer une clé API pour activer les intégrations externes.",
125
+ "generateKey": "Générer une clé",
126
+ "helpTranslate": "Aidez-nous à traduire Tracearr",
127
+ "imperial": "Impérial (mi, mph)",
59
128
  "iosHttpWarning": "iOS nécessite HTTPS pour les connexions externes. Configurez un proxy inverse avec SSL.",
60
- "apiKeyDesc": "Accédez à l'API Tracearr pour des intégrations tierces comme Homarr, Home Assistant, etc.",
61
- "apiDocs": "API Docs",
129
+ "jellyfinPollingNote": "Les sondages de Jellyfin/Emby sont effectués à l'intervalle ci-dessus.",
130
+ "language": "Langue",
131
+ "languageDescription": "Choisissez votre langue d'affichage préférée.",
132
+ "localAccount": "Compte local",
133
+ "localhostWarning": "Les URL de l'hôte local ne fonctionneront pas pour les périphériques externes. Utilisez votre IP LAN ou un nom de domaine.",
134
+ "metric": "Métrique (km, km/h)",
62
135
  "noApiKeyGenerated": "Aucune clé API générée",
63
- "copyToClipboard": "Copier dans le presse-papiers",
64
- "apiKeyReadAccess": "Votre clé API vous donne un accès en lecture complète à vos données Tracearr.",
65
- "generateApiKeyPrompt": "Générer une clé API pour activer les intégrations externes.",
136
+ "plexAccount": "Compte Plex",
137
+ "plexSseNote": "Plex utilise Server-Sent Events (SSE) pour des mises à jour quasi instantanées — aucun sondage n'est nécessaire.",
138
+ "primaryAuth": "Méthode d'authentification principale",
139
+ "publicApiSettings": "Public API",
140
+ "publicApiSettingsDesc": "Configure watch-completion thresholds and request limits for the public API",
66
141
  "regenerate": "Régénérer",
67
- "generateKey": "Générer une clé",
68
142
  "regenerateApiKey": "Régénérer la clé API ?",
69
143
  "regenerateApiKeyDesc": "Ceci invalidera votre clé API actuelle. Toute intégration utilisant l'ancienne clé cessera de fonctionner.",
70
- "publicApiSettings": "Public API",
71
- "publicApiSettingsDesc": "Configure watch-completion thresholds and request limits for the public API",
144
+ "sessionSync": "Synchronisation de session",
145
+ "sessionSyncDesc": "Activer le suivi de session pour vos serveurs multimédia",
146
+ "syncInterval": "Intervalle de synchronisation",
147
+ "syncIntervalDesc": "Fréquence de vote pour Jellyfin/Emby (5-300 secondes)",
148
+ "syncIntervalSuffix": "s",
149
+ "theme": "Thème",
150
+ "themeDark": "Sombre",
151
+ "themeLight": "Lumière",
152
+ "themeSystem": "Système",
153
+ "timeFormat": "Format horaire",
154
+ "timeFormat12h": "Format 12 heures (1:30 PM)",
155
+ "timeFormat24h": "Format 24 heures (13:30)",
156
+ "timeFormatDescription": "Choisissez comment l'heure est affichée.",
157
+ "timezone": "Fuseau horaire",
158
+ "title": "Réglages généraux",
159
+ "unitSystem": "Système d'unité",
160
+ "unitSystemDesc": "Choisir comment les distances et les vitesses sont affichées",
161
+ "updateChecks": {
162
+ "description": "Tracearr looks for new releases every six hours. Notifications come from whatever automation listens for the update triggers.",
163
+ "plugin": "Realtime plugin",
164
+ "pluginDesc": "Check for new releases of the Tracearr plugin your Jellyfin and Emby servers stream events through.",
165
+ "server": "Media servers",
166
+ "serverDesc": "Compare what each Plex, Jellyfin and Emby server runs with the newest release its makers publish.",
167
+ "title": "Update checks"
168
+ },
169
+ "imageCache": {
170
+ "title": "Poster cache",
171
+ "description": "One copy of each poster, kept on disk until the poster changes. Nothing here is evicted to make room; when the disk runs low the cache stops growing and says so.",
172
+ "size": "On disk",
173
+ "files": "Files",
174
+ "need": "Estimated need",
175
+ "needHint": "{{count}} posters × 18 KB",
176
+ "free": "Free disk",
177
+ "freeOf": "of {{total}}",
178
+ "floor": "Keeps free",
179
+ "ceiling": "Ceiling",
180
+ "lastSweep": "Last sweep",
181
+ "never": "not yet",
182
+ "diskLimited": "Disk-limited since {{since}}: about {{shortfall}} of posters are not cached.",
183
+ "loadError": "Could not load the cache status."
184
+ },
72
185
  "watchedThresholdMovie": "Movie Watched Threshold",
73
186
  "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",
76
187
  "watchedThresholdMusic": "Track Watched Threshold",
77
188
  "watchedThresholdMusicDesc": "Percentage of a track that must be played before it's marked complete",
78
189
  "watchedThresholdSuffix": "%",
79
- "apiRateLimit": "API Rate Limit",
80
- "apiRateLimitDesc": "Maximum public API requests per minute per key. Restart required to apply.",
81
- "apiRateLimitSuffix": "/min"
82
- },
83
- "servers": {
84
- "title": "Serveurs connectés",
85
- "addServer": "Ajouter un serveur",
86
- "serverName": "Nom du serveur",
87
- "serverUrl": "URL du serveur",
88
- "syncInterval": "Intervalle de synchronisation",
89
- "testConnection": "Tester la connexion",
90
- "connectionSuccess": "Connexion réussie",
91
- "connectionFailed": "Échec de la connexion",
92
- "noServersConnected": "Aucun serveur connecté",
93
- "noServersConnectedHint": "Cliquez sur \"Ajouter un serveur\" pour connecter un serveur Jellyfin ou Emby",
94
- "serverType": "Type de serveur",
95
- "loadingAccounts": "Chargement des comptes Plex liés...",
96
- "noPlexAccountsLinked": "Aucun compte Plex lié pour le moment",
97
- "noPlexAccountsLinkedHint": "Lier un compte Plex ci-dessus, puis revenir pour ajouter un serveur.",
98
- "selectPlexAccount": "Sélectionnez le compte Plex",
99
- "chooseAccount": "Choisissez un compte...",
100
- "selectAccountHelp": "Sélectionnez le compte Plex dont vous voulez découvrir les serveurs.",
101
- "allServersConnected": "Tous les serveurs connectés",
102
- "allServersConnectedDesc": "Tous les serveurs de ce compte sont déjà connectés.",
103
- "serverUrlPlaceholder": "http://192.168.1.100:8096",
104
- "serverUrlHelp": "URL directe vers votre serveur Jellyfin ou Emby. Utilisez IP:port pour une fiabilité optimale.",
105
- "serverNamePlaceholder": "Mon serveur multimédia",
106
- "apiKeyPlaceholder": "Entrez votre clé API",
107
- "apiKeyHelp": "Trouvé dans le tableau de bord de votre serveur multimédia sous Clés API ou Paramètres avancés.",
108
- "connecting": "Connexion en cours...",
109
- "connectServer": "Connecter le serveur",
110
- "removeServer": "Supprimer le serveur",
111
- "removeServerConfirm": "Êtes-vous sûr de vouloir supprimer ce serveur ? Toutes les données de session associées seront conservées, mais vous ne serez pas en mesure de surveiller les nouvelles sessions de ce serveur.",
112
- "editServer": "Modifier le serveur",
113
- "editServerDesc": "Mettre à jour le nom du serveur ou l'URL de connexion.",
114
- "serverColor": "Couleur du serveur",
115
- "serverColorDesc": "Utilisé pour l'attribution visuelle dans la vue multi-serveur",
116
- "updating": "Mise à jour en cours...",
117
- "allFieldsRequired": "Tous les champs sont obligatoires",
118
- "addServerDialogDescPlex": "Sélectionnez un serveur Plex à partir de votre compte lié.",
119
- "addServerDialogDescOther": "Connectez un serveur Jellyfin ou Emby.",
120
- "description": "Gérez vos serveurs Plex, Jellyfin et Emby connectés",
121
- "discoveringServers": "Recherche des serveurs Plex disponibles...",
122
- "discoveringConnections": "Découverte des connexions...",
123
- "plexAccount": "Compte Plex",
124
- "serverUrlHelpJellyfin": "L'URL où votre serveur Jellyfin est accessible",
125
- "serverUrlHelpEmby": "L'URL où votre serveur Emby est accessible",
126
- "apiKeyHelpJellyfin": "Trouvez ceci dans le tableau de bord Jellyfin → Clés API",
127
- "apiKeyHelpEmby": "Trouvez ceci dans Emby Server → Clés API",
128
- "plexServerPlaceholder": "Mon serveur Plex",
129
- "plexServerUrlPlaceholder": "http://192.168.1.100:32400",
130
- "updateHint": "Ou cliquez sur Mettre à jour ci-dessous pour enregistrer uniquement le changement de nom.",
131
- "added": "Ajouté {{date}}",
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",
139
- "realtimeDialog": {
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.",
143
- "embyDescription": "Install the Tracearr SSE plugin to get instant session updates without waiting for the next poll.",
144
- "jellyfinUpdateDescription": "A newer plugin release is available. Open your Jellyfin dashboard, go to Plugins, Catalog, and update Tracearr SSE, then restart Jellyfin.",
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.",
146
- "repositoryUrl": "Repository URL",
147
- "copyUrl": "Copy URL",
148
- "jellyfinRepoUrl": "https://raw.githubusercontent.com/Tracearr/Media-Server-SSE/main/manifest.json",
149
- "embyReleasesUrl": "https://github.com/Tracearr/Media-Server-SSE/releases",
150
- "openReleases": "Open releases page",
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",
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.",
154
- "issueRestartRequired": "The plugin is installed, but the media server needs a restart before it activates.",
155
- "issueMalfunctioned": "The server reports the plugin failed to load. Updating the plugin or the media server usually clears this."
156
- },
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
- }
165
- },
166
- "mobile": {
167
- "title": "Application mobile",
168
- "pairDevice": "Associer un appareil",
169
- "connectedDevices": "Appareils connectés",
170
- "generateToken": "Générer un jeton d'appairage",
171
- "scanQrCode": "Scanner le code QR",
172
- "tokenExpires": "Le jeton d'appairage expire dans {{time}}",
173
- "noDevices": "Aucun appareil connecté",
174
- "revokeAll": "Révoquer toutes les sessions",
175
- "getTheApp": "Téléchargez l'application",
176
- "getTheAppDesc": "Téléchargez l'application mobile Tracearr pour iOS ou Android",
177
- "getOnGooglePlay": "Télécharger sur Google Play",
178
- "downloadOnAppStore": "Télécharger sur l'App Store",
179
- "pairYourDevice": "Associer votre appareil",
180
- "pairYourDeviceDesc": "Scannez le code QR avec l'application Tracearr pour connecter ce serveur.",
181
- "externalUrlRequired": "Une URL externe doit être configurée dans les paramètres généraux pour que l'appairage mobile fonctionne.",
182
- "mobileAccessDisabled": "Accès mobile désactivé",
183
- "mobileAccessDisabledDesc": "Activez l'accès mobile pour permettre à l'application mobile Tracearr de se connecter à votre serveur.",
184
- "enableMobileAccess": "Activer l'accès mobile",
185
- "enabling": "Activation...",
186
- "devicesConnected": "{{current}} des appareils {{max}} connectés",
187
- "pendingTokens": "{{count}} token en attente",
188
- "addDevice": "Ajouter un appareil",
189
- "disableMobileAccess": "Désactiver l'accès mobile",
190
- "connectedDevicesDesc": "Périphériques {{count}} appariés à votre serveur",
191
- "revokeAllSessions": "Révoquer tout",
192
- "pairNewDevice": "Associer un nouvel appareil",
193
- "pairNewDeviceDesc": "Scannez le code QR avec l'application mobile Tracearr ou saisissez le jeton manuellement.",
194
- "expiresIn": "Expire dans {{time}}",
195
- "oneTimePairToken": "Jeton de Paire à usage unique",
196
- "copyToken": "Copier le jeton",
197
- "tokenExpiryNote": "Ce jeton expire dans 5 minutes et ne peut être utilisé qu'une seule fois.",
198
- "done": "Fait",
199
- "disableMobileAccessConfirm": "Ceci va déconnecter tous les appareils mobiles et révoquer toutes les sessions. Vous pourrez réactiver l'accès mobile plus tard.",
200
- "disable": "Désactiver",
201
- "revokeAllConfirm": "Cela déconnectera tous les appareils mobiles. Ils devront s'appairer à nouveau pour se reconnecter.",
202
- "renameDevice": "Renommer l'appareil",
203
- "renameDeviceDesc": "Entrez un nom pour identifier cet appareil dans la liste.",
204
- "deviceName": "Nom de l'appareil",
205
- "deviceNamePlaceholder": "par exemple iPhone 15",
206
- "removeDevice": "Supprimer l'appareil",
207
- "failedToGenerateToken": "Impossible de générer le jeton",
208
- "removeDeviceConfirm": "Êtes-vous sûr de vouloir supprimer {{deviceName}}? Cet appareil devra être relié à nouveau pour se reconnecter.",
209
- "externalUrlBanner": "Utiliser un proxy inversé ou accéder à distance ? Définissez votre",
210
- "externalUrlBannerLink": "URL externe",
211
- "externalUrlBannerSuffix": "pour que l'application mobile puisse se connecter à votre serveur."
212
- },
213
- "tailscale": {
214
- "title": "VPN Tailscale",
215
- "description": "Accédez à Tracearr en toute sécurité sur votre réseau Tailscale, sans redirection de port.",
216
- "notAvailable": "Le binaire de Tailscale est introuvable. Cette fonctionnalité n'est uniquement disponible que lorsque vous utilisez l'image Docker officielle.",
217
- "disabledDescription": "Activez Tailscale pour placer Tracearr sur votre tailnet privé. Aucune redirection de port ni reverse proxy requis.",
218
- "hostnameLabel": "Nom d'hôte de l'appareil",
219
- "hostnameHint": "Nom personnalisé facultatif pour cet appareil sur votre tailnet. Lettres, chiffres et tirets uniquement.",
220
- "enable": "Activer Tailscale",
221
- "disable": "Désactiver Tailscale",
222
- "starting": "Démarrage de Tailscale...",
223
- "stopping": "Arrêt de Tailscale...",
224
- "awaitingAuth": "En attente d'autorisation...",
225
- "authorize": "Autoriser dans Tailscale",
226
- "connected": "Tailscale est connecté. Votre instance Tracearr est disponible sur le tailnet.",
227
- "hostname": "Nom d'hôte",
228
- "dnsName": "Nom du DNS",
229
- "tailnetUrl": "URL",
230
- "showLogs": "Afficher les journaux",
231
- "hideLogs": "Masquer les journaux",
232
- "noLogs": "Aucune journalisation de sortie disponible.",
233
- "exitNodeNone": "Aucun",
234
- "exitNodeOffline": "(hors ligne)",
235
- "unknownError": "Une erreur inconnue s'est produite.",
236
- "disableConfirmTitle": "Désactiver Tailscale ?",
237
- "disableConfirmDescription": "Cela déconnectera Tracearr de votre tailnet. Vous pourrez le réactiver sans avoir à l'autoriser de nouveau.",
238
- "resetConfirmTitle": "Réinitialiser Tailscale ?",
239
- "resetConfirmDescription": "Tracearr sera déconnecté de votre tailnet et l'identité de l'appareil sera supprimée. Une nouvelle autorisation sera nécessaire si vous l'activez à nouveau.",
240
- "toast": {
241
- "disabled": "Tailscale a été désactivé.",
242
- "enableFailed": "Échec de l'activation de Tailscale",
243
- "disableFailed": "Échec de la désactivation de Tailscale",
244
- "reset": "Tailscale a été réinitialisé.",
245
- "resetFailed": "Échec de la réinitialisation de Tailscale",
246
- "exitNodeSet": "Exit node mis à jour.",
247
- "exitNodeFailed": "Impossible de définir l'exit node"
248
- }
249
- },
250
- "jobs": {
251
- "title": "Tâches d'entretien",
252
- "description": "Gérer les tâches de fond qui gardent vos données exactes et optimisées.",
253
- "normalization": "Normalisation",
254
- "backfill": "Remplissage",
255
- "cleanup": "Nettoyage",
256
- "running": "en cours d'exécution",
257
- "queued": "mis en file d'attente",
258
- "delayed": "différé",
259
- "waiting": "En attente",
260
- "runningState": "En cours d'exécution",
261
- "runJob": "Exécuter le Job",
262
- "processed": "traité",
263
- "updated": "Mis à jour",
264
- "unchanged": "inchangé",
265
- "errors": "erreurs",
266
- "lastJobCompleted": "Dernière tâche terminée avec succès",
267
- "lastJobFailed": "La dernière tâche a échoué",
268
- "jobHistory": "Historique des tâches",
269
- "jobHistoryDesc": "Exécution récente d'une tâche de maintenance",
270
- "runConfirm": "Exécuter {{name}}?",
271
- "mayTakeAWhile": "Cela peut prendre un certain temps",
272
- "mayTakeAWhileDesc": "Cette tâche peut prendre plusieurs minutes selon la taille de votre bibliothèque.",
273
- "startJob": "Commencer la tâche"
274
- },
275
- "advanced": {
276
- "title": "Réglages avancés",
277
- "externalUrl": "URL externe",
278
- "trustProxy": "En-têtes de confiance du Proxy",
279
- "reverseProxy": "Proxy inversé",
280
- "connectionScenarios": "Scénarios de connexion"
281
- },
282
- "accessControl": {
283
- "title": "Contrôle d'accès",
284
- "description": "Configurer qui peut accéder à Tracearr",
285
- "allowGuestAccess": "Autoriser l'accès aux invités",
286
- "allowGuestAccessDesc": "Lorsque désactivé, seul le propriétaire du serveur peut se connecter à Tracearr",
287
- "singleOwnerNote": "Remarque : Lorsque l'accès des invités est désactivé, seul le propriétaire du serveur peut se connecter. Tous les autres utilisateurs verront un message \"Accès refusé\"."
190
+ "watchedThresholdTv": "TV Episode Watched Threshold",
191
+ "watchedThresholdTvDesc": "Percentage of an episode that must be watched before it's marked complete"
288
192
  },
289
193
  "import": {
290
- "title": "Importer des données",
291
- "jellystat": "Importer depuis Jellystat",
292
- "tautulli": "Importer depuis Tautulli",
293
- "importProgress": "Progression de l'import",
194
+ "apiKeyHelp": "Trouvé dans les paramètres Tautulli → Interface Web → Clé d'API.",
195
+ "apiKeyPlaceholder": "Votre clé API Tautulli",
196
+ "checkPlugin": "Check Plugin",
197
+ "checkingPlugin": "Checking...",
198
+ "connectToTautulli": "Se connecter à Tautulli",
199
+ "connectedFound": "Connecté ! Utilisateurs {{users}} trouvés et enregistrements de l'historique {{records}}.",
200
+ "duplicates": "{{count}} duplicates skipped",
201
+ "enrichMetadata": "Enrichir avec les métadonnées du média (recommandé)",
202
+ "enrichMetadataHelp": "Récupère des métadonnées supplémentaires depuis votre serveur multimédia pour les sessions importées.",
203
+ "enriched": "Enrichi",
204
+ "errors": "Erreurs",
205
+ "exportBackupHelp": "Dans Jellystat, allez dans Paramètres → Sauvegarde → Sauvegarde d'activités pour exporter vos données.",
206
+ "exportBackupHint": "Exporter une sauvegarde d'activité depuis Jellystat",
207
+ "howItWorks": "Comment fonctionne l'import",
208
+ "howItWorksDesc": "Tracearr importera toutes les données historiques de surveillance de votre source. Cela peut prendre un certain temps en fonction de la taille de votre bibliothèque.",
294
209
  "importComplete": "Importation terminée",
295
210
  "importFailed": "Échec de l'importation",
296
- "processed": "Traité",
297
- "page": "Page",
211
+ "importFullRange": "Import full history",
212
+ "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.",
213
+ "importHistory": "Historique d'importation",
214
+ "importHistoryDesc": "Importer des données historiques de surveillance à partir de sources externes",
215
+ "importInProgressGeneric": "Importation en cours...",
216
+ "importInProgressPercent": "Importation en cours ({{percent}}% terminé)...",
217
+ "importOptions": "Options d'importation",
218
+ "importProgress": "Progression de l'import",
298
219
  "imported": "Importé",
299
- "skipped": "Ignoré",
300
- "enriched": "Enrichi",
301
- "errors": "Erreurs",
220
+ "importing": "Importation en cours...",
221
+ "includeStreamDetails": "Inclure les données détaillées du flux (codecs, débit, résolution)",
222
+ "includeStreamDetailsHelp": "Importe des informations de flux supplémentaires. Peut augmenter considérablement le temps d'importation.",
223
+ "jellyfinEmby": "Jellyfin/Emby (Jellystat)",
224
+ "jellystat": "Importer depuis Jellystat",
302
225
  "noServers": "Aucun serveur connecté",
303
226
  "noServersHint": "Vous avez besoin d'au moins un serveur connecté pour importer des données.",
304
- "tautulliUrl": "URL Tautulli",
305
- "tautulliUrlPlaceholder": "http://localhost:8181",
306
- "tautulliUrlHelp": "L'URL de votre instance Tautulli.",
307
- "apiKeyHelp": "Trouvé dans les paramètres Tautulli → Interface Web → Clé d'API.",
308
- "testing": "Test en cours...",
309
- "connectToTautulli": "Se connecter à Tautulli",
310
- "importHistory": "Historique d'importation",
311
- "targetServer": "Target Server",
312
- "selectPlexServer": "Sélectionnez un serveur Plex",
227
+ "overlapSkipped": "{{count}} skipped as overlap",
313
228
  "overwriteFriendlyNames": "Remplacer les noms conviviaux existants par des noms Tautulli",
314
229
  "overwriteFriendlyNamesHelp": "Les noms d'identité existants dans Tracearr seront remplacés par les noms amicaux de Tautulli.",
315
- "includeStreamDetails": "Inclure les données détaillées du flux (codecs, débit, résolution)",
316
- "includeStreamDetailsHelp": "Importe des informations de flux supplémentaires. Peut augmenter considérablement le temps d'importation.",
317
- "importing": "Importation en cours...",
318
- "startImport": "Commencer l'importation",
319
- "howItWorks": "Comment fonctionne l'import",
320
- "howItWorksDesc": "Tracearr importera toutes les données historiques de surveillance de votre source. Cela peut prendre un certain temps en fonction de la taille de votre bibliothèque.",
321
- "recordsMayBeSkipped": "Les enregistrements peuvent être ignorés si :",
322
- "selectTargetServer": "Sélectionnez le serveur cible",
323
- "selectJellyfinServer": "Sélectionnez un serveur Jellyfin ou Emby",
324
- "uploadJellystatBackup": "Télécharger la sauvegarde Jellystat",
325
- "exportBackupHint": "Exporter une sauvegarde d'activité depuis Jellystat",
326
- "exportBackupHelp": "Dans Jellystat, allez dans Paramètres → Sauvegarde → Sauvegarde d'activités pour exporter vos données.",
327
- "importOptions": "Options d'importation",
328
- "enrichMetadata": "Enrichir avec les métadonnées du média (recommandé)",
329
- "enrichMetadataHelp": "Récupère des métadonnées supplémentaires depuis votre serveur multimédia pour les sessions importées.",
330
- "updateExistingRecords": "Mettre à jour les enregistrements existants avec les détails du flux",
331
- "updateExistingRecordsHelp": "Les enregistrements précédemment importés seront mis à jour avec les données de qualité du flux.",
230
+ "page": "Page",
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.",
332
233
  "pleaseEnterDetails": "Veuillez entrer l'URL et la clé API de Tautulli",
333
- "testingConnection": "Test de la connexion...",
334
234
  "pleaseSelectJsonFile": "Veuillez sélectionner un fichier JSON",
335
- "uploadingBackup": "Téléchargement du fichier de sauvegarde...",
336
- "importHistoryDesc": "Importer des données historiques de surveillance à partir de sources externes",
337
235
  "plex": "Plex (Tautulli)",
338
- "jellyfinEmby": "Jellyfin/Emby (Jellystat)",
339
- "step1": "1",
340
- "step2": "2",
341
- "apiKeyPlaceholder": "Votre clé API Tautulli",
342
- "skipUserNotFoundPlex": "Utilisateur introuvable — L'utilisateur Plex n'existe pas dans Tracearr. Synchronisez d'abord votre serveur pour ajouter tous les utilisateurs.",
343
- "skipDuplicate": "Dupliquer la session — La session a déjà été importée précédemment.",
344
- "skipInProgress": "Session en cours — Les sessions actives/incomplètes sans identifiant de référence sont ignorées.",
345
- "skipUserNotFoundJellyfin": "Utilisateur introuvable — L'utilisateur Jellyfin/Emby n'existe pas dans Tracearr. Synchronisez d'abord votre serveur pour ajouter tous les utilisateurs.",
346
- "skipSyncHint": "Si plusieurs enregistrements sont ignorés, assurez-vous que vous avez récemment synchronisé votre serveur dans Paramètres → Serveurs.",
347
- "importInProgressPercent": "Importation en cours ({{percent}}% terminé)...",
348
- "importInProgressGeneric": "Importation en cours...",
349
- "startingImport": "Démarrage de l'importation...",
350
- "connectedFound": "Connecté ! Utilisateurs {{users}} trouvés et enregistrements de l'historique {{records}}.",
351
- "playbackReporting": "Playback Reporting Plugin",
352
- "playbackReportingDesc": "Import history directly from the Playback Reporting plugin installed on your Jellyfin or Emby server. No file export needed.",
353
- "checkPlugin": "Check Plugin",
354
- "checkingPlugin": "Checking...",
355
236
  "pluginFound": "Plugin found: {{records}} records from {{oldestDate}} to {{newestDate}}",
356
237
  "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.",
238
+ "processed": "Traité",
239
+ "recordsMayBeSkipped": "Les enregistrements peuvent être ignorés si :",
240
+ "selectJellyfinServer": "Sélectionnez un serveur Jellyfin ou Emby",
241
+ "selectPlexServer": "Sélectionnez un serveur Plex",
242
+ "selectTargetServer": "Sélectionnez le serveur cible",
357
243
  "serverTimezone": "Server Timezone",
358
244
  "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.",
359
- "importFullRange": "Import full history",
360
- "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.",
361
- "overlapSkipped": "{{count}} skipped as overlap",
362
- "duplicates": "{{count}} duplicates skipped",
245
+ "skipDuplicate": "Dupliquer la session — La session a déjà été importée précédemment.",
246
+ "skipDuplicatePlugin": "Duplicate record - already imported directly or arrived earlier via a Jellystat import of the same plugin data.",
247
+ "skipInProgress": "Session en cours — Les sessions actives/incomplètes sans identifiant de référence sont ignorées.",
363
248
  "skipOverlap": "Overlapping record - the timestamp falls inside the period Tracearr already tracks for this server. Enable full-range import to include it.",
364
- "skipDuplicatePlugin": "Duplicate record - already imported directly or arrived earlier via a Jellystat import of the same plugin data."
365
- },
366
- "plex": {
367
- "signInWithPlex": "Se connecter avec Plex",
368
- "signUpWithPlex": "S'inscrire avec Plex",
369
- "selectServer": "Sélectionner un serveur",
370
- "chooseServer": "Choisir le serveur Plex à surveiller"
249
+ "skipSyncHint": "Si plusieurs enregistrements sont ignorés, assurez-vous que vous avez récemment synchronisé votre serveur dans Paramètres → Serveurs.",
250
+ "skipUserNotFoundJellyfin": "Utilisateur introuvable — L'utilisateur Jellyfin/Emby n'existe pas dans Tracearr. Synchronisez d'abord votre serveur pour ajouter tous les utilisateurs.",
251
+ "skipUserNotFoundPlex": "Utilisateur introuvable — L'utilisateur Plex n'existe pas dans Tracearr. Synchronisez d'abord votre serveur pour ajouter tous les utilisateurs.",
252
+ "skipped": "Ignoré",
253
+ "startImport": "Commencer l'importation",
254
+ "startingImport": "Démarrage de l'importation...",
255
+ "step1": "1",
256
+ "step2": "2",
257
+ "targetServer": "Target Server",
258
+ "tautulli": "Importer depuis Tautulli",
259
+ "tautulliUrl": "URL Tautulli",
260
+ "tautulliUrlHelp": "L'URL de votre instance Tautulli.",
261
+ "tautulliUrlPlaceholder": "http://localhost:8181",
262
+ "testing": "Test en cours...",
263
+ "testingConnection": "Test de la connexion...",
264
+ "title": "Importer des données",
265
+ "updateExistingRecords": "Mettre à jour les enregistrements existants avec les détails du flux",
266
+ "updateExistingRecordsHelp": "Les enregistrements précédemment importés seront mis à jour avec les données de qualité du flux.",
267
+ "uploadJellystatBackup": "Télécharger la sauvegarde Jellystat",
268
+ "uploadingBackup": "Téléchargement du fichier de sauvegarde..."
371
269
  },
372
- "account": {
373
- "createAccount": "Créer un compte",
374
- "email": "Email",
375
- "password": "Mot de passe",
376
- "displayName": "Nom d'affichage",
377
- "createYourAccount": "Créez votre compte pour démarrer",
378
- "signInToAccount": "Connectez-vous à votre compte",
379
- "useLocalAccount": "Utiliser un compte local à la place"
270
+ "ipWarning": {
271
+ "acknowledge": "Compris",
272
+ "message": "Tous les utilisateurs semblent utiliser la même adresse IP ou des IP locales. Cela peut affecter la logique des règles basées sur l'emplacement ou l'adresse IP."
380
273
  },
381
- "update": {
382
- "title": "Mise à jour disponible",
383
- "releaseNotes": "Notes de version",
384
- "updateCommand": "Commande de mise à jour",
385
- "pullInstructions": "Après avoir réalisé le pull Docker, redémarrez cotre conteneur pour appliquer la modification.",
386
- "stableRelease": "Version stable",
387
- "betaUpdate": "Mise à jour bêta",
388
- "newVersion": "Nouvelle version",
389
- "versionAvailable": "Version {{version}} disponible"
274
+ "jobs": {
275
+ "backfill": "Remplissage",
276
+ "cleanup": "Nettoyage",
277
+ "delayed": "différé",
278
+ "description": "Gérer les tâches de fond qui gardent vos données exactes et optimisées.",
279
+ "errors": "erreurs",
280
+ "jobHistory": "Historique des tâches",
281
+ "jobHistoryDesc": "Exécution récente d'une tâche de maintenance",
282
+ "lastJobCompleted": "Dernière tâche terminée avec succès",
283
+ "lastJobFailed": "La dernière tâche a échoué",
284
+ "mayTakeAWhile": "Cela peut prendre un certain temps",
285
+ "mayTakeAWhileDesc": "Cette tâche peut prendre plusieurs minutes selon la taille de votre bibliothèque.",
286
+ "normalization": "Normalisation",
287
+ "processed": "traité",
288
+ "queued": "mis en file d'attente",
289
+ "runConfirm": "Exécuter {{name}}?",
290
+ "runJob": "Exécuter le Job",
291
+ "running": "en cours d'exécution",
292
+ "runningState": "En cours d'exécution",
293
+ "startJob": "Commencer la tâche",
294
+ "title": "Tâches d'entretien",
295
+ "unchanged": "inchangé",
296
+ "updated": "Mis à jour",
297
+ "waiting": "En attente"
390
298
  },
391
- "serverHealth": {
392
- "unreachable": "{{serverName}} est inaccessible",
393
- "multipleUnreachable": "{{count}} serveurs injoignables : {{serverNames}}"
299
+ "mobile": {
300
+ "addDevice": "Ajouter un appareil",
301
+ "connectedDevices": "Appareils connectés",
302
+ "connectedDevicesDesc": "Périphériques {{count}} appariés à votre serveur",
303
+ "copyToken": "Copier le jeton",
304
+ "deviceName": "Nom de l'appareil",
305
+ "deviceNamePlaceholder": "par exemple iPhone 15",
306
+ "devicesConnected": "{{current}} des appareils {{max}} connectés",
307
+ "disable": "Désactiver",
308
+ "disableMobileAccess": "Désactiver l'accès mobile",
309
+ "disableMobileAccessConfirm": "Ceci va déconnecter tous les appareils mobiles et révoquer toutes les sessions. Vous pourrez réactiver l'accès mobile plus tard.",
310
+ "done": "Fait",
311
+ "downloadOnAppStore": "Télécharger sur l'App Store",
312
+ "enableMobileAccess": "Activer l'accès mobile",
313
+ "enabling": "Activation...",
314
+ "expiresIn": "Expire dans {{time}}",
315
+ "externalUrlBanner": "Utiliser un proxy inversé ou accéder à distance ? Définissez votre",
316
+ "externalUrlBannerLink": "URL externe",
317
+ "externalUrlBannerSuffix": "pour que l'application mobile puisse se connecter à votre serveur.",
318
+ "externalUrlRequired": "Une URL externe doit être configurée dans les paramètres généraux pour que l'appairage mobile fonctionne.",
319
+ "failedToGenerateToken": "Impossible de générer le jeton",
320
+ "generateToken": "Générer un jeton d'appairage",
321
+ "getOnGooglePlay": "Télécharger sur Google Play",
322
+ "getTheApp": "Téléchargez l'application",
323
+ "getTheAppDesc": "Téléchargez l'application mobile Tracearr pour iOS ou Android",
324
+ "mobileAccessDisabled": "Accès mobile désactivé",
325
+ "mobileAccessDisabledDesc": "Activez l'accès mobile pour permettre à l'application mobile Tracearr de se connecter à votre serveur.",
326
+ "noDevices": "Aucun appareil connecté",
327
+ "oneTimePairToken": "Jeton de Paire à usage unique",
328
+ "pairDevice": "Associer un appareil",
329
+ "pairNewDevice": "Associer un nouvel appareil",
330
+ "pairNewDeviceDesc": "Scannez le code QR avec l'application mobile Tracearr ou saisissez le jeton manuellement.",
331
+ "pairYourDevice": "Associer votre appareil",
332
+ "pairYourDeviceDesc": "Scannez le code QR avec l'application Tracearr pour connecter ce serveur.",
333
+ "pendingTokens": "{{count}} token en attente",
334
+ "removeDevice": "Supprimer l'appareil",
335
+ "removeDeviceConfirm": "Êtes-vous sûr de vouloir supprimer {{deviceName}}? Cet appareil devra être relié à nouveau pour se reconnecter.",
336
+ "renameDevice": "Renommer l'appareil",
337
+ "renameDeviceDesc": "Entrez un nom pour identifier cet appareil dans la liste.",
338
+ "revokeAll": "Révoquer toutes les sessions",
339
+ "revokeAllConfirm": "Cela déconnectera tous les appareils mobiles. Ils devront s'appairer à nouveau pour se reconnecter.",
340
+ "revokeAllSessions": "Révoquer tout",
341
+ "scanQrCode": "Scanner le code QR",
342
+ "title": "Application mobile",
343
+ "tokenExpires": "Le jeton d'appairage expire dans {{time}}",
344
+ "tokenExpiryNote": "Ce jeton expire dans 5 minutes et ne peut être utilisé qu'une seule fois."
394
345
  },
395
- "ipWarning": {
396
- "message": "Tous les utilisateurs semblent utiliser la même adresse IP ou des IP locales. Cela peut affecter la logique des règles basées sur l'emplacement ou l'adresse IP.",
397
- "acknowledge": "Compris"
346
+ "plex": {
347
+ "chooseServer": "Choisir le serveur Plex à surveiller",
348
+ "selectServer": "Sélectionner un serveur",
349
+ "signInWithPlex": "Se connecter avec Plex",
350
+ "signUpWithPlex": "S'inscrire avec Plex"
398
351
  },
399
- "backup": {
400
- "title": "Sauvegarde",
401
- "backToBackups": "Retour aux sauvegardes",
402
- "description": "Sauvegardez et restaurez vos données Tracearr",
403
- "createBackup": "Créer une sauvegarde",
404
- "creating": "Création de la sauvegarde...",
405
- "uploadBackup": "Téléverser une sauvegarde",
406
- "uploading": "Téléversement...",
407
- "databaseSize": "Taille actuelle de la base de données : {{size}}",
408
- "freeSpace": "Espace libre dans le répertoire de sauvegarde : {{size}}",
409
- "lowDiskSpace": "Espace disque faible — les sauvegardes et restaurations nécessitent au moins deux fois la taille de la base de données en espace libre.",
410
- "backupHistory": "Historique des sauvegardes",
411
- "noBackups": "Aucune sauvegarde pour le moment. Créez votre première sauvegarde ci-dessus.",
412
- "filename": "Nom du fichier",
413
- "size": "Taille",
414
- "date": "Date",
415
- "type": "Type",
416
- "version": "Version",
417
- "actions": "Actions",
418
- "typeManual": "Manuelle",
419
- "typeScheduled": "Planifiée",
420
- "typeUploaded": "Téléversé",
421
- "restoreAction": "Restaurer",
422
- "deleteConfirmTitle": "Supprimer la sauvegarde",
423
- "deleteConfirmDescription": "Êtes-vous sûr de vouloir supprimer cette sauvegarde ? Cette action est irréversible.",
424
- "schedule": "Sauvegardes planifiées",
425
- "scheduleType": "Planification",
426
- "scheduleDisabled": "Désactivé",
427
- "scheduleDaily": "Journalière",
428
- "scheduleWeekly": "Hebdomadaire",
429
- "scheduleMonthly": "Mensuelle",
430
- "scheduleTime": "Heure ({{timezone}})",
431
- "scheduleDayOfWeek": "Jour de la semaine",
432
- "scheduleDayOfMonth": "Jour du mois",
433
- "scheduleDayOfMonthHint": "Pour les mois comportant moins de jours, la sauvegarde est effectuée le dernier jour du mois.",
434
- "retentionCount": "Garder les dernières :",
435
- "retentionSuffix": "sauvegardes planifiées",
436
- "daySun": "Dimanche",
437
- "dayMon": "Lundi",
438
- "dayTue": "Mardi",
439
- "dayWed": "Mercredi",
440
- "dayThu": "Jeudi",
441
- "dayFri": "Vendredi",
442
- "daySat": "Samedi",
443
- "restore": {
444
- "title": "Restaurer la sauvegarde",
445
- "selectedBackup": "Sauvegarde sélectionnée",
446
- "databaseSize": "Taille de la base de données",
447
- "sessions": "Sessions",
448
- "users": "Utilisateurs",
449
- "servers": "Serveurs",
450
- "rules": "Règles",
451
- "libraryItems": "Éléments de la bibliothèque",
452
- "tables": "Tableaux",
453
- "warning": "La restauration remplacera toutes les données existantes. Vous devrez vous reconnecter une fois la restauration complétée.",
454
- "confirmLabel": "Je comprends que cela remplacera toutes les données",
455
- "confirm": "Démarrer la restauration",
456
- "complete": "Restauration effectuée avec succès. La page s'actualisera sous peu.",
457
- "failed": "Échec de la restauration",
458
- "cannotRestore": "La restauration nécessite des privilèges de superutilisateur PostgreSQL. Veuillez vous assurer que votre utilisateur de base de données dispose de ces privilèges, puis réessayez.",
459
- "pgVersionMismatch": "La sauvegarde a été créée avec PostgreSQL {{backupVersion}}, mais ce serveur utilise PostgreSQL {{serverVersion}}. La restauration d'une sauvegarde issue d'une version plus récente de PostgreSQL n'est pas prise en charge.",
460
- "tsVersionMismatch": "La sauvegarde a été créée avec TimescaleDB {{backupVersion}}, mais ce serveur ne prend en charge que jusqu'à TimescaleDB {{serverVersion}}."
352
+ "serverHealth": {
353
+ "multipleUnreachable": "{{count}} serveurs injoignables : {{serverNames}}",
354
+ "unreachable": "{{serverName}} est inaccessible"
355
+ },
356
+ "servers": {
357
+ "addServer": "Ajouter un serveur",
358
+ "addServerDialogDescOther": "Connectez un serveur Jellyfin ou Emby.",
359
+ "addServerDialogDescPlex": "Sélectionnez un serveur Plex à partir de votre compte lié.",
360
+ "added": "Ajouté {{date}}",
361
+ "allFieldsRequired": "Tous les champs sont obligatoires",
362
+ "allServersConnected": "Tous les serveurs connectés",
363
+ "allServersConnectedDesc": "Tous les serveurs de ce compte sont déjà connectés.",
364
+ "apiKeyHelp": "Trouvé dans le tableau de bord de votre serveur multimédia sous Clés API ou Paramètres avancés.",
365
+ "apiKeyHelpEmby": "Trouvez ceci dans Emby Server → Clés API",
366
+ "apiKeyHelpJellyfin": "Trouvez ceci dans le tableau de bord Jellyfin → Clés API",
367
+ "apiKeyPlaceholder": "Entrez votre clé API",
368
+ "checkingConnection": "Checking connection…",
369
+ "chooseAccount": "Choisissez un compte...",
370
+ "connectServer": "Connecter le serveur",
371
+ "connecting": "Connexion en cours...",
372
+ "connectionFailed": "Échec de la connexion",
373
+ "connectionSuccess": "Connexion réussie",
374
+ "description": "Gérez vos serveurs Plex, Jellyfin et Emby connectés",
375
+ "discoveringConnections": "Découverte des connexions...",
376
+ "discoveringServers": "Recherche des serveurs Plex disponibles...",
377
+ "editServer": "Modifier le serveur",
378
+ "editServerDesc": "Mettre à jour le nom du serveur ou l'URL de connexion.",
379
+ "loadingAccounts": "Chargement des comptes Plex liés...",
380
+ "noPlexAccountsLinked": "Aucun compte Plex lié pour le moment",
381
+ "noPlexAccountsLinkedHint": "Lier un compte Plex ci-dessus, puis revenir pour ajouter un serveur.",
382
+ "noServersConnected": "Aucun serveur connecté",
383
+ "noServersConnectedHint": "Cliquez sur \"Ajouter un serveur\" pour connecter un serveur Jellyfin ou Emby",
384
+ "plexAccount": "Compte Plex",
385
+ "plexServerPlaceholder": "Mon serveur Plex",
386
+ "plexServerUrlPlaceholder": "http://192.168.1.100:32400",
387
+ "pluginUpdateAvailable": "Plugin update available",
388
+ "pluginVersion": "plugin v{{version}}",
389
+ "pollingMode": "Polling",
390
+ "posterSource": {
391
+ "automatic": "Automatic (most recent)",
392
+ "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.",
393
+ "emptyHint": "Add a server to choose a preferred poster source.",
394
+ "label": "Preferred Poster Source",
395
+ "title": "Poster Preferences",
396
+ "titleDesc": "Choose which server's poster is shown when a title exists on more than one server"
461
397
  },
462
- "toast": {
463
- "backupCreated": "Sauvegarde créée avec succès",
464
- "backupCreateFailed": "Échec de création de la sauvegarde",
465
- "backupUploaded": "Sauvegarde téléversée avec succès",
466
- "backupUploadFailed": "Échec du téléversement de la sauvegarde",
467
- "backupDeleted": "Sauvegarde supprimée",
468
- "backupDeleteFailed": "Échec de suppression de la sauvegarde",
469
- "restoreStarted": "La restauration a démarré",
470
- "restoreStartFailed": "Échec du démarrage de la restauration",
471
- "scheduleSaved": "Planification de la sauvegarde enregistrée",
472
- "scheduleError": "Échec de l'enregistrement de la planification de la sauvegarde"
398
+ "realtimeActive": "Real-time updates active",
399
+ "realtimeDialog": {
400
+ "autoDetectNote": "Restart Jellyfin or Emby after installing the plugin; the restart is required. Tracearr itself needs no restart and picks the plugin up automatically.",
401
+ "close": "Close",
402
+ "copyUrl": "Copy URL",
403
+ "embyDescription": "Install the Tracearr SSE plugin to get instant session updates without waiting for the next poll.",
404
+ "embyReleasesUrl": "https://github.com/Tracearr/Media-Server-SSE/releases",
405
+ "embyUpdateDescription": "A newer plugin release is available. Download the latest release zip, replace the plugin DLL in your Emby plugins folder, and restart Emby.",
406
+ "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.",
407
+ "issueMalfunctioned": "The server reports the plugin failed to load. Updating the plugin or the media server usually clears this.",
408
+ "issueRestartRequired": "The plugin is installed, but the media server needs a restart before it activates.",
409
+ "jellyfinDescription": "Install the Tracearr SSE plugin to get instant session updates without waiting for the next poll.",
410
+ "jellyfinRepoUrl": "https://raw.githubusercontent.com/Tracearr/Media-Server-SSE/main/manifest.json",
411
+ "jellyfinUpdateDescription": "A newer plugin release is available. Open your Jellyfin dashboard, go to Plugins, Catalog, and update Tracearr SSE, then restart Jellyfin.",
412
+ "openReleases": "Open releases page",
413
+ "repositoryUrl": "Repository URL",
414
+ "title": "Enable real-time updates",
415
+ "updateTitle": "Update the Tracearr SSE plugin"
416
+ },
417
+ "realtimeError": "Real-time error",
418
+ "removeServer": "Supprimer le serveur",
419
+ "removeServerConfirm": "Êtes-vous sûr de vouloir supprimer ce serveur ? Toutes les données de session associées seront conservées, mais vous ne serez pas en mesure de surveiller les nouvelles sessions de ce serveur.",
420
+ "selectAccountHelp": "Sélectionnez le compte Plex dont vous voulez découvrir les serveurs.",
421
+ "selectPlexAccount": "Sélectionnez le compte Plex",
422
+ "serverColor": "Couleur du serveur",
423
+ "serverColorDesc": "Utilisé pour l'attribution visuelle dans la vue multi-serveur",
424
+ "serverName": "Nom du serveur",
425
+ "serverNamePlaceholder": "Mon serveur multimédia",
426
+ "serverType": "Type de serveur",
427
+ "serverUrl": "URL du serveur",
428
+ "serverUrlHelp": "URL directe vers votre serveur Jellyfin ou Emby. Utilisez IP:port pour une fiabilité optimale.",
429
+ "serverUrlHelpEmby": "L'URL où votre serveur Emby est accessible",
430
+ "serverUrlHelpJellyfin": "L'URL où votre serveur Jellyfin est accessible",
431
+ "serverUrlPlaceholder": "http://192.168.1.100:8096",
432
+ "setupRealtime": "Set up real-time updates",
433
+ "syncInterval": "Intervalle de synchronisation",
434
+ "testConnection": "Tester la connexion",
435
+ "title": "Serveurs connectés",
436
+ "updateHint": "Ou cliquez sur Mettre à jour ci-dessous pour enregistrer uniquement le changement de nom.",
437
+ "updating": "Mise à jour en cours...",
438
+ "version": {
439
+ "installed": "Version {{version}}",
440
+ "upToDate": "up to date",
441
+ "updateAvailable": "update {{version}} available"
473
442
  }
443
+ },
444
+ "tabs": {
445
+ "accessControl": "Contrôle d'accès",
446
+ "advanced": "Avancé",
447
+ "backup": "Sauvegarde",
448
+ "general": "Général",
449
+ "import": "Importation",
450
+ "jobs": "Tâches",
451
+ "mobile": "Application mobile",
452
+ "notifications": "Notifications",
453
+ "servers": "Serveurs",
454
+ "tailscale": "Tailscale"
455
+ },
456
+ "tailscale": {
457
+ "authorize": "Autoriser dans Tailscale",
458
+ "awaitingAuth": "En attente d'autorisation...",
459
+ "connected": "Tailscale est connecté. Votre instance Tracearr est disponible sur le tailnet.",
460
+ "description": "Accédez à Tracearr en toute sécurité sur votre réseau Tailscale, sans redirection de port.",
461
+ "disable": "Désactiver Tailscale",
462
+ "disableConfirmDescription": "Cela déconnectera Tracearr de votre tailnet. Vous pourrez le réactiver sans avoir à l'autoriser de nouveau.",
463
+ "disableConfirmTitle": "Désactiver Tailscale ?",
464
+ "disabledDescription": "Activez Tailscale pour placer Tracearr sur votre tailnet privé. Aucune redirection de port ni reverse proxy requis.",
465
+ "dnsName": "Nom du DNS",
466
+ "enable": "Activer Tailscale",
467
+ "exitNodeNone": "Aucun",
468
+ "exitNodeOffline": "(hors ligne)",
469
+ "hideLogs": "Masquer les journaux",
470
+ "hostname": "Nom d'hôte",
471
+ "hostnameHint": "Nom personnalisé facultatif pour cet appareil sur votre tailnet. Lettres, chiffres et tirets uniquement.",
472
+ "hostnameLabel": "Nom d'hôte de l'appareil",
473
+ "noLogs": "Aucune journalisation de sortie disponible.",
474
+ "notAvailable": "Le binaire de Tailscale est introuvable. Cette fonctionnalité n'est uniquement disponible que lorsque vous utilisez l'image Docker officielle.",
475
+ "resetConfirmDescription": "Tracearr sera déconnecté de votre tailnet et l'identité de l'appareil sera supprimée. Une nouvelle autorisation sera nécessaire si vous l'activez à nouveau.",
476
+ "resetConfirmTitle": "Réinitialiser Tailscale ?",
477
+ "showLogs": "Afficher les journaux",
478
+ "starting": "Démarrage de Tailscale...",
479
+ "stopping": "Arrêt de Tailscale...",
480
+ "tailnetUrl": "URL",
481
+ "title": "VPN Tailscale",
482
+ "toast": {
483
+ "disableFailed": "Échec de la désactivation de Tailscale",
484
+ "disabled": "Tailscale a été désactivé.",
485
+ "enableFailed": "Échec de l'activation de Tailscale",
486
+ "exitNodeFailed": "Impossible de définir l'exit node",
487
+ "exitNodeSet": "Exit node mis à jour.",
488
+ "reset": "Tailscale a été réinitialisé.",
489
+ "resetFailed": "Échec de la réinitialisation de Tailscale"
490
+ },
491
+ "unknownError": "Une erreur inconnue s'est produite."
492
+ },
493
+ "title": "Réglages",
494
+ "update": {
495
+ "betaUpdate": "Mise à jour bêta",
496
+ "newVersion": "Nouvelle version",
497
+ "pullInstructions": "Après avoir réalisé le pull Docker, redémarrez cotre conteneur pour appliquer la modification.",
498
+ "releaseNotes": "Notes de version",
499
+ "stableRelease": "Version stable",
500
+ "title": "Mise à jour disponible",
501
+ "updateCommand": "Commande de mise à jour",
502
+ "versionAvailable": "Version {{version}} disponible"
474
503
  }
475
504
  }