@tracearr/translations 2.2.4-beta.2 → 2.3.0-beta.1

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 (250) hide show
  1. package/README.md +1 -1
  2. package/dist/config.d.ts +1160 -64
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.mobile.d.ts +1160 -64
  5. package/dist/config.mobile.d.ts.map +1 -1
  6. package/dist/locales/af-ZA/common.json +281 -280
  7. package/dist/locales/af-ZA/notifications.json +238 -218
  8. package/dist/locales/af-ZA/pages.json +1726 -1646
  9. package/dist/locales/af-ZA/settings.json +888 -440
  10. package/dist/locales/ar-SA/common.json +281 -280
  11. package/dist/locales/ar-SA/notifications.json +242 -222
  12. package/dist/locales/ar-SA/pages.json +1684 -1604
  13. package/dist/locales/ar-SA/settings.json +889 -441
  14. package/dist/locales/ca-ES/common.json +281 -280
  15. package/dist/locales/ca-ES/notifications.json +238 -218
  16. package/dist/locales/ca-ES/pages.json +1682 -1602
  17. package/dist/locales/ca-ES/settings.json +888 -440
  18. package/dist/locales/cs-CZ/common.json +281 -280
  19. package/dist/locales/cs-CZ/notifications.json +242 -222
  20. package/dist/locales/cs-CZ/pages.json +1688 -1608
  21. package/dist/locales/cs-CZ/settings.json +889 -441
  22. package/dist/locales/da-DK/common.json +281 -280
  23. package/dist/locales/da-DK/notifications.json +242 -222
  24. package/dist/locales/da-DK/pages.json +1684 -1604
  25. package/dist/locales/da-DK/settings.json +889 -441
  26. package/dist/locales/de-DE/common.json +281 -280
  27. package/dist/locales/de-DE/notifications.json +242 -222
  28. package/dist/locales/de-DE/pages.json +1690 -1610
  29. package/dist/locales/de-DE/settings.json +889 -441
  30. package/dist/locales/el-GR/common.json +281 -280
  31. package/dist/locales/el-GR/notifications.json +242 -222
  32. package/dist/locales/el-GR/pages.json +1684 -1604
  33. package/dist/locales/el-GR/settings.json +889 -441
  34. package/dist/locales/en/notifications.json +26 -6
  35. package/dist/locales/en/pages.json +92 -12
  36. package/dist/locales/en/settings.json +474 -26
  37. package/dist/locales/en-US/common.json +281 -280
  38. package/dist/locales/en-US/notifications.json +242 -222
  39. package/dist/locales/en-US/pages.json +1774 -1694
  40. package/dist/locales/en-US/settings.json +898 -450
  41. package/dist/locales/es-ES/common.json +281 -280
  42. package/dist/locales/es-ES/notifications.json +242 -222
  43. package/dist/locales/es-ES/pages.json +1689 -1609
  44. package/dist/locales/es-ES/settings.json +889 -441
  45. package/dist/locales/fi-FI/common.json +281 -280
  46. package/dist/locales/fi-FI/notifications.json +242 -222
  47. package/dist/locales/fi-FI/pages.json +1684 -1604
  48. package/dist/locales/fi-FI/settings.json +889 -441
  49. package/dist/locales/fr-FR/notifications.json +242 -222
  50. package/dist/locales/fr-FR/pages.json +1698 -1618
  51. package/dist/locales/fr-FR/settings.json +898 -450
  52. package/dist/locales/he-IL/common.json +281 -280
  53. package/dist/locales/he-IL/notifications.json +238 -218
  54. package/dist/locales/he-IL/pages.json +1726 -1646
  55. package/dist/locales/he-IL/settings.json +888 -440
  56. package/dist/locales/hu-HU/common.json +281 -280
  57. package/dist/locales/hu-HU/notifications.json +238 -218
  58. package/dist/locales/hu-HU/pages.json +1726 -1646
  59. package/dist/locales/hu-HU/settings.json +888 -440
  60. package/dist/locales/it-IT/common.json +281 -280
  61. package/dist/locales/it-IT/notifications.json +242 -222
  62. package/dist/locales/it-IT/pages.json +1684 -1604
  63. package/dist/locales/it-IT/settings.json +889 -441
  64. package/dist/locales/ja-JP/common.json +281 -280
  65. package/dist/locales/ja-JP/notifications.json +242 -222
  66. package/dist/locales/ja-JP/pages.json +1684 -1604
  67. package/dist/locales/ja-JP/settings.json +889 -441
  68. package/dist/locales/ko-KR/common.json +281 -281
  69. package/dist/locales/ko-KR/notifications.json +242 -222
  70. package/dist/locales/ko-KR/pages.json +1746 -1666
  71. package/dist/locales/ko-KR/settings.json +898 -450
  72. package/dist/locales/nl-NL/common.json +281 -280
  73. package/dist/locales/nl-NL/notifications.json +242 -222
  74. package/dist/locales/nl-NL/pages.json +1699 -1619
  75. package/dist/locales/nl-NL/settings.json +891 -443
  76. package/dist/locales/no-NO/common.json +281 -280
  77. package/dist/locales/no-NO/notifications.json +242 -222
  78. package/dist/locales/no-NO/pages.json +1684 -1604
  79. package/dist/locales/no-NO/settings.json +889 -441
  80. package/dist/locales/pl-PL/common.json +281 -280
  81. package/dist/locales/pl-PL/notifications.json +242 -222
  82. package/dist/locales/pl-PL/pages.json +1684 -1604
  83. package/dist/locales/pl-PL/settings.json +889 -441
  84. package/dist/locales/pt-BR/common.json +281 -280
  85. package/dist/locales/pt-BR/notifications.json +242 -222
  86. package/dist/locales/pt-BR/pages.json +1725 -1645
  87. package/dist/locales/pt-BR/settings.json +889 -441
  88. package/dist/locales/pt-PT/common.json +281 -280
  89. package/dist/locales/pt-PT/notifications.json +242 -222
  90. package/dist/locales/pt-PT/pages.json +1684 -1604
  91. package/dist/locales/pt-PT/settings.json +889 -441
  92. package/dist/locales/ro-RO/common.json +281 -280
  93. package/dist/locales/ro-RO/notifications.json +242 -222
  94. package/dist/locales/ro-RO/pages.json +1684 -1604
  95. package/dist/locales/ro-RO/settings.json +889 -441
  96. package/dist/locales/ru-RU/common.json +281 -280
  97. package/dist/locales/ru-RU/notifications.json +242 -222
  98. package/dist/locales/ru-RU/pages.json +1684 -1604
  99. package/dist/locales/ru-RU/settings.json +889 -441
  100. package/dist/locales/sr-SP/common.json +281 -280
  101. package/dist/locales/sr-SP/notifications.json +238 -218
  102. package/dist/locales/sr-SP/pages.json +1726 -1646
  103. package/dist/locales/sr-SP/settings.json +888 -440
  104. package/dist/locales/sv-SE/common.json +281 -280
  105. package/dist/locales/sv-SE/notifications.json +242 -222
  106. package/dist/locales/sv-SE/pages.json +1684 -1604
  107. package/dist/locales/sv-SE/settings.json +889 -441
  108. package/dist/locales/tr-TR/common.json +281 -280
  109. package/dist/locales/tr-TR/notifications.json +238 -218
  110. package/dist/locales/tr-TR/pages.json +1726 -1646
  111. package/dist/locales/tr-TR/settings.json +888 -440
  112. package/dist/locales/uk-UA/common.json +281 -280
  113. package/dist/locales/uk-UA/notifications.json +242 -222
  114. package/dist/locales/uk-UA/pages.json +1684 -1604
  115. package/dist/locales/uk-UA/settings.json +889 -441
  116. package/dist/locales/vi-VN/common.json +281 -280
  117. package/dist/locales/vi-VN/notifications.json +238 -218
  118. package/dist/locales/vi-VN/pages.json +1726 -1646
  119. package/dist/locales/vi-VN/settings.json +888 -440
  120. package/dist/locales/zh-CN/common.json +281 -280
  121. package/dist/locales/zh-CN/notifications.json +242 -222
  122. package/dist/locales/zh-CN/pages.json +1695 -1615
  123. package/dist/locales/zh-CN/settings.json +898 -450
  124. package/dist/locales/zh-TW/common.json +281 -280
  125. package/dist/locales/zh-TW/notifications.json +242 -222
  126. package/dist/locales/zh-TW/pages.json +1804 -1724
  127. package/dist/locales/zh-TW/settings.json +888 -440
  128. package/package.json +1 -1
  129. package/src/locales/af-ZA/common.json +281 -280
  130. package/src/locales/af-ZA/notifications.json +238 -218
  131. package/src/locales/af-ZA/pages.json +1726 -1646
  132. package/src/locales/af-ZA/settings.json +888 -440
  133. package/src/locales/ar-SA/common.json +281 -280
  134. package/src/locales/ar-SA/notifications.json +242 -222
  135. package/src/locales/ar-SA/pages.json +1684 -1604
  136. package/src/locales/ar-SA/settings.json +889 -441
  137. package/src/locales/ca-ES/common.json +281 -280
  138. package/src/locales/ca-ES/notifications.json +238 -218
  139. package/src/locales/ca-ES/pages.json +1682 -1602
  140. package/src/locales/ca-ES/settings.json +888 -440
  141. package/src/locales/cs-CZ/common.json +281 -280
  142. package/src/locales/cs-CZ/notifications.json +242 -222
  143. package/src/locales/cs-CZ/pages.json +1688 -1608
  144. package/src/locales/cs-CZ/settings.json +889 -441
  145. package/src/locales/da-DK/common.json +281 -280
  146. package/src/locales/da-DK/notifications.json +242 -222
  147. package/src/locales/da-DK/pages.json +1684 -1604
  148. package/src/locales/da-DK/settings.json +889 -441
  149. package/src/locales/de-DE/common.json +281 -280
  150. package/src/locales/de-DE/notifications.json +242 -222
  151. package/src/locales/de-DE/pages.json +1690 -1610
  152. package/src/locales/de-DE/settings.json +889 -441
  153. package/src/locales/el-GR/common.json +281 -280
  154. package/src/locales/el-GR/notifications.json +242 -222
  155. package/src/locales/el-GR/pages.json +1684 -1604
  156. package/src/locales/el-GR/settings.json +889 -441
  157. package/src/locales/en/notifications.json +26 -6
  158. package/src/locales/en/pages.json +92 -12
  159. package/src/locales/en/settings.json +474 -26
  160. package/src/locales/en-US/common.json +281 -280
  161. package/src/locales/en-US/notifications.json +242 -222
  162. package/src/locales/en-US/pages.json +1774 -1694
  163. package/src/locales/en-US/settings.json +898 -450
  164. package/src/locales/es-ES/common.json +281 -280
  165. package/src/locales/es-ES/notifications.json +242 -222
  166. package/src/locales/es-ES/pages.json +1689 -1609
  167. package/src/locales/es-ES/settings.json +889 -441
  168. package/src/locales/fi-FI/common.json +281 -280
  169. package/src/locales/fi-FI/notifications.json +242 -222
  170. package/src/locales/fi-FI/pages.json +1684 -1604
  171. package/src/locales/fi-FI/settings.json +889 -441
  172. package/src/locales/fr-FR/notifications.json +242 -222
  173. package/src/locales/fr-FR/pages.json +1698 -1618
  174. package/src/locales/fr-FR/settings.json +898 -450
  175. package/src/locales/he-IL/common.json +281 -280
  176. package/src/locales/he-IL/notifications.json +238 -218
  177. package/src/locales/he-IL/pages.json +1726 -1646
  178. package/src/locales/he-IL/settings.json +888 -440
  179. package/src/locales/hu-HU/common.json +281 -280
  180. package/src/locales/hu-HU/notifications.json +238 -218
  181. package/src/locales/hu-HU/pages.json +1726 -1646
  182. package/src/locales/hu-HU/settings.json +888 -440
  183. package/src/locales/it-IT/common.json +281 -280
  184. package/src/locales/it-IT/notifications.json +242 -222
  185. package/src/locales/it-IT/pages.json +1684 -1604
  186. package/src/locales/it-IT/settings.json +889 -441
  187. package/src/locales/ja-JP/common.json +281 -280
  188. package/src/locales/ja-JP/notifications.json +242 -222
  189. package/src/locales/ja-JP/pages.json +1684 -1604
  190. package/src/locales/ja-JP/settings.json +889 -441
  191. package/src/locales/ko-KR/common.json +281 -281
  192. package/src/locales/ko-KR/notifications.json +242 -222
  193. package/src/locales/ko-KR/pages.json +1746 -1666
  194. package/src/locales/ko-KR/settings.json +898 -450
  195. package/src/locales/nl-NL/common.json +281 -280
  196. package/src/locales/nl-NL/notifications.json +242 -222
  197. package/src/locales/nl-NL/pages.json +1699 -1619
  198. package/src/locales/nl-NL/settings.json +891 -443
  199. package/src/locales/no-NO/common.json +281 -280
  200. package/src/locales/no-NO/notifications.json +242 -222
  201. package/src/locales/no-NO/pages.json +1684 -1604
  202. package/src/locales/no-NO/settings.json +889 -441
  203. package/src/locales/pl-PL/common.json +281 -280
  204. package/src/locales/pl-PL/notifications.json +242 -222
  205. package/src/locales/pl-PL/pages.json +1684 -1604
  206. package/src/locales/pl-PL/settings.json +889 -441
  207. package/src/locales/pt-BR/common.json +281 -280
  208. package/src/locales/pt-BR/notifications.json +242 -222
  209. package/src/locales/pt-BR/pages.json +1725 -1645
  210. package/src/locales/pt-BR/settings.json +889 -441
  211. package/src/locales/pt-PT/common.json +281 -280
  212. package/src/locales/pt-PT/notifications.json +242 -222
  213. package/src/locales/pt-PT/pages.json +1684 -1604
  214. package/src/locales/pt-PT/settings.json +889 -441
  215. package/src/locales/ro-RO/common.json +281 -280
  216. package/src/locales/ro-RO/notifications.json +242 -222
  217. package/src/locales/ro-RO/pages.json +1684 -1604
  218. package/src/locales/ro-RO/settings.json +889 -441
  219. package/src/locales/ru-RU/common.json +281 -280
  220. package/src/locales/ru-RU/notifications.json +242 -222
  221. package/src/locales/ru-RU/pages.json +1684 -1604
  222. package/src/locales/ru-RU/settings.json +889 -441
  223. package/src/locales/sr-SP/common.json +281 -280
  224. package/src/locales/sr-SP/notifications.json +238 -218
  225. package/src/locales/sr-SP/pages.json +1726 -1646
  226. package/src/locales/sr-SP/settings.json +888 -440
  227. package/src/locales/sv-SE/common.json +281 -280
  228. package/src/locales/sv-SE/notifications.json +242 -222
  229. package/src/locales/sv-SE/pages.json +1684 -1604
  230. package/src/locales/sv-SE/settings.json +889 -441
  231. package/src/locales/tr-TR/common.json +281 -280
  232. package/src/locales/tr-TR/notifications.json +238 -218
  233. package/src/locales/tr-TR/pages.json +1726 -1646
  234. package/src/locales/tr-TR/settings.json +888 -440
  235. package/src/locales/uk-UA/common.json +281 -280
  236. package/src/locales/uk-UA/notifications.json +242 -222
  237. package/src/locales/uk-UA/pages.json +1684 -1604
  238. package/src/locales/uk-UA/settings.json +889 -441
  239. package/src/locales/vi-VN/common.json +281 -280
  240. package/src/locales/vi-VN/notifications.json +238 -218
  241. package/src/locales/vi-VN/pages.json +1726 -1646
  242. package/src/locales/vi-VN/settings.json +888 -440
  243. package/src/locales/zh-CN/common.json +281 -280
  244. package/src/locales/zh-CN/notifications.json +242 -222
  245. package/src/locales/zh-CN/pages.json +1695 -1615
  246. package/src/locales/zh-CN/settings.json +898 -450
  247. package/src/locales/zh-TW/common.json +281 -280
  248. package/src/locales/zh-TW/notifications.json +242 -222
  249. package/src/locales/zh-TW/pages.json +1804 -1724
  250. package/src/locales/zh-TW/settings.json +888 -440
