@tracearr/translations 2.3.0-beta.4 → 2.3.0-beta.6

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