@tracearr/translations 2.2.0-beta.3 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (365) hide show
  1. package/dist/config.d.ts +2 -0
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.mobile.d.ts +2 -0
  4. package/dist/config.mobile.d.ts.map +1 -1
  5. package/dist/locales/af-ZA/common.json +313 -313
  6. package/dist/locales/af-ZA/mobile.json +138 -138
  7. package/dist/locales/af-ZA/nav.json +30 -30
  8. package/dist/locales/af-ZA/notifications.json +228 -228
  9. package/dist/locales/af-ZA/pages.json +1776 -1775
  10. package/dist/locales/af-ZA/settings.json +483 -483
  11. package/dist/locales/ar-SA/common.json +289 -289
  12. package/dist/locales/ar-SA/mobile.json +96 -96
  13. package/dist/locales/ar-SA/nav.json +8 -8
  14. package/dist/locales/ar-SA/notifications.json +227 -227
  15. package/dist/locales/ar-SA/pages.json +1779 -1778
  16. package/dist/locales/ar-SA/settings.json +452 -452
  17. package/dist/locales/ca-ES/common.json +286 -286
  18. package/dist/locales/ca-ES/mobile.json +125 -125
  19. package/dist/locales/ca-ES/nav.json +8 -8
  20. package/dist/locales/ca-ES/notifications.json +228 -228
  21. package/dist/locales/ca-ES/pages.json +1775 -1774
  22. package/dist/locales/ca-ES/settings.json +471 -471
  23. package/dist/locales/cs-CZ/common.json +284 -284
  24. package/dist/locales/cs-CZ/mobile.json +99 -99
  25. package/dist/locales/cs-CZ/nav.json +8 -8
  26. package/dist/locales/cs-CZ/notifications.json +226 -226
  27. package/dist/locales/cs-CZ/pages.json +1766 -1765
  28. package/dist/locales/cs-CZ/settings.json +451 -451
  29. package/dist/locales/da-DK/common.json +284 -284
  30. package/dist/locales/da-DK/mobile.json +99 -99
  31. package/dist/locales/da-DK/nav.json +9 -9
  32. package/dist/locales/da-DK/notifications.json +226 -226
  33. package/dist/locales/da-DK/pages.json +1775 -1774
  34. package/dist/locales/da-DK/settings.json +451 -451
  35. package/dist/locales/de-DE/common.json +285 -285
  36. package/dist/locales/de-DE/mobile.json +102 -102
  37. package/dist/locales/de-DE/nav.json +10 -10
  38. package/dist/locales/de-DE/notifications.json +226 -226
  39. package/dist/locales/de-DE/pages.json +1775 -1774
  40. package/dist/locales/de-DE/settings.json +451 -451
  41. package/dist/locales/el-GR/common.json +283 -283
  42. package/dist/locales/el-GR/mobile.json +97 -97
  43. package/dist/locales/el-GR/nav.json +8 -8
  44. package/dist/locales/el-GR/notifications.json +226 -226
  45. package/dist/locales/el-GR/pages.json +1781 -1780
  46. package/dist/locales/el-GR/settings.json +451 -451
  47. package/dist/locales/en/pages.json +2 -1
  48. package/dist/locales/en-US/common.json +280 -280
  49. package/dist/locales/en-US/nav.json +20 -20
  50. package/dist/locales/en-US/notifications.json +222 -222
  51. package/dist/locales/en-US/pages.json +1553 -1552
  52. package/dist/locales/en-US/settings.json +432 -432
  53. package/dist/locales/es-ES/common.json +283 -283
  54. package/dist/locales/es-ES/mobile.json +96 -96
  55. package/dist/locales/es-ES/nav.json +8 -8
  56. package/dist/locales/es-ES/notifications.json +226 -226
  57. package/dist/locales/es-ES/pages.json +1774 -1773
  58. package/dist/locales/es-ES/settings.json +451 -451
  59. package/dist/locales/fi-FI/common.json +284 -284
  60. package/dist/locales/fi-FI/mobile.json +97 -97
  61. package/dist/locales/fi-FI/nav.json +9 -9
  62. package/dist/locales/fi-FI/notifications.json +226 -226
  63. package/dist/locales/fi-FI/pages.json +1776 -1775
  64. package/dist/locales/fi-FI/settings.json +451 -451
  65. package/dist/locales/fr-FR/common.json +284 -284
  66. package/dist/locales/fr-FR/mobile.json +10 -10
  67. package/dist/locales/fr-FR/nav.json +11 -11
  68. package/dist/locales/fr-FR/notifications.json +226 -226
  69. package/dist/locales/fr-FR/pages.json +1762 -1761
  70. package/dist/locales/fr-FR/settings.json +452 -452
  71. package/dist/locales/he-IL/common.json +313 -313
  72. package/dist/locales/he-IL/mobile.json +138 -138
  73. package/dist/locales/he-IL/nav.json +30 -30
  74. package/dist/locales/he-IL/notifications.json +228 -228
  75. package/dist/locales/he-IL/pages.json +1796 -1795
  76. package/dist/locales/he-IL/settings.json +483 -483
  77. package/dist/locales/hu-HU/common.json +298 -298
  78. package/dist/locales/hu-HU/mobile.json +138 -138
  79. package/dist/locales/hu-HU/nav.json +30 -30
  80. package/dist/locales/hu-HU/notifications.json +228 -228
  81. package/dist/locales/hu-HU/pages.json +1792 -1791
  82. package/dist/locales/hu-HU/settings.json +482 -482
  83. package/dist/locales/it-IT/common.json +284 -284
  84. package/dist/locales/it-IT/mobile.json +101 -101
  85. package/dist/locales/it-IT/nav.json +10 -10
  86. package/dist/locales/it-IT/notifications.json +227 -227
  87. package/dist/locales/it-IT/pages.json +1779 -1778
  88. package/dist/locales/it-IT/settings.json +451 -451
  89. package/dist/locales/ja-JP/common.json +283 -283
  90. package/dist/locales/ja-JP/mobile.json +98 -98
  91. package/dist/locales/ja-JP/nav.json +9 -9
  92. package/dist/locales/ja-JP/notifications.json +226 -226
  93. package/dist/locales/ja-JP/pages.json +1779 -1778
  94. package/dist/locales/ja-JP/settings.json +451 -451
  95. package/dist/locales/ko-KR/common.json +313 -313
  96. package/dist/locales/ko-KR/mobile.json +138 -138
  97. package/dist/locales/ko-KR/nav.json +30 -30
  98. package/dist/locales/ko-KR/notifications.json +228 -228
  99. package/dist/locales/ko-KR/pages.json +1796 -1795
  100. package/dist/locales/ko-KR/settings.json +483 -483
  101. package/dist/locales/nl-NL/common.json +283 -283
  102. package/dist/locales/nl-NL/mobile.json +91 -91
  103. package/dist/locales/nl-NL/nav.json +10 -10
  104. package/dist/locales/nl-NL/notifications.json +226 -226
  105. package/dist/locales/nl-NL/pages.json +1768 -1767
  106. package/dist/locales/nl-NL/settings.json +444 -444
  107. package/dist/locales/no-NO/common.json +283 -283
  108. package/dist/locales/no-NO/mobile.json +96 -96
  109. package/dist/locales/no-NO/nav.json +8 -8
  110. package/dist/locales/no-NO/notifications.json +226 -226
  111. package/dist/locales/no-NO/pages.json +1778 -1777
  112. package/dist/locales/no-NO/settings.json +451 -451
  113. package/dist/locales/pl-PL/common.json +283 -283
  114. package/dist/locales/pl-PL/mobile.json +94 -94
  115. package/dist/locales/pl-PL/nav.json +8 -8
  116. package/dist/locales/pl-PL/notifications.json +226 -226
  117. package/dist/locales/pl-PL/pages.json +1778 -1777
  118. package/dist/locales/pl-PL/settings.json +451 -451
  119. package/dist/locales/pt-BR/common.json +286 -286
  120. package/dist/locales/pt-BR/mobile.json +138 -138
  121. package/dist/locales/pt-BR/nav.json +17 -17
  122. package/dist/locales/pt-BR/notifications.json +226 -226
  123. package/dist/locales/pt-BR/pages.json +1781 -1780
  124. package/dist/locales/pt-BR/settings.json +454 -454
  125. package/dist/locales/pt-PT/common.json +289 -289
  126. package/dist/locales/pt-PT/mobile.json +97 -97
  127. package/dist/locales/pt-PT/nav.json +9 -9
  128. package/dist/locales/pt-PT/notifications.json +226 -226
  129. package/dist/locales/pt-PT/pages.json +1780 -1779
  130. package/dist/locales/pt-PT/settings.json +452 -452
  131. package/dist/locales/ro-RO/common.json +283 -283
  132. package/dist/locales/ro-RO/mobile.json +98 -98
  133. package/dist/locales/ro-RO/nav.json +9 -9
  134. package/dist/locales/ro-RO/notifications.json +226 -226
  135. package/dist/locales/ro-RO/pages.json +1779 -1778
  136. package/dist/locales/ro-RO/settings.json +451 -451
  137. package/dist/locales/ru-RU/common.json +288 -288
  138. package/dist/locales/ru-RU/mobile.json +97 -97
  139. package/dist/locales/ru-RU/nav.json +8 -8
  140. package/dist/locales/ru-RU/notifications.json +226 -226
  141. package/dist/locales/ru-RU/pages.json +1781 -1780
  142. package/dist/locales/ru-RU/settings.json +451 -451
  143. package/dist/locales/sr-SP/common.json +313 -313
  144. package/dist/locales/sr-SP/mobile.json +138 -138
  145. package/dist/locales/sr-SP/nav.json +30 -30
  146. package/dist/locales/sr-SP/notifications.json +228 -228
  147. package/dist/locales/sr-SP/pages.json +1796 -1795
  148. package/dist/locales/sr-SP/settings.json +483 -483
  149. package/dist/locales/sv-SE/common.json +284 -284
  150. package/dist/locales/sv-SE/mobile.json +100 -100
  151. package/dist/locales/sv-SE/nav.json +9 -9
  152. package/dist/locales/sv-SE/notifications.json +226 -226
  153. package/dist/locales/sv-SE/pages.json +1777 -1776
  154. package/dist/locales/sv-SE/settings.json +451 -451
  155. package/dist/locales/tr-TR/common.json +313 -313
  156. package/dist/locales/tr-TR/mobile.json +138 -138
  157. package/dist/locales/tr-TR/nav.json +30 -30
  158. package/dist/locales/tr-TR/notifications.json +228 -228
  159. package/dist/locales/tr-TR/pages.json +1792 -1791
  160. package/dist/locales/tr-TR/settings.json +483 -483
  161. package/dist/locales/uk-UA/common.json +283 -283
  162. package/dist/locales/uk-UA/mobile.json +98 -98
  163. package/dist/locales/uk-UA/nav.json +8 -8
  164. package/dist/locales/uk-UA/notifications.json +226 -226
  165. package/dist/locales/uk-UA/pages.json +1779 -1778
  166. package/dist/locales/uk-UA/settings.json +451 -451
  167. package/dist/locales/vi-VN/common.json +313 -313
  168. package/dist/locales/vi-VN/mobile.json +138 -138
  169. package/dist/locales/vi-VN/nav.json +30 -30
  170. package/dist/locales/vi-VN/notifications.json +228 -228
  171. package/dist/locales/vi-VN/pages.json +1796 -1795
  172. package/dist/locales/vi-VN/settings.json +483 -483
  173. package/dist/locales/zh-CN/common.json +283 -283
  174. package/dist/locales/zh-CN/mobile.json +95 -95
  175. package/dist/locales/zh-CN/nav.json +8 -8
  176. package/dist/locales/zh-CN/notifications.json +226 -226
  177. package/dist/locales/zh-CN/pages.json +1778 -1777
  178. package/dist/locales/zh-CN/settings.json +451 -451
  179. package/dist/locales/zh-TW/common.json +293 -293
  180. package/dist/locales/zh-TW/mobile.json +137 -137
  181. package/dist/locales/zh-TW/nav.json +30 -30
  182. package/dist/locales/zh-TW/notifications.json +228 -228
  183. package/dist/locales/zh-TW/pages.json +1798 -1797
  184. package/dist/locales/zh-TW/settings.json +482 -482
  185. package/package.json +3 -2
  186. package/src/locales/af-ZA/common.json +313 -313
  187. package/src/locales/af-ZA/mobile.json +138 -138
  188. package/src/locales/af-ZA/nav.json +30 -30
  189. package/src/locales/af-ZA/notifications.json +228 -228
  190. package/src/locales/af-ZA/pages.json +1776 -1775
  191. package/src/locales/af-ZA/settings.json +483 -483
  192. package/src/locales/ar-SA/common.json +289 -289
  193. package/src/locales/ar-SA/mobile.json +96 -96
  194. package/src/locales/ar-SA/nav.json +8 -8
  195. package/src/locales/ar-SA/notifications.json +227 -227
  196. package/src/locales/ar-SA/pages.json +1779 -1778
  197. package/src/locales/ar-SA/settings.json +452 -452
  198. package/src/locales/ca-ES/common.json +286 -286
  199. package/src/locales/ca-ES/mobile.json +125 -125
  200. package/src/locales/ca-ES/nav.json +8 -8
  201. package/src/locales/ca-ES/notifications.json +228 -228
  202. package/src/locales/ca-ES/pages.json +1775 -1774
  203. package/src/locales/ca-ES/settings.json +471 -471
  204. package/src/locales/cs-CZ/common.json +284 -284
  205. package/src/locales/cs-CZ/mobile.json +99 -99
  206. package/src/locales/cs-CZ/nav.json +8 -8
  207. package/src/locales/cs-CZ/notifications.json +226 -226
  208. package/src/locales/cs-CZ/pages.json +1766 -1765
  209. package/src/locales/cs-CZ/settings.json +451 -451
  210. package/src/locales/da-DK/common.json +284 -284
  211. package/src/locales/da-DK/mobile.json +99 -99
  212. package/src/locales/da-DK/nav.json +9 -9
  213. package/src/locales/da-DK/notifications.json +226 -226
  214. package/src/locales/da-DK/pages.json +1775 -1774
  215. package/src/locales/da-DK/settings.json +451 -451
  216. package/src/locales/de-DE/common.json +285 -285
  217. package/src/locales/de-DE/mobile.json +102 -102
  218. package/src/locales/de-DE/nav.json +10 -10
  219. package/src/locales/de-DE/notifications.json +226 -226
  220. package/src/locales/de-DE/pages.json +1775 -1774
  221. package/src/locales/de-DE/settings.json +451 -451
  222. package/src/locales/el-GR/common.json +283 -283
  223. package/src/locales/el-GR/mobile.json +97 -97
  224. package/src/locales/el-GR/nav.json +8 -8
  225. package/src/locales/el-GR/notifications.json +226 -226
  226. package/src/locales/el-GR/pages.json +1781 -1780
  227. package/src/locales/el-GR/settings.json +451 -451
  228. package/src/locales/en/pages.json +2 -1
  229. package/src/locales/en-US/common.json +280 -280
  230. package/src/locales/en-US/nav.json +20 -20
  231. package/src/locales/en-US/notifications.json +222 -222
  232. package/src/locales/en-US/pages.json +1553 -1552
  233. package/src/locales/en-US/settings.json +432 -432
  234. package/src/locales/es-ES/common.json +283 -283
  235. package/src/locales/es-ES/mobile.json +96 -96
  236. package/src/locales/es-ES/nav.json +8 -8
  237. package/src/locales/es-ES/notifications.json +226 -226
  238. package/src/locales/es-ES/pages.json +1774 -1773
  239. package/src/locales/es-ES/settings.json +451 -451
  240. package/src/locales/fi-FI/common.json +284 -284
  241. package/src/locales/fi-FI/mobile.json +97 -97
  242. package/src/locales/fi-FI/nav.json +9 -9
  243. package/src/locales/fi-FI/notifications.json +226 -226
  244. package/src/locales/fi-FI/pages.json +1776 -1775
  245. package/src/locales/fi-FI/settings.json +451 -451
  246. package/src/locales/fr-FR/common.json +284 -284
  247. package/src/locales/fr-FR/mobile.json +10 -10
  248. package/src/locales/fr-FR/nav.json +11 -11
  249. package/src/locales/fr-FR/notifications.json +226 -226
  250. package/src/locales/fr-FR/pages.json +1762 -1761
  251. package/src/locales/fr-FR/settings.json +452 -452
  252. package/src/locales/he-IL/common.json +313 -313
  253. package/src/locales/he-IL/mobile.json +138 -138
  254. package/src/locales/he-IL/nav.json +30 -30
  255. package/src/locales/he-IL/notifications.json +228 -228
  256. package/src/locales/he-IL/pages.json +1796 -1795
  257. package/src/locales/he-IL/settings.json +483 -483
  258. package/src/locales/hu-HU/common.json +298 -298
  259. package/src/locales/hu-HU/mobile.json +138 -138
  260. package/src/locales/hu-HU/nav.json +30 -30
  261. package/src/locales/hu-HU/notifications.json +228 -228
  262. package/src/locales/hu-HU/pages.json +1792 -1791
  263. package/src/locales/hu-HU/settings.json +482 -482
  264. package/src/locales/it-IT/common.json +284 -284
  265. package/src/locales/it-IT/mobile.json +101 -101
  266. package/src/locales/it-IT/nav.json +10 -10
  267. package/src/locales/it-IT/notifications.json +227 -227
  268. package/src/locales/it-IT/pages.json +1779 -1778
  269. package/src/locales/it-IT/settings.json +451 -451
  270. package/src/locales/ja-JP/common.json +283 -283
  271. package/src/locales/ja-JP/mobile.json +98 -98
  272. package/src/locales/ja-JP/nav.json +9 -9
  273. package/src/locales/ja-JP/notifications.json +226 -226
  274. package/src/locales/ja-JP/pages.json +1779 -1778
  275. package/src/locales/ja-JP/settings.json +451 -451
  276. package/src/locales/ko-KR/common.json +313 -313
  277. package/src/locales/ko-KR/mobile.json +138 -138
  278. package/src/locales/ko-KR/nav.json +30 -30
  279. package/src/locales/ko-KR/notifications.json +228 -228
  280. package/src/locales/ko-KR/pages.json +1796 -1795
  281. package/src/locales/ko-KR/settings.json +483 -483
  282. package/src/locales/nl-NL/common.json +283 -283
  283. package/src/locales/nl-NL/mobile.json +91 -91
  284. package/src/locales/nl-NL/nav.json +10 -10
  285. package/src/locales/nl-NL/notifications.json +226 -226
  286. package/src/locales/nl-NL/pages.json +1768 -1767
  287. package/src/locales/nl-NL/settings.json +444 -444
  288. package/src/locales/no-NO/common.json +283 -283
  289. package/src/locales/no-NO/mobile.json +96 -96
  290. package/src/locales/no-NO/nav.json +8 -8
  291. package/src/locales/no-NO/notifications.json +226 -226
  292. package/src/locales/no-NO/pages.json +1778 -1777
  293. package/src/locales/no-NO/settings.json +451 -451
  294. package/src/locales/pl-PL/common.json +283 -283
  295. package/src/locales/pl-PL/mobile.json +94 -94
  296. package/src/locales/pl-PL/nav.json +8 -8
  297. package/src/locales/pl-PL/notifications.json +226 -226
  298. package/src/locales/pl-PL/pages.json +1778 -1777
  299. package/src/locales/pl-PL/settings.json +451 -451
  300. package/src/locales/pt-BR/common.json +286 -286
  301. package/src/locales/pt-BR/mobile.json +138 -138
  302. package/src/locales/pt-BR/nav.json +17 -17
  303. package/src/locales/pt-BR/notifications.json +226 -226
  304. package/src/locales/pt-BR/pages.json +1781 -1780
  305. package/src/locales/pt-BR/settings.json +454 -454
  306. package/src/locales/pt-PT/common.json +289 -289
  307. package/src/locales/pt-PT/mobile.json +97 -97
  308. package/src/locales/pt-PT/nav.json +9 -9
  309. package/src/locales/pt-PT/notifications.json +226 -226
  310. package/src/locales/pt-PT/pages.json +1780 -1779
  311. package/src/locales/pt-PT/settings.json +452 -452
  312. package/src/locales/ro-RO/common.json +283 -283
  313. package/src/locales/ro-RO/mobile.json +98 -98
  314. package/src/locales/ro-RO/nav.json +9 -9
  315. package/src/locales/ro-RO/notifications.json +226 -226
  316. package/src/locales/ro-RO/pages.json +1779 -1778
  317. package/src/locales/ro-RO/settings.json +451 -451
  318. package/src/locales/ru-RU/common.json +288 -288
  319. package/src/locales/ru-RU/mobile.json +97 -97
  320. package/src/locales/ru-RU/nav.json +8 -8
  321. package/src/locales/ru-RU/notifications.json +226 -226
  322. package/src/locales/ru-RU/pages.json +1781 -1780
  323. package/src/locales/ru-RU/settings.json +451 -451
  324. package/src/locales/sr-SP/common.json +313 -313
  325. package/src/locales/sr-SP/mobile.json +138 -138
  326. package/src/locales/sr-SP/nav.json +30 -30
  327. package/src/locales/sr-SP/notifications.json +228 -228
  328. package/src/locales/sr-SP/pages.json +1796 -1795
  329. package/src/locales/sr-SP/settings.json +483 -483
  330. package/src/locales/sv-SE/common.json +284 -284
  331. package/src/locales/sv-SE/mobile.json +100 -100
  332. package/src/locales/sv-SE/nav.json +9 -9
  333. package/src/locales/sv-SE/notifications.json +226 -226
  334. package/src/locales/sv-SE/pages.json +1777 -1776
  335. package/src/locales/sv-SE/settings.json +451 -451
  336. package/src/locales/tr-TR/common.json +313 -313
  337. package/src/locales/tr-TR/mobile.json +138 -138
  338. package/src/locales/tr-TR/nav.json +30 -30
  339. package/src/locales/tr-TR/notifications.json +228 -228
  340. package/src/locales/tr-TR/pages.json +1792 -1791
  341. package/src/locales/tr-TR/settings.json +483 -483
  342. package/src/locales/uk-UA/common.json +283 -283
  343. package/src/locales/uk-UA/mobile.json +98 -98
  344. package/src/locales/uk-UA/nav.json +8 -8
  345. package/src/locales/uk-UA/notifications.json +226 -226
  346. package/src/locales/uk-UA/pages.json +1779 -1778
  347. package/src/locales/uk-UA/settings.json +451 -451
  348. package/src/locales/vi-VN/common.json +313 -313
  349. package/src/locales/vi-VN/mobile.json +138 -138
  350. package/src/locales/vi-VN/nav.json +30 -30
  351. package/src/locales/vi-VN/notifications.json +228 -228
  352. package/src/locales/vi-VN/pages.json +1796 -1795
  353. package/src/locales/vi-VN/settings.json +483 -483
  354. package/src/locales/zh-CN/common.json +283 -283
  355. package/src/locales/zh-CN/mobile.json +95 -95
  356. package/src/locales/zh-CN/nav.json +8 -8
  357. package/src/locales/zh-CN/notifications.json +226 -226
  358. package/src/locales/zh-CN/pages.json +1778 -1777
  359. package/src/locales/zh-CN/settings.json +451 -451
  360. package/src/locales/zh-TW/common.json +293 -293
  361. package/src/locales/zh-TW/mobile.json +137 -137
  362. package/src/locales/zh-TW/nav.json +30 -30
  363. package/src/locales/zh-TW/notifications.json +228 -228
  364. package/src/locales/zh-TW/pages.json +1798 -1797
  365. package/src/locales/zh-TW/settings.json +482 -482