@@ -1,504 +1,952 @@
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": "",
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": "E-mail",
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
+ "download": "",
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": "Automatisations",
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
+ "rowActions": "",
70
+ "schedule": "Sauvegardes planifiées",
71
+ "scheduleDaily": "Journalière",
72
+ "scheduleDayOfMonth": "Jour du mois",
73
+ "scheduleDayOfMonthHint": "Pour les mois comportant moins de jours, la sauvegarde est effectuée le dernier jour du mois.",
74
+ "scheduleDayOfWeek": "Jour de la semaine",
75
+ "scheduleDisabled": "Désactivé",
76
+ "scheduleHour": "",
77
+ "scheduleMinute": "",
78
+ "scheduleMonthly": "Mensuelle",
79
+ "scheduleTime": "Heure ({{timezone}})",
80
+ "scheduleType": "Planification",
81
+ "scheduleWeekly": "Hebdomadaire",
82
+ "size": "Taille",
83
+ "title": "Sauvegarde",
84
+ "toast": {
85
+ "backupCreateFailed": "Échec de création de la sauvegarde",
86
+ "backupCreated": "Sauvegarde créée avec succès",
87
+ "backupDeleteFailed": "Échec de suppression de la sauvegarde",
88
+ "backupDeleted": "Sauvegarde supprimée",
89
+ "backupUploadFailed": "Échec du téléversement de la sauvegarde",
90
+ "backupUploaded": "Sauvegarde téléversée avec succès",
91
+ "restoreStartFailed": "Échec du démarrage de la restauration",
92
+ "restoreStarted": "La restauration a démarré",
93
+ "scheduleError": "Échec de l'enregistrement de la planification de la sauvegarde",
94
+ "scheduleSaved": "Planification de la sauvegarde enregistrée"
95
+ },
96
+ "type": "Type",
97
+ "typeManual": "Manuelle",
98
+ "typeScheduled": "Planifiée",
99
+ "typeUploaded": "Téléversé",
100
+ "uploadBackup": "Téléverser une sauvegarde",
101
+ "uploading": "Téléversement...",
102
+ "version": "Version"
103
+ },
104
+ "email": {
105
+ "branding": {
106
+ "accent": "",
107
+ "accentPicker": "",
108
+ "description": "",
109
+ "footerText": "",
110
+ "footerTextHelp": "",
111
+ "logo": {
112
+ "label": "",
113
+ "none": "",
114
+ "tracearr": "",
115
+ "url": ""
116
+ },
117
+ "logoUrl": "",
118
+ "mailto": "",
119
+ "mailtoHelp": "",
120
+ "postalAddress": "",
121
+ "postalAddressHelp": "",
122
+ "save": "",
123
+ "saving": "",
124
+ "title": ""
125
+ },
126
+ "ownerOnly": "",
127
+ "suppressions": {
128
+ "add": "",
129
+ "addConfirm": "",
130
+ "addDescription": "",
131
+ "addTitle": "",
132
+ "address": "",
133
+ "empty": "",
134
+ "emptyDescription": "",
135
+ "globalNote": "",
136
+ "openSource": "",
137
+ "reason": {
138
+ "manual": "",
139
+ "unsubscribed": ""
140
+ },
141
+ "remove": "",
142
+ "removeDescription": "",
143
+ "removeTitle": "",
144
+ "title": ""
145
+ }
14
146
  },
15
147
  "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)",
31
- "appearance": "Apparence",
32
- "appearanceDesc": "Personnaliser l'apparence de Tracearr",
33
- "theme": "Thème",
34
148
  "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",
149
+ "apiDocs": "Docs API",
150
+ "apiKeyDesc": "Accédez à l'API Tracearr pour des intégrations tierces comme Homarr, Home Assistant, etc.",
151
+ "apiKeyReadAccess": "Votre clé API vous donne un accès en lecture complète à vos données Tracearr.",
152
+ "apiRateLimit": "Limite de requêtes API",
153
+ "apiRateLimitDesc": "Nombre maximal de requêtes API publiques par minute et par clé. Un redémarrage est nécessaire pour que la modification prenne effet.",
154
+ "apiRateLimitSuffix": "/min",
40
155
  "application": "Application",
41
156
  "applicationDesc": "Configurer les paramètres de base de l'application",
42
- "unitSystemDesc": "",
43
- "sessionSync": "Synchronisation de session",
44
- "sessionSyncDesc": "",
45
- "syncInterval": "Intervalle de synchronisation",
46
- "syncIntervalDesc": "",
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.",
157
+ "copyToClipboard": "Copier dans le presse-papiers",
158
+ "cyanDefault": "* Cyan est la couleur d'accentuation par défaut",
159
+ "default": "(par défaut)",
160
+ "detect": "Détecter",
50
161
  "enhancedGeoIP": "Recherche GeoIP améliorée",
51
162
  "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
163
  "externalAccess": "Accès externe",
53
164
  "externalAccessDesc": "Configurer comment les appareils externes (comme les applications mobiles) se connectent à votre serveur",
54
165
  "externalUrl": "URL externe",
55
- "externalUrlPlaceholder": "https://tracearr.exemple.com",
56
166
  "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.",
