@jjlmoya/utils-developer 1.4.0 → 1.6.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 (339) hide show
  1. package/package.json +2 -1
  2. package/src/category/i18n/de.ts +34 -0
  3. package/src/category/i18n/id.ts +34 -0
  4. package/src/category/i18n/it.ts +34 -0
  5. package/src/category/i18n/ja.ts +34 -0
  6. package/src/category/i18n/ko.ts +34 -0
  7. package/src/category/i18n/nl.ts +34 -0
  8. package/src/category/i18n/pl.ts +34 -0
  9. package/src/category/i18n/pt.ts +34 -0
  10. package/src/category/i18n/ru.ts +34 -0
  11. package/src/category/i18n/sv.ts +34 -0
  12. package/src/category/i18n/tr.ts +34 -0
  13. package/src/category/i18n/zh.ts +34 -0
  14. package/src/category/index.ts +13 -1
  15. package/src/tests/faq_count.test.ts +1 -1
  16. package/src/tests/i18n_coverage.test.ts +36 -0
  17. package/src/tests/locale_completeness.test.ts +2 -2
  18. package/src/tests/slug_language_code_format.test.ts +25 -0
  19. package/src/tests/slug_uniqueness.test.ts +87 -0
  20. package/src/tool/aspectRatio/i18n/de.ts +177 -0
  21. package/src/tool/aspectRatio/i18n/id.ts +177 -0
  22. package/src/tool/aspectRatio/i18n/it.ts +177 -0
  23. package/src/tool/aspectRatio/i18n/ja.ts +178 -0
  24. package/src/tool/aspectRatio/i18n/ko.ts +178 -0
  25. package/src/tool/aspectRatio/i18n/nl.ts +178 -0
  26. package/src/tool/aspectRatio/i18n/pl.ts +177 -0
  27. package/src/tool/aspectRatio/i18n/pt.ts +177 -0
  28. package/src/tool/aspectRatio/i18n/ru.ts +177 -0
  29. package/src/tool/aspectRatio/i18n/sv.ts +177 -0
  30. package/src/tool/aspectRatio/i18n/tr.ts +177 -0
  31. package/src/tool/aspectRatio/i18n/zh.ts +178 -0
  32. package/src/tool/aspectRatio/index.ts +15 -7
  33. package/src/tool/calculadoraTiempoDatos/i18n/de.ts +150 -0
  34. package/src/tool/calculadoraTiempoDatos/i18n/id.ts +150 -0
  35. package/src/tool/calculadoraTiempoDatos/i18n/it.ts +150 -0
  36. package/src/tool/calculadoraTiempoDatos/i18n/ja.ts +151 -0
  37. package/src/tool/calculadoraTiempoDatos/i18n/ko.ts +151 -0
  38. package/src/tool/calculadoraTiempoDatos/i18n/nl.ts +150 -0
  39. package/src/tool/calculadoraTiempoDatos/i18n/pl.ts +150 -0
  40. package/src/tool/calculadoraTiempoDatos/i18n/pt.ts +150 -0
  41. package/src/tool/calculadoraTiempoDatos/i18n/ru.ts +151 -0
  42. package/src/tool/calculadoraTiempoDatos/i18n/sv.ts +150 -0
  43. package/src/tool/calculadoraTiempoDatos/i18n/tr.ts +150 -0
  44. package/src/tool/calculadoraTiempoDatos/i18n/zh.ts +151 -0
  45. package/src/tool/calculadoraTiempoDatos/index.ts +15 -7
  46. package/src/tool/colorConverter/i18n/de.ts +126 -0
  47. package/src/tool/colorConverter/i18n/id.ts +126 -0
  48. package/src/tool/colorConverter/i18n/it.ts +126 -0
  49. package/src/tool/colorConverter/i18n/ja.ts +127 -0
  50. package/src/tool/colorConverter/i18n/ko.ts +127 -0
  51. package/src/tool/colorConverter/i18n/nl.ts +126 -0
  52. package/src/tool/colorConverter/i18n/pl.ts +126 -0
  53. package/src/tool/colorConverter/i18n/pt.ts +126 -0
  54. package/src/tool/colorConverter/i18n/ru.ts +126 -0
  55. package/src/tool/colorConverter/i18n/sv.ts +126 -0
  56. package/src/tool/colorConverter/i18n/tr.ts +126 -0
  57. package/src/tool/colorConverter/i18n/zh.ts +127 -0
  58. package/src/tool/colorConverter/index.ts +15 -7
  59. package/src/tool/conversorExcelCsvHtml/i18n/de.ts +129 -0
  60. package/src/tool/conversorExcelCsvHtml/i18n/id.ts +129 -0
  61. package/src/tool/conversorExcelCsvHtml/i18n/it.ts +129 -0
  62. package/src/tool/conversorExcelCsvHtml/i18n/ja.ts +130 -0
  63. package/src/tool/conversorExcelCsvHtml/i18n/ko.ts +130 -0
  64. package/src/tool/conversorExcelCsvHtml/i18n/nl.ts +129 -0
  65. package/src/tool/conversorExcelCsvHtml/i18n/pl.ts +129 -0
  66. package/src/tool/conversorExcelCsvHtml/i18n/pt.ts +129 -0
  67. package/src/tool/conversorExcelCsvHtml/i18n/ru.ts +129 -0
  68. package/src/tool/conversorExcelCsvHtml/i18n/sv.ts +129 -0
  69. package/src/tool/conversorExcelCsvHtml/i18n/tr.ts +129 -0
  70. package/src/tool/conversorExcelCsvHtml/i18n/zh.ts +130 -0
  71. package/src/tool/conversorExcelCsvHtml/index.ts +15 -7
  72. package/src/tool/cronGenerator/i18n/de.ts +192 -0
  73. package/src/tool/cronGenerator/i18n/es.ts +1 -0
  74. package/src/tool/cronGenerator/i18n/fr.ts +2 -1
  75. package/src/tool/cronGenerator/i18n/id.ts +192 -0
  76. package/src/tool/cronGenerator/i18n/it.ts +192 -0
  77. package/src/tool/cronGenerator/i18n/ja.ts +192 -0
  78. package/src/tool/cronGenerator/i18n/ko.ts +192 -0
  79. package/src/tool/cronGenerator/i18n/nl.ts +192 -0
  80. package/src/tool/cronGenerator/i18n/pl.ts +192 -0
  81. package/src/tool/cronGenerator/i18n/pt.ts +192 -0
  82. package/src/tool/cronGenerator/i18n/ru.ts +192 -0
  83. package/src/tool/cronGenerator/i18n/sv.ts +192 -0
  84. package/src/tool/cronGenerator/i18n/tr.ts +192 -0
  85. package/src/tool/cronGenerator/i18n/zh.ts +192 -0
  86. package/src/tool/cronGenerator/index.ts +15 -7
  87. package/src/tool/cssSpecificityCalculator/i18n/de.ts +168 -0
  88. package/src/tool/cssSpecificityCalculator/i18n/id.ts +168 -0
  89. package/src/tool/cssSpecificityCalculator/i18n/it.ts +168 -0
  90. package/src/tool/cssSpecificityCalculator/i18n/ja.ts +169 -0
  91. package/src/tool/cssSpecificityCalculator/i18n/ko.ts +169 -0
  92. package/src/tool/cssSpecificityCalculator/i18n/nl.ts +168 -0
  93. package/src/tool/cssSpecificityCalculator/i18n/pl.ts +168 -0
  94. package/src/tool/cssSpecificityCalculator/i18n/pt.ts +168 -0
  95. package/src/tool/cssSpecificityCalculator/i18n/ru.ts +168 -0
  96. package/src/tool/cssSpecificityCalculator/i18n/sv.ts +168 -0
  97. package/src/tool/cssSpecificityCalculator/i18n/tr.ts +168 -0
  98. package/src/tool/cssSpecificityCalculator/i18n/zh.ts +169 -0
  99. package/src/tool/cssSpecificityCalculator/index.ts +15 -7
  100. package/src/tool/cssToInlineConverter/i18n/de.ts +160 -0
  101. package/src/tool/cssToInlineConverter/i18n/id.ts +160 -0
  102. package/src/tool/cssToInlineConverter/i18n/it.ts +160 -0
  103. package/src/tool/cssToInlineConverter/i18n/ja.ts +161 -0
  104. package/src/tool/cssToInlineConverter/i18n/ko.ts +161 -0
  105. package/src/tool/cssToInlineConverter/i18n/nl.ts +160 -0
  106. package/src/tool/cssToInlineConverter/i18n/pl.ts +160 -0
  107. package/src/tool/cssToInlineConverter/i18n/pt.ts +160 -0
  108. package/src/tool/cssToInlineConverter/i18n/ru.ts +160 -0
  109. package/src/tool/cssToInlineConverter/i18n/sv.ts +160 -0
  110. package/src/tool/cssToInlineConverter/i18n/tr.ts +160 -0
  111. package/src/tool/cssToInlineConverter/i18n/zh.ts +161 -0
  112. package/src/tool/cssToInlineConverter/index.ts +15 -7
  113. package/src/tool/duplicateCssRemover/i18n/de.ts +167 -0
  114. package/src/tool/duplicateCssRemover/i18n/id.ts +167 -0
  115. package/src/tool/duplicateCssRemover/i18n/it.ts +167 -0
  116. package/src/tool/duplicateCssRemover/i18n/ja.ts +168 -0
  117. package/src/tool/duplicateCssRemover/i18n/ko.ts +168 -0
  118. package/src/tool/duplicateCssRemover/i18n/nl.ts +167 -0
  119. package/src/tool/duplicateCssRemover/i18n/pl.ts +167 -0
  120. package/src/tool/duplicateCssRemover/i18n/pt.ts +167 -0
  121. package/src/tool/duplicateCssRemover/i18n/ru.ts +167 -0
  122. package/src/tool/duplicateCssRemover/i18n/sv.ts +167 -0
  123. package/src/tool/duplicateCssRemover/i18n/tr.ts +167 -0
  124. package/src/tool/duplicateCssRemover/i18n/zh.ts +168 -0
  125. package/src/tool/duplicateCssRemover/index.ts +15 -7
  126. package/src/tool/generadorSecurityTxt/i18n/de.ts +174 -0
  127. package/src/tool/generadorSecurityTxt/i18n/id.ts +174 -0
  128. package/src/tool/generadorSecurityTxt/i18n/it.ts +174 -0
  129. package/src/tool/generadorSecurityTxt/i18n/ja.ts +174 -0
  130. package/src/tool/generadorSecurityTxt/i18n/ko.ts +174 -0
  131. package/src/tool/generadorSecurityTxt/i18n/nl.ts +174 -0
  132. package/src/tool/generadorSecurityTxt/i18n/pl.ts +174 -0
  133. package/src/tool/generadorSecurityTxt/i18n/pt.ts +174 -0
  134. package/src/tool/generadorSecurityTxt/i18n/ru.ts +174 -0
  135. package/src/tool/generadorSecurityTxt/i18n/sv.ts +174 -0
  136. package/src/tool/generadorSecurityTxt/i18n/tr.ts +174 -0
  137. package/src/tool/generadorSecurityTxt/i18n/zh.ts +174 -0
  138. package/src/tool/generadorSecurityTxt/index.ts +15 -7
  139. package/src/tool/hashGenerator/i18n/de.ts +119 -0
  140. package/src/tool/hashGenerator/i18n/id.ts +119 -0
  141. package/src/tool/hashGenerator/i18n/it.ts +118 -0
  142. package/src/tool/hashGenerator/i18n/ja.ts +119 -0
  143. package/src/tool/hashGenerator/i18n/ko.ts +119 -0
  144. package/src/tool/hashGenerator/i18n/nl.ts +119 -0
  145. package/src/tool/hashGenerator/i18n/pl.ts +118 -0
  146. package/src/tool/hashGenerator/i18n/pt.ts +118 -0
  147. package/src/tool/hashGenerator/i18n/ru.ts +119 -0
  148. package/src/tool/hashGenerator/i18n/sv.ts +119 -0
  149. package/src/tool/hashGenerator/i18n/tr.ts +118 -0
  150. package/src/tool/hashGenerator/i18n/zh.ts +119 -0
  151. package/src/tool/hashGenerator/index.ts +15 -7
  152. package/src/tool/inspectorCertificadosSsl/i18n/de.ts +214 -0
  153. package/src/tool/inspectorCertificadosSsl/i18n/id.ts +215 -0
  154. package/src/tool/inspectorCertificadosSsl/i18n/it.ts +214 -0
  155. package/src/tool/inspectorCertificadosSsl/i18n/ja.ts +215 -0
  156. package/src/tool/inspectorCertificadosSsl/i18n/ko.ts +215 -0
  157. package/src/tool/inspectorCertificadosSsl/i18n/nl.ts +215 -0
  158. package/src/tool/inspectorCertificadosSsl/i18n/pl.ts +215 -0
  159. package/src/tool/inspectorCertificadosSsl/i18n/pt.ts +214 -0
  160. package/src/tool/inspectorCertificadosSsl/i18n/ru.ts +215 -0
  161. package/src/tool/inspectorCertificadosSsl/i18n/sv.ts +215 -0
  162. package/src/tool/inspectorCertificadosSsl/i18n/tr.ts +215 -0
  163. package/src/tool/inspectorCertificadosSsl/i18n/zh.ts +215 -0
  164. package/src/tool/inspectorCertificadosSsl/index.ts +24 -0
  165. package/src/tool/jsonFormatter/i18n/de.ts +157 -0
  166. package/src/tool/jsonFormatter/i18n/es.ts +1 -0
  167. package/src/tool/jsonFormatter/i18n/fr.ts +2 -1
  168. package/src/tool/jsonFormatter/i18n/id.ts +157 -0
  169. package/src/tool/jsonFormatter/i18n/it.ts +156 -0
  170. package/src/tool/jsonFormatter/i18n/ja.ts +157 -0
  171. package/src/tool/jsonFormatter/i18n/ko.ts +157 -0
  172. package/src/tool/jsonFormatter/i18n/nl.ts +157 -0
  173. package/src/tool/jsonFormatter/i18n/pl.ts +156 -0
  174. package/src/tool/jsonFormatter/i18n/pt.ts +156 -0
  175. package/src/tool/jsonFormatter/i18n/ru.ts +157 -0
  176. package/src/tool/jsonFormatter/i18n/sv.ts +157 -0
  177. package/src/tool/jsonFormatter/i18n/tr.ts +157 -0
  178. package/src/tool/jsonFormatter/i18n/zh.ts +157 -0
  179. package/src/tool/jsonFormatter/index.ts +15 -7
  180. package/src/tool/keycode/i18n/de.ts +161 -0
  181. package/src/tool/keycode/i18n/es.ts +1 -0
  182. package/src/tool/keycode/i18n/fr.ts +2 -1
  183. package/src/tool/keycode/i18n/id.ts +161 -0
  184. package/src/tool/keycode/i18n/it.ts +161 -0
  185. package/src/tool/keycode/i18n/ja.ts +161 -0
  186. package/src/tool/keycode/i18n/ko.ts +161 -0
  187. package/src/tool/keycode/i18n/nl.ts +161 -0
  188. package/src/tool/keycode/i18n/pl.ts +161 -0
  189. package/src/tool/keycode/i18n/pt.ts +160 -0
  190. package/src/tool/keycode/i18n/ru.ts +160 -0
  191. package/src/tool/keycode/i18n/sv.ts +160 -0
  192. package/src/tool/keycode/i18n/tr.ts +160 -0
  193. package/src/tool/keycode/i18n/zh.ts +161 -0
  194. package/src/tool/keycode/index.ts +15 -7
  195. package/src/tool/llmCostCalculator/i18n/de.ts +166 -0
  196. package/src/tool/llmCostCalculator/i18n/fr.ts +2 -1
  197. package/src/tool/llmCostCalculator/i18n/id.ts +166 -0
  198. package/src/tool/llmCostCalculator/i18n/it.ts +166 -0
  199. package/src/tool/llmCostCalculator/i18n/ja.ts +166 -0
  200. package/src/tool/llmCostCalculator/i18n/ko.ts +166 -0
  201. package/src/tool/llmCostCalculator/i18n/nl.ts +166 -0
  202. package/src/tool/llmCostCalculator/i18n/pl.ts +165 -0
  203. package/src/tool/llmCostCalculator/i18n/pt.ts +165 -0
  204. package/src/tool/llmCostCalculator/i18n/ru.ts +165 -0
  205. package/src/tool/llmCostCalculator/i18n/sv.ts +165 -0
  206. package/src/tool/llmCostCalculator/i18n/tr.ts +165 -0
  207. package/src/tool/llmCostCalculator/i18n/zh.ts +166 -0
  208. package/src/tool/llmCostCalculator/index.ts +24 -0
  209. package/src/tool/mobileMockupGenerator/i18n/de.ts +121 -0
  210. package/src/tool/mobileMockupGenerator/i18n/id.ts +121 -0
  211. package/src/tool/mobileMockupGenerator/i18n/it.ts +121 -0
  212. package/src/tool/mobileMockupGenerator/i18n/ja.ts +122 -0
  213. package/src/tool/mobileMockupGenerator/i18n/ko.ts +122 -0
  214. package/src/tool/mobileMockupGenerator/i18n/nl.ts +121 -0
  215. package/src/tool/mobileMockupGenerator/i18n/pl.ts +31 -0
  216. package/src/tool/mobileMockupGenerator/i18n/pt.ts +121 -0
  217. package/src/tool/mobileMockupGenerator/i18n/ru.ts +121 -0
  218. package/src/tool/mobileMockupGenerator/i18n/sv.ts +121 -0
  219. package/src/tool/mobileMockupGenerator/i18n/tr.ts +121 -0
  220. package/src/tool/mobileMockupGenerator/i18n/zh.ts +122 -0
  221. package/src/tool/mobileMockupGenerator/index.ts +24 -0
  222. package/src/tool/musicalTypography/i18n/de.ts +179 -0
  223. package/src/tool/musicalTypography/i18n/id.ts +179 -0
  224. package/src/tool/musicalTypography/i18n/it.ts +179 -0
  225. package/src/tool/musicalTypography/i18n/ja.ts +180 -0
  226. package/src/tool/musicalTypography/i18n/ko.ts +180 -0
  227. package/src/tool/musicalTypography/i18n/nl.ts +179 -0
  228. package/src/tool/musicalTypography/i18n/pl.ts +179 -0
  229. package/src/tool/musicalTypography/i18n/pt.ts +101 -0
  230. package/src/tool/musicalTypography/i18n/ru.ts +47 -0
  231. package/src/tool/musicalTypography/i18n/sv.ts +29 -0
  232. package/src/tool/musicalTypography/i18n/tr.ts +29 -0
  233. package/src/tool/musicalTypography/i18n/zh.ts +30 -0
  234. package/src/tool/musicalTypography/index.ts +15 -7
  235. package/src/tool/placeholderGenerator/i18n/de.ts +176 -0
  236. package/src/tool/placeholderGenerator/i18n/id.ts +176 -0
  237. package/src/tool/placeholderGenerator/i18n/it.ts +176 -0
  238. package/src/tool/placeholderGenerator/i18n/ja.ts +177 -0
  239. package/src/tool/placeholderGenerator/i18n/ko.ts +177 -0
  240. package/src/tool/placeholderGenerator/i18n/nl.ts +176 -0
  241. package/src/tool/placeholderGenerator/i18n/pl.ts +176 -0
  242. package/src/tool/placeholderGenerator/i18n/pt.ts +176 -0
  243. package/src/tool/placeholderGenerator/i18n/ru.ts +176 -0
  244. package/src/tool/placeholderGenerator/i18n/sv.ts +176 -0
  245. package/src/tool/placeholderGenerator/i18n/tr.ts +176 -0
  246. package/src/tool/placeholderGenerator/i18n/zh.ts +177 -0
  247. package/src/tool/placeholderGenerator/index.ts +24 -0
  248. package/src/tool/promptLibrary/i18n/de.ts +131 -0
  249. package/src/tool/promptLibrary/i18n/id.ts +131 -0
  250. package/src/tool/promptLibrary/i18n/it.ts +131 -0
  251. package/src/tool/promptLibrary/i18n/ja.ts +132 -0
  252. package/src/tool/promptLibrary/i18n/ko.ts +132 -0
  253. package/src/tool/promptLibrary/i18n/nl.ts +131 -0
  254. package/src/tool/promptLibrary/i18n/pl.ts +28 -0
  255. package/src/tool/promptLibrary/i18n/pt.ts +101 -0
  256. package/src/tool/promptLibrary/i18n/ru.ts +101 -0
  257. package/src/tool/promptLibrary/i18n/sv.ts +93 -0
  258. package/src/tool/promptLibrary/i18n/tr.ts +93 -0
  259. package/src/tool/promptLibrary/i18n/zh.ts +94 -0
  260. package/src/tool/promptLibrary/index.ts +24 -0
  261. package/src/tool/readabilityCalculator/i18n/de.ts +133 -0
  262. package/src/tool/readabilityCalculator/i18n/id.ts +133 -0
  263. package/src/tool/readabilityCalculator/i18n/it.ts +133 -0
  264. package/src/tool/readabilityCalculator/i18n/ja.ts +134 -0
  265. package/src/tool/readabilityCalculator/i18n/ko.ts +134 -0
  266. package/src/tool/readabilityCalculator/i18n/nl.ts +133 -0
  267. package/src/tool/readabilityCalculator/i18n/pl.ts +29 -0
  268. package/src/tool/readabilityCalculator/i18n/pt.ts +91 -0
  269. package/src/tool/readabilityCalculator/i18n/ru.ts +91 -0
  270. package/src/tool/readabilityCalculator/i18n/sv.ts +43 -0
  271. package/src/tool/readabilityCalculator/i18n/tr.ts +43 -0
  272. package/src/tool/readabilityCalculator/i18n/zh.ts +44 -0
  273. package/src/tool/readabilityCalculator/index.ts +24 -0
  274. package/src/tool/svgSanitizer/i18n/de.ts +125 -0
  275. package/src/tool/svgSanitizer/i18n/id.ts +125 -0
  276. package/src/tool/svgSanitizer/i18n/it.ts +125 -0
  277. package/src/tool/svgSanitizer/i18n/ja.ts +126 -0
  278. package/src/tool/svgSanitizer/i18n/ko.ts +126 -0
  279. package/src/tool/svgSanitizer/i18n/nl.ts +125 -0
  280. package/src/tool/svgSanitizer/i18n/pl.ts +125 -0
  281. package/src/tool/svgSanitizer/i18n/pt.ts +30 -0
  282. package/src/tool/svgSanitizer/i18n/ru.ts +126 -0
  283. package/src/tool/svgSanitizer/i18n/sv.ts +126 -0
  284. package/src/tool/svgSanitizer/i18n/tr.ts +126 -0
  285. package/src/tool/svgSanitizer/i18n/zh.ts +126 -0
  286. package/src/tool/svgSanitizer/index.ts +24 -0
  287. package/src/tool/svgToCss/i18n/de.ts +174 -0
  288. package/src/tool/svgToCss/i18n/id.ts +174 -0
  289. package/src/tool/svgToCss/i18n/it.ts +174 -0
  290. package/src/tool/svgToCss/i18n/ja.ts +175 -0
  291. package/src/tool/svgToCss/i18n/ko.ts +175 -0
  292. package/src/tool/svgToCss/i18n/nl.ts +174 -0
  293. package/src/tool/svgToCss/i18n/pl.ts +174 -0
  294. package/src/tool/svgToCss/i18n/pt.ts +174 -0
  295. package/src/tool/svgToCss/i18n/ru.ts +174 -0
  296. package/src/tool/svgToCss/i18n/sv.ts +174 -0
  297. package/src/tool/svgToCss/i18n/tr.ts +174 -0
  298. package/src/tool/svgToCss/i18n/zh.ts +175 -0
  299. package/src/tool/svgToCss/index.ts +15 -7
  300. package/src/tool/urlCleaner/i18n/de.ts +116 -0
  301. package/src/tool/urlCleaner/i18n/id.ts +116 -0
  302. package/src/tool/urlCleaner/i18n/it.ts +116 -0
  303. package/src/tool/urlCleaner/i18n/ja.ts +117 -0
  304. package/src/tool/urlCleaner/i18n/ko.ts +117 -0
  305. package/src/tool/urlCleaner/i18n/nl.ts +116 -0
  306. package/src/tool/urlCleaner/i18n/pl.ts +29 -0
  307. package/src/tool/urlCleaner/i18n/pt.ts +43 -0
  308. package/src/tool/urlCleaner/i18n/ru.ts +43 -0
  309. package/src/tool/urlCleaner/i18n/sv.ts +43 -0
  310. package/src/tool/urlCleaner/i18n/tr.ts +43 -0
  311. package/src/tool/urlCleaner/i18n/zh.ts +44 -0
  312. package/src/tool/urlCleaner/index.ts +24 -0
  313. package/src/tool/urlEncoderDecoder/i18n/de.ts +163 -0
  314. package/src/tool/urlEncoderDecoder/i18n/id.ts +163 -0
  315. package/src/tool/urlEncoderDecoder/i18n/it.ts +163 -0
  316. package/src/tool/urlEncoderDecoder/i18n/ja.ts +163 -0
  317. package/src/tool/urlEncoderDecoder/i18n/ko.ts +163 -0
  318. package/src/tool/urlEncoderDecoder/i18n/nl.ts +163 -0
  319. package/src/tool/urlEncoderDecoder/i18n/pl.ts +162 -0
  320. package/src/tool/urlEncoderDecoder/i18n/pt.ts +162 -0
  321. package/src/tool/urlEncoderDecoder/i18n/ru.ts +163 -0
  322. package/src/tool/urlEncoderDecoder/i18n/sv.ts +163 -0
  323. package/src/tool/urlEncoderDecoder/i18n/tr.ts +162 -0
  324. package/src/tool/urlEncoderDecoder/i18n/zh.ts +163 -0
  325. package/src/tool/urlEncoderDecoder/index.ts +15 -7
  326. package/src/tool/utmGenerator/i18n/de.ts +118 -0
  327. package/src/tool/utmGenerator/i18n/id.ts +118 -0
  328. package/src/tool/utmGenerator/i18n/it.ts +118 -0
  329. package/src/tool/utmGenerator/i18n/ja.ts +118 -0
  330. package/src/tool/utmGenerator/i18n/ko.ts +118 -0
  331. package/src/tool/utmGenerator/i18n/nl.ts +118 -0
  332. package/src/tool/utmGenerator/i18n/pl.ts +117 -0
  333. package/src/tool/utmGenerator/i18n/pt.ts +118 -0
  334. package/src/tool/utmGenerator/i18n/ru.ts +118 -0
  335. package/src/tool/utmGenerator/i18n/sv.ts +118 -0
  336. package/src/tool/utmGenerator/i18n/tr.ts +117 -0
  337. package/src/tool/utmGenerator/i18n/zh.ts +118 -0
  338. package/src/tool/utmGenerator/index.ts +15 -7
  339. package/src/types.ts +1 -2