@@ -1,504 +1,504 @@
1
1
  {
2
- "accessControl": {
3
- "allowGuestAccess": "Allow Guest Access",
4
- "allowGuestAccessDesc": "When disabled, only the server owner can log in to Tracearr",
5
- "description": "Configure who can access Tracearr",
6
- "singleOwnerNote": "Note: When guest access is disabled, only the server owner can sign in. All other users will see an \"Access Denied\" message.",
7
- "title": "Access Control"
8
- },
9
- "account": {
10
- "createAccount": "Create Account",
11
- "createYourAccount": "Create your account to get started",
12
- "displayName": "Display Name",
13
- "email": "Email",
14
- "password": "Password",
15
- "signInToAccount": "Sign in to your account",
16
- "useLocalAccount": "Use local account instead"
17
- },
18
- "advanced": {
19
- "connectionScenarios": "Connection Scenarios",
20
- "externalUrl": "External URL",
21
- "reverseProxy": "Reverse Proxy",
22
- "title": "Advanced Settings",
23
- "trustProxy": "Trust Proxy Headers"
24
- },
25
- "backup": {
26
- "actions": "Actions",
27
- "backToBackups": "Back to Backups",
28
- "backupHistory": "Backup History",
29
- "createBackup": "Create Backup",
30
- "creating": "Creating backup...",
31
- "databaseSize": "Current database size: {{size}}",
32
- "date": "Date",
33
- "dayFri": "Friday",
34
- "dayMon": "Monday",
35
- "daySat": "Saturday",
36
- "daySun": "Sunday",
37
- "dayThu": "Thursday",
38
- "dayTue": "Tuesday",
39
- "dayWed": "Wednesday",
40
- "deleteConfirmDescription": "Are you sure you want to delete this backup? This cannot be undone.",
41
- "deleteConfirmTitle": "Delete Backup",
42
- "description": "Backup and restore your Tracearr data",
43
- "filename": "Filename",
44
- "freeSpace": "Backup directory free space: {{size}}",
45
- "lowDiskSpace": "Low disk space — backups and restores require at least twice the database size in free space.",
46
- "noBackups": "No backups yet. Create your first backup above.",
47
- "restore": {
48
- "automations": "Automations",
49
- "cannotRestore": "Restore requires PostgreSQL superuser privileges. Please ensure your database user has superuser privileges and try again.",
50
- "complete": "Restore completed successfully. The page will refresh shortly.",
51
- "confirm": "Start Restore",
52
- "confirmLabel": "I understand this will replace all data",
53
- "databaseSize": "Database Size",
54
- "failed": "Restore failed",
55
- "libraryItems": "Library Items",
56
- "pgVersionMismatch": "Backup was created on PostgreSQL {{backupVersion}} but this server runs PostgreSQL {{serverVersion}}. Restoring a dump from a newer PostgreSQL version is not supported.",
57
- "selectedBackup": "Selected Backup",
58
- "servers": "Servers",
59
- "sessions": "Sessions",
60
- "tables": "Tables",
61
- "title": "Restore Backup",
62
- "tsVersionMismatch": "Backup was created with TimescaleDB {{backupVersion}} but this server only supports up to TimescaleDB {{serverVersion}}.",
63
- "users": "Users",
64
- "warning": "Restoring will replace all existing data. You will need to re-login after the restore completes."
65
- },
66
- "restoreAction": "Restore",
67
- "retentionCount": "Keep Last",
68
- "retentionSuffix": "scheduled backups",
69
- "schedule": "Scheduled Backups",
70
- "scheduleDaily": "Daily",
71
- "scheduleDayOfMonth": "Day of Month",
72
- "scheduleDayOfMonthHint": "On months with fewer days, the backup runs on the last day.",
73
- "scheduleDayOfWeek": "Day of Week",
74
- "scheduleDisabled": "Disabled",
75
- "scheduleMonthly": "Monthly",
76
- "scheduleTime": "Time ({{timezone}})",
77
- "scheduleType": "Schedule",
78
- "scheduleWeekly": "Weekly",
79
- "size": "Size",
80
- "title": "Backup",
81
- "toast": {
82
- "backupCreateFailed": "Failed to create backup",
83
- "backupCreated": "Backup created successfully",
84
- "backupDeleteFailed": "Failed to delete backup",
85
- "backupDeleted": "Backup deleted",
86
- "backupUploadFailed": "Failed to upload backup",
87
- "backupUploaded": "Backup uploaded successfully",
88
- "restoreStartFailed": "Failed to start restore",
89
- "restoreStarted": "Restore started",
90
- "scheduleError": "Failed to save backup schedule",
91
- "scheduleSaved": "Backup schedule saved"
92
- },
93
- "type": "Type",
94
- "typeManual": "Manual",
95
- "typeScheduled": "Scheduled",
96
- "typeUploaded": "Uploaded",
97
- "uploadBackup": "Upload Backup",
98
- "uploading": "Uploading...",
99
- "version": "Version"
2
+ "title": "설정",
3
+ "tabs": {
4
+ "general": "일반",
5
+ "servers": "서버",
6
+ "notifications": "알림",
7
+ "mobile": "모바일 앱",
8
+ "tailscale": "",
9
+ "import": "가져오기",
10
+ "advanced": "고급",
11
+ "jobs": "작업",
12
+ "accessControl": "접근 제어",
13
+ "backup": "백업"
100
14
  },
101
15
  "general": {
102
- "accentColor": "Accent Color",
103
- "apiDocs": "API Docs",
104
- "apiKeyDesc": "Access the Tracearr API for third-party integrations like Homarr, Home Assistant, etc.",
105
- "apiKeyReadAccess": "Your API key grants full read access to your Tracearr data.",
106
- "apiRateLimit": "API Rate Limit",
107
- "apiRateLimitDesc": "Maximum public API requests per minute per key. Restart required to apply.",
108
- "apiRateLimitSuffix": "/min",
109
- "appearance": "Appearance",
110
- "appearanceDesc": "Customize the look and feel of Tracearr",
111
- "application": "Application",
112
- "applicationDesc": "Configure basic application settings",
113
- "copyToClipboard": "Copy to clipboard",
114
- "cyanDefault": "* Cyan is the default accent color",
115
- "default": "(default)",
116
- "detect": "Detect",
117
- "enhancedGeoIP": "Enhanced GeoIP Lookup",
118
- "enhancedGeoIPDesc": "Use Plex's GeoIP service for more accurate location data. When enabled, IP addresses are sent to plex.tv for lookup. Local MaxMind database is used as fallback.",
119
- "externalAccess": "External Access",
120
- "externalAccessDesc": "Configure how external devices (like mobile apps) connect to your server",
121
- "externalUrl": "External URL",
122
- "externalUrlDesc": "The URL that external devices should use to reach this server. Used for QR codes and mobile app pairing.",
123
- "externalUrlPlaceholder": "https://tracearr.example.com",
124
- "generateApiKeyPrompt": "Generate an API key to enable external integrations.",
125
- "generateKey": "Generate Key",
126
- "helpTranslate": "Help translate Tracearr",
127
- "imperial": "Imperial (mi, mph)",
128
- "iosHttpWarning": "iOS requires HTTPS for external connections. Set up a reverse proxy with SSL.",
129
- "jellyfinPollingNote": "Jellyfin/Emby are polled at the interval above.",
130
- "language": "Language",
131
- "languageDescription": "Choose your preferred display language.",
132
- "localAccount": "Local Account",
133
- "localhostWarning": "Localhost URLs won't work for external devices. Use your LAN IP or a domain name.",
134
- "metric": "Metric (km, km/h)",
135
- "noApiKeyGenerated": "No API key generated",
136
- "plexAccount": "Plex Account",
137
- "plexSseNote": "Plex uses Server-Sent Events (SSE) for near-instant updates — no polling needed.",
138
- "primaryAuth": "Primary Authentication Method",
139
- "publicApiSettings": "Public API",
140
- "publicApiSettingsDesc": "Configure watch-completion thresholds and request limits for the public API",
141
- "regenerate": "Regenerate",
142
- "regenerateApiKey": "Regenerate API Key?",
143
- "regenerateApiKeyDesc": "This will invalidate your current API key. Any integrations using the old key will stop working.",
144
- "sessionSync": "Session Sync",
145
- "sessionSyncDesc": "Enable session tracking for your media servers",
146
- "syncInterval": "Sync Interval",
147
- "syncIntervalDesc": "Polling frequency for Jellyfin/Emby (5-300 seconds)",
148
- "syncIntervalSuffix": "sec",
149
- "theme": "Theme",
150
- "themeDark": "Dark",
151
- "themeLight": "Light",
152
- "themeSystem": "System",
153
- "timeFormat": "Time Format",
154
- "timeFormat12h": "12-hour (1:30 PM)",
155
- "timeFormat24h": "24-hour (13:30)",
156
- "timeFormatDescription": "Choose how times are displayed.",
157
- "timezone": "Timezone",
158
- "title": "General Settings",
159
- "unitSystem": "Unit System",
160
- "unitSystemDesc": "Choose how distances and speeds are displayed",
16
+ "title": "일반 설정",
17
+ "unitSystem": "단위 체계",
18
+ "metric": "미터법(km, km/h)",
19
+ "imperial": "야드파운드법(mi, mph)",
20
+ "timezone": "시간대",
21
+ "primaryAuth": "기본 인증 방식",
22
+ "localAccount": "로컬 계정",
23
+ "plexAccount": "Plex 계정",
24
+ "language": "언어",
25
+ "languageDescription": "표시할 언어를 선택하세요.",
26
+ "helpTranslate": "Tracearr 번역 돕기",
27
+ "timeFormat": "시간 형식",
28
+ "timeFormatDescription": "시간을 표시할 방식을 선택하세요.",
29
+ "timeFormat12h": "12시간제(오후 1:30)",
30
+ "timeFormat24h": "24시간제(13:30)",
31
+ "appearance": "화면 표시",
32
+ "appearanceDesc": "Tracearr의 화면 스타일을 맞춤 설정하세요",
33
+ "theme": "테마",
34
+ "accentColor": "강조 색상",
35
+ "default": "(기본값)",
36
+ "cyanDefault": "* 시안이 기본 강조 색상입니다",
37
+ "themeLight": "밝게",
38
+ "themeDark": "어둡게",
39
+ "themeSystem": "시스템 설정 따르기",
40
+ "application": "애플리케이션",
41
+ "applicationDesc": "기본 애플리케이션 설정을 구성하세요",
42
+ "unitSystemDesc": "거리와 속도를 표시할 방식을 선택하세요",
43
+ "sessionSync": "세션 동기화",
44
+ "sessionSyncDesc": "미디어 서버의 세션 추적을 활성화하세요",
45
+ "syncInterval": "동기화 간격",
46
+ "syncIntervalDesc": "Jellyfin/Emby 폴링 주기(5-300초)",
47
+ "syncIntervalSuffix": "초",
48
+ "plexSseNote": "Plex는 거의 즉시 업데이트되는 Server-Sent Events(SSE)를 사용하므로 폴링이 필요 없습니다.",
49
+ "jellyfinPollingNote": "Jellyfin/Emby는 위 간격으로 폴링됩니다.",
50
+ "enhancedGeoIP": "향상된 GeoIP 조회",
51
+ "enhancedGeoIPDesc": "더 정확한 위치 데이터를 위해 Plex의 GeoIP 서비스를 사용합니다. 활성화하면 조회를 위해 IP 주소가 plex.tv로 전송됩니다. 로컬 MaxMind 데이터베이스는 대체 수단으로 사용됩니다.",
52
+ "externalAccess": "외부 접근",
53
+ "externalAccessDesc": "(모바일 앱 같은) 외부 기기가 서버에 연결하는 방식을 구성하세요",
54
+ "externalUrl": "외부 URL",
55
+ "externalUrlPlaceholder": "",
56
+ "externalUrlDesc": "외부 기기가 이 서버에 접속할 때 사용할 URL입니다. QR 코드와 모바일 앱 페어링에 사용됩니다.",
57
+ "detect": "감지",
58
+ "localhostWarning": "Localhost URL은 외부 기기에서 작동하지 않습니다. LAN IP나 도메인 이름을 사용하세요.",
59
+ "iosHttpWarning": "iOS는 외부 연결에 HTTPS가 필요합니다. SSL이 적용된 리버스 프록시를 설정하세요.",
60
+ "apiKeyDesc": "Homarr, Home Assistant 등 외부 연동에서 Tracearr API에 접근할 수 있습니다.",
61
+ "apiDocs": "API 문서",
62
+ "noApiKeyGenerated": "생성된 API 키가 없습니다",
63
+ "copyToClipboard": "클립보드에 복사",
64
+ "apiKeyReadAccess": "API 키는 Tracearr 데이터에 대한 전체 읽기 권한을 부여합니다.",
65
+ "generateApiKeyPrompt": "외부 연동을 사용하려면 API 키를 생성하세요.",
66
+ "regenerate": "다시 생성",
67
+ "generateKey": "키 생성",
68
+ "regenerateApiKey": "API 키를 다시 생성할까요?",
69
+ "regenerateApiKeyDesc": "현재 API 키가 무효화됩니다. 이전 키를 사용하는 모든 연동은 더 이상 작동하지 않습니다.",
70
+ "publicApiSettings": "",
71
+ "publicApiSettingsDesc": "",
72
+ "watchedThresholdMovie": "",
73
+ "watchedThresholdMovieDesc": "",
74
+ "watchedThresholdTv": "",
75
+ "watchedThresholdTvDesc": "",
76
+ "watchedThresholdMusic": "",
77
+ "watchedThresholdMusicDesc": "",
78
+ "watchedThresholdSuffix": "",
79
+ "apiRateLimit": "",
80
+ "apiRateLimitDesc": "",
81
+ "apiRateLimitSuffix": "",
161
82
  "updateChecks": {
162
- "description": "Tracearr looks for new releases every six hours. Notifications come from whatever automation listens for the update triggers.",
163
- "plugin": "Realtime plugin",
164
- "pluginDesc": "Check for new releases of the Tracearr plugin your Jellyfin and Emby servers stream events through.",
165
- "server": "Media servers",
166
- "serverDesc": "Compare what each Plex, Jellyfin and Emby server runs with the newest release its makers publish.",
167
- "title": "Update checks"
83
+ "title": "",
84
+ "description": "",
85
+ "plugin": "",
86
+ "pluginDesc": "",
87
+ "server": "",
88
+ "serverDesc": ""
168
89
  },
169
90
  "imageCache": {
170
- "title": "Poster cache",
171
- "description": "One copy of each poster, kept on disk until the poster changes. Nothing here is evicted to make room; when the disk runs low the cache stops growing and says so.",
172
- "size": "On disk",
173
- "files": "Files",
174
- "need": "Estimated need",
175
- "needHint": "{{count}} posters × 18 KB",
176
- "free": "Free disk",
177
- "freeOf": "of {{total}}",
178
- "floor": "Keeps free",
179
- "ceiling": "Ceiling",
180
- "lastSweep": "Last sweep",
181
- "never": "not yet",
182
- "diskLimited": "Disk-limited since {{since}}: about {{shortfall}} of posters are not cached.",
183
- "loadError": "Could not load the cache status."
91
+ "title": "",
92
+ "description": "",
93
+ "size": "",
94
+ "files": "",
95
+ "need": "",
96
+ "needHint": "",
97
+ "free": "",
98
+ "freeOf": "",
99
+ "floor": "",
100
+ "ceiling": "",
101
+ "lastSweep": "",
102
+ "never": "",
103
+ "diskLimited": "",
104
+ "loadError": ""
105
+ }
106
+ },
107
+ "servers": {
108
+ "title": "연결된 서버",
109
+ "addServer": "서버 추가",
110
+ "serverName": "서버 이름",
111
+ "serverUrl": "서버 URL",
112
+ "syncInterval": "동기화 간격",
113
+ "testConnection": "연결 테스트",
114
+ "connectionSuccess": "연결되었습니다",
115
+ "connectionFailed": "연결에 실패했습니다",
116
+ "noServersConnected": "연결된 서버가 없습니다",
117
+ "noServersConnectedHint": "Jellyfin 또는 Emby 서버를 연결하려면 \"서버 추가\"를 클릭하세요",
118
+ "serverType": "서버 유형",
119
+ "loadingAccounts": "연결된 Plex 계정을 불러오는 중...",
120
+ "noPlexAccountsLinked": "연결된 Plex 계정이 없습니다",
121
+ "noPlexAccountsLinkedHint": "위에서 Plex 계정을 연결한 뒤 다시 돌아와 서버를 추가하세요.",
122
+ "selectPlexAccount": "Plex 계정 선택",
123
+ "chooseAccount": "계정 선택...",
124
+ "selectAccountHelp": "서버를 검색할 Plex 계정을 선택하세요.",
125
+ "allServersConnected": "모든 서버가 연결됨",
126
+ "allServersConnectedDesc": "이 계정의 모든 서버가 이미 연결되어 있습니다.",
127
+ "serverUrlPlaceholder": "",
128
+ "serverUrlHelp": "Jellyfin 또는 Emby 서버에 직접 연결되는 URL입니다. 안정성을 위해 IP:포트를 사용하는 것이 좋습니다.",
129
+ "serverNamePlaceholder": "내 미디어 서버",
130
+ "apiKeyPlaceholder": "API 키 입력",
131
+ "apiKeyHelp": "미디어 서버 대시보드의 API 키 또는 고급 설정에서 찾을 수 있습니다.",
132
+ "connecting": "연결 중...",
133
+ "connectServer": "서버 연결",
134
+ "removeServer": "서버 제거",
135
+ "removeServerConfirm": "이 서버를 제거할까요? 연결된 세션 데이터는 유지되지만, 이 서버의 새 세션은 더 이상 모니터링할 수 없습니다.",
136
+ "editServer": "서버 수정",
137
+ "editServerDesc": "서버 이름 또는 연결 URL을 업데이트하세요.",
138
+ "serverColor": "서버 색상",
139
+ "serverColorDesc": "여러 서버 보기에서 서버를 구분하는 데 사용됩니다",
140
+ "updating": "업데이트 중...",
141
+ "allFieldsRequired": "모든 항목을 입력해야 합니다",
142
+ "addServerDialogDescPlex": "연결된 계정에서 Plex 서버를 선택하세요.",
143
+ "addServerDialogDescOther": "Jellyfin 또는 Emby 서버를 연결하세요.",
144
+ "description": "연결된 Plex, Jellyfin, Emby 서버를 관리하세요",
145
+ "discoveringServers": "사용 가능한 Plex 서버를 검색하는 중...",
146
+ "discoveringConnections": "연결을 검색하는 중...",
147
+ "plexAccount": "Plex 계정",
148
+ "serverUrlHelpJellyfin": "Jellyfin 서버에 접근할 수 있는 URL입니다",
149
+ "serverUrlHelpEmby": "Emby 서버에 접근할 수 있는 URL입니다",
150
+ "apiKeyHelpJellyfin": "Jellyfin 대시보드 > API 키에서 찾을 수 있습니다",
151
+ "apiKeyHelpEmby": "Emby 서버 > API 키에서 찾을 수 있습니다",
152
+ "plexServerPlaceholder": "내 Plex 서버",
153
+ "plexServerUrlPlaceholder": "",
154
+ "updateHint": "또는 아래 업데이트를 클릭해 이름 변경만 저장하세요.",
155
+ "added": "{{date}} 추가됨",
156
+ "realtimeActive": "실시간 업데이트 활성화됨",
157
+ "pollingMode": "폴링",
158
+ "setupRealtime": "실시간 업데이트 설정",
159
+ "realtimeError": "",
160
+ "checkingConnection": "연결 확인 중…",
161
+ "pluginVersion": "",
162
+ "pluginUpdateAvailable": "",
163
+ "realtimeDialog": {
164
+ "title": "실시간 업데이트 활성화",
165
+ "updateTitle": "",
166
+ "jellyfinDescription": "다음 폴링을 기다리지 않고 즉시 세션 업데이트를 받으려면 Tracearr SSE 플러그인을 설치하세요.",
167
+ "embyDescription": "다음 폴링을 기다리지 않고 즉시 세션 업데이트를 받으려면 Tracearr SSE 플러그인을 설치하세요.",
168
+ "jellyfinUpdateDescription": "",
169
+ "embyUpdateDescription": "",
170
+ "repositoryUrl": "저장소 URL",
171
+ "copyUrl": "URL 복사",
172
+ "jellyfinRepoUrl": "",
173
+ "embyReleasesUrl": "",
174
+ "openReleases": "릴리스 페이지 열기",
175
+ "autoDetectNote": "",
176
+ "close": "닫기",
177
+ "issueBlocked": "",
178
+ "issueRestartRequired": "",
179
+ "issueMalfunctioned": ""
180
+ },
181
+ "posterSource": {
182
+ "title": "",
183
+ "titleDesc": "",
184
+ "label": "",
185
+ "description": "",
186
+ "automatic": "",
187
+ "emptyHint": ""
184
188
  },
185
- "watchedThresholdMovie": "Movie Watched Threshold",
186
- "watchedThresholdMovieDesc": "Percentage of a movie that must be watched before it's marked complete",
187
- "watchedThresholdMusic": "Track Watched Threshold",
188
- "watchedThresholdMusicDesc": "Percentage of a track that must be played before it's marked complete",
189
- "watchedThresholdSuffix": "%",
190
- "watchedThresholdTv": "TV Episode Watched Threshold",
191
- "watchedThresholdTvDesc": "Percentage of an episode that must be watched before it's marked complete"
189
+ "version": {
190
+ "installed": "",
191
+ "upToDate": "",
192
+ "updateAvailable": ""
193
+ }
192
194
  },
193
- "import": {
194
- "apiKeyHelp": "Found in Tautulli Settings → Web Interface → API Key.",
195
- "apiKeyPlaceholder": "Your Tautulli API key",
196
- "checkPlugin": "Check Plugin",
197
- "checkingPlugin": "Checking...",
198
- "connectToTautulli": "Connect to Tautulli",
199
- "connectedFound": "Connected! Found {{users}} users and {{records}} history records.",
200
- "duplicates": "{{count}} duplicates skipped",
201
- "enrichMetadata": "Enrich with media metadata (recommended)",
202
- "enrichMetadataHelp": "Fetches additional metadata from your media server for imported sessions.",
203
- "enriched": "Enriched",
204
- "errors": "Errors",
205
- "exportBackupHelp": "In Jellystat, go to Settings → Backup → Activity Backup to export your data.",
206
- "exportBackupHint": "Export an Activity Backup from Jellystat",
207
- "howItWorks": "How the import works",
208
- "howItWorksDesc": "Tracearr will import all historical watch data from your source. This may take a while depending on the size of your library.",
209
- "importComplete": "Import Complete",
210
- "importFailed": "Import Failed",
211
- "importFullRange": "Import full history",
212
- "importFullRangeHelp": "By default only history older than Tracearr's earliest tracked session for this server is imported, so sessions Tracearr already recorded are never duplicated. Enable this to import the plugin's entire history regardless of overlap, if your Tracearr history has gaps. Exact duplicates are still skipped.",
213
- "importHistory": "Import History",
214
- "importHistoryDesc": "Import historical watch data from external sources",
215
- "importInProgressGeneric": "Import in progress...",
216
- "importInProgressPercent": "Import in progress ({{percent}}% complete)...",
217
- "importOptions": "Import Options",
218
- "importProgress": "Import Progress",
219
- "imported": "Imported",
220
- "importing": "Importing...",
221
- "includeStreamDetails": "Include detailed stream data (codecs, bitrate, resolution)",
222
- "includeStreamDetailsHelp": "Imports additional stream information. May increase import time significantly.",
223
- "jellyfinEmby": "Jellyfin/Emby (Jellystat)",
224
- "jellystat": "Import from Jellystat",
225
- "noServers": "No Servers Connected",
226
- "noServersHint": "You need at least one connected server to import data.",
227
- "overlapSkipped": "{{count}} skipped as overlap",
228
- "overwriteFriendlyNames": "Overwrite existing friendly names with Tautulli names",
229
- "overwriteFriendlyNamesHelp": "Existing identity names in Tracearr will be replaced with the friendly names from Tautulli.",
230
- "page": "Page",
231
- "playbackReporting": "Playback Reporting Plugin",
232
- "playbackReportingDesc": "Import history directly from the Playback Reporting plugin installed on your Jellyfin or Emby server. No file export needed.",
233
- "pleaseEnterDetails": "Please enter Tautulli URL and API key",
234
- "pleaseSelectJsonFile": "Please select a JSON file",
235
- "plex": "Plex (Tautulli)",
236
- "pluginFound": "Plugin found: {{records}} records from {{oldestDate}} to {{newestDate}}",
237
- "pluginNotInstalled": "The Playback Reporting plugin is not installed on this server, or Tracearr cannot reach it. Install it from the server's plugin catalog to start recording history, or use the Jellystat import below.",
238
- "processed": "Processed",
239
- "recordsMayBeSkipped": "Records may be skipped if:",
240
- "selectJellyfinServer": "Select a Jellyfin or Emby server",
241
- "selectPlexServer": "Select a Plex server",
242
- "selectTargetServer": "Select Target Server",
243
- "serverTimezone": "Server Timezone",
244
- "serverTimezoneHelp": "Must match the timezone configured on your media server host, not your browser's timezone. Playback Reporting timestamps are stored in local server time.",
245
- "skipDuplicate": "Duplicate session — The session was already imported previously.",
246
- "skipDuplicatePlugin": "Duplicate record - already imported directly or arrived earlier via a Jellystat import of the same plugin data.",
247
- "skipInProgress": "In-progress session — Active/incomplete sessions without a reference ID are skipped.",
248
- "skipOverlap": "Overlapping record - the timestamp falls inside the period Tracearr already tracks for this server. Enable full-range import to include it.",
249
- "skipSyncHint": "If many records are skipped, ensure you've synced your server recently in Settings → Servers.",
250
- "skipUserNotFoundJellyfin": "User not found — The Jellyfin/Emby user doesn't exist in Tracearr. Sync your server first to add all users.",
251
- "skipUserNotFoundPlex": "User not found — The Plex user doesn't exist in Tracearr. Sync your server first to add all users.",
252
- "skipped": "Skipped",
253
- "startImport": "Start Import",
254
- "startingImport": "Starting import...",
255
- "step1": "1",
256
- "step2": "2",
257
- "targetServer": "Target Server",
258
- "tautulli": "Import from Tautulli",
259
- "tautulliUrl": "Tautulli URL",
260
- "tautulliUrlHelp": "The URL of your Tautulli instance.",
261
- "tautulliUrlPlaceholder": "http://localhost:8181",
262
- "testing": "Testing...",
263
- "testingConnection": "Testing connection...",
264
- "title": "Import Data",
265
- "updateExistingRecords": "Update existing records with stream details",
266
- "updateExistingRecordsHelp": "Previously imported records will be updated with stream quality data.",
267
- "uploadJellystatBackup": "Upload Jellystat Backup",
268
- "uploadingBackup": "Uploading backup file..."
195
+ "mobile": {
196
+ "title": "모바일 앱",
197
+ "pairDevice": "기기 페어링",
198
+ "connectedDevices": "연결된 기기",
199
+ "generateToken": "페어링 토큰 생성",
200
+ "scanQrCode": "QR 코드 스캔",
201
+ "tokenExpires": "토큰 만료까지 {{time}}",
202
+ "noDevices": "연결된 기기가 없습니다",
203
+ "revokeAll": "모든 세션 취소",
204
+ "getTheApp": "앱 받기",
205
+ "getTheAppDesc": "iOS 또는 Android용 Tracearr 모바일 앱을 다운로드하세요",
206
+ "getOnGooglePlay": "Google Play에서 받기",
207
+ "downloadOnAppStore": "App Store에서 다운로드",
208
+ "pairYourDevice": "기기 페어링",
209
+ "pairYourDeviceDesc": "Tracearr 앱으로 QR 코드를 스캔해 이 서버에 연결하세요.",
210
+ "externalUrlRequired": "모바일 페어링을 사용하려면 일반 설정에서 외부 URL을 구성해야 합니다.",
211
+ "mobileAccessDisabled": "모바일 접근이 비활성화됨",
212
+ "mobileAccessDisabledDesc": "Tracearr 모바일 앱이 서버에 연결할 수 있도록 모바일 접근을 활성화하세요.",
213
+ "enableMobileAccess": "모바일 접근 활성화",
214
+ "enabling": "활성화 중...",
215
+ "devicesConnected": "{{max}}대 중 {{current}}대 기기 연결됨",
216
+ "pendingTokens": "대기 중인 페어링 토큰 {{count}}개",
217
+ "addDevice": "기기 추가",
218
+ "disableMobileAccess": "모바일 접근 비활성화",
219
+ "connectedDevicesDesc": "서버에 페어링된 기기 {{count}}대",
220
+ "revokeAllSessions": "모두 취소",
221
+ "pairNewDevice": "새 기기 페어링",
222
+ "pairNewDeviceDesc": "Tracearr 모바일 앱으로 QR 코드를 스캔하거나 토큰을 직접 입력하세요.",
223
+ "expiresIn": "만료까지 {{time}}",
224
+ "oneTimePairToken": "일회용 페어링 토큰",
225
+ "copyToken": "토큰 복사",
226
+ "tokenExpiryNote": "이 토큰은 5분 후 만료되며 한 번만 사용할 수 있습니다.",
227
+ "done": "완료",
228
+ "disableMobileAccessConfirm": "모든 모바일 기기의 연결이 끊기고 모든 세션이 취소됩니다. 나중에 모바일 접근을 다시 활성화할 수 있습니다.",
229
+ "disable": "비활성화",
230
+ "revokeAllConfirm": "모든 모바일 기기의 연결이 끊깁니다. 다시 연결하려면 기기를 다시 페어링해야 합니다.",
231
+ "renameDevice": "기기 이름 변경",
232
+ "renameDeviceDesc": "목록에서 이 기기를 식별할 이름을 입력하세요.",
233
+ "deviceName": "기기 이름",
234
+ "deviceNamePlaceholder": "예: iPhone 15",
235
+ "removeDevice": "기기 제거",
236
+ "failedToGenerateToken": "토큰 생성 실패",
237
+ "removeDeviceConfirm": "{{deviceName}}을/를 제거할까요? 다시 연결하려면 이 기기를 다시 페어링해야 합니다.",
238
+ "externalUrlBanner": "리버스 프록시를 사용하거나 원격으로 접속하나요? 모바일 앱이 서버에 연결할 수 있도록",
239
+ "externalUrlBannerLink": "외부 URL",
240
+ "externalUrlBannerSuffix": "을/를 설정하세요."
269
241
  },
270
- "ipWarning": {
271
- "acknowledge": "Got it",
272
- "message": "All users appear to be using the same IP address or local network IPs. This may affect rule-based logic for location or IP addresses."
242
+ "tailscale": {
243
+ "title": "",
244
+ "description": "포트 포워딩 없이 Tailscale 네트워크에서 Tracearr에 안전하게 접근하세요.",
245
+ "notAvailable": "Tailscale 바이너리를 찾을 수 없습니다. 이 기능은 공식 Docker 이미지에서 실행할 때만 사용할 수 있습니다.",
246
+ "disabledDescription": "Tailscale을 활성화해 Tracearr를 개인 tailnet에 연결하세요. 포트 포워딩이나 리버스 프록시가 필요 없습니다.",
247
+ "hostnameLabel": "기기 호스트 이름",
248
+ "hostnameHint": "Tailnet에서 이 기기를 식별할 사용자 지정 이름입니다. 문자, 숫자, 하이픈만 사용할 수 있습니다.",
249
+ "enable": "Tailscale 활성화",
250
+ "disable": "Tailscale 비활성화",
251
+ "starting": "Tailscale 시작 중...",
252
+ "stopping": "Tailscale 중지 중...",
253
+ "awaitingAuth": "승인 대기 중...",
254
+ "authorize": "Tailscale에서 승인",
255
+ "connected": "Tailscale이 연결되었습니다. Tracearr 인스턴스를 tailnet에서 사용할 수 있습니다.",
256
+ "hostname": "호스트 이름",
257
+ "dnsName": "DNS 이름",
258
+ "tailnetUrl": "",
259
+ "showLogs": "로그 보기",
260
+ "hideLogs": "로그 숨기기",
261
+ "noLogs": "표시할 로그 출력이 없습니다.",
262
+ "exitNodeNone": "없음",
263
+ "exitNodeOffline": "(오프라인)",
264
+ "unknownError": "알 수 없는 오류가 발생했습니다.",
265
+ "disableConfirmTitle": "Tailscale을 비활성화할까요?",
266
+ "disableConfirmDescription": "Tracearr가 tailnet에서 연결 해제됩니다. 다시 승인하지 않고도 나중에 다시 활성화할 수 있습니다.",
267
+ "resetConfirmTitle": "Tailscale을 초기화할까요?",
268
+ "resetConfirmDescription": "Tracearr가 tailnet에서 연결 해제되고 기기 Id가 제거됩니다. 다시 활성화하려면 다시 승인해야 합니다.",
269
+ "toast": {
270
+ "disabled": "Tailscale이 비활성화되었습니다.",
271
+ "enableFailed": "Tailscale을 활성화하지 못했습니다",
272
+ "disableFailed": "Tailscale을 비활성화하지 못했습니다",
273
+ "reset": "Tailscale이 초기화되었습니다.",
274
+ "resetFailed": "Tailscale을 초기화하지 못했습니다",
275
+ "exitNodeSet": "Exit node가 업데이트되었습니다.",
276
+ "exitNodeFailed": "Exit node를 설정하지 못했습니다"
277
+ }
273
278
  },
274
279
  "jobs": {
275
- "backfill": "Backfill",
276
- "cleanup": "Cleanup",
277
- "delayed": "delayed",
278
- "description": "Manage background tasks that keep your data accurate and optimized.",
279
- "errors": "errors",
280
- "jobHistory": "Job History",
281
- "jobHistoryDesc": "Recent maintenance job executions",
282
- "lastJobCompleted": "Last job completed successfully",
283
- "lastJobFailed": "Last job failed",
284
- "mayTakeAWhile": "This may take a while",
285
- "mayTakeAWhileDesc": "This job may take several minutes to complete depending on the size of your library.",
286
- "normalization": "Normalization",
287
- "processed": "processed",
288
- "queued": "queued",
289
- "runConfirm": "Run {{name}}?",
290
- "runJob": "Run Job",
291
- "running": "running",
292
- "runningState": "Running",
293
- "startJob": "Start Job",
294
- "title": "Maintenance Jobs",
295
- "unchanged": "unchanged",
296
- "updated": "updated",
297
- "waiting": "Waiting"
280
+ "title": "유지관리 작업",
281
+ "description": "데이터를 정확하고 최적화된 상태로 유지하는 백그라운드 작업을 관리하세요.",
282
+ "normalization": "정규화",
283
+ "backfill": "백필",
284
+ "cleanup": "정리",
285
+ "running": "실행 중",
286
+ "queued": "대기열에 있음",
287
+ "delayed": "지연됨",
288
+ "waiting": "대기 중",
289
+ "runningState": "실행 중",
290
+ "runJob": "작업 실행",
291
+ "processed": "처리됨",
292
+ "updated": "업데이트됨",
293
+ "unchanged": "변경 없음",
294
+ "errors": "오류",
295
+ "lastJobCompleted": "마지막 작업이 성공적으로 완료되었습니다",
296
+ "lastJobFailed": "마지막 작업이 실패했습니다",
297
+ "jobHistory": "작업 기록",
298
+ "jobHistoryDesc": "최근 유지관리 작업 실행 내역",
299
+ "runConfirm": "{{name}}을(를) 실행할까요?",
300
+ "mayTakeAWhile": "시간이 걸릴 수 있습니다",
301
+ "mayTakeAWhileDesc": "라이브러리 크기에 따라 이 작업을 완료하는 데 몇 분이 걸릴 수 있습니다.",
302
+ "startJob": "작업 시작"
298
303
  },
299
- "mobile": {
300
- "addDevice": "Add Device",
301
- "connectedDevices": "Connected Devices",
302
- "connectedDevicesDesc": "{{count}} devices paired to your server",
303
- "copyToken": "Copy token",
304
- "deviceName": "Device name",
305
- "deviceNamePlaceholder": "e.g. iPhone 15",
306
- "devicesConnected": "{{current}} of {{max}} devices connected",
307
- "disable": "Disable",
308
- "disableMobileAccess": "Disable Mobile Access",
309
- "disableMobileAccessConfirm": "This will disconnect all mobile devices and revoke all sessions. You can re-enable mobile access later.",
310
- "done": "Done",
311
- "downloadOnAppStore": "Download on the App Store",
312
- "enableMobileAccess": "Enable Mobile Access",
313
- "enabling": "Enabling...",
314
- "expiresIn": "Expires in {{time}}",
315
- "externalUrlBanner": "Using a reverse proxy or accessing remotely? Set your",
316
- "externalUrlBannerLink": "External URL",
317
- "externalUrlBannerSuffix": "so the mobile app can connect to your server.",
318
- "externalUrlRequired": "An external URL must be configured in General Settings for mobile pairing to work.",
319
- "failedToGenerateToken": "Failed to Generate Token",
320
- "generateToken": "Generate Pair Token",
321
- "getOnGooglePlay": "Get it on Google Play",
322
- "getTheApp": "Get the App",
323
- "getTheAppDesc": "Download the Tracearr mobile app for iOS or Android",
324
- "mobileAccessDisabled": "Mobile Access Disabled",
325
- "mobileAccessDisabledDesc": "Enable mobile access to allow the Tracearr mobile app to connect to your server.",
326
- "noDevices": "No devices connected",
327
- "oneTimePairToken": "One-Time Pair Token",
328
- "pairDevice": "Pair Device",
329
- "pairNewDevice": "Pair New Device",
330
- "pairNewDeviceDesc": "Scan the QR code with the Tracearr mobile app, or enter the token manually.",
331
- "pairYourDevice": "Pair Your Device",
332
- "pairYourDeviceDesc": "Scan the QR code with the Tracearr app to connect this server.",
333
- "pendingTokens": "{{count}} pending pair tokens",
334
- "removeDevice": "Remove Device",
335
- "removeDeviceConfirm": "Are you sure you want to remove {{deviceName}}? This device will need to pair again to reconnect.",
336
- "renameDevice": "Rename Device",
337
- "renameDeviceDesc": "Enter a name to identify this device in the list.",
338
- "revokeAll": "Revoke All Sessions",
339
- "revokeAllConfirm": "This will disconnect all mobile devices. They will need to pair again to reconnect.",
340
- "revokeAllSessions": "Revoke All",
341
- "scanQrCode": "Scan QR Code",
342
- "title": "Mobile App",
343
- "tokenExpires": "Token expires in {{time}}",
344
- "tokenExpiryNote": "This token expires in 5 minutes and can only be used once."
304
+ "advanced": {
305
+ "title": "고급 설정",
306
+ "externalUrl": "외부 URL",
307
+ "trustProxy": "프록시 헤더 신뢰",
308
+ "reverseProxy": "리버스 프록시",
309
+ "connectionScenarios": "연결 시나리오"
310
+ },
311
+ "accessControl": {
312
+ "title": "접근 제어",
313
+ "description": "Tracearr에 접근할 수 있는 사용자를 구성하세요",
314
+ "allowGuestAccess": "게스트 접근 허용",
315
+ "allowGuestAccessDesc": "비활성화하면 서버 소유자만 Tracearr에 로그인할 수 있습니다",
316
+ "singleOwnerNote": "참고: 게스트 접근이 비활성화되면 서버 소유자만 로그인할 수 있습니다. 다른 모든 사용자는 \"접근 거부\" 메시지를 보게 됩니다."
317
+ },
318
+ "import": {
319
+ "title": "데이터 가져오기",
320
+ "jellystat": "Jellystat에서 가져오기",
321
+ "tautulli": "Tautulli에서 가져오기",
322
+ "importProgress": "가져오기 진행률",
323
+ "importComplete": "가져오기 완료",
324
+ "importFailed": "가져오기 실패",
325
+ "processed": "처리됨",
326
+ "page": "페이지",
327
+ "imported": "가져옴",
328
+ "skipped": "건너뜀",
329
+ "enriched": "보강됨",
330
+ "errors": "오류",
331
+ "noServers": "연결된 서버가 없습니다",
332
+ "noServersHint": "데이터를 가져오려면 연결된 서버가 하나 이상 필요합니다.",
333
+ "tautulliUrl": "",
334
+ "tautulliUrlPlaceholder": "",
335
+ "tautulliUrlHelp": "Tautulli 인스턴스의 URL입니다.",
336
+ "apiKeyHelp": "Tautulli 설정 > Web Interface > API Key에서 찾을 수 있습니다.",
337
+ "testing": "테스트 중...",
338
+ "connectToTautulli": "Tautulli에 연결",
339
+ "importHistory": "가져오기 기록",
340
+ "targetServer": "대상 서버",
341
+ "selectPlexServer": "Plex 서버 선택",
342
+ "overwriteFriendlyNames": "기존 표시 이름을 Tautulli 이름으로 덮어쓰기",
343
+ "overwriteFriendlyNamesHelp": "Tracearr의 기존 식별 이름이 Tautulli의 표시 이름으로 바뀝니다.",
344
+ "includeStreamDetails": "자세한 스트림 데이터 포함(코덱, 비트레이트, 해상도)",
345
+ "includeStreamDetailsHelp": "추가 스트림 정보를 가져옵니다. 가져오기 시간이 크게 늘어날 수 있습니다.",
346
+ "importing": "가져오는 중...",
347
+ "startImport": "가져오기 시작",
348
+ "howItWorks": "가져오기 방식",
349
+ "howItWorksDesc": "Tracearr가 소스의 모든 과거 시청 데이터를 가져옵니다. 라이브러리 크기에 따라 시간이 걸릴 수 있습니다.",
350
+ "recordsMayBeSkipped": "다음 경우 기록을 건너뛸 수 있습니다:",
351
+ "selectTargetServer": "대상 서버 선택",
352
+ "selectJellyfinServer": "Jellyfin 또는 Emby 서버 선택",
353
+ "uploadJellystatBackup": "Jellystat 백업 업로드",
354
+ "exportBackupHint": "Jellystat에서 활동 백업을 내보내세요",
355
+ "exportBackupHelp": "Jellystat에서 설정 > 백업 > 활동 백업으로 이동해 데이터를 내보내세요.",
356
+ "importOptions": "가져오기 옵션",
357
+ "enrichMetadata": "미디어 메타데이터로 보강(권장)",
358
+ "enrichMetadataHelp": "가져온 세션에 대해 미디어 서버에서 추가 메타데이터를 가져옵니다.",
359
+ "updateExistingRecords": "기존 기록에 스트림 상세 정보 업데이트",
360
+ "updateExistingRecordsHelp": "이전에 가져온 기록에 스트림 품질 데이터를 업데이트합니다.",
361
+ "pleaseEnterDetails": "Tautulli URL과 API 키를 입력하세요",
362
+ "testingConnection": "연결 테스트 중...",
363
+ "pleaseSelectJsonFile": "JSON 파일을 선택하세요",
364
+ "uploadingBackup": "백업 파일을 업로드하는 중...",
365
+ "importHistoryDesc": "외부 소스에서 과거 시청 데이터를 가져옵니다",
366
+ "plex": "Plex(Tautulli)",
367
+ "jellyfinEmby": "Jellyfin/Emby(Jellystat)",
368
+ "step1": "",
369
+ "step2": "",
370
+ "apiKeyPlaceholder": "Tautulli API 키",
371
+ "skipUserNotFoundPlex": "사용자를 찾을 수 없음 - Plex 사용자가 Tracearr에 없습니다. 먼저 서버를 동기화해 모든 사용자를 추가하세요.",
372
+ "skipDuplicate": "중복 세션 - 이 세션은 이전에 이미 가져왔습니다.",
373
+ "skipInProgress": "진행 중인 세션 - 참조 ID가 없는 활성/미완료 세션은 건너뜁니다.",
374
+ "skipUserNotFoundJellyfin": "사용자를 찾을 수 없음 - Jellyfin/Emby 사용자가 Tracearr에 없습니다. 먼저 서버를 동기화해 모든 사용자를 추가하세요.",
375
+ "skipSyncHint": "건너뛴 기록이 많다면 설정 > 서버에서 최근에 서버를 동기화했는지 확인하세요.",
376
+ "importInProgressPercent": "가져오는 중({{percent}}% 완료)...",
377
+ "importInProgressGeneric": "가져오는 중...",
378
+ "startingImport": "가져오기를 시작하는 중...",
379
+ "connectedFound": "연결되었습니다! 사용자 {{users}}명과 기록 {{records}}개를 찾았습니다.",
380
+ "playbackReporting": "",
381
+ "playbackReportingDesc": "",
382
+ "checkPlugin": "",
383
+ "checkingPlugin": "",
384
+ "pluginFound": "",
385
+ "pluginNotInstalled": "",
386
+ "serverTimezone": "",
387
+ "serverTimezoneHelp": "",
388
+ "importFullRange": "",
389
+ "importFullRangeHelp": "",
390
+ "overlapSkipped": "",
391
+ "duplicates": "",
392
+ "skipOverlap": "",
393
+ "skipDuplicatePlugin": ""
345
394
  },
346
395
  "plex": {
347
- "chooseServer": "Choose which Plex Media Server to monitor",
348
- "selectServer": "Select Server",
349
- "signInWithPlex": "Sign in with Plex",
350
- "signUpWithPlex": "Sign up with Plex"
396
+ "signInWithPlex": "Plex로 로그인",
397
+ "signUpWithPlex": "Plex로 가입",
398
+ "selectServer": "서버 선택",
399
+ "chooseServer": "모니터링할 Plex Media Server를 선택하세요"
351
400
  },
352
- "serverHealth": {
353
- "multipleUnreachable": "{{count}} servers unreachable: {{serverNames}}",
354
- "unreachable": "{{serverName}} is unreachable"
401
+ "account": {
402
+ "createAccount": "계정 만들기",
403
+ "email": "이메일",
404
+ "password": "비밀번호",
405
+ "displayName": "표시 이름",
406
+ "createYourAccount": "시작하려면 계정을 만드세요",
407
+ "signInToAccount": "계정에 로그인하세요",
408
+ "useLocalAccount": "로컬 계정 대신 사용"
355
409
  },
356
- "servers": {
357
- "addServer": "Add Server",
358
- "addServerDialogDescOther": "Connect a Jellyfin or Emby server.",
359
- "addServerDialogDescPlex": "Select a Plex server from your linked account.",
360
- "added": "Added {{date}}",
361
- "allFieldsRequired": "All fields are required",
362
- "allServersConnected": "All Servers Connected",
363
- "allServersConnectedDesc": "All servers from this account are already connected.",
364
- "apiKeyHelp": "Found in your media server's dashboard under API Keys or Advanced settings.",
365
- "apiKeyHelpEmby": "Find this in Emby Server → API Keys",
366
- "apiKeyHelpJellyfin": "Find this in Jellyfin Dashboard → API Keys",
367
- "apiKeyPlaceholder": "Enter your API key",
368
- "checkingConnection": "Checking connection…",
369
- "chooseAccount": "Choose an account...",
370
- "connectServer": "Connect Server",
371
- "connecting": "Connecting...",
372
- "connectionFailed": "Connection failed",
373
- "connectionSuccess": "Connection successful",
374
- "description": "Manage your connected Plex, Jellyfin, and Emby servers",
375
- "discoveringConnections": "Discovering connections...",
376
- "discoveringServers": "Discovering available Plex servers...",
377
- "editServer": "Edit Server",
378
- "editServerDesc": "Update the server name or connection URL.",
379
- "loadingAccounts": "Loading linked Plex accounts...",
380
- "noPlexAccountsLinked": "No Plex Accounts Linked",
381
- "noPlexAccountsLinkedHint": "Link a Plex account above, then come back to add a server.",
382
- "noServersConnected": "No servers connected",
383
- "noServersConnectedHint": "Click \"Add Server\" to connect a Jellyfin or Emby server",
384
- "plexAccount": "Plex Account",
385
- "plexServerPlaceholder": "My Plex Server",
386
- "plexServerUrlPlaceholder": "http://192.168.1.100:32400",
387
- "pluginUpdateAvailable": "Plugin update available",
388
- "pluginVersion": "plugin v{{version}}",
389
- "pollingMode": "Polling",
390
- "posterSource": {
391
- "automatic": "Automatic (most recent)",
392
- "description": "When a title is on more than one server, use this server's poster. If it doesn't have one, we'll fall back to the most recently added copy.",
393
- "emptyHint": "Add a server to choose a preferred poster source.",
394
- "label": "Preferred Poster Source",
395
- "title": "Poster Preferences",
396
- "titleDesc": "Choose which server's poster is shown when a title exists on more than one server"
397
- },
398
- "realtimeActive": "Real-time updates active",
399
- "realtimeDialog": {
400
- "autoDetectNote": "Restart Jellyfin or Emby after installing the plugin; the restart is required. Tracearr itself needs no restart and picks the plugin up automatically.",
401
- "close": "Close",
402
- "copyUrl": "Copy URL",
403
- "embyDescription": "Install the Tracearr SSE plugin to get instant session updates without waiting for the next poll.",
404
- "embyReleasesUrl": "https://github.com/Tracearr/Media-Server-SSE/releases",
405
- "embyUpdateDescription": "A newer plugin release is available. Download the latest release zip, replace the plugin DLL in your Emby plugins folder, and restart Emby.",
406
- "issueBlocked": "The server reports the plugin as installed and active, but Tracearr gets a 404 from its endpoint. A reverse proxy blocking the path is the usual cause.",
407
- "issueMalfunctioned": "The server reports the plugin failed to load. Updating the plugin or the media server usually clears this.",
408
- "issueRestartRequired": "The plugin is installed, but the media server needs a restart before it activates.",
409
- "jellyfinDescription": "Install the Tracearr SSE plugin to get instant session updates without waiting for the next poll.",
410
- "jellyfinRepoUrl": "https://raw.githubusercontent.com/Tracearr/Media-Server-SSE/main/manifest.json",
411
- "jellyfinUpdateDescription": "A newer plugin release is available. Open your Jellyfin dashboard, go to Plugins, Catalog, and update Tracearr SSE, then restart Jellyfin.",
412
- "openReleases": "Open releases page",
413
- "repositoryUrl": "Repository URL",
414
- "title": "Enable real-time updates",
415
- "updateTitle": "Update the Tracearr SSE plugin"
416
- },
417
- "realtimeError": "Real-time error",
418
- "removeServer": "Remove Server",
419
- "removeServerConfirm": "Are you sure you want to remove this server? All associated session data will be retained, but you won't be able to monitor new sessions from this server.",
420
- "selectAccountHelp": "Select which Plex account to discover servers from.",
421
- "selectPlexAccount": "Select Plex Account",
422
- "serverColor": "Server Color",
423
- "serverColorDesc": "Used for visual attribution in multi-server view",
424
- "serverName": "Server Name",
425
- "serverNamePlaceholder": "My Media Server",
426
- "serverType": "Server Type",
427
- "serverUrl": "Server URL",
428
- "serverUrlHelp": "Direct URL to your Jellyfin or Emby server. Use IP:port for best reliability.",
429
- "serverUrlHelpEmby": "The URL where your Emby server is accessible",
430
- "serverUrlHelpJellyfin": "The URL where your Jellyfin server is accessible",
431
- "serverUrlPlaceholder": "http://192.168.1.100:8096",
432
- "setupRealtime": "Set up real-time updates",
433
- "syncInterval": "Sync Interval",
434
- "testConnection": "Test Connection",
435
- "title": "Connected Servers",
436
- "updateHint": "Or click Update below to save only the name change.",
437
- "updating": "Updating...",
438
- "version": {
439
- "installed": "Version {{version}}",
440
- "upToDate": "up to date",
441
- "updateAvailable": "update {{version}} available"
442
- }
410
+ "update": {
411
+ "title": "업데이트 사용 가능",
412
+ "releaseNotes": "릴리스 노트",
413
+ "updateCommand": "업데이트 명령",
414
+ "pullInstructions": "pull 후 업데이트를 적용하려면 컨테이너를 다시 시작하세요.",
415
+ "stableRelease": "안정 릴리스",
416
+ "betaUpdate": "베타 업데이트",
417
+ "newVersion": "새 버전",
418
+ "versionAvailable": "{{version}} 사용 가능"
443
419
  },
444
- "tabs": {
445
- "accessControl": "Access Control",
446
- "advanced": "Advanced",
447
- "backup": "Backup",
448
- "general": "General",
449
- "import": "Import",
450
- "jobs": "Jobs",
451
- "mobile": "Mobile App",
452
- "notifications": "Notifications",
453
- "servers": "Servers",
454
- "tailscale": "Tailscale"
420
+ "serverHealth": {
421
+ "unreachable": "{{serverName}}에 연결할 수 없습니다",
422
+ "multipleUnreachable": "{{count}}개 서버에 연결할 수 없습니다: {{serverNames}}"
455
423
  },
456
- "tailscale": {
457
- "authorize": "Authorize in Tailscale",
458
- "awaitingAuth": "Waiting for authorization...",
459
- "connected": "Tailscale is connected. Your Tracearr instance is available on the tailnet.",
460
- "description": "Access Tracearr securely on your Tailscale network without port forwarding.",
461
- "disable": "Disable Tailscale",
462
- "disableConfirmDescription": "This will disconnect Tracearr from your tailnet. You can re-enable without re-authorizing.",
463
- "disableConfirmTitle": "Disable Tailscale?",
464
- "disabledDescription": "Enable Tailscale to put Tracearr on your private tailnet. No port forwarding or reverse proxy required.",
465
- "dnsName": "DNS Name",
466
- "enable": "Enable Tailscale",
467
- "exitNodeNone": "None",
468
- "exitNodeOffline": "(offline)",
469
- "hideLogs": "Hide Logs",
470
- "hostname": "Hostname",
471
- "hostnameHint": "Optional custom name for this device on your tailnet. Letters, numbers, and hyphens only.",
472
- "hostnameLabel": "Device Hostname",
473
- "noLogs": "No log output available.",
474
- "notAvailable": "Tailscale binary not found. This feature is only available when running the official Docker image.",
475
- "resetConfirmDescription": "This will disconnect Tracearr from your tailnet and remove the device identity. You will need to re-authorize if you enable it again.",
476
- "resetConfirmTitle": "Reset Tailscale?",
477
- "showLogs": "Show Logs",
478
- "starting": "Starting Tailscale...",
479
- "stopping": "Stopping Tailscale...",
480
- "tailnetUrl": "URL",
481
- "title": "Tailscale VPN",
482
- "toast": {
483
- "disableFailed": "Failed to disable Tailscale",
484
- "disabled": "Tailscale has been disabled.",
485
- "enableFailed": "Failed to enable Tailscale",
486
- "exitNodeFailed": "Failed to set exit node",
487
- "exitNodeSet": "Exit node updated.",
488
- "reset": "Tailscale has been reset.",
489
- "resetFailed": "Failed to reset Tailscale"
490
- },
491
- "unknownError": "An unknown error occurred."
424
+ "ipWarning": {
425
+ "message": "모든 사용자가 같은 IP 주소나 로컬 네트워크 IP를 사용하는 것으로 보입니다. 위치 또는 IP 주소 기반 규칙 로직에 영향을 줄 수 있습니다.",
426
+ "acknowledge": "알겠습니다"
492
427
  },
493
- "title": "Settings",
494
- "update": {
495
- "betaUpdate": "Beta Update",
496
- "newVersion": "New Version",
497
- "pullInstructions": "After pulling, restart your container to apply the update.",
498
- "releaseNotes": "Release Notes",
499
- "stableRelease": "Stable Release",
500
- "title": "Update Available",
501
- "updateCommand": "Update Command",
502
- "versionAvailable": "{{version}} available"
428
+ "backup": {
429
+ "title": "백업",
430
+ "backToBackups": "백업으로 돌아가기",
431
+ "description": "Tracearr 데이터를 백업하고 복원하세요",
432
+ "createBackup": "백업 만들기",
433
+ "creating": "백업 생성 중...",
434
+ "uploadBackup": "백업 업로드",
435
+ "uploading": "업로드 중...",
436
+ "databaseSize": "현재 데이터베이스 크기: {{size}}",
437
+ "freeSpace": "백업 디렉터리 여유 공간: {{size}}",
438
+ "lowDiskSpace": "디스크 공간이 부족합니다. 백업과 복원에는 데이터베이스 크기의 최소 두 배에 해당하는 여유 공간이 필요합니다.",
439
+ "backupHistory": "백업 기록",
440
+ "noBackups": "아직 백업이 없습니다. 위에서 첫 백업을 만들어 보세요.",
441
+ "filename": "파일 이름",
442
+ "size": "크기",
443
+ "date": "날짜",
444
+ "type": "유형",
445
+ "version": "버전",
446
+ "actions": "작업",
447
+ "typeManual": "수동",
448
+ "typeScheduled": "예약됨",
449
+ "typeUploaded": "업로드됨",
450
+ "restoreAction": "복원",
451
+ "deleteConfirmTitle": "백업 삭제",
452
+ "deleteConfirmDescription": "이 백업을 삭제할까요? 이 작업은 되돌릴 수 없습니다.",
453
+ "schedule": "예약 백업",
454
+ "scheduleType": "일정",
455
+ "scheduleDisabled": "비활성화",
456
+ "scheduleDaily": "매일",
457
+ "scheduleWeekly": "매주",
458
+ "scheduleMonthly": "매월",
459
+ "scheduleTime": "시간({{timezone}})",
460
+ "scheduleDayOfWeek": "요일",
461
+ "scheduleDayOfMonth": "일자",
462
+ "scheduleDayOfMonthHint": "일수가 더 적은 달에는 마지막 날에 백업이 실행됩니다.",
463
+ "retentionCount": "최근 항목 유지",
464
+ "retentionSuffix": "개의 예약 백업",
465
+ "daySun": "일요일",
466
+ "dayMon": "월요일",
467
+ "dayTue": "화요일",
468
+ "dayWed": "수요일",
469
+ "dayThu": "목요일",
470
+ "dayFri": "금요일",
471
+ "daySat": "토요일",
472
+ "restore": {
473
+ "title": "백업 복원",
474
+ "selectedBackup": "선택한 백업",
475
+ "databaseSize": "데이터베이스 크기",
476
+ "sessions": "세션",
477
+ "users": "사용자",
478
+ "servers": "서버",
479
+ "automations": "",
480
+ "libraryItems": "라이브러리 항목",
481
+ "tables": "테이블",
482
+ "warning": "복원하면 기존 데이터가 모두 대체됩니다. 복원이 완료된 뒤 다시 로그인해야 합니다.",
483
+ "confirmLabel": "모든 데이터가 대체된다는 것을 이해했습니다",
484
+ "confirm": "복원 시작",
485
+ "complete": "복원이 성공적으로 완료되었습니다. 잠시 후 페이지가 새로고침됩니다.",
486
+ "failed": "복원 실패",
487
+ "cannotRestore": "복원에는 PostgreSQL 슈퍼유저 권한이 필요합니다. 데이터베이스 사용자에게 슈퍼유저 권한이 있는지 확인한 뒤 다시 시도하세요.",
488
+ "pgVersionMismatch": "백업은 PostgreSQL {{backupVersion}}에서 생성되었지만 이 서버는 PostgreSQL {{serverVersion}}을 실행 중입니다. 더 새로운 PostgreSQL 버전의 덤프는 복원할 수 없습니다.",
489
+ "tsVersionMismatch": "백업은 TimescaleDB {{backupVersion}}로 생성되었지만 이 서버는 TimescaleDB {{serverVersion}}까지만 지원합니다."
490
+ },
491
+ "toast": {
492
+ "backupCreated": "백업이 성공적으로 생성되었습니다",
493
+ "backupCreateFailed": "백업을 만들지 못했습니다",
494
+ "backupUploaded": "백업이 성공적으로 업로드되었습니다",
495
+ "backupUploadFailed": "백업을 업로드하지 못했습니다",
496
+ "backupDeleted": "백업이 삭제되었습니다",
497
+ "backupDeleteFailed": "백업을 삭제하지 못했습니다",
498
+ "restoreStarted": "복원이 시작되었습니다",
499
+ "restoreStartFailed": "복원을 시작하지 못했습니다",
500
+ "scheduleSaved": "백업 일정이 저장되었습니다",
501
+ "scheduleError": "백업 일정을 저장하지 못했습니다"
502
+ }
503
503
  }
504
504
  }