167
+ "externalUrlPlaceholder": "https://tracearr.exemple.com",
168
+ "generateApiKeyPrompt": "Générer une clé API pour activer les intégrations externes.",
169
+ "generateKey": "Générer une clé",
170
+ "helpTranslate": "Aidez-nous à traduire Tracearr",
171
+ "imageCache": {
172
+ "ceiling": "Plafond",
173
+ "description": "Une copie de chaque affiche, restée sur le disque jusqu'à ce que l'affiche change. Rien ici n'est expulsé pour faire de la place ; lorsque le disque est faible, le cache cesse de croître et le dit.",
174
+ "diskLimited": "Disque limité depuis {{since}}: environ {{shortfall}} d'affiches ne sont pas mis en cache.",
175
+ "files": "Fichiers",
176
+ "floor": "Garde libre",
177
+ "free": "Disque libre",
178
+ "freeOf": "sur {{total}}",
179
+ "lastSweep": "Dernier balayage",
180
+ "loadError": "Impossible de charger le statut du cache.",
181
+ "need": "Besoin estimé",
182
+ "needHint": "Affiches {{count}} × 18 K",
183
+ "never": "pas encore",
184
+ "size": "Sur le disque",
185
+ "title": "Cache des affiches"
186
+ },
187
+ "imperial": "Impérial (mi, mph)",
59
188
  "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": "Docs API",
189
+ "jellyfinPollingNote": "Les sondages de Jellyfin/Emby sont effectués à l'intervalle ci-dessus.",
190
+ "language": "Langue",
191
+ "languageDescription": "Choisissez votre langue d'affichage préférée.",
192
+ "localAccount": "Compte local",
193
+ "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.",
194
+ "metric": "Métrique (km, km/h)",
62
195
  "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.",
196
+ "plexAccount": "Compte Plex",
197
+ "plexSseNote": "Plex utilise Server-Sent Events (SSE) pour des mises à jour quasi instantanées — aucun sondage n'est nécessaire.",
198
+ "primaryAuth": "Méthode d'authentification principale",
199
+ "publicApiSettings": "API publique",
200
+ "publicApiSettingsDesc": "Configurer les seuils de achèvement et les limites de requêtes pour l'API publique",
66
201
  "regenerate": "Régénérer",
67
- "generateKey": "Générer une clé",
68
202
  "regenerateApiKey": "Régénérer la clé API ?",
69
203
  "regenerateApiKeyDesc": "Ceci invalidera votre clé API actuelle. Toute intégration utilisant l'ancienne clé cessera de fonctionner.",
70
- "publicApiSettings": "API publique",
71
- "publicApiSettingsDesc": "Configurer les seuils de achèvement et les limites de requêtes pour l'API publique",
72
- "watchedThresholdMovie": "Seuil de visionnement du film",
73
- "watchedThresholdMovieDesc": "",
74
- "watchedThresholdTv": "Seuil d'épisode regardé",
75
- "watchedThresholdTvDesc": "",
76
- "watchedThresholdMusic": "Seuil de suivi des visionnages",
77
- "watchedThresholdMusicDesc": "",
78
- "watchedThresholdSuffix": "%",
79
- "apiRateLimit": "Limite de requêtes API",
80
- "apiRateLimitDesc": "Nombre maximal de requêtes API publiques par minute et par clé. Un redémarrage est nécessaire pour que la modification prenne effet.",
81
- "apiRateLimitSuffix": "/min",
204
+ "sessionSync": "Synchronisation de session",
205
+ "sessionSyncDesc": "",
206
+ "syncInterval": "Intervalle de synchronisation",
207
+ "syncIntervalDesc": "",
208
+ "syncIntervalSuffix": "s",
209
+ "theme": "Thème",
210
+ "themeDark": "Sombre",
211
+ "themeLight": "Lumière",
212
+ "themeSystem": "Système",
213
+ "timeFormat": "Format horaire",
214
+ "timeFormat12h": "Format 12 heures (1:30 PM)",
215
+ "timeFormat24h": "Format 24 heures (13:30)",
216
+ "timeFormatDescription": "Choisissez comment l'heure est affichée.",
217
+ "timezone": "Fuseau horaire",
218
+ "title": "Réglages généraux",
219
+ "unitSystem": "Système d'unité",
220
+ "unitSystemDesc": "",
82
221
  "updateChecks": {
83
- "title": "Vérifications des mises à jour",
84
222
  "description": "Tracearr recherche des nouvelles versions toutes les six heures. Les notifications proviennent de n'importe quelle automation qui écoute les déclencheurs de mise à jour.",
85
223
  "plugin": "Plugin en temps réel",
86
224
  "pluginDesc": "Vérifiez les nouvelles versions du plugin Tracearr de vos serveurs Jellyfin et Emby pour les événements de streaming.",
87
225
  "server": "Serveur multimédia",
88
- "serverDesc": "Comparez ce que chaque serveur Plex, Jellyfin et Emby exécute avec la dernière version publiée par ses créateurs."
226
+ "serverDesc": "Comparez ce que chaque serveur Plex, Jellyfin et Emby exécute avec la dernière version publiée par ses créateurs.",
227
+ "title": "Vérifications des mises à jour"
89
228
  },
90
- "imageCache": {
91
- "title": "Cache des affiches",
92
- "description": "Une copie de chaque affiche, restée sur le disque jusqu'à ce que l'affiche change. Rien ici n'est expulsé pour faire de la place ; lorsque le disque est faible, le cache cesse de croître et le dit.",
93
- "size": "Sur le disque",
94
- "files": "Fichiers",
95
- "need": "Besoin estimé",
96
- "needHint": "Affiches {{count}} × 18 K",
97
- "free": "Disque libre",
98
- "freeOf": "sur {{total}}",
99
- "floor": "Garde libre",
100
- "ceiling": "Plafond",
101
- "lastSweep": "Dernier balayage",
102
- "never": "pas encore",
103
- "diskLimited": "Disque limité depuis {{since}}: environ {{shortfall}} d'affiches ne sont pas mis en cache.",
104
- "loadError": "Impossible de charger le statut du cache."
105
- }
229
+ "watchedThresholdMovie": "Seuil de visionnement du film",
230
+ "watchedThresholdMovieDesc": "",
231
+ "watchedThresholdMusic": "Seuil de suivi des visionnages",
232
+ "watchedThresholdMusicDesc": "",
233
+ "watchedThresholdSuffix": "%",
234
+ "watchedThresholdTv": "Seuil d'épisode regardé",
235
+ "watchedThresholdTvDesc": ""
106
236
  },
