@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,174 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { SvgToCssUI } from '../ui';
4
+
5
+ const slug = 'svg-till-css-konverterare';
6
+ const title = 'Gratis Online SVG till CSS och Data URI konverterare';
7
+ const description =
8
+ 'Omvandla dina SVG-ikoner och vektorer till CSS-kod (Background eller Mask) eller komprimerade Data URI-strängar. Optimera din webbplats prestanda genom att eliminera externa HTTP-anrop.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Är det bättre att använda en Data URI eller en extern .svg-fil?',
13
+ answer:
14
+ 'Det beror på användningsfallet. Data URI:er eliminerar HTTP-anrop (idealiskt för små ikoner), men ökar CSS-filens storlek. För stora eller detaljrika illustrationer är en extern fil att föredra.',
15
+ },
16
+ {
17
+ question: 'Hur ändrar jag färgen på en SVG som är inbäddad i CSS?',
18
+ answer:
19
+ "Det bästa sättet är via 'mask-image'. Genom att definiera SVG:n som en mask kan du använda 'background-color' för att ändra dess färg dynamiskt, även i :hover-lägen.",
20
+ },
21
+ {
22
+ question: 'Vilka webbläsare stöder CSS Masks?',
23
+ answer:
24
+ 'Alla moderna webbläsare (Chrome, Firefox, Safari, Edge) har fullt stöd. För äldre webbläsare används vanligen -webkit-prefix.',
25
+ },
26
+ {
27
+ question: 'Påverkar användningen av Data URI:er SEO?',
28
+ answer:
29
+ 'Ja, positivt. Genom att minska antalet anrop som behövs för att rendera sidan förbättras laddningstiden (LCP) och Core Web Vitals-poängen.',
30
+ },
31
+ {
32
+ question: 'Kan jag använda den i ramverk som React eller Tailwind?',
33
+ answer:
34
+ 'Absolut! Du kan kopiera den genererade koden och använda den i dina .css-filer eller till och med som godtyckliga värden i Tailwind CSS.',
35
+ },
36
+ ];
37
+
38
+ const howToData = [
39
+ {
40
+ name: 'Klistra in SVG',
41
+ text: 'Kopiera källkoden för din SVG-fil och klistra in den i textområdet till vänster.',
42
+ },
43
+ {
44
+ name: 'Välj utdatatyp',
45
+ text: 'Välj mellan Bakgrundsbild (för statiska bakgrunder), CSS-mask (för ikoner med dynamisk färg) eller Endast Data URI (för direkt användning).',
46
+ },
47
+ {
48
+ name: 'Kopiera resultatet',
49
+ text: 'Klicka på "Kopiera" för att ta den genererade CSS-koden till ditt urklipp.',
50
+ },
51
+ {
52
+ name: 'Applicera i ditt projekt',
53
+ text: 'Klistra in koden i din stylesheet eller CSS-komponent. För masker, lägg även till background-color för att definiera ikonens färg.',
54
+ },
55
+ ];
56
+
57
+ const faqSchema: WithContext<FAQPage> = {
58
+ '@context': 'https://schema.org',
59
+ '@type': 'FAQPage',
60
+ mainEntity: faqData.map((item) => ({
61
+ '@type': 'Question',
62
+ name: item.question,
63
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
64
+ })),
65
+ };
66
+
67
+ const howToSchema: WithContext<HowToThing> = {
68
+ '@context': 'https://schema.org',
69
+ '@type': 'HowTo',
70
+ name: title,
71
+ description,
72
+ step: howToData.map((step, i) => ({
73
+ '@type': 'HowToStep',
74
+ position: i + 1,
75
+ name: step.name,
76
+ text: step.text,
77
+ })),
78
+ };
79
+
80
+ const appSchema: WithContext<SoftwareApplication> = {
81
+ '@context': 'https://schema.org',
82
+ '@type': 'SoftwareApplication',
83
+ name: title,
84
+ description,
85
+ applicationCategory: 'UtilityApplication',
86
+ operatingSystem: 'All',
87
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
88
+ inLanguage: 'sv',
89
+ };
90
+
91
+ const ui: SvgToCssUI = {
92
+ labelPasteTitle: 'Klistra in SVG',
93
+ labelInputArea: 'SVG-källkod',
94
+ labelPreviewOriginal: 'Originalförhandsgranskning',
95
+ labelResultTitle: 'CSS-resultat',
96
+ labelPreviewApplied: 'Applicerat resultat',
97
+ tabBackground: 'Bakgrundsbild',
98
+ tabMask: 'CSS-mask / Webkit',
99
+ tabUri: 'Endast Data URI',
100
+ btnCopy: 'Kopiera',
101
+ btnCopied: 'Kopierad!',
102
+ placeholder: '<svg xmlns="http://www.w3.org/2000/svg" ...',
103
+ };
104
+
105
+ export const content: ToolLocaleContent<SvgToCssUI> = {
106
+ slug,
107
+ title,
108
+ description,
109
+ ui,
110
+ faqTitle: 'Vanliga frågor',
111
+ faq: faqData,
112
+ bibliographyTitle: 'Referenser och dokumentation',
113
+ bibliography: [
114
+ {
115
+ name: 'CSS-Tricks: Använda SVG som bakgrund',
116
+ url: 'https://css-tricks.com/using-svg/',
117
+ },
118
+ {
119
+ name: 'MDN Web Docs: mask-image',
120
+ url: 'https://developer.mozilla.org/en-US/docs/Web/CSS/mask-image',
121
+ },
122
+ {
123
+ name: 'MDN Web Docs: background-image',
124
+ url: 'https://developer.mozilla.org/en-US/docs/Web/CSS/background-image',
125
+ },
126
+ {
127
+ name: 'W3C: CSS Masking Module Level 1',
128
+ url: 'https://www.w3.org/TR/css-masking-1/',
129
+ },
130
+ ],
131
+ howTo: howToData,
132
+ schemas: [faqSchema, howToSchema, appSchema],
133
+ seo: [
134
+ {
135
+ type: 'title',
136
+ text: 'Varför konvertera SVG till CSS Data URI?',
137
+ level: 2,
138
+ },
139
+ {
140
+ type: 'paragraph',
141
+ html: 'I modern webbutveckling är optimering av prestanda och resursladdning avgörande. Att bädda in ikoner direkt i CSS via <strong>Data URI:er</strong> eliminerar onödiga HTTP-anrop, vilket minskar latens och förbättrar Time to Interactive (TTI).',
142
+ },
143
+ {
144
+ type: 'paragraph',
145
+ html: 'Detta verktyg omvandlar <code>&lt;svg&gt;</code>-vektorkod till en kodad textsträng som webbläsaren kan tolka som en bakgrundsbild eller en urklippsmask, samtidigt som den oändliga skalbarheten och skärpan hos vektorer bibehålls.',
146
+ },
147
+ {
148
+ type: 'title',
149
+ text: 'Viktiga tekniska fördelar',
150
+ level: 3,
151
+ },
152
+ {
153
+ type: 'list',
154
+ items: [
155
+ '<strong>Noll HTTP-anrop:</strong> Genom att bädda in grafiken i dina <code>.css</code>-filer behöver webbläsaren inte ladda ner ytterligare externa filer.',
156
+ '<strong>Anpassning via CSS-mask:</strong> Med <code>mask-image</code>-tekniken kan du ändra färgen på en komplex vektorikon genom att bara använda <code>background-color</code>.',
157
+ '<strong>Omedelbar rendering:</strong> Du undviker innehållsflimmer (FOUC) eftersom kritiska visuella resurser är tillgängliga så snart stilmallen har laddats ner.',
158
+ ],
159
+ },
160
+ {
161
+ type: 'title',
162
+ text: 'CSS Masker vs Bakgrunder',
163
+ level: 3,
164
+ },
165
+ {
166
+ type: 'paragraph',
167
+ html: 'Många utvecklare använder helt enkelt <code>background-image</code> för att bädda in vektorer, men detta har en begränsning: du kan inte ändra SVG-färgen dynamiskt från CSS.',
168
+ },
169
+ {
170
+ type: 'paragraph',
171
+ html: 'Vårt verktyg stöder kodgenerering för <strong>CSS Masker</strong>. Genom att applicera en <code>mask-image</code> med den genererade Data URI:n fungerar ikonen som en schablon, vilket gör att elementets <code>background-color</code> definierar ikonens slutliga färg. Det är det mest professionella och flexibla sättet att hantera ikoner i Astro, Next.js eller andra moderna ramverk.',
172
+ },
173
+ ],
174
+ };
@@ -0,0 +1,174 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { SvgToCssUI } from '../ui';
4
+
5
+ const slug = 'svg-css-donusturucu';
6
+ const title = 'Ücretsiz Çevrimiçi SVG CSS ve Data URI Dönüştürücü';
7
+ const description =
8
+ 'SVG ikonlarınızı ve vektörlerinizi CSS koduna (Background veya Mask) veya sıkıştırılmış Data URI\'ye dönüştürün. Harici HTTP isteklerini ortadan kaldırarak web sitenizin performansını optimize edin.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Data URI kullanmak mı yoksa harici bir .svg dosyası kullanmak mı daha iyidir?',
13
+ answer:
14
+ 'Kullanım durumuna bağlıdır. Data URI\'lar HTTP isteklerini ortadan kaldırır (küçük ikonlar için idealdir), ancak CSS dosya boyutunu artırır. Büyük veya ayrıntı açısından zengin illüstrasyonlar için harici bir dosya tercih edilir.',
15
+ },
16
+ {
17
+ question: 'CSS\'e gömülü bir SVG\'nin rengini nasıl değiştirebilirim?',
18
+ answer:
19
+ "En iyi yol 'mask-image' kullanmaktır. SVG'yi bir maske olarak tanımlayarak, :hover durumlarında bile rengini dinamik olarak değiştirmek için 'background-color' kullanabilirsiniz.",
20
+ },
21
+ {
22
+ question: 'Hangi tarayıcılar CSS Maskelerini destekliyor?',
23
+ answer:
24
+ 'Tüm modern tarayıcılar (Chrome, Firefox, Safari, Edge) tam desteğe sahiptir. Eski tarayıcılar için yaygın olarak -webkit- önekleri kullanılır.',
25
+ },
26
+ {
27
+ question: 'Data URI kullanımı SEO\'yu etkiler mi?',
28
+ answer:
29
+ 'Evet, olumlu yönde. Sayfayı oluşturmak için gereken istek sayısını azaltarak yükleme süresini (LCP) ve Core Web Vitals puanlarını iyileştirir.',
30
+ },
31
+ {
32
+ question: 'React veya Tailwind gibi frameworklerde kullanabilir miyim?',
33
+ answer:
34
+ 'Kesinlikle! Oluşturulan kodu kopyalayıp .css dosyalarınızda veya hatta Tailwind CSS\'de rastgele değerler olarak kullanabilirsiniz.',
35
+ },
36
+ ];
37
+
38
+ const howToData = [
39
+ {
40
+ name: 'SVG\'yi Yapıştırın',
41
+ text: 'SVG dosyanızın kaynak kodunu kopyalayın ve soldaki metin alanına yapıştırın.',
42
+ },
43
+ {
44
+ name: 'Çıktı türünü seçin',
45
+ text: 'Arka Plan Resmi (statik arka planlar için), CSS Maskesi (dinamik renge sahip ikonlar için) veya Yalnızca Data URI (doğrudan kullanım için) arasında seçim yapın.',
46
+ },
47
+ {
48
+ name: 'Sonucu kopyalayın',
49
+ text: 'Oluşturulan CSS kodunu panonuza almak için "Kopyala"ya tıklayın.',
50
+ },
51
+ {
52
+ name: 'Projenize uygulayın',
53
+ text: 'Kodu stil sayfanıza veya CSS bileşeninize yapıştırın. Maskeler için, ikon rengini tanımlamak üzere background-color da ekleyin.',
54
+ },
55
+ ];
56
+
57
+ const faqSchema: WithContext<FAQPage> = {
58
+ '@context': 'https://schema.org',
59
+ '@type': 'FAQPage',
60
+ mainEntity: faqData.map((item) => ({
61
+ '@type': 'Question',
62
+ name: item.question,
63
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
64
+ })),
65
+ };
66
+
67
+ const howToSchema: WithContext<HowToThing> = {
68
+ '@context': 'https://schema.org',
69
+ '@type': 'HowTo',
70
+ name: title,
71
+ description,
72
+ step: howToData.map((step, i) => ({
73
+ '@type': 'HowToStep',
74
+ position: i + 1,
75
+ name: step.name,
76
+ text: step.text,
77
+ })),
78
+ };
79
+
80
+ const appSchema: WithContext<SoftwareApplication> = {
81
+ '@context': 'https://schema.org',
82
+ '@type': 'SoftwareApplication',
83
+ name: title,
84
+ description,
85
+ applicationCategory: 'UtilityApplication',
86
+ operatingSystem: 'All',
87
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
88
+ inLanguage: 'tr',
89
+ };
90
+
91
+ const ui: SvgToCssUI = {
92
+ labelPasteTitle: 'SVG\'yi Yapıştır',
93
+ labelInputArea: 'SVG Kaynak Kodu',
94
+ labelPreviewOriginal: 'Orijinal Önizleme',
95
+ labelResultTitle: 'CSS Sonucu',
96
+ labelPreviewApplied: 'Uygulanan Sonuç',
97
+ tabBackground: 'Arka Plan Resmi',
98
+ tabMask: 'CSS Maske / Webkit',
99
+ tabUri: 'Yalnızca Data URI',
100
+ btnCopy: 'Kopyala',
101
+ btnCopied: 'Kopyalandı!',
102
+ placeholder: '<svg xmlns="http://www.w3.org/2000/svg" ...',
103
+ };
104
+
105
+ export const content: ToolLocaleContent<SvgToCssUI> = {
106
+ slug,
107
+ title,
108
+ description,
109
+ ui,
110
+ faqTitle: 'Sıkça Sorulan Sorular',
111
+ faq: faqData,
112
+ bibliographyTitle: 'Referanslar ve Dokümantasyon',
113
+ bibliography: [
114
+ {
115
+ name: 'CSS-Tricks: Background Olarak SVG Kullanımı',
116
+ url: 'https://css-tricks.com/using-svg/',
117
+ },
118
+ {
119
+ name: 'MDN Web Docs: mask-image',
120
+ url: 'https://developer.mozilla.org/en-US/docs/Web/CSS/mask-image',
121
+ },
122
+ {
123
+ name: 'MDN Web Docs: background-image',
124
+ url: 'https://developer.mozilla.org/en-US/docs/Web/CSS/background-image',
125
+ },
126
+ {
127
+ name: 'W3C: CSS Masking Module Level 1',
128
+ url: 'https://www.w3.org/TR/css-masking-1/',
129
+ },
130
+ ],
131
+ howTo: howToData,
132
+ schemas: [faqSchema, howToSchema, appSchema],
133
+ seo: [
134
+ {
135
+ type: 'title',
136
+ text: 'Neden SVG\'yi CSS Data URI\'ye Dönüştürmelisiniz?',
137
+ level: 2,
138
+ },
139
+ {
140
+ type: 'paragraph',
141
+ html: 'Modern web geliştirmede, performansın ve kaynak yüklemesinin optimize edilmesi esastır. İkonları <strong>Data URI\'lar</strong> aracılığıyla doğrudan CSS\'e gömmek, gereksiz HTTP isteklerini ortadan kaldırır, gecikmeyi azaltır ve Etkileşim Süresini (TTI) iyileştirir.',
142
+ },
143
+ {
144
+ type: 'paragraph',
145
+ html: 'Bu araç, <code>&lt;svg&gt;</code> vektör kodunu, tarayıcının arka plan resmi veya kırpma maskesi olarak yorumlayabileceği kodlanmış bir metin dizisine dönüştürürken vektörlerin karakteristik özelliği olan sonsuz ölçeklenebilirliği ve keskinliği korur.',
146
+ },
147
+ {
148
+ type: 'title',
149
+ text: 'Temel Teknik Avantajlar',
150
+ level: 3,
151
+ },
152
+ {
153
+ type: 'list',
154
+ items: [
155
+ '<strong>Sıfır HTTP İsteği:</strong> Grafiği <code>.css</code> dosyalarınıza gömerek, tarayıcının ek harici dosyalar indirmesine gerek kalmaz.',
156
+ '<strong>CSS Maskesi ile Özelleştirme:</strong> <code>mask-image</code> tekniğini kullanarak, karmaşık bir vektör ikonunun rengini sadece <code>background-color</code> kullanarak değiştirebilirsiniz.',
157
+ '<strong>Anında Oluşturma:</strong> Kritik görsel kaynaklar stil sayfası indirilir indirilmez hazır olduğundan içerik titremesini (FOUC) önlersiniz.',
158
+ ],
159
+ },
160
+ {
161
+ type: 'title',
162
+ text: 'CSS Maskeleri vs Arka Planlar',
163
+ level: 3,
164
+ },
165
+ {
166
+ type: 'paragraph',
167
+ html: 'Pek çok geliştirici vektörleri gömmek için sadece <code>background-image</code> kullanır, ancak bunun bir sınırı vardır: SVG rengini CSS\'ten dinamik olarak değiştiremezsiniz.',
168
+ },
169
+ {
170
+ type: 'paragraph',
171
+ html: 'Aracımız <strong>CSS Maskeleri</strong> için kod oluşturmayı destekler. Oluşturulan Data URI ile bir <code>mask-image</code> uygulayarak ikon bir şablon görevi görür ve öğenin <code>background-color</code> özelliğinin son ikon rengini tanımlamasına olanak tanır. Astro, Next.js veya herhangi bir modern framework\'te ikonları yönetmenin en profesyonel ve esnek yolu budur.',
172
+ },
173
+ ],
174
+ };
@@ -0,0 +1,175 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { SvgToCssUI } from '../ui';
4
+
5
+ const slug = 'svg-to-css-converter';
6
+ const title = '免费在线 SVG 转 CSS 和 Data URI 转换器';
7
+ const description =
8
+ '将您的 SVG 图标和矢量图转换为 CSS 代码(背景或遮罩)或压缩的 Data URI。通过消除外部 HTTP 请求来优化您的网站性能。';
9
+
10
+ const faqData = [
11
+ {
12
+ question: '使用 Data URI 还是外部 .svg 文件更好?',
13
+ answer:
14
+ '这取决于使用场景。Data URI 消除了 HTTP 请求(非常适合小图标),但会增加 CSS 文件的大小。对于大型或细节丰富的插图,优先选择外部文件。',
15
+ },
16
+ {
17
+ question: '如何更改嵌入 CSS 的 SVG 的颜色?',
18
+ answer:
19
+ '最好的方法是通过“mask-image”。通过将 SVG 定义为遮罩(mask),您可以使用“background-color”动态更改其颜色,甚至在 :hover 状态下也可以。',
20
+ },
21
+ {
22
+ question: '哪些浏览器支持 CSS 遮罩(Masks)?',
23
+ answer:
24
+ '所有现代浏览器(Chrome、Firefox、Safari、Edge)都提供完全支持。对于较旧的浏览器,通常使用 -webkit- 前缀。',
25
+ },
26
+ {
27
+ question: '使用 Data URI 会影响 SEO 吗?',
28
+ answer:
29
+ '是的,有积极影响。通过减少渲染页面所需的请求数量,它可以缩短加载时间 (LCP) 并提高 Core Web Vitals 分数。',
30
+ },
31
+ {
32
+ question: '我可以在 React 或 Tailwind 等框架中使用它吗?',
33
+ answer:
34
+ '当然可以!您可以复制生成的代码并将其用于 .css 文件中,甚至可以作为 Tailwind CSS 中的任意值使用。',
35
+ },
36
+ ];
37
+
38
+ const howToData = [
39
+ {
40
+ name: '粘贴 SVG',
41
+ text: '复制 SVG 文件的源代码并将其粘贴到左侧的文本区域中。',
42
+ },
43
+ {
44
+ name: '选择输出类型',
45
+ text: '在背景图像(用于静态背景)、CSS 遮罩(用于具有动态颜色的图标)或仅 Data URI(用于直接使用)之间进行选择。',
46
+ },
47
+ {
48
+ name: '复制结果',
49
+ text: '点击“复制”将生成的 CSS 代码获取到剪贴板中。',
50
+ },
51
+ {
52
+ name: '在项目中使用',
53
+ text: '将代码粘贴到您的样式表或 CSS 组件中。对于遮罩,还需添加 background-color 来定义图标颜色。',
54
+ },
55
+ ];
56
+
57
+ const faqSchema: WithContext<FAQPage> = {
58
+ '@context': 'https://schema.org',
59
+ '@type': 'FAQPage',
60
+ mainEntity: faqData.map((item) => ({
61
+ '@type': 'Question',
62
+ name: item.question,
63
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
64
+ })),
65
+ };
66
+
67
+ const howToSchema: WithContext<HowToThing> = {
68
+ '@context': 'https://schema.org',
69
+ '@type': 'HowTo',
70
+ name: title,
71
+ description,
72
+ step: howToData.map((step, i) => ({
73
+ '@type': 'HowToStep',
74
+ position: i + 1,
75
+ name: step.name,
76
+ text: step.text,
77
+ })),
78
+ };
79
+
80
+ const appSchema: WithContext<SoftwareApplication> = {
81
+ '@context': 'https://schema.org',
82
+ '@type': 'SoftwareApplication',
83
+ name: title,
84
+ description,
85
+ applicationCategory: 'UtilityApplication',
86
+ operatingSystem: 'All',
87
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
88
+ inLanguage: 'zh',
89
+ };
90
+
91
+ const ui: SvgToCssUI = {
92
+ labelPasteTitle: '粘贴 SVG',
93
+ labelInputArea: 'SVG 源代码',
94
+ labelPreviewOriginal: '原始预览',
95
+ labelResultTitle: 'CSS 结果',
96
+ labelPreviewApplied: '应用后的结果',
97
+ tabBackground: '背景图像',
98
+ tabMask: 'CSS 遮罩 / Webkit',
99
+ tabUri: '仅 Data URI',
100
+ btnCopy: '复制',
101
+ btnCopied: '已复制!',
102
+ placeholder: '<svg xmlns="http://www.w3.org/2000/svg" ...',
103
+ };
104
+
105
+ export const content: ToolLocaleContent<SvgToCssUI> = {
106
+ slug,
107
+ title,
108
+ description,
109
+ ui,
110
+ faqTitle: '常见问题',
111
+ faq: faqData,
112
+ bibliographyTitle: '参考资料与文档',
113
+ bibliography: [
114
+ {
115
+ name: 'CSS-Tricks: 将 SVG 用作背景',
116
+ url: 'https://css-tricks.com/using-svg/',
117
+ },
118
+ {
119
+ name: 'MDN Web Docs: mask-image',
120
+ url: 'https://developer.mozilla.org/en-US/docs/Web/CSS/mask-image',
121
+ },
122
+ {
123
+ name: 'MDN Web Docs: background-image',
124
+ url: 'https://developer.mozilla.org/en-US/docs/Web/CSS/background-image',
125
+ },
126
+ {
127
+ name: 'W3C: CSS Masking Module Level 1',
128
+ url: 'https://www.w3.org/TR/css-masking-1/',
129
+ },
130
+ ],
131
+ howTo: howToData,
132
+ schemas: [faqSchema, howToSchema, appSchema],
133
+ seo: [
134
+ {
135
+ type: 'title',
136
+ text: '为什么要将 SVG 转换为 CSS Data URI?',
137
+ level: 2,
138
+ },
139
+ {
140
+ type: 'paragraph',
141
+ html: '在现代 Web 开发中,优化性能和资源加载至关重要。通过 <strong>Data URI</strong> 将图标直接嵌入 CSS 中可以消除不必要的 HTTP 请求,减少延迟并提高可交互时间 (TTI)。',
142
+ },
143
+ {
144
+ type: 'paragraph',
145
+ html: '此工具将 <code>&lt;svg&gt;</code> 矢量代码转换为浏览器可以解释为背景图像或剪切遮罩的编码文本字符串,同时保持矢量图特有的无限扩展性和清晰度。',
146
+ },
147
+ {
148
+ type: 'title',
149
+ text: '主要技术优势',
150
+ level: 3,
151
+ },
152
+ {
153
+ type: 'list',
154
+ items: [
155
+ '<strong>零 HTTP 请求:</strong> 通过将图形嵌入到 <code>.css</code> 文件中,浏览器无需下载额外的外部文件。',
156
+ '<strong>通过 CSS 遮罩进行自定义:</strong> 使用 <code>mask-image</code> 技术,您只需使用 <code>background-color</code> 即可更改复杂矢量图标的颜色。',
157
+ '<strong>即时渲染:</strong> 由于关键视觉资源在样式表下载后即可立即使用,您可以避免内容闪烁 (FOUC)。',
158
+ ],
159
+ },
160
+ {
161
+ type: 'title',
162
+ text: 'CSS 遮罩 vs 背景',
163
+ level: 3,
164
+ },
165
+ {
166
+ type: 'paragraph',
167
+ html: '许多开发人员仅仅使用 <code>background-image</code> 来嵌入矢量图,但这有一个限制:您无法从 CSS 动态更改 SVG 颜色。',
168
+ },
169
+ {
170
+ type: 'paragraph',
171
+ html: '我们的工具支持为 <strong>CSS 遮罩</strong>生成代码。通过在生成的 Data URI 中应用 <code>mask-image</code>,图标将充当模板,允许元素的 <code>background-color</code> 定义最终的图标颜色。这是在 Astro、Next.js 或任何现代框架中管理图标的最专业且最灵活的方式。',
172
+ },
173
+ ],
174
+ };
175
+
@@ -7,10 +7,6 @@ import type { SvgToCssUI } from './ui';
7
7
 