@@ -0,0 +1,160 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { KeycodeUI } from '../ui';
4
+
5
+ const slug = 'cevirdo-kimligi-inceleyici';
6
+ const title = 'Çevrimiçi Klavye Tuş Kodu Görselleştiricisi. Tuş Kodu İnceleyicisi';
7
+ const description =
8
+ 'Herhangi bir klavye tuşunun event.key, event.code, event.which ve konumunu gerçek zamanlı olarak görmek için ücretsiz çevrimiçi araç. Kullanıma hazır JavaScript kod parçacıkları oluşturur.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'event.key ile event.code arasındaki fark nedir?',
13
+ answer:
14
+ 'event.code, yapılandırılmış dilden bağımsız olarak klavyedeki tuşun fiziksel konumunu temsil eder. event.key, Shift tuşuna basarsanız veya farklı bir dil kullanırsanız değişebilecek oluşturulan karakteri temsil eder. Oyun kontrolleri için code kullanın; metin girişi ve anlamsal kısayollar için key kullanın.',
15
+ },
16
+ {
17
+ question: 'event.which nedir ve neden kullanımdan kaldırıldı?',
18
+ answer:
19
+ 'event.which, tuş için sayısal bir ASCII kodu döndüren eski bir özelliğidir. Daha doğru ve okunabilir bilgiler sağlamak için event.key ve event.code tarafından değiştirildiğinden, modern standartlarda kullanımdan kaldırılmış olarak işaretlenmiştir. Eğitim amaçlı olarak bu araçta gösterilmektedir.',
20
+ },
21
+ {
22
+ question: 'location özelliği ne anlama gelir?',
23
+ answer:
24
+ 'location özelliği, tuşun klavyede fiziksel olarak nerede olduğunu gösterir: Standart (normal konum), Sol (sol değiştirici tuş), Sağ (sağ değiştirici tuş) veya Saypad (sayısal tuş takımı). Sol ve sağ CTRL tuşlarını ayırt etmek için kullanışlıdır, örneğin.',
25
+ },
26
+ {
27
+ question: 'Uluslararası klavyeler ve QWERTY olmayan düzenlerle çalışır mı?',
28
+ answer:
29
+ 'Evet. Araç, tarayıcının klavye yapılandırmanız için rapor ettiği şeyi tam olarak gösterir. event.code her zaman fiziksel konumun QWERTY adını döndürürken, event.key dilinize göre gerçek karakteri gösterecektir.',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Herhangi bir tuşa basın',
36
+ text: 'Sayfaya odaklanarak, tüm olay bilgilerini anında görmek için klavyenin herhangi bir tuşuna basın.',
37
+ },
38
+ {
39
+ name: 'Bireysel değerleri kopyalayın',
40
+ text: 'Her özelliğin (event.key, event.code vb.) yanındaki kopyala düğmesine tıklayarak bu belirli değeri panoya kopyalayın.',
41
+ },
42
+ {
43
+ name: 'Kod parçacıklarını kullanın',
44
+ text: '"Hızlı Parçacıklar" bölümünde doğrudan projenize yapıştırmaya hazır JavaScript kod blokları bulacaksınız.',
45
+ },
46
+ ];
47
+
48
+ const faqSchema: WithContext<FAQPage> = {
49
+ '@context': 'https://schema.org',
50
+ '@type': 'FAQPage',
51
+ mainEntity: faqData.map((item) => ({
52
+ '@type': 'Question',
53
+ name: item.question,
54
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
55
+ })),
56
+ };
57
+
58
+ const howToSchema: WithContext<HowToThing> = {
59
+ '@context': 'https://schema.org',
60
+ '@type': 'HowTo',
61
+ name: title,
62
+ description,
63
+ step: howToData.map((step, i) => ({
64
+ '@type': 'HowToStep',
65
+ position: i + 1,
66
+ name: step.name,
67
+ text: step.text,
68
+ })),
69
+ };
70
+
71
+ const appSchema: WithContext<SoftwareApplication> = {
72
+ '@context': 'https://schema.org',
73
+ '@type': 'SoftwareApplication',
74
+ name: title,
75
+ description,
76
+ applicationCategory: 'DeveloperApplication',
77
+ operatingSystem: 'All',
78
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
79
+ inLanguage: 'tr',
80
+ };
81
+
82
+ const ui: KeycodeUI = {
83
+ promptTitle: 'Bir tuşa basın',
84
+ promptSubtitle: 'Kodunu görmek için klavyenin herhangi bir tuşuna basın',
85
+ snippetsTitle: 'Hızlı Parçacıklar',
86
+ btnCopy: 'Kopyala',
87
+ locationStandard: 'Standart',
88
+ locationLeft: 'Sol',
89
+ locationRight: 'Sağ',
90
+ locationNumpad: 'Saypad',
91
+ };
92
+
93
+ export const content: ToolLocaleContent<KeycodeUI> = {
94
+ slug,
95
+ title,
96
+ description,
97
+ ui,
98
+ faqTitle: 'Sık Sorulan Sorular',
99
+ faq: faqData,
100
+ bibliographyTitle: 'Referanslar ve Standartlar',
101
+ bibliography: [
102
+ {
103
+ name: 'MDN Web Docs – KeyboardEvent',
104
+ url: 'https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent',
105
+ },
106
+ {
107
+ name: 'UI Events Specification (W3C) – KeyboardEvent',
108
+ url: 'https://www.w3.org/TR/uievents/#events-keyboardevents',
109
+ },
110
+ {
111
+ name: 'MDN – KeyboardEvent.code values',
112
+ url: 'https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_code_values',
113
+ },
114
+ ],
115
+ howTo: howToData,
116
+ schemas: [faqSchema, howToSchema, appSchema],
117
+ seo: [
118
+ {
119
+ type: 'title',
120
+ text: 'JavaScript\'te Klavye Olaylarını Anlama',
121
+ level: 2,
122
+ },
123
+ {
124
+ type: 'paragraph',
125
+ html: 'Bir kullanıcı bir tuşa bastığında, tarayıcı üç olayı tetikler: <code>keydown</code>, <code>keypress</code> ve <code>keyup</code>. Her biri basılan tuş hakkında bilgi içeren özellikler ortaya çıkarır, ancak hepsi eşdeğer veya önerilir değildir.',
126
+ },
127
+ {
128
+ type: 'title',
129
+ text: 'Tuş Olayı Özellikleri',
130
+ level: 3,
131
+ },
132
+ {
133
+ type: 'grid',
134
+ columns: 2,
135
+ },
136
+ {
137
+ type: 'card',
138
+ title: 'event.code — Fiziksel Tuş',
139
+ html: '<p>Tuşun klavyedeki <strong>fiziksel konumunun</strong> tanımlayıcısını QWERTY nomenklaturunu kullanarak döndürür. Örneğin, AZERTY klavyesindeki "A" tuşu <code>KeyQ</code> döndürür. Konum önemli olan, karakter değil, oyun kontrolleri için idealdir.</p>',
140
+ },
141
+ {
142
+ type: 'card',
143
+ title: 'event.key — Oluşturulan Karakter',
144
+ html: '<p>Dil ve etkin değiştiricilere göre oluşturulan <strong>karakter değerini</strong> döndürür. Shift+A tuşuna basmak <code>"A"</code> döndürür; Shift olmadan <code>"a"</code> döndürür. Özel tuşlar için <code>"Enter"</code>, <code>"Escape"</code>, <code>"ArrowUp"</code> gibi adları döndürür.</p>',
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: 'Her bir özelliği ne zaman kullanacağınız',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'tip',
153
+ html: 'Oyun kontrolleri için <code>event.code</code> (dilden bağımsız olarak WASD) ve belirli karakterleri veya <code>Ctrl+C</code> gibi anlamsal klavye kısayollarını algılamak için <code>event.key</code> kullanın.',
154
+ },
155
+ {
156
+ type: 'paragraph',
157
+ html: '<code>event.which</code> ve <code>event.keyCode</code> özellikleri W3C standardına göre resmi olarak <strong>kullanımdan kaldırılmıştır</strong>. Modern tarayıcılar uyumluluğu korunması için desteklemeye devam etse de, yeni kodda kullanılmamalıdırlar.',
158
+ },
159
+ ],
160
+ };
@@ -0,0 +1,161 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { KeycodeUI } from '../ui';
4
+
5
+ const slug = 'keycode';
6
+ const title = '在线键盘按键代码可视化工具。按键代码检查器';
7
+ const description =
8
+ '免费在线工具,可实时查看任何键盘按键的event.key、event.code、event.which和位置。生成即用的JavaScript代码片段。';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'event.key和event.code有什么区别?',
13
+ answer:
14
+ 'event.code代表键盘上按键的物理位置,与配置的语言无关。event.key代表生成的字符,如果按下Shift或使用不同的语言,可能会改变。使用code进行游戏控制;使用key进行文本输入和语义快捷方式。',
15
+ },
16
+ {
17
+ question: '什么是event.which,为什么它已被弃用?',
18
+ answer:
19
+ 'event.which是一个旧属性,返回按键的数字ASCII代码。它在现代标准中被标记为已弃用,因为event.key和event.code用更准确和可读的信息取代了它。出于教育目的,在此工具中显示。',
20
+ },
21
+ {
22
+ question: 'location属性是什么意思?',
23
+ answer:
24
+ 'location属性指示按键在键盘上的物理位置:标准(正常位置)、左(左修饰键)、右(右修饰键)或数字键盘(数字键盘)。有助于区分左右CTRL键,例如。',
25
+ },
26
+ {
27
+ question: '它是否适用于国际键盘和非QWERTY布局?',
28
+ answer:
29
+ '是的。该工具显示浏览器针对您的键盘配置报告的确切内容。event.code将始终返回物理位置的QWERTY名称,而event.key将根据您的语言显示实际字符。',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: '按任意按键',
36
+ text: '将焦点放在页面上,按键盘上的任意按键即可立即查看所有事件信息。',
37
+ },
38
+ {
39
+ name: '复制单个值',
40
+ text: '点击每个属性(event.key、event.code等)旁边的复制按钮,将该特定值复制到剪贴板。',
41
+ },
42
+ {
43
+ name: '使用代码片段',
44
+ text: '在"快速片段"部分,您会找到随时可粘贴到项目中的JavaScript代码块。',
45
+ },
46
+ ];
47
+
48
+ const faqSchema: WithContext<FAQPage> = {
49
+ '@context': 'https://schema.org',
50
+ '@type': 'FAQPage',
51
+ mainEntity: faqData.map((item) => ({
52
+ '@type': 'Question',
53
+ name: item.question,
54
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
55
+ })),
56
+ };
57
+
58
+ const howToSchema: WithContext<HowToThing> = {
59
+ '@context': 'https://schema.org',
60
+ '@type': 'HowTo',
61
+ name: title,
62
+ description,
63
+ step: howToData.map((step, i) => ({
64
+ '@type': 'HowToStep',
65
+ position: i + 1,
66
+ name: step.name,
67
+ text: step.text,
68
+ })),
69
+ };
70
+
71
+ const appSchema: WithContext<SoftwareApplication> = {
72
+ '@context': 'https://schema.org',
73
+ '@type': 'SoftwareApplication',
74
+ name: title,
75
+ description,
76
+ applicationCategory: 'DeveloperApplication',
77
+ operatingSystem: 'All',
78
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
79
+ inLanguage: 'zh',
80
+ };
81
+
82
+ const ui: KeycodeUI = {
83
+ promptTitle: '按一个按键',
84
+ promptSubtitle: '按键盘上的任意按键查看其代码',
85
+ snippetsTitle: '快速片段',
86
+ btnCopy: '复制',
87
+ locationStandard: '标准',
88
+ locationLeft: '左',
89
+ locationRight: '右',
90
+ locationNumpad: '数字键盘',
91
+ };
92
+
93
+ export const content: ToolLocaleContent<KeycodeUI> = {
94
+ slug,
95
+ title,
96
+ description,
97
+ ui,
98
+ faqTitle: '常见问题',
99
+ faq: faqData,
100
+ bibliographyTitle: '参考资料和标准',
101
+ bibliography: [
102
+ {
103
+ name: 'MDN Web Docs – KeyboardEvent',
104
+ url: 'https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent',
105
+ },
106
+ {
107
+ name: 'UI Events Specification (W3C) – KeyboardEvent',
108
+ url: 'https://www.w3.org/TR/uievents/#events-keyboardevents',
109
+ },
110
+ {
111
+ name: 'MDN – KeyboardEvent.code values',
112
+ url: 'https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_code_values',
113
+ },
114
+ ],
115
+ howTo: howToData,
116
+ schemas: [faqSchema, howToSchema, appSchema],
117
+ seo: [
118
+ {
119
+ type: 'title',
120
+ text: 'JavaScript中的键盘事件',
121
+ level: 2,
122
+ },
123
+ {
124
+ type: 'paragraph',
125
+ html: '当用户按下按键时,浏览器会触发三个事件:<code>keydown</code>、<code>keypress</code>和<code>keyup</code>。每个都暴露有关按下的按键的信息的属性,但并非所有属性都是等效或推荐的。',
126
+ },
127
+ {
128
+ type: 'title',
129
+ text: '按键事件属性',
130
+ level: 3,
131
+ },
132
+ {
133
+ type: 'grid',
134
+ columns: 2,
135
+ },
136
+ {
137
+ type: 'card',
138
+ title: 'event.code — 物理按键',
139
+ html: '<p>使用QWERTY命名法返回键盘上按键<strong>物理位置</strong>的标识符。例如,AZERTY键盘上的"A"键返回<code>KeyQ</code>。对于位置重要而不是字符的游戏控制非常理想。</p>',
140
+ },
141
+ {
142
+ type: 'card',
143
+ title: 'event.key — 生成的字符',
144
+ html: '<p>返回根据语言和活动修饰符生成的<strong>字符值</strong>。按Shift+A返回<code>"A"</code>;没有Shift时返回<code>"a"</code>。对于特殊按键,返回名称如<code>"Enter"</code>、<code>"Escape"</code>、<code>"ArrowUp"</code>。</p>',
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: '何时使用每个属性',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'tip',
153
+ html: '对于游戏控制(无论语言如何都使用WASD)使用<code>event.code</code>,对于检测特定字符或语义键盘快捷方式(如<code>Ctrl+C</code>)使用<code>event.key</code>。',
154
+ },
155
+ {
156
+ type: 'paragraph',
157
+ html: '根据W3C标准,<code>event.which</code>和<code>event.keyCode</code>属性被正式<strong>弃用</strong>。尽管现代浏览器为了兼容性继续支持它们,但不应在新代码中使用它们。',
158
+ },
159
+ ],
160
+ };
161
+
@@ -7,10 +7,6 @@ import type { KeycodeUI } from './ui';
7
7
 