107
- "servers": {
108
- "title": "Serveurs connectés",
109
- "addServer": "Ajouter un serveur",
110
- "serverName": "Nom du serveur",
111
- "serverUrl": "URL du serveur",
112
- "syncInterval": "Intervalle de synchronisation",
113
- "testConnection": "Tester la connexion",
114
- "connectionSuccess": "Connexion réussie",
115
- "connectionFailed": "Échec de la connexion",
116
- "noServersConnected": "Aucun serveur connecté",
117
- "noServersConnectedHint": "Cliquez sur \"Ajouter un serveur\" pour connecter un serveur Jellyfin ou Emby",
118
- "serverType": "Type de serveur",
119
- "loadingAccounts": "Chargement des comptes Plex liés...",
120
- "noPlexAccountsLinked": "Aucun compte Plex lié pour le moment",
121
- "noPlexAccountsLinkedHint": "Lier un compte Plex ci-dessus, puis revenir pour ajouter un serveur.",
122
- "selectPlexAccount": "Sélectionnez le compte Plex",
123
- "chooseAccount": "Choisissez un compte...",
124
- "selectAccountHelp": "Sélectionnez le compte Plex dont vous voulez découvrir les serveurs.",
125
- "allServersConnected": "Tous les serveurs connectés",
126
- "allServersConnectedDesc": "Tous les serveurs de ce compte sont déjà connectés.",
127
- "serverUrlPlaceholder": "http://192.168.1.100:8096",
128
- "serverUrlHelp": "URL directe vers votre serveur Jellyfin ou Emby. Utilisez IP:port pour une fiabilité optimale.",
129
- "serverNamePlaceholder": "Mon serveur multimédia",
130
- "apiKeyPlaceholder": "Entrez votre clé API",
131
- "apiKeyHelp": "Trouvé dans le tableau de bord de votre serveur multimédia sous Clés API ou Paramètres avancés.",
132
- "connecting": "Connexion en cours...",
133
- "connectServer": "Connecter le serveur",
134
- "removeServer": "Supprimer le serveur",
135
- "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.",
136
- "editServer": "Modifier le serveur",
137
- "editServerDesc": "Mettre à jour le nom du serveur ou l'URL de connexion.",
138
- "serverColor": "Couleur du serveur",
139
- "serverColorDesc": "Utilisé pour l'attribution visuelle dans la vue multi-serveur",
140
- "updating": "Mise à jour en cours...",
141
- "allFieldsRequired": "Tous les champs sont obligatoires",
142
- "addServerDialogDescPlex": "Sélectionnez un serveur Plex à partir de votre compte lié.",
143
- "addServerDialogDescOther": "Connectez un serveur Jellyfin ou Emby.",
144
- "description": "Gérez vos serveurs Plex, Jellyfin et Emby connectés",
145
- "discoveringServers": "Recherche des serveurs Plex disponibles...",
237
+ "import": {
238
+ "apiKeyHelp": "Trouvé dans les paramètres Tautulli → Interface Web → Clé d'API.",
239
+ "apiKeyPlaceholder": "Votre clé API Tautulli",
240
+ "checkPlugin": "Vérifier le Plugin",
241
+ "checkingPlugin": "Vérification...",
242
+ "connectToTautulli": "Se connecter à Tautulli",
243
+ "connectedFound": "Connecté ! Utilisateurs {{users}} trouvés et enregistrements de l'historique {{records}}.",
244
+ "duplicates": "Les doublons {{count}} ont été ignorés",
245
+ "enrichMetadata": "Enrichir avec les métadonnées du média (recommandé)",
246
+ "enrichMetadataHelp": "Récupère des métadonnées supplémentaires depuis votre serveur multimédia pour les sessions importées.",
247
+ "enriched": "Enrichi",
248
+ "errors": "Erreurs",
249
+ "exportBackupHelp": "Dans Jellystat, allez dans Paramètres → Sauvegarde → Sauvegarde d'activités pour exporter vos données.",
250
+ "exportBackupHint": "Exporter une sauvegarde d'activité depuis Jellystat",
251
+ "howItWorks": "Comment fonctionne l'import",
252
+ "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.",
253
+ "importComplete": "Importation terminée",
254
+ "importFailed": "Échec de l'importation",
255
+ "importFullRange": "Importer l'historique complet",
256
+ "importFullRangeHelp": "Par défaut, seul l'historique plus ancien que la première session tracée de Tracearr pour ce serveur est importé, de sorte que les sessions que Tracearr déjà enregistrées ne sont jamais dupliquées. Activez cette option pour importer l'historique entier du plugin, indépendamment du chevauchement, si votre historique Tracearr a des lacunes. Les doublons exacts sont toujours ignorés.",
257
+ "importHistory": "Historique d'importation",
258
+ "importInProgressGeneric": "Importation en cours...",
259
+ "importInProgressPercent": "Importation en cours ({{percent}}% terminé)...",
260
+ "importOptions": "Options d'importation",
261
+ "importProgress": "Progression de l'import",
262
+ "imported": "Importé",
263
+ "importing": "Importation en cours...",
264
+ "includeStreamDetails": "Inclure les données détaillées du flux (codecs, débit, résolution)",
265
+ "includeStreamDetailsHelp": "Importe des informations de flux supplémentaires. Peut augmenter considérablement le temps d'importation.",
266
+ "jellyfinEmby": "Jellyfin/Emby (Jellystat)",
267
+ "jellystat": "Importer depuis Jellystat",
268
+ "noServers": "Aucun serveur connecté",
269
+ "noServersHint": "Vous avez besoin d'au moins un serveur connecté pour importer des données.",
270
+ "overlapSkipped": "{{count}} ont été ignorés car ils se chevauchaient",
271
+ "overwriteFriendlyNames": "Remplacer les noms conviviaux existants par des noms Tautulli",
272
+ "overwriteFriendlyNamesHelp": "Les noms d'identité existants dans Tracearr seront remplacés par les noms amicaux de Tautulli.",
273
+ "page": "Page",
274
+ "playbackReporting": "Plugin de rapport de lecture",
275
+ "playbackReportingDesc": "Importer l'historique directement à partir du plugin de rapport de lecture installé sur votre serveur Jellyfin ou Emby. Aucun export de fichier nécessaire.",
276
+ "pleaseEnterDetails": "Veuillez entrer l'URL et la clé API de Tautulli",
277
+ "pleaseSelectJsonFile": "Veuillez sélectionner un fichier JSON",
278
+ "plex": "Plex (Tautulli)",
279
+ "pluginFound": "Plugin trouvé: enregistrements {{records}} de {{oldestDate}} à {{newestDate}}",
280
+ "pluginNotInstalled": "Le plugin de rapport de lecture n'est pas installé sur ce serveur, ou Tracearr ne peut pas l'atteindre. Installez-le à partir du catalogue de plugins du serveur pour commencer à enregistrer l'historique, ou utilisez l'importation de Jellystat ci-dessous.",
281
+ "processed": "Traité",
282
+ "recordsMayBeSkipped": "Les enregistrements peuvent être ignorés si :",
283
+ "selectJellyfinServer": "Sélectionnez un serveur Jellyfin ou Emby",
284
+ "selectPlexServer": "Sélectionnez un serveur Plex",
285
+ "selectTargetServer": "Sélectionnez le serveur cible",
286
+ "serverTimezone": "Fuseau horaire du serveur",
287
+ "serverTimezoneHelp": "Doit correspondre au fuseau horaire configuré sur l'hôte de votre serveur multimédia, et non au fuseau horaire de votre navigateur. Les horodatages des rapports de lecture sont stockés à l'heure du serveur local.",
288
+ "skipDuplicate": "Dupliquer la session — La session a déjà été importée précédemment.",
289
+ "skipDuplicatePlugin": "Enregistrement en double - déjà importé directement ou arrivé plus tôt via une importation Jellystat des mêmes données de plugin.",
290
+ "skipInProgress": "Session en cours — Les sessions actives/incomplètes sans identifiant de référence sont ignorées.",
291
+ "skipOverlap": "Recouvrement de l'enregistrement - l'horodatage tombe dans la période que Tracearr suit déjà pour ce serveur. Activez l'importation complète pour l'inclure.",
292
+ "skipSyncHint": "Si plusieurs enregistrements sont ignorés, assurez-vous que vous avez récemment synchronisé votre serveur dans Paramètres → Serveurs.",
293
+ "skipUserNotFoundJellyfin": "Utilisateur introuvable — L'utilisateur Jellyfin/Emby n'existe pas dans Tracearr. Synchronisez d'abord votre serveur pour ajouter tous les utilisateurs.",
294
+ "skipUserNotFoundPlex": "Utilisateur introuvable — L'utilisateur Plex n'existe pas dans Tracearr. Synchronisez d'abord votre serveur pour ajouter tous les utilisateurs.",
295
+ "skipped": "Ignoré",
296
+ "startImport": "Commencer l'importation",
297
+ "startingImport": "Démarrage de l'importation...",
298
+ "step1": "1",
299
+ "step2": "2",
300
+ "targetServer": "Serveur cible",
301
+ "tautulli": "Importer depuis Tautulli",
302
+ "tautulliUrl": "URL Tautulli",
303
+ "tautulliUrlHelp": "L'URL de votre instance Tautulli.",
304
+ "tautulliUrlPlaceholder": "http://localhost:8001",
305
+ "testing": "Test en cours...",
306
+ "testingConnection": "Test de la connexion...",
307
+ "title": "Importer des données",
308
+ "updateExistingRecords": "Mettre à jour les enregistrements existants avec les détails du flux",
309
+ "updateExistingRecordsHelp": "Les enregistrements précédemment importés seront mis à jour avec les données de qualité du flux.",
310
+ "uploadJellystatBackup": "Télécharger la sauvegarde Jellystat",
311
+ "uploadingBackup": "Téléchargement du fichier de sauvegarde..."
312
+ },
313
+ "ipWarning": {
314
+ "acknowledge": "Compris",
315
+ "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."
316
+ },
317
+ "jobs": {
318
+ "backfill": "Remplissage",
319
+ "cleanup": "Nettoyage",
320
+ "delayed": "différé",
321
+ "description": "",
322
+ "errors": "erreurs",
323
+ "jobHistory": "Historique des tâches",
324
+ "jobHistoryDesc": "Exécution récente d'une tâche de maintenance",
325
+ "lastJobCompleted": "Dernière tâche terminée avec succès",
326
+ "lastJobFailed": "La dernière tâche a échoué",
327
+ "mayTakeAWhile": "Cela peut prendre un certain temps",
328
+ "mayTakeAWhileDesc": "Cette tâche peut prendre plusieurs minutes selon la taille de votre bibliothèque.",
329
+ "normalization": "Normalisation",
330
+ "processed": "traité",
331
+ "queued": "mis en file d'attente",
332
+ "runConfirm": "Exécuter {{name}}?",
333
+ "runJob": "Exécuter le Job",
334
+ "running": "en cours d'exécution",
335
+ "runningState": "En cours d'exécution",
336
+ "startJob": "Commencer la tâche",
337
+ "title": "Tâches d'entretien",
338
+ "unchanged": "inchangé",
339
+ "updated": "Mis à jour",
340
+ "waiting": "En attente"
341
+ },
342
+ "mobile": {
343
+ "addDevice": "Ajouter un appareil",
344
+ "connectedOn": "",
345
+ "copyToken": "Copier le jeton",
346
+ "deviceName": "Nom de l'appareil",
347
+ "deviceNamePlaceholder": "par exemple iPhone 15",
348
+ "devicesConnected": "{{current}} des appareils {{max}} connectés",
349
+ "disable": "Désactiver",
350
+ "disableMobileAccess": "Désactiver l'accès mobile",
351
+ "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.",
352
+ "done": "Fait",
353
+ "downloadOnAppStore": "Télécharger sur l'App Store",
354
+ "enableMobileAccess": "Activer l'accès mobile",
355
+ "enabling": "Activation...",
356
+ "expiresIn": "Expire dans {{time}}",
357
+ "externalUrlBanner": "Utiliser un proxy inversé ou accéder à distance ? Définissez votre",
358
+ "externalUrlBannerLink": "URL externe",
359
+ "externalUrlBannerSuffix": "pour que l'application mobile puisse se connecter à votre serveur.",
360
+ "externalUrlRequired": "Une URL externe doit être configurée dans les paramètres généraux pour que l'appairage mobile fonctionne.",
361
+ "failedToGenerateToken": "Impossible de générer le jeton",
362
+ "generateToken": "Générer un jeton d'appairage",
363
+ "getOnGooglePlay": "Télécharger sur Google Play",
364
+ "lastSeen": "",
365
+ "mobileAccessDisabled": "Accès mobile désactivé",
366
+ "mobileAccessDisabledDesc": "Activez l'accès mobile pour permettre à l'application mobile Tracearr de se connecter à votre serveur.",
367
+ "noDevices": "Aucun appareil connecté",
368
+ "noDevicesDesc": "",
369
+ "oneTimePairToken": "Jeton de Paire à usage unique",
370
+ "pairDevice": "Associer un appareil",
371
+ "pairNewDevice": "Associer un nouvel appareil",
372
+ "pairNewDeviceDesc": "Scannez le code QR avec l'application mobile Tracearr ou saisissez le jeton manuellement.",
373
+ "pendingTokens": "{{count}} token en attente",
374
+ "removeDevice": "Supprimer l'appareil",
375
+ "removeDeviceConfirm": "Êtes-vous sûr de vouloir supprimer {{deviceName}}? Cet appareil devra être relié à nouveau pour se reconnecter.",
376
+ "renameDevice": "Renommer l'appareil",
377
+ "renameDeviceDesc": "Entrez un nom pour identifier cet appareil dans la liste.",
378
+ "revokeAll": "Révoquer toutes les sessions",
379
+ "revokeAllConfirm": "Cela déconnectera tous les appareils mobiles. Ils devront s'appairer à nouveau pour se reconnecter.",
380
+ "revokeAllSessions": "Révoquer tout",
381
+ "scanQrCode": "Scanner le code QR",
382
+ "title": "Application mobile",
383
+ "tokenExpires": "Le jeton d'appairage expire dans {{time}}",
384
+ "tokenExpiryNote": "Ce jeton expire dans 5 minutes et ne peut être utilisé qu'une seule fois."
385
+ },
386
+ "nav": {
387
+ "descriptions": {
388
+ "api": "",
389
+ "appearance": "",
390
+ "backup": "",
391
+ "behavior": "",
392
+ "connections": "",
393
+ "destinations": "",
394
+ "email": "",
395
+ "guest": "",
396
+ "import": "",
397
+ "jobs": "",
398
+ "locale": "",
399
+ "mobile": "",
400
+ "newsletters": "",
401
+ "plexAccounts": "",
402
+ "posters": "",
403
+ "remote": ""
404
+ },
405
+ "groups": {
406
+ "access": "",
407
+ "data": "",
408
+ "general": "",
409
+ "notifications": "",
410
+ "servers": ""
411
+ },
412
+ "itemLabel": "",
413
+ "label": "",
414
+ "sections": {
415
+ "api": "",
416
+ "appearance": "",
417
+ "backup": "",
418
+ "behavior": "",
419
+ "connections": "",
420
+ "destinations": "",
421
+ "email": "",
422
+ "guest": "",
423
+ "import": "",
424
+ "jobs": "",
425
+ "locale": "",
426
+ "mobile": "",
427
+ "newsletters": "",
428
+ "plexAccounts": "",
429
+ "posters": "",
430
+ "remote": ""
431
+ },
432
+ "selectLabel": ""
433
+ },
434
+ "newsletters": {
435
+ "addEmailDestination": "",
436
+ "copyOf": "",
437
+ "counts": {
438
+ "albums_one": "",
439
+ "albums_other": "",
440
+ "movies_one": "",
441
+ "movies_other": "",
442
+ "shows_one": "",
443
+ "shows_other": "",
444
+ "watched_one": "",
445
+ "watched_other": ""
446
+ },
447
+ "deleteDescription": "",
448
+ "deleteTitle": "",
449
+ "duplicate": "",
450
+ "editor": {
451
+ "actions": {
452
+ "more": "",
453
+ "preview": "",
454
+ "send": "",
455
+ "sendHint": "",
456
+ "test": "",
457
+ "testHint": ""
458
+ },
459
+ "allLibraries": "",
460
+ "allServers": "",
461
+ "basics": "",
462
+ "clear": "",
463
+ "content": "",
464
+ "cron": "",
465
+ "cronHint": "",
466
+ "dayOfMonth": "",
467
+ "dayOfMonthHelp": "",
468
+ "dayOfWeek": "",
469
+ "days": "",
470
+ "delivery": {
471
+ "destination": "",
472
+ "destinationHelp": "",
473
+ "hostedNeedsUrl": "",
474
+ "imageMode": "",
475
+ "modeHelp": {
476
+ "hosted": "",
477
+ "inline": "",
478
+ "none": ""
479
+ },
480
+ "modePreviewHint": "",
481
+ "modes": {
482
+ "hosted": "",
483
+ "inline": "",
484
+ "none": ""
485
+ },
486
+ "noDestination": "",
487
+ "pickDestination": "",
488
+ "skipWhenEmpty": "",
489
+ "skipWhenEmptyHelp": "",
490
+ "title": ""
491
+ },
492
+ "dstNote": "",
493
+ "enabledHelp": "",
494
+ "fixFirst": "",
495
+ "headerSummary": "",
496
+ "historyNeedsSave": "",
497
+ "intro": "",
498
+ "introPlaceholder": "",
499
+ "kinds": {
500
+ "cron": "",
501
+ "daily": "",
502
+ "monthly": "",
503
+ "weekly": ""
504
+ },
505
+ "libraries": "",
506
+ "librariesHelp": "",
507
+ "librariesSelected": "",
508
+ "links": {
509
+ "tracearr": "",
510
+ "tracearrNote": ""
511
+ },
512
+ "message": "",
513
+ "name": "",
514
+ "nameHelp": "",
515
+ "newTitle": "",
516
+ "nextRun": "",
517
+ "nextRunPending": "",
518
+ "noLibraries": "",
519
+ "noServers": "",
520
+ "notFound": "",
521
+ "outro": "",
522
+ "outroPlaceholder": "",
523
+ "placeholders": {
524
+ "end_date": "",
525
+ "item_count": "",
526
+ "server_name": "",
527
+ "start_date": ""
528
+ },
529
+ "preview": {
530
+ "countsListed": {
531
+ "albums": "",
532
+ "movies": "",
533
+ "shows": ""
534
+ },
535
+ "draft": "",
536
+ "images": "",
537
+ "imagesBlocked": "",
538
+ "imagesBlockedNote": "",
539
+ "imagesOn": "",
540
+ "linksNote": "",
541
+ "recipients": "",
542
+ "subjectLabel": "",
543
+ "title": "",
544
+ "variantTab": "",
545
+ "variants": "",
546
+ "width": "",
547
+ "widths": {
548
+ "desktop": "",
549
+ "phone": ""
550
+ },
551
+ "window": "",
552
+ "windowSince": ""
553
+ },
554
+ "previewVariant_one": "",
555
+ "previewVariant_other": "",
556
+ "readiness": {
557
+ "destination": "",
558
+ "destinationError": "",
559
+ "destinationFail": "",
560
+ "destinationUnknown": "",
561
+ "dns": "",
562
+ "dnsLink": "",
563
+ "emptyVariant": "",
564
+ "externalUrl": "",
565
+ "externalUrlFail": "",
566
+ "externalUrlNotHttps": "",
567
+ "fixDestination": "",
568
+ "fixExternalUrl": "",
569
+ "fixRecipients": "",
570
+ "fromDomain": "",
571
+ "fromDomainFail": "",
572
+ "fromDomainUnknown": "",
573
+ "intro": "",
574
+ "noPublicUrl": "",
575
+ "privatePublicUrl": "",
576
+ "recipientsFail": "",
577
+ "recipientsLoadFailed": "",
578
+ "recipientsUnknown": "",
579
+ "recipients_one": "",
580
+ "recipients_other": "",
581
+ "serverSettingsLink": "",
582
+ "staleScope": "",
583
+ "title": "",
584
+ "variantsLoadFailed": ""
585
+ },
586
+ "recipients": {
587
+ "account": "",
588
+ "addAddress": "",
589
+ "addressLabel": "",
590
+ "badAddress": "",
591
+ "contactEmailFor": "",
592
+ "emptyDescription": "",
593
+ "emptyTitle": "",
594
+ "exclude": "",
595
+ "excludeAction": "",
596
+ "excludedAfterSave": "",
597
+ "excludedCount": "",
598
+ "excludedHelp": "",
599
+ "extraAddress": "",
600
+ "extraAddresses": "",
601
+ "extraAddressesHelp": "",
602
+ "groupsNote": "",
603
+ "include": "",
604
+ "includeAction": "",
605
+ "includedAfterSave": "",
606
+ "loadFailed": "",
607
+ "members": "",
608
+ "membersHelp": "",
609
+ "membersOff": "",
610
+ "membersOffSuppressed": "",
611
+ "nameLabel": "",
612
+ "namePlaceholder": "",
613
+ "noAddress": "",
614
+ "noAddressHelp": "",
615
+ "openUserPage": "",
616
+ "ownerNote": "",
617
+ "reasons": {
618
+ "banned": "",
619
+ "pending": ""
620
+ },
621
+ "removeAddress": "",
622
+ "saveEmail": "",
623
+ "saveFirst": "",
624
+ "saveFirstHelp": "",
625
+ "staleScope": "",
626
+ "suppressed": "",
627
+ "suppressedHeading": "",
628
+ "suppressedHelp": "",
629
+ "title": "",
630
+ "unknownMember": "",
631
+ "willReceive": ""
632
+ },
633
+ "removeLibrary": "",
634
+ "save": "",
635
+ "saving": "",
636
+ "schedule": "",
637
+ "scheduleKind": "",
638
+ "searchLibraries": "",
639
+ "searchServers": "",
640
+ "sections": {
641
+ "description": "",
642
+ "labels": {
643
+ "mostWatched": "",
644
+ "movies": "",
645
+ "music": "",
646
+ "seasons": "",
647
+ "shows": ""
648
+ },
649
+ "legend": "",
650
+ "mostWatched": "",
651
+ "mostWatchedHelp": "",
652
+ "movies": "",
653
+ "music": "",
654
+ "musicHelp": "",
655
+ "shows": "",
656
+ "the": "",
657
+ "units": {
658
+ "albums": "",
659
+ "mostPlayed": "",
660
+ "movies": "",
661
+ "seasonsEach": "",
662
+ "shows": ""
663
+ },
664
+ "upTo": ""
665
+ },
666
+ "send": {
667
+ "confirm": "",
668
+ "nobody": "",
669
+ "previewing": "",
670
+ "sending": "",
671
+ "summary": "",
672
+ "title": "",
673
+ "trimmed_one": "",
674
+ "trimmed_other": ""
675
+ },
676
+ "sendNeedsSave": "",
677
+ "senderName": "",
678
+ "senderNameHelp": "",
679
+ "senderNameRequiredMulti": "",
680
+ "servers": "",
681
+ "serversHelp": "",
682
+ "serversSelected": "",
683
+ "subject": "",
684
+ "subjectHelp": "",
685
+ "tabs": {
686
+ "edit": "",
687
+ "history": ""
688
+ },
689
+ "test": {
690
+ "address": "",
691
+ "description": "",
692
+ "send": "",
693
+ "title": "",
694
+ "variant": ""
695
+ },
696
+ "time": "",
697
+ "timezone": "",
698
+ "timezoneHelp": "",
699
+ "turnOnNow": "",
700
+ "unknownLibrary": "",
701
+ "unsaved": "",
702
+ "variantHeading": "",
703
+ "variantsNote": "",
704
+ "windowHelp": {
705
+ "fixed": "",
706
+ "since_last_send": ""
707
+ },
708
+ "windowKind": "",
709
+ "windowMax": "",
710
+ "windowSentence": {
711
+ "fallback": "",
712
+ "fallbackLabel": "",
713
+ "fixed": "",
714
+ "fixedAfter": "",
715
+ "fixedLabel": ""
716
+ },
717
+ "windows": {
718
+ "fixed": "",
719
+ "since_last_send": ""
720
+ }
721
+ },
722
+ "empty": "",
723
+ "emptyDescription": "",
724
+ "enabled": "",
725
+ "history": {
726
+ "attempts": "",
727
+ "empty": "",
728
+ "emptyDescription": "",
729
+ "finished": "",
730
+ "loadFailed": "",
731
+ "open": "",
732
+ "openSnapshot": "",
733
+ "openVariantSnapshot": "",
734
+ "page": "",
735
+ "pruned": "",
736
+ "recipients": "",
737
+ "recipientsEmpty": "",
738
+ "retryFailed": "",
739
+ "sendTitle": "",
740
+ "snapshotTitle": "",
741
+ "status": {
742
+ "failed": "",
743
+ "queued": "",
744
+ "sent": "",
745
+ "suppressed": "",
746
+ "unknown": ""
747
+ },
748
+ "trigger": {
749
+ "manual": "",
750
+ "schedule": "",
751
+ "test": ""
752
+ },
753
+ "unknownHelp": "",
754
+ "variant": "",
755
+ "variantEmpty": "",
756
+ "window": ""
757
+ },
758
+ "lastSend": "",
759
+ "neverSent": "",
760
+ "new": "",
761
+ "nextRun": "",
762
+ "noDestinationDescription": "",
763
+ "noDestinationHint": "",
764
+ "noDestinationTitle": "",
765
+ "noNextRun": "",
766
+ "outcome": {
767
+ "failed": "",
768
+ "partial": "",
769
+ "rendering": "",
770
+ "sending": "",
771
+ "sent": "",
772
+ "skipped_empty": ""
773
+ },
774
+ "ownerOnly": "",
775
+ "richText": {
776
+ "bold": "",
777
+ "bulletList": "",
778
+ "counter": "",
779
+ "italic": "",
780
+ "link": "",
781
+ "linkApply": "",
782
+ "linkHref": ""
783
+ },
784
+ "rowActions": "",
785
+ "schedule": {
786
+ "cron": "",
787
+ "daily": "",
788
+ "inZone": "",
789
+ "monthly": "",
790
+ "weekly": ""
791
+ },
792
+ "sendNow": ""
793
+ },
794
+ "plex": {
795
+ "chooseServer": "Choisir le serveur Plex à surveiller",
796
+ "selectServer": "Sélectionner un serveur",
797
+ "signInWithPlex": "Se connecter avec Plex",
798
+ "signUpWithPlex": "S'inscrire avec Plex"
799
+ },
800
+ "serverHealth": {
801
+ "multipleUnreachable": "{{count}} serveurs injoignables : {{serverNames}}",
802
+ "unreachable": "{{serverName}} est inaccessible"
803
+ },
804
+ "servers": {
805
+ "addServer": "Ajouter un serveur",
806
+ "addServerDialogDescOther": "Connectez un serveur Jellyfin ou Emby.",
807
+ "addServerDialogDescPlex": "Sélectionnez un serveur Plex à partir de votre compte lié.",
808
+ "added": "Ajouté {{date}}",
809
+ "allFieldsRequired": "Tous les champs sont obligatoires",
810
+ "allServersConnected": "Tous les serveurs connectés",
811
+ "allServersConnectedDesc": "Tous les serveurs de ce compte sont déjà connectés.",
812
+ "apiKeyHelp": "Trouvé dans le tableau de bord de votre serveur multimédia sous Clés API ou Paramètres avancés.",
813
+ "apiKeyHelpEmby": "Trouvez ceci dans Emby Server → Clés API",
814
+ "apiKeyHelpJellyfin": "Trouvez ceci dans le tableau de bord Jellyfin → Clés API",
815
+ "apiKeyPlaceholder": "Entrez votre clé API",
816
+ "checkingConnection": "Vérification de la connexion…",
817
+ "chooseAccount": "Choisissez un compte...",
818
+ "connectServer": "Connecter le serveur",
819
+ "connecting": "Connexion en cours...",
820
+ "connectionFailed": "Échec de la connexion",
821
+ "connectionSuccess": "Connexion réussie",
822
+ "description": "Gérez vos serveurs Plex, Jellyfin et Emby connectés",
146
823
  "discoveringConnections": "Découverte des connexions...",
824
+ "discoveringServers": "Recherche des serveurs Plex disponibles...",
825
+ "editServer": "Modifier le serveur",
826
+ "editServerDesc": "Mettre à jour le nom du serveur ou l'URL de connexion.",
827
+ "loadingAccounts": "Chargement des comptes Plex liés...",
828
+ "noPlexAccountsLinked": "Aucun compte Plex lié pour le moment",
829
+ "noPlexAccountsLinkedHint": "Lier un compte Plex ci-dessus, puis revenir pour ajouter un serveur.",
830
+ "noServersConnected": "Aucun serveur connecté",
831
+ "noServersConnectedHint": "Cliquez sur \"Ajouter un serveur\" pour connecter un serveur Jellyfin ou Emby",
147
832
  "plexAccount": "Compte Plex",
148
- "serverUrlHelpJellyfin": "L'URL où votre serveur Jellyfin est accessible",
149
- "serverUrlHelpEmby": "L'URL où votre serveur Emby est accessible",
150
- "apiKeyHelpJellyfin": "Trouvez ceci dans le tableau de bord Jellyfin → Clés API",
151
- "apiKeyHelpEmby": "Trouvez ceci dans Emby Server → Clés API",
152
833
  "plexServerPlaceholder": "Mon serveur Plex",
153
834
  "plexServerUrlPlaceholder": "http://192.168.1.100:32400",
154
- "updateHint": "Ou cliquez sur Mettre à jour ci-dessous pour enregistrer uniquement le changement de nom.",
155
- "added": "Ajouté {{date}}",
156
- "realtimeActive": "Mise à jour en temps réel active",
157
- "pollingMode": "Sondage",
158
- "setupRealtime": "Configurer les mises à jour en temps réel",
159
- "realtimeError": "Erreur en temps réel",
160
- "checkingConnection": "Vérification de la connexion…",
161
- "pluginVersion": "extension v{{version}}",
162
835
  "pluginUpdateAvailable": "Mise à jour de l'extension disponible",
836
+ "pluginVersion": "extension v{{version}}",
837
+ "pollingMode": "Sondage",
838
+ "posterSource": {
839
+ "automatic": "Automatique (plus récent)",
840
+ "description": "Quand un titre est sur plusieurs serveurs, utilisez l'affiche de ce serveur. Si elle n'en a pas, nous reprendrons la dernière copie ajoutée.",
841
+ "emptyHint": "Ajouter un serveur pour choisir une source d'affiches préférée.",
842
+ "label": "Source d'affiche préférée",
843
+ "ownerOnly": "",
844
+ "title": "Préférences de l'affiche",
845
+ "titleDesc": "Choisir quel poster du serveur est affiché lorsqu'un titre existe sur plus d'un serveur"
846
+ },
847
+ "publicUrl": "",
848
+ "publicUrlHint": "",
849
+ "realtimeActive": "Mise à jour en temps réel active",
163
850
  "realtimeDialog": {
164
- "title": "Activer les mises à jour en temps réel",
165
- "updateTitle": "Mettre à jour l'extension Tracearr SSE",
166
- "jellyfinDescription": "Installez l'extension SSE de Tracearr pour recevoir les mises à jour de session instantanément, sans attendre la prochaine actualisation.",
167
- "embyDescription": "Installez l'extension SSE de Tracearr pour recevoir les mises à jour de session instantanément, sans attendre la prochaine actualisation.",
168
- "jellyfinUpdateDescription": "Une nouvelle version de l'extension est disponible. Ouvrez votre tableau de bord Jellyfin, rendez-vous dans Extensions, Catalogue, et mettez à jour Tracearr SSE, puis redémarrez Jellyfin.",
169
- "embyUpdateDescription": "Une nouvelle version de l'extension est disponible. Téléchargez la dernière version du zip, remplacez le DLL de l'extension dans votre dossier d'extensions Emby et redémarrez Emby.",
170
- "repositoryUrl": "URL du dépôt",
171
- "copyUrl": "Copier l'URL",
172
- "jellyfinRepoUrl": "https://raw.githubusercontent.com/Tracearr/Media-Server-SSE/main/manifest.json",
173
- "embyReleasesUrl": "https://github.com/Tracearr/Media-Server-SSE/releases",
174
- "openReleases": "Ouvrir la page des versions",
175
851
  "autoDetectNote": "Redémarrez Jellyfin ou Emby après l'installation du plugin ; le redémarrage est nécessaire. Tracearr lui-même n'a pas besoin de redémarrer et récupère automatiquement le plugin.",
176
852
  "close": "Fermer",
853
+ "copyUrl": "Copier l'URL",
854
+ "embyDescription": "Installez l'extension SSE de Tracearr pour recevoir les mises à jour de session instantanément, sans attendre la prochaine actualisation.",
855
+ "embyReleasesUrl": "https://github.com/Tracearr/Media-Server-SSE/releases",
856
+ "embyUpdateDescription": "Une nouvelle version de l'extension est disponible. Téléchargez la dernière version du zip, remplacez le DLL de l'extension dans votre dossier d'extensions Emby et redémarrez Emby.",
177
857
  "issueBlocked": "Le serveur indique que le plugin est installé et actif, mais Tracearr renvoie une erreur 404 depuis son point de terminaison. La cause la plus courante est un proxy inverse qui bloque le chemin d'accès.",
858
+ "issueMalfunctioned": "Le serveur signale que le chargement du plugin a échoué. La mise à jour du plugin ou du serveur multimédia permet généralement de résoudre ce problème.",
178
859
  "issueRestartRequired": "Le plugin est installé, mais le serveur multimédia a besoin d'un redémarrage avant de l'activer.",
179
- "issueMalfunctioned": "Le serveur signale que le chargement du plugin a échoué. La mise à jour du plugin ou du serveur multimédia permet généralement de résoudre ce problème."
180
- },
181
- "posterSource": {
182
- "title": "Préférences de l'affiche",
183
- "titleDesc": "Choisir quel poster du serveur est affiché lorsqu'un titre existe sur plus d'un serveur",
184
- "label": "Source d'affiche préférée",
185
- "description": "Quand un titre est sur plusieurs serveurs, utilisez l'affiche de ce serveur. Si elle n'en a pas, nous reprendrons la dernière copie ajoutée.",
186
- "automatic": "Automatique (plus récent)",
187
- "emptyHint": "Ajouter un serveur pour choisir une source d'affiches préférée."
860
+ "jellyfinDescription": "Installez l'extension SSE de Tracearr pour recevoir les mises à jour de session instantanément, sans attendre la prochaine actualisation.",
861
+ "jellyfinRepoUrl": "https://raw.githubusercontent.com/Tracearr/Media-Server-SSE/main/manifest.json",
862
+ "jellyfinUpdateDescription": "Une nouvelle version de l'extension est disponible. Ouvrez votre tableau de bord Jellyfin, rendez-vous dans Extensions, Catalogue, et mettez à jour Tracearr SSE, puis redémarrez Jellyfin.",
863
+ "openReleases": "Ouvrir la page des versions",
864
+ "repositoryUrl": "URL du dépôt",
865
+ "title": "Activer les mises à jour en temps réel",
866
+ "updateTitle": "Mettre à jour l'extension Tracearr SSE"
188
867
  },
189
- "version": {
190
- "installed": "Version {{version}}",
191
- "upToDate": "à jour",
192
- "updateAvailable": "Version {{version}} disponible"
193
- }
194
- },
195
- "mobile": {
196
- "title": "Application mobile",
197
- "pairDevice": "Associer un appareil",
198
- "connectedDevices": "Appareils connectés",
199
- "generateToken": "Générer un jeton d'appairage",
200
- "scanQrCode": "Scanner le code QR",
201
- "tokenExpires": "Le jeton d'appairage expire dans {{time}}",
202
- "noDevices": "Aucun appareil connecté",
203
- "revokeAll": "Révoquer toutes les sessions",
204
- "getTheApp": "Téléchargez l'application",
205
- "getTheAppDesc": "Téléchargez l'application mobile Tracearr pour iOS ou Android",
206
- "getOnGooglePlay": "Télécharger sur Google Play",
207
- "downloadOnAppStore": "Télécharger sur l'App Store",
208
- "pairYourDevice": "Associer votre appareil",
209
- "pairYourDeviceDesc": "",
210
- "externalUrlRequired": "Une URL externe doit être configurée dans les paramètres généraux pour que l'appairage mobile fonctionne.",
211
- "mobileAccessDisabled": "Accès mobile désactivé",
212
- "mobileAccessDisabledDesc": "Activez l'accès mobile pour permettre à l'application mobile Tracearr de se connecter à votre serveur.",
213
- "enableMobileAccess": "Activer l'accès mobile",
214
- "enabling": "Activation...",
215
- "devicesConnected": "{{current}} des appareils {{max}} connectés",
216
- "pendingTokens": "{{count}} token en attente",
217
- "addDevice": "Ajouter un appareil",
218
- "disableMobileAccess": "Désactiver l'accès mobile",
219
- "connectedDevicesDesc": "Périphériques {{count}} appariés à votre serveur",
220
- "revokeAllSessions": "Révoquer tout",
221
- "pairNewDevice": "Associer un nouvel appareil",
222
- "pairNewDeviceDesc": "Scannez le code QR avec l'application mobile Tracearr ou saisissez le jeton manuellement.",
223
- "expiresIn": "Expire dans {{time}}",
224
- "oneTimePairToken": "Jeton de Paire à usage unique",
225
- "copyToken": "Copier le jeton",
226
- "tokenExpiryNote": "Ce jeton expire dans 5 minutes et ne peut être utilisé qu'une seule fois.",
227
- "done": "Fait",
228
- "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.",
229
- "disable": "Désactiver",
230
- "revokeAllConfirm": "Cela déconnectera tous les appareils mobiles. Ils devront s'appairer à nouveau pour se reconnecter.",
231
- "renameDevice": "Renommer l'appareil",
232
- "renameDeviceDesc": "Entrez un nom pour identifier cet appareil dans la liste.",
233
- "deviceName": "Nom de l'appareil",
234
- "deviceNamePlaceholder": "par exemple iPhone 15",
235
- "removeDevice": "Supprimer l'appareil",
236
- "failedToGenerateToken": "Impossible de générer le jeton",
237
- "removeDeviceConfirm": "Êtes-vous sûr de vouloir supprimer {{deviceName}}? Cet appareil devra être relié à nouveau pour se reconnecter.",
238
- "externalUrlBanner": "Utiliser un proxy inversé ou accéder à distance ? Définissez votre",
239
- "externalUrlBannerLink": "URL externe",
240
- "externalUrlBannerSuffix": "pour que l'application mobile puisse se connecter à votre serveur."
868
+ "realtimeError": "Erreur en temps réel",
869
+ "removeServer": "Supprimer le serveur",
870
+ "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.",
871
+ "reorder": "",
872
+ "selectAccountHelp": "Sélectionnez le compte Plex dont vous voulez découvrir les serveurs.",
873
+ "selectPlexAccount": "Sélectionnez le compte Plex",
874
+ "serverColor": "Couleur du serveur",
875
+ "serverColorDesc": "Utilisé pour l'attribution visuelle dans la vue multi-serveur",
876
+ "serverName": "Nom du serveur",
877
+ "serverNamePlaceholder": "Mon serveur multimédia",
878
+ "serverType": "Type de serveur",
879
+ "serverUrl": "URL du serveur",
880
+ "serverUrlHelp": "URL directe vers votre serveur Jellyfin ou Emby. Utilisez IP:port pour une fiabilité optimale.",
881
+ "serverUrlHelpEmby": "L'URL où votre serveur Emby est accessible",
882
+ "serverUrlHelpJellyfin": "L'URL où votre serveur Jellyfin est accessible",
883
+ "serverUrlPlaceholder": "http://192.168.1.100:8096",
884
+ "setupRealtime": "Configurer les mises à jour en temps réel",
885
+ "syncInterval": "Intervalle de synchronisation",
886
+ "testConnection": "Tester la connexion",
887
+ "title": "Serveurs connectés",
888
+ "updateHint": "Ou cliquez sur Mettre à jour ci-dessous pour enregistrer uniquement le changement de nom.",
889
+ "updating": "Mise à jour en cours...",
890
+ "version": {
891
+ "installed": "Version {{version}}",
892
+ "upToDate": "à jour",
893
+ "updateAvailable": "Version {{version}} disponible"
894
+ }
895
+ },
896
+ "shared": {
897
+ "timezone": {
898
+ "empty": "",
899
+ "other": "",
900
+ "placeholder": "",
901
+ "search": ""
902
+ }
241
903
  },
242
904
  "tailscale": {
243
- "title": "VPN Tailscale",
244
- "description": "",
245
- "notAvailable": "Le binaire de Tailscale est introuvable. Cette fonctionnalité n'est uniquement disponible que lorsque vous utilisez l'image Docker officielle.",
246
- "disabledDescription": "Activez Tailscale pour placer Tracearr sur votre tailnet privé. Aucune redirection de port ni reverse proxy requis.",
247
- "hostnameLabel": "Nom d'hôte de l'appareil",
248
- "hostnameHint": "Nom personnalisé facultatif pour cet appareil sur votre tailnet. Lettres, chiffres et tirets uniquement.",
249
- "enable": "Activer Tailscale",
250
- "disable": "Désactiver Tailscale",
251
- "starting": "Démarrage de Tailscale...",
252
- "stopping": "Arrêt de Tailscale...",
253
- "awaitingAuth": "En attente d'autorisation...",
254
905
  "authorize": "Autoriser dans Tailscale",
906
+ "awaitingAuth": "En attente d'autorisation...",
255
907
  "connected": "Tailscale est connecté. Votre instance Tracearr est disponible sur le tailnet.",
256
- "hostname": "Nom d'hôte",
908
+ "description": "",
909
+ "disable": "Désactiver Tailscale",
910
+ "disableConfirmDescription": "Cela déconnectera Tracearr de votre tailnet. Vous pourrez le réactiver sans avoir à l'autoriser de nouveau.",
911
+ "disableConfirmTitle": "Désactiver Tailscale ?",
912
+ "disabledDescription": "Activez Tailscale pour placer Tracearr sur votre tailnet privé. Aucune redirection de port ni reverse proxy requis.",
257
913
  "dnsName": "Nom du DNS",
258
- "tailnetUrl": "URL",
259
- "showLogs": "Afficher les journaux",
260
- "hideLogs": "Masquer les journaux",
261
- "noLogs": "Aucune journalisation de sortie disponible.",
914
+ "enable": "Activer Tailscale",
262
915
  "exitNodeNone": "Aucun",
263
916
  "exitNodeOffline": "(hors ligne)",
264
- "unknownError": "Une erreur inconnue s'est produite.",
265
- "disableConfirmTitle": "Désactiver Tailscale ?",
266
- "disableConfirmDescription": "Cela déconnectera Tracearr de votre tailnet. Vous pourrez le réactiver sans avoir à l'autoriser de nouveau.",
267
- "resetConfirmTitle": "Réinitialiser Tailscale ?",
917
+ "hideLogs": "Masquer les journaux",
918
+ "hostname": "Nom d'hôte",
919
+ "hostnameHint": "Nom personnalisé facultatif pour cet appareil sur votre tailnet. Lettres, chiffres et tirets uniquement.",
920
+ "hostnameLabel": "Nom d'hôte de l'appareil",
921
+ "noLogs": "Aucune journalisation de sortie disponible.",
922
+ "notAvailable": "Le binaire de Tailscale est introuvable. Cette fonctionnalité n'est uniquement disponible que lorsque vous utilisez l'image Docker officielle.",
268
923
  "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.",
924
+ "resetConfirmTitle": "Réinitialiser Tailscale ?",
925
+ "showLogs": "Afficher les journaux",
926
+ "starting": "Démarrage de Tailscale...",
927
+ "stopping": "Arrêt de Tailscale...",
928
+ "tailnetUrl": "URL",
929
+ "title": "VPN Tailscale",
269
930
  "toast": {
931
+ "disableFailed": "Échec de la désactivation de Tailscale",
270
932
  "disabled": "Tailscale a été désactivé.",
271
933
  "enableFailed": "Échec de l'activation de Tailscale",
272
- "disableFailed": "Échec de la désactivation de Tailscale",
273
- "reset": "Tailscale a été réinitialisé.",
274
- "resetFailed": "Échec de la réinitialisation de Tailscale",
934
+ "exitNodeFailed": "Impossible de définir l'exit node",
275
935
  "exitNodeSet": "Exit node mis à jour.",
276
- "exitNodeFailed": "Impossible de définir l'exit node"
277
- }
278
- },
279
- "jobs": {
280
- "title": "Tâches d'entretien",
281
- "description": "",
282
- "normalization": "Normalisation",
283
- "backfill": "Remplissage",
284
- "cleanup": "Nettoyage",
285
- "running": "en cours d'exécution",
286
- "queued": "mis en file d'attente",
287
- "delayed": "différé",
288
- "waiting": "En attente",
289
- "runningState": "En cours d'exécution",
290
- "runJob": "Exécuter le Job",
291
- "processed": "traité",
292
- "updated": "Mis à jour",
293
- "unchanged": "inchangé",
294
- "errors": "erreurs",
295
- "lastJobCompleted": "Dernière tâche terminée avec succès",
296
- "lastJobFailed": "La dernière tâche a échoué",
297
- "jobHistory": "Historique des tâches",
298
- "jobHistoryDesc": "Exécution récente d'une tâche de maintenance",
299
- "runConfirm": "Exécuter {{name}}?",
300
- "mayTakeAWhile": "Cela peut prendre un certain temps",
301
- "mayTakeAWhileDesc": "Cette tâche peut prendre plusieurs minutes selon la taille de votre bibliothèque.",
302
- "startJob": "Commencer la tâche"
303
- },
304
- "advanced": {
305
- "title": "Réglages avancés",
306
- "externalUrl": "URL externe",
307
- "trustProxy": "En-têtes de confiance du Proxy",
308
- "reverseProxy": "Proxy inversé",
309
- "connectionScenarios": "Scénarios de connexion"
310
- },
311
- "accessControl": {
312
- "title": "Contrôle d'accès",
313
- "description": "Configurer qui peut accéder à Tracearr",
314
- "allowGuestAccess": "Autoriser l'accès aux invités",
315
- "allowGuestAccessDesc": "",
316
- "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é\"."
317
- },
318
- "import": {
319
- "title": "Importer des données",
320
- "jellystat": "Importer depuis Jellystat",
321
- "tautulli": "Importer depuis Tautulli",
322
- "importProgress": "Progression de l'import",
323
- "importComplete": "Importation terminée",
324
- "importFailed": "Échec de l'importation",
325
- "processed": "Traité",
326
- "page": "Page",
327
- "imported": "Importé",
328
- "skipped": "Ignoré",
329
- "enriched": "Enrichi",
330
- "errors": "Erreurs",
331
- "noServers": "Aucun serveur connecté",
332
- "noServersHint": "Vous avez besoin d'au moins un serveur connecté pour importer des données.",
333
- "tautulliUrl": "URL Tautulli",
334
- "tautulliUrlPlaceholder": "http://localhost:8001",
335
- "tautulliUrlHelp": "L'URL de votre instance Tautulli.",
336
- "apiKeyHelp": "Trouvé dans les paramètres Tautulli → Interface Web → Clé d'API.",
337
- "testing": "Test en cours...",
338
- "connectToTautulli": "Se connecter à Tautulli",
339
- "importHistory": "Historique d'importation",
340
- "targetServer": "Serveur cible",
341
- "selectPlexServer": "Sélectionnez un serveur Plex",
342
- "overwriteFriendlyNames": "Remplacer les noms conviviaux existants par des noms Tautulli",
343
- "overwriteFriendlyNamesHelp": "Les noms d'identité existants dans Tracearr seront remplacés par les noms amicaux de Tautulli.",
344
- "includeStreamDetails": "Inclure les données détaillées du flux (codecs, débit, résolution)",
345
- "includeStreamDetailsHelp": "Importe des informations de flux supplémentaires. Peut augmenter considérablement le temps d'importation.",
346
- "importing": "Importation en cours...",
347
- "startImport": "Commencer l'importation",
348
- "howItWorks": "Comment fonctionne l'import",
349
- "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.",
350
- "recordsMayBeSkipped": "Les enregistrements peuvent être ignorés si :",
351
- "selectTargetServer": "Sélectionnez le serveur cible",
352
- "selectJellyfinServer": "Sélectionnez un serveur Jellyfin ou Emby",
353
- "uploadJellystatBackup": "Télécharger la sauvegarde Jellystat",
354
- "exportBackupHint": "Exporter une sauvegarde d'activité depuis Jellystat",
355
- "exportBackupHelp": "Dans Jellystat, allez dans Paramètres → Sauvegarde → Sauvegarde d'activités pour exporter vos données.",
356
- "importOptions": "Options d'importation",
357
- "enrichMetadata": "Enrichir avec les métadonnées du média (recommandé)",
358
- "enrichMetadataHelp": "Récupère des métadonnées supplémentaires depuis votre serveur multimédia pour les sessions importées.",
359
- "updateExistingRecords": "Mettre à jour les enregistrements existants avec les détails du flux",
360
- "updateExistingRecordsHelp": "Les enregistrements précédemment importés seront mis à jour avec les données de qualité du flux.",
361
- "pleaseEnterDetails": "Veuillez entrer l'URL et la clé API de Tautulli",
362
- "testingConnection": "Test de la connexion...",
363
- "pleaseSelectJsonFile": "Veuillez sélectionner un fichier JSON",
364
- "uploadingBackup": "Téléchargement du fichier de sauvegarde...",
365
- "importHistoryDesc": "Importer des données historiques de surveillance à partir de sources externes",
366
- "plex": "Plex (Tautulli)",
367
- "jellyfinEmby": "Jellyfin/Emby (Jellystat)",
368
- "step1": "1",
369
- "step2": "2",
370
- "apiKeyPlaceholder": "Votre clé API Tautulli",
371
- "skipUserNotFoundPlex": "Utilisateur introuvable — L'utilisateur Plex n'existe pas dans Tracearr. Synchronisez d'abord votre serveur pour ajouter tous les utilisateurs.",
372
- "skipDuplicate": "Dupliquer la session — La session a déjà été importée précédemment.",
373
- "skipInProgress": "Session en cours — Les sessions actives/incomplètes sans identifiant de référence sont ignorées.",
374
- "skipUserNotFoundJellyfin": "Utilisateur introuvable — L'utilisateur Jellyfin/Emby n'existe pas dans Tracearr. Synchronisez d'abord votre serveur pour ajouter tous les utilisateurs.",
375
- "skipSyncHint": "Si plusieurs enregistrements sont ignorés, assurez-vous que vous avez récemment synchronisé votre serveur dans Paramètres → Serveurs.",
376
- "importInProgressPercent": "Importation en cours ({{percent}}% terminé)...",
377
- "importInProgressGeneric": "Importation en cours...",
378
- "startingImport": "Démarrage de l'importation...",
379
- "connectedFound": "Connecté ! Utilisateurs {{users}} trouvés et enregistrements de l'historique {{records}}.",
380
- "playbackReporting": "Plugin de rapport de lecture",
381
- "playbackReportingDesc": "Importer l'historique directement à partir du plugin de rapport de lecture installé sur votre serveur Jellyfin ou Emby. Aucun export de fichier nécessaire.",
382
- "checkPlugin": "Vérifier le Plugin",
383
- "checkingPlugin": "Vérification...",
384
- "pluginFound": "Plugin trouvé: enregistrements {{records}} de {{oldestDate}} à {{newestDate}}",
385
- "pluginNotInstalled": "Le plugin de rapport de lecture n'est pas installé sur ce serveur, ou Tracearr ne peut pas l'atteindre. Installez-le à partir du catalogue de plugins du serveur pour commencer à enregistrer l'historique, ou utilisez l'importation de Jellystat ci-dessous.",
386
- "serverTimezone": "Fuseau horaire du serveur",
387
- "serverTimezoneHelp": "Doit correspondre au fuseau horaire configuré sur l'hôte de votre serveur multimédia, et non au fuseau horaire de votre navigateur. Les horodatages des rapports de lecture sont stockés à l'heure du serveur local.",
388
- "importFullRange": "Importer l'historique complet",
389
- "importFullRangeHelp": "Par défaut, seul l'historique plus ancien que la première session tracée de Tracearr pour ce serveur est importé, de sorte que les sessions que Tracearr déjà enregistrées ne sont jamais dupliquées. Activez cette option pour importer l'historique entier du plugin, indépendamment du chevauchement, si votre historique Tracearr a des lacunes. Les doublons exacts sont toujours ignorés.",
390
- "overlapSkipped": "{{count}} ont été ignorés car ils se chevauchaient",
391
- "duplicates": "Les doublons {{count}} ont été ignorés",
392
- "skipOverlap": "Recouvrement de l'enregistrement - l'horodatage tombe dans la période que Tracearr suit déjà pour ce serveur. Activez l'importation complète pour l'inclure.",
393
- "skipDuplicatePlugin": "Enregistrement en double - déjà importé directement ou arrivé plus tôt via une importation Jellystat des mêmes données de plugin."
394
- },
395
- "plex": {
396
- "signInWithPlex": "Se connecter avec Plex",
397
- "signUpWithPlex": "S'inscrire avec Plex",
398
- "selectServer": "Sélectionner un serveur",
399
- "chooseServer": "Choisir le serveur Plex à surveiller"
400
- },
401
- "account": {
402
- "createAccount": "Créer un compte",
403
- "email": "E-mail",
404
- "password": "Mot de passe",
405
- "displayName": "Nom d'affichage",
406
- "createYourAccount": "Créez votre compte pour démarrer",
407
- "signInToAccount": "Connectez-vous à votre compte",
408
- "useLocalAccount": "Utiliser un compte local à la place"
936
+ "reset": "Tailscale a été réinitialisé.",
937
+ "resetFailed": "Échec de la réinitialisation de Tailscale"
938
+ },
939
+ "unknownError": "Une erreur inconnue s'est produite."
409
940
  },