8
8
  export type SvgToCssLocaleContent = ToolLocaleContent<SvgToCssUI>;
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 svgToCss: DeveloperToolEntry<SvgToCssUI> = {
15
11
  id: 'svg-to-css',
16
12
  icons: {
@@ -18,9 +14,21 @@ export const svgToCss: DeveloperToolEntry<SvgToCssUI> = {
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,116 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { UrlCleanerUI } from '../ui';
4
+
5
+ const slug = 'url-tracking-bereiniger';
6
+ const title = 'URL Tracking Bereiniger: UTM, FBCLID und GCLID entfernen';
7
+ const description = 'Entfernt automatisch Tracking- und Werbeparameter aus deinen URLs. Teile saubere Links und schütze deine digitale Privatsphäre sofort.';
8
+
9
+ const faqData = [
10
+ {
11
+ question: 'Welche Arten von Tracking-Parametern entfernt dieses Tool?',
12
+ answer: 'Das Tool erkennt und entfernt automatisch die gängigsten Tracking-Parameter: UTM-Parameter (utm_source, utm_medium usw.), Klick-IDs aus der Werbung (fbclid, gclid, msclkid) sowie Kennungen aus E-Mail-Marketing-Kampagnen (mc_cid, _hsenc).',
13
+ },
14
+ {
15
+ question: 'Beeinträchtigt das die Funktionalität der Website?',
16
+ answer: 'In der Regel nicht. Diese Parameter werden fast ausschließlich für Analyse und Marketing verwendet. Wenn du sie entfernst, lädt die Seite ganz normal – nur der Websitebetreiber kann nicht mehr nachvollziehen, woher dein Klick stammte.',
17
+ },
18
+ {
19
+ question: 'Ist es sicher, meine Links hier zu verarbeiten?',
20
+ answer: 'Absolut. Wie alle unsere Tools läuft der Prozess zu 100 % clientseitig ab. Deine Links werden niemals an unsere Server übertragen – alles geschieht privat in deinem eigenen Browser.',
21
+ },
22
+ {
23
+ question: 'Warum sind meine Facebook-Links so lang?',
24
+ answer: 'Facebook hängt an jeden Link, der die Plattform verlässt, einen Parameter namens „fbclid" an. Damit können sie deine Aktivitäten auf anderen Websites verfolgen – selbst wenn du Drittanbieter-Werbung blockiert hast.',
25
+ },
26
+ ];
27
+
28
+ const howToData = [
29
+ { name: 'URL einfügen', text: 'Gib die vollständige URL ein, die Tracking-Parameter enthält' },
30
+ { name: 'Bereinigen klicken', text: 'Das Tool analysiert die URL automatisch' },
31
+ { name: 'Ergebnis prüfen', text: 'Du siehst die bereinigte URL und eine Liste der entfernten Parameter' },
32
+ { name: 'Kopieren und teilen', text: 'Nutze die saubere URL in E-Mails, sozialen Netzwerken oder Nachrichten' },
33
+ ];
34
+
35
+ const faqSchema: WithContext<FAQPage> = {
36
+ '@context': 'https://schema.org',
37
+ '@type': 'FAQPage',
38
+ mainEntity: faqData.map((item) => ({
39
+ '@type': 'Question',
40
+ name: item.question,
41
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
42
+ })),
43
+ };
44
+
45
+ const howToSchema: WithContext<HowToThing> = {
46
+ '@context': 'https://schema.org',
47
+ '@type': 'HowTo',
48
+ name: title,
49
+ description,
50
+ step: howToData.map((s, i) => ({ '@type': 'HowToStep', position: i + 1, name: s.name, text: s.text })),
51
+ };
52
+
53
+ const appSchema: WithContext<SoftwareApplication> = {
54
+ '@context': 'https://schema.org',
55
+ '@type': 'SoftwareApplication',
56
+ name: title,
57
+ description,
58
+ applicationCategory: 'UtilityApplication',
59
+ operatingSystem: 'All',
60
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
61
+ inLanguage: 'de',
62
+ };
63
+
64
+ const ui: UrlCleanerUI = {
65
+ labelInput: 'URL mit Tracking-Parametern einfügen',
66
+ btnClean: 'Bereinigen',
67
+ labelCleaned: 'Bereinigte URL',
68
+ labelRemoved: 'Entfernte Tracker',
69
+ countLabel: 'Entfernte Parameter',
70
+ reductionLabel: 'Längenreduktion',
71
+ noneDetected: 'Keine gängigen Tracking-Parameter gefunden.',
72
+ errorInvalid: 'Bitte gib eine gültige URL ein.',
73
+ btnCopy: 'Kopieren',
74
+ btnCopied: 'Kopiert',
75
+ };
76
+
77
+ export const content: ToolLocaleContent<UrlCleanerUI> = {
78
+ slug,
79
+ title,
80
+ description,
81
+ ui,
82
+ faqTitle: 'Häufig gestellte Fragen',
83
+ faq: faqData,
84
+ bibliographyTitle: 'Ressourcen zu Datenschutz und Web-Tracking',
85
+ bibliography: [
86
+ { name: 'Electronic Frontier Foundation (EFF): Leitfaden zum Online-Tracking', url: 'https://www.eff.org/issues/online-behavioral-tracking' },
87
+ { name: 'Google Analytics: Dokumentation zu UTM-Parametern', url: 'https://support.google.com/analytics/answer/1033863' },
88
+ { name: 'Web-Datenschutz: Die Auswirkungen von Klick-IDs', url: 'https://www.w3.org/community/web-advertising/wiki/Click_Identifiers' },
89
+ ],
90
+ howTo: howToData,
91
+ schemas: [faqSchema, howToSchema, appSchema],
92
+ seo: [
93
+ { type: 'title', text: 'URL Tracking Bereiniger: UTM, FBCLID und GCLID entfernen', level: 2 },
94
+ {
95
+ type: 'paragraph',
96
+ html: 'Entferne unsichtbare Tracker aus deinen Links, um sie sauber, diskret und professionell zu teilen. Erfahre, was diese seltsamen Codes in deinen URLs wirklich bedeuten.',
97
+ },
98
+ { type: 'title', text: 'Was ist ein URL Tracking Bereiniger und warum brauchst du ihn?', level: 3 },
99
+ {
100
+ type: 'paragraph',
101
+ html: 'Hast du schon mal einen Link kopiert, um ihn an jemanden zu schicken, und dabei festgestellt, dass er dreimal so lang ist wie nötig? Dieser überschüssige Ballast sind Tracking-Parameter. Ein <strong>Tracking-Bereiniger</strong> ist ein Tool, das die URL von all den Werbe- und Analyse-Informationen befreit, die große Plattformen bei jedem deiner Klicks einschleusen.',
102
+ },
103
+ { type: 'title', text: 'Die häufigsten Tracking-Parameter', level: 3 },
104
+ {
105
+ type: 'list',
106
+ items: [
107
+ '<strong>UTM (Google Analytics):</strong> utm_source, utm_medium, utm_campaign zur Kampagnenverfolgung',
108
+ '<strong>FBCLID:</strong> Facebook-Klick-ID, um Cookie-Beschränkungen zu umgehen',
109
+ '<strong>GCLID / DCLID:</strong> Google Click ID zur Verknüpfung von Besuchen mit Google Ads-Kampagnen',
110
+ '<strong>MSCLKID:</strong> Klick-ID von Microsoft Advertising und Bing',
111
+ '<strong>HubSpot & Mailchimp:</strong> Marketing-Automatisierungsparameter wie _hsenc, mc_cid',
112
+ '<strong>LinkedIn & andere:</strong> li_fat_id und weitere Social-Media-Tracker',
113
+ ],
114
+ },
115
+ ],
116
+ };