8
8
  export type KeycodeLocaleContent = ToolLocaleContent<KeycodeUI>;
9
9
 
10
- import { content as es } from './i18n/es';
11
- import { content as en } from './i18n/en';
12
- import { content as fr } from './i18n/fr';
13
-
14
10
  export const keycode: DeveloperToolEntry<KeycodeUI> = {
15
11
  id: 'keycode',
16
12
  icons: {
@@ -18,9 +14,21 @@ export const keycode: DeveloperToolEntry<KeycodeUI> = {
18
14
  fg: 'mdi:code-braces',
19
15
  },
20
16
  i18n: {
21
- es: async () => es,
22
- en: async () => en,
23
- fr: async () => fr,
17
+ de: async () => (await import('./i18n/de')).content,
18
+ en: async () => (await import('./i18n/en')).content,
19
+ es: async () => (await import('./i18n/es')).content,
20
+ fr: async () => (await import('./i18n/fr')).content,
21
+ id: async () => (await import('./i18n/id')).content,
22
+ it: async () => (await import('./i18n/it')).content,
23
+ ja: async () => (await import('./i18n/ja')).content,
24
+ ko: async () => (await import('./i18n/ko')).content,
25
+ nl: async () => (await import('./i18n/nl')).content,
26
+ pl: async () => (await import('./i18n/pl')).content,
27
+ pt: async () => (await import('./i18n/pt')).content,
28
+ ru: async () => (await import('./i18n/ru')).content,
29
+ sv: async () => (await import('./i18n/sv')).content,
30
+ tr: async () => (await import('./i18n/tr')).content,
31
+ zh: async () => (await import('./i18n/zh')).content,
24
32
  },
25
33
  };
26
34
 
@@ -0,0 +1,166 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { LlmCostCalculatorUI } from '../ui';
4
+
5
+ const slug = 'llm-kostenrechner';
6
+ const title = 'LLM Kostenrechner. KI Modell Preisschätzer';
7
+ const description =
8
+ 'Kostenloses Online-Tool zur Schätzung der Kosten von LLM-API-Aufrufen. Vergleiche GPT-4o, Claude, Gemini, Llama und mehr mit realen Token-Preisen pro Million Tokens.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Wie werden die Kosten einer LLM-API berechnet?',
13
+ answer:
14
+ 'LLM-APIs berechnen Eingabe Tokens (den Prompt) und Ausgabe Tokens (die Antwort) getrennt. Die Gesamtkosten pro Anfrage betragen: (Eingabe Tokens × Eingabepreis + Ausgabe Tokens × Ausgabepreis) / 1.000.000. Multipliziere diesen Wert mit der Anzahl der Anfragen, um die monatlichen Gesamtkosten zu erhalten.',
15
+ },
16
+ {
17
+ question: 'Was sind Tokens und wie hängen sie mit Wörtern zusammen?',
18
+ answer:
19
+ 'Ein Token ist die grundlegende Texteinheit, die ein Sprachmodell verarbeitet. Im Durchschnitt entspricht 1 Token etwa 0,75 Wörtern auf Englisch, also 1.000 Tokens ≈ 750 Wörter. Preise werden pro Million Tokens ($/1M) angegeben – das ist die branchenübliche Einheit bei allen Anbietern.',
20
+ },
21
+ {
22
+ question: 'Warum sind Ausgabe Tokens teurer als Eingabe Tokens?',
23
+ answer:
24
+ 'Das Generieren von Text (Ausgabe) erfordert, dass das Modell jeden Token nacheinander berechnet – das ist rechenintensiver als das Lesen der Eingabe. Die meisten Anbieter berechnen für Ausgabe Tokens das 3- bis 5-Fache des Preises für Eingabe Tokens.',
25
+ },
26
+ {
27
+ question: 'Wie kann ich die Kosten meiner LLM-API senken?',
28
+ answer:
29
+ 'Nutze das kleinste Modell, das deinen Qualitätsanforderungen entspricht. Caching von wiederholten Prompts spart ebenfalls Kosten. Halte den System-Prompt möglichst kurz und vermeide unnötigen Kontext. Für einfache Klassifizierungs- oder Extraktionsaufgaben bieten kleinere Modelle wie GPT-4o mini oder Gemini Flash erhebliche Einsparungen.',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Modell auswählen',
36
+ text: 'Wähle das KI Modell, das du verwenden möchtest, aus dem gruppierten Dropdown. Die Modelle sind nach Anbieter sortiert.',
37
+ },
38
+ {
39
+ name: 'Token-Anzahl eingeben',
40
+ text: 'Gib die erwartete Anzahl an Eingabe Tokens (dein Prompt) und Ausgabe Tokens (die Antwort) ein. Unter jedem Feld erscheint eine Schätzung in Wörtern.',
41
+ },
42
+ {
43
+ name: 'Anzahl der Anfragen festlegen',
44
+ text: 'Nutze den Schieberegler oder das Zahlenfeld, um die erwartete Anzahl an API-Aufrufen anzugeben. Die Gesamtkosten werden in Echtzeit aktualisiert.',
45
+ },
46
+ ];
47
+
48
+ const faqSchema: WithContext<FAQPage> = {
49
+ '@context': 'https://schema.org',
50
+ '@type': 'FAQPage',
51
+ mainEntity: faqData.map((item) => ({
52
+ '@type': 'Question',
53
+ name: item.question,
54
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
55
+ })),
56
+ };
57
+
58
+ const howToSchema: WithContext<HowToThing> = {
59
+ '@context': 'https://schema.org',
60
+ '@type': 'HowTo',
61
+ name: title,
62
+ description,
63
+ step: howToData.map((step, i) => ({
64
+ '@type': 'HowToStep',
65
+ position: i + 1,
66
+ name: step.name,
67
+ text: step.text,
68
+ })),
69
+ };
70
+
71
+ const appSchema: WithContext<SoftwareApplication> = {
72
+ '@context': 'https://schema.org',
73
+ '@type': 'SoftwareApplication',
74
+ name: title,
75
+ description,
76
+ applicationCategory: 'DeveloperApplication',
77
+ operatingSystem: 'All',
78
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
79
+ inLanguage: 'de',
80
+ };
81
+
82
+ const ui: LlmCostCalculatorUI = {
83
+ labelModel: 'LLM-Modell',
84
+ labelInputTokens: 'Eingabe Tokens',
85
+ labelOutputTokens: 'Ausgabe Tokens',
86
+ labelRequests: 'Anzahl Anfragen',
87
+ unitWords: 'Wörter',
88
+ labelCostPerRequest: 'Kosten pro Anfrage',
89
+ labelTotal: 'Geschätzte Gesamtkosten',
90
+ labelInput: 'Eingabe',
91
+ labelOutput: 'Ausgabe',
92
+ };
93
+
94
+ export const content: ToolLocaleContent<LlmCostCalculatorUI> = {
95
+ slug,
96
+ title,
97
+ description,
98
+ ui,
99
+ faqTitle: 'Häufig gestellte Fragen',
100
+ faq: faqData,
101
+ bibliographyTitle: 'Quellen und Preisreferenzen',
102
+ bibliography: [
103
+ {
104
+ name: 'OpenAI API-Preise',
105
+ url: 'https://openai.com/pricing',
106
+ },
107
+ {
108
+ name: 'Anthropic API-Preise',
109
+ url: 'https://www.anthropic.com/pricing',
110
+ },
111
+ {
112
+ name: 'Google AI Studio Preise',
113
+ url: 'https://ai.google.dev/pricing',
114
+ },
115
+ {
116
+ name: 'OpenAI Tokenizer',
117
+ url: 'https://platform.openai.com/tokenizer',
118
+ },
119
+ ],
120
+ howTo: howToData,
121
+ schemas: [faqSchema, howToSchema, appSchema],
122
+ seo: [
123
+ {
124
+ type: 'title',
125
+ text: 'LLM-API-Preise verstehen',
126
+ level: 2,
127
+ },
128
+ {
129
+ type: 'paragraph',
130
+ html: 'APIs für große Sprachmodelle werden nach Token-Nutzung abgerechnet – nicht nach Zeit oder Anfragen. Jeder API-Aufruf hat zwei Kostenkomponenten: die <strong>Eingabekosten</strong> (Verarbeitung deines Prompts) und die <strong>Ausgabekosten</strong> (Generierung der Antwort). Diesen Unterschied zu verstehen ist der Schlüssel zur genauen Schätzung deiner monatlichen Rechnung.',
131
+ },
132
+ {
133
+ type: 'title',
134
+ text: 'Eingabe Tokens vs. Ausgabe Tokens',
135
+ level: 3,
136
+ },
137
+ {
138
+ type: 'grid',
139
+ columns: 2,
140
+ },
141
+ {
142
+ type: 'card',
143
+ title: 'Eingabe Tokens',
144
+ html: '<p>Eingabe Tokens umfassen alles, was <strong>an</strong> das Modell gesendet wird: deinen System-Prompt, den Gesprächsverlauf und die Nutzernachricht. Sie sind günstiger, weil das Modell sie parallel verarbeitet. Ein typischer System-Prompt mit 200 Wörtern entspricht etwa 267 Eingabe Tokens.</p>',
145
+ },
146
+ {
147
+ type: 'card',
148
+ title: 'Ausgabe Tokens',
149
+ html: '<p>Ausgabe Tokens werden sequenziell – Token für Token – erzeugt, was sie rechenintensiver macht. Die meisten Anbieter berechnen für Ausgabe Tokens <strong>das 3- bis 5-Fache</strong> des Eingabepreises. Eine Antwort mit 300 Wörtern erzeugt etwa 400 Ausgabe Tokens. Präzise Antworten zu halten ist eine der wirkungsvollsten Methoden, Kosten zu sparen.</p>',
150
+ },
151
+ {
152
+ type: 'title',
153
+ text: 'Das richtige Modell für dein Budget wählen',
154
+ level: 3,
155
+ },
156
+ {
157
+ type: 'tip',
158
+ html: 'Starte mit einem leistungsfähigen Mittelklasse-Modell wie <code>GPT-4o mini</code> oder <code>Gemini 1.5 Flash</code> und steige nur dann auf, wenn die Qualität nicht ausreicht. Der Kostenunterschied zwischen kleinen und großen Modellen kann das 10- bis 100-Fache betragen.',
159
+ },
160
+ {
161
+ type: 'paragraph',
162
+ html: 'Nicht jede Aufgabe erfordert die gleiche Modellqualität. Klassifizierung, Extraktion und Zusammenfassungen funktionieren häufig auch mit kleineren, günstigeren Modellen gut. Spare dir große Frontier-Modelle wie <code>claude-3-opus</code> oder <code>o1</code> für komplexe Denkaufgaben, bei denen Qualität direkt das Ergebnis beeinflusst.',
163
+ },
164
+ ],
165
+ };
166
+
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { LlmCostCalculatorUI } from '../ui';
4
4
 
5
- const slug = 'llm-cost-calculator';
5
+ const slug = 'calculateur-couts-llm';
6
6
  const title = 'Calculateur de Coûts LLM. Estimateur de Prix des APIs IA';
7
7
  const description =
8
8
  'Outil en ligne gratuit pour estimer le coût des appels aux APIs de modèles de langage. Comparez GPT-4o, Claude, Gemini, Llama et plus avec les vrais prix par million de tokens.';
@@ -163,3 +163,4 @@ export const content: ToolLocaleContent<LlmCostCalculatorUI> = {
163
163
  },
164
164
  ],
165
165
  };
166
+