941
+ "title": "Réglages",
410
942
  "update": {
411
- "title": "Mise à jour disponible",
412
- "releaseNotes": "Notes de version",
413
- "updateCommand": "Commande de mise à jour",
414
- "pullInstructions": "Après avoir réalisé le pull Docker, redémarrez cotre conteneur pour appliquer la modification.",
415
- "stableRelease": "Version stable",
416
943
  "betaUpdate": "Mise à jour bêta",
417
944
  "newVersion": "Nouvelle version",
945
+ "pullInstructions": "Après avoir réalisé le pull Docker, redémarrez cotre conteneur pour appliquer la modification.",
946
+ "releaseNotes": "Notes de version",
947
+ "stableRelease": "Version stable",
948
+ "title": "Mise à jour disponible",
949
+ "updateCommand": "Commande de mise à jour",
418
950
  "versionAvailable": "Version {{version}} disponible"
419
- },
420
- "serverHealth": {
421
- "unreachable": "{{serverName}} est inaccessible",
422
- "multipleUnreachable": "{{count}} serveurs injoignables : {{serverNames}}"
423
- },
424
- "ipWarning": {
425
- "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.",
426
- "acknowledge": "Compris"
427
- },
428
- "backup": {
429
- "title": "Sauvegarde",
430
- "backToBackups": "Retour aux sauvegardes",
431
- "description": "Sauvegardez et restaurez vos données Tracearr",
432
- "createBackup": "Créer une sauvegarde",
433
- "creating": "Création de la sauvegarde...",
434
- "uploadBackup": "Téléverser une sauvegarde",
435
- "uploading": "Téléversement...",
436
- "databaseSize": "Taille actuelle de la base de données : {{size}}",
437
- "freeSpace": "Espace libre dans le répertoire de sauvegarde : {{size}}",
438
- "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.",
439
- "backupHistory": "Historique des sauvegardes",
440
- "noBackups": "Aucune sauvegarde pour le moment. Créez votre première sauvegarde ci-dessus.",
441
- "filename": "Nom du fichier",
442
- "size": "Taille",
443
- "date": "Date",
444
- "type": "Type",
445
- "version": "Version",
446
- "actions": "Actions",
447
- "typeManual": "Manuelle",
448
- "typeScheduled": "Planifiée",
449
- "typeUploaded": "Téléversé",
450
- "restoreAction": "Restaurer",
451
- "deleteConfirmTitle": "Supprimer la sauvegarde",
452
- "deleteConfirmDescription": "Êtes-vous sûr de vouloir supprimer cette sauvegarde ? Cette action est irréversible.",
453
- "schedule": "Sauvegardes planifiées",
454
- "scheduleType": "Planification",
455
- "scheduleDisabled": "Désactivé",
456
- "scheduleDaily": "Journalière",
457
- "scheduleWeekly": "Hebdomadaire",
458
- "scheduleMonthly": "Mensuelle",
459
- "scheduleTime": "Heure ({{timezone}})",
460
- "scheduleDayOfWeek": "Jour de la semaine",
461
- "scheduleDayOfMonth": "Jour du mois",
462
- "scheduleDayOfMonthHint": "Pour les mois comportant moins de jours, la sauvegarde est effectuée le dernier jour du mois.",
463
- "retentionCount": "Garder les dernières :",
464
- "retentionSuffix": "sauvegardes planifiées",
465
- "daySun": "Dimanche",
466
- "dayMon": "Lundi",
467
- "dayTue": "Mardi",
468
- "dayWed": "Mercredi",
469
- "dayThu": "Jeudi",
470
- "dayFri": "Vendredi",
471
- "daySat": "Samedi",
472
- "restore": {
473
- "title": "Restaurer la sauvegarde",
474
- "selectedBackup": "Sauvegarde sélectionnée",
475
- "databaseSize": "Taille de la base de données",
476
- "sessions": "Sessions",
477
- "users": "Utilisateurs",
478
- "servers": "Serveurs",
479
- "automations": "Automatisations",
480
- "libraryItems": "Éléments de la bibliothèque",
481
- "tables": "Tableaux",
482
- "warning": "La restauration remplacera toutes les données existantes. Vous devrez vous reconnecter une fois la restauration complétée.",
483
- "confirmLabel": "Je comprends que cela remplacera toutes les données",
484
- "confirm": "Démarrer la restauration",
485
- "complete": "Restauration effectuée avec succès. La page s'actualisera sous peu.",
486
- "failed": "Échec de la restauration",
487
- "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.",
488
- "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.",
489
- "tsVersionMismatch": "La sauvegarde a été créée avec TimescaleDB {{backupVersion}}, mais ce serveur ne prend en charge que jusqu'à TimescaleDB {{serverVersion}}."
490
- },
491
- "toast": {
492
- "backupCreated": "Sauvegarde créée avec succès",
493
- "backupCreateFailed": "Échec de création de la sauvegarde",
494
- "backupUploaded": "Sauvegarde téléversée avec succès",
495
- "backupUploadFailed": "Échec du téléversement de la sauvegarde",
496
- "backupDeleted": "Sauvegarde supprimée",
497
- "backupDeleteFailed": "Échec de suppression de la sauvegarde",
498
- "restoreStarted": "La restauration a démarré",
499
- "restoreStartFailed": "Échec du démarrage de la restauration",
500
- "scheduleSaved": "Planification de la sauvegarde enregistrée",
501
- "scheduleError": "Échec de l'enregistrement de la planification de la sauvegarde"
502
- }
503
951
  }
504
952
  }