@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,161 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { CssToInlineConverterUI } from '../ui';
4
+
5
+ const slug = 'css-to-inline-converter';
6
+ const title = 'CSSをインラインHTMLに変換するメール向けツール';
7
+ const description =
8
+ 'スタイルシートやCSSクラスを、HTML内に直接埋め込まれたインラインスタイルへ自動変換します。ニュースレター、トランザクショナルメール、安定したWebレイアウトに最適です。';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'メールに外部スタイルシートではなくインラインCSSが必要な理由は?',
13
+ answer:
14
+ 'Outlook、Gmail、Apple MailなどのメールクライアントはセキュリティUP上の理由から<link>タグや<style>タグを除去または無視します。メール内でスタイルを確実に反映させる唯一の方法は、各HTML要素のstyle属性に直接埋め込むことです。',
15
+ },
16
+ {
17
+ question: '要素にすでにstyle属性がある場合はどうなりますか?',
18
+ answer:
19
+ 'ツールは既存のインラインスタイルを尊重し、新しいプロパティをその後に追加します。CSSカスケードの挙動をシミュレートしており、競合が生じた場合は後から宣言されたプロパティが優先されます。',
20
+ },
21
+ {
22
+ question: ':hoverやメディアクエリのような複雑なセレクターにも対応していますか?',
23
+ answer:
24
+ 'このツールはDOMParserが解決できる、クラス・ID・属性・構造的疑似クラスのセレクターを処理します。:hoverのような状態依存セレクターやメディアクエリはランタイム環境に依存するためインライン化できず、無視されます。',
25
+ },
26
+ {
27
+ question: 'HTMLやCSSのコードはサーバーに送信されますか?',
28
+ answer:
29
+ 'いいえ。すべての処理はブラウザ内のネイティブDOMParser APIを使って100%ローカルで行われます。コードの一切がデバイスの外に出ることはなく、機密コンテンツを含むテンプレートでも完全なプライバシーが保証されます。',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: '元のHTMLを貼り付ける',
36
+ text: '「元のHTML」フィールドに処理したいHTMLを入力または貼り付けます。断片でも完全なドキュメントでも構いません。',
37
+ },
38
+ {
39
+ name: 'CSSルールを追加する',
40
+ text: '注入したいクラスやIDを「CSSルール」フィールドに貼り付けます。ツールはセレクターの詳細度を考慮して適用します。',
41
+ },
42
+ {
43
+ name: '変換してコピーする',
44
+ text: '「CSSをHTMLに注入」をクリックします。すべてのインラインスタイルが適用された結果が下に表示され、メール管理ツールやCMSにそのままコピー&ペーストできます。',
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: 'UtilityApplication',
77
+ operatingSystem: 'All',
78
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
79
+ inLanguage: 'ja',
80
+ };
81
+
82
+ const ui: CssToInlineConverterUI = {
83
+ labelHtml: '元のHTML',
84
+ labelCss: 'CSSルール',
85
+ labelOutput: 'インラインHTML結果',
86
+ placeholderHtml: '<div class="my-class">こんにちは世界</div>',
87
+ placeholderCss: '.my-class { color: red; padding: 10px; }',
88
+ placeholderOutput: 'スタイルが埋め込まれたHTMLがここに表示されます...',
89
+ btnConvert: 'CSSをHTMLに注入',
90
+ btnCopy: 'コードをコピー',
91
+ btnCopied: 'コピーしました!',
92
+ msgError: '処理エラーです。HTMLとCSSが正しい形式であるか確認してください。',
93
+ };
94
+
95
+ export const content: ToolLocaleContent<CssToInlineConverterUI> = {
96
+ slug,
97
+ title,
98
+ description,
99
+ ui,
100
+ faqTitle: 'よくある質問',
101
+ faq: faqData,
102
+ bibliographyTitle: '参考資料とドキュメント',
103
+ bibliography: [
104
+ {
105
+ name: 'Can I email: メール向けHTMLおよびCSSサポートマトリクス',
106
+ url: 'https://www.caniemail.com/',
107
+ },
108
+ {
109
+ name: 'MDN Web Docs: グローバルstyle属性',
110
+ url: 'https://developer.mozilla.org/ja/docs/Web/HTML/Global_attributes/style',
111
+ },
112
+ {
113
+ name: 'DOMParser API: ブラウザ内の安全なパース処理',
114
+ url: 'https://developer.mozilla.org/ja/docs/Web/API/DOMParser',
115
+ },
116
+ ],
117
+ howTo: howToData,
118
+ schemas: [faqSchema, howToSchema, appSchema],
119
+ seo: [
120
+ {
121
+ type: 'title',
122
+ text: 'CSSインライナーとは何か、なぜ必要なのか',
123
+ level: 2,
124
+ },
125
+ {
126
+ type: 'paragraph',
127
+ html: '現代のWeb開発では、役割を分離するのが一般的です。HTMLが構造を担い、外部CSSファイルがすべての視覚スタイルを提供します。しかし、外部スタイルシートやグローバルな<code>&lt;style&gt;</code>タグを信頼しない環境も存在します。',
128
+ },
129
+ {
130
+ type: 'paragraph',
131
+ html: '外部CSSが機能しない最も代表的な用途が<strong>メールテンプレート開発</strong>です。この環境では、フォント・色・余白を正しく表示させる唯一の確実な方法は、タグに直接埋め込むことです: <code>&lt;span style="color: red;"&gt;</code>。',
132
+ },
133
+ {
134
+ type: 'title',
135
+ text: 'メールクライアントにおけるCSSの問題',
136
+ level: 3,
137
+ },
138
+ {
139
+ type: 'paragraph',
140
+ html: 'Microsoft Outlook、Apple Mail、GmailなどのメールクライアントはCSSレンダリングエンジンが非常に制限的なことで知られています。多くは読み取りインターフェースを破壊しかねないコードインジェクションを防ぐため、<code>&lt;link&gt;</code>タグや<code>&lt;style&gt;</code>タグを除去します。',
141
+ },
142
+ {
143
+ type: 'tip',
144
+ html: 'ニュースレターやトランザクショナルメール(領収書、アカウント確認メールなど)では、テーブルレイアウトと<em>インラインCSS</em>の使用がメールマーケティング業界のゴールドスタンダードとされています。',
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: 'このツールがブラウザ内でどう動くか',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'list',
153
+ items: [
154
+ '<strong>安全なパース:</strong> <code>DOMParser API</code>を使用して、入力されたHTMLをブラウザ内の安全な仮想DOMに一時的に変換します。',
155
+ '<strong>カスケードのシミュレーション:</strong> CSSルールを解析し、セレクターに詳細度の重みを付け、対象HTML要素の<code>style</code>属性にコードを注入して書き換えます。',
156
+ '<strong>完全オフライン:</strong> コードの一切がデバイスの外に出ません。機密コンテンツを含むテンプレートでも完全なプライバシーを確保できます。',
157
+ ],
158
+ },
159
+ ],
160
+ };
161
+
@@ -0,0 +1,161 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { CssToInlineConverterUI } from '../ui';
4
+
5
+ const slug = 'css-to-inline-converter';
6
+ const title = 'CSS 인라인 HTML 변환기. 이메일용 CSS 인라이너';
7
+ const description =
8
+ '스타일시트와 CSS 클래스를 HTML 내에 직접 삽입된 인라인 스타일로 자동 변환합니다. 뉴스레터, 트랜잭션 이메일, 안정적인 웹 레이아웃에 적합합니다.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: '이메일에 외부 스타일시트 대신 인라인 CSS가 필요한 이유는 무엇인가요?',
13
+ answer:
14
+ 'Outlook, Gmail, Apple Mail 같은 이메일 클라이언트는 보안 이유로 <link> 및 <style> 태그를 필터링하거나 무시합니다. 이메일에서 스타일이 올바르게 적용되도록 보장하는 유일한 방법은 각 HTML 요소의 style 속성에 직접 삽입하는 것입니다.',
15
+ },
16
+ {
17
+ question: '요소에 이미 자체 style 속성이 있는 경우 어떻게 되나요?',
18
+ answer:
19
+ '이 도구는 기존 인라인 스타일을 유지하고 새로운 속성을 뒤에 추가하여 CSS 캐스케이드 동작을 시뮬레이션합니다. 충돌이 발생하면 나중에 선언된 속성이 앞의 속성을 덮어씁니다.',
20
+ },
21
+ {
22
+ question: ':hover나 미디어 쿼리 같은 복잡한 선택자도 처리되나요?',
23
+ answer:
24
+ '이 도구는 DOMParser가 처리할 수 있는 클래스, ID, 속성, 구조적 가상 클래스 선택자를 처리합니다. :hover 같은 상태 의존 선택자와 미디어 쿼리는 런타임 환경에 의존하므로 인라인화할 수 없으며 무시됩니다.',
25
+ },
26
+ {
27
+ question: '내 HTML과 CSS 코드가 서버로 전송되나요?',
28
+ answer:
29
+ '아니요. 모든 처리는 브라우저 내 기본 DOMParser API를 사용하여 100% 로컬에서 이루어집니다. 코드의 단 한 바이트도 기기 밖으로 나가지 않아 민감한 콘텐츠가 포함된 템플릿도 완전한 개인 정보 보호가 보장됩니다.',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: '원본 HTML 붙여넣기',
36
+ text: '처리할 HTML을 "원본 HTML" 필드에 입력하거나 붙여넣습니다. 조각이나 완전한 문서 모두 가능합니다.',
37
+ },
38
+ {
39
+ name: 'CSS 규칙 추가',
40
+ text: '삽입할 클래스와 ID를 "CSS 규칙" 필드에 붙여넣습니다. 도구는 선택자 명시도를 고려하여 적용합니다.',
41
+ },
42
+ {
43
+ name: '변환 후 복사',
44
+ text: '"CSS를 HTML에 삽입"을 클릭합니다. 모든 인라인 스타일이 적용된 결과가 아래에 표시되며, 이메일 관리자나 CMS에 바로 붙여넣을 수 있습니다.',
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: 'UtilityApplication',
77
+ operatingSystem: 'All',
78
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
79
+ inLanguage: 'ko',
80
+ };
81
+
82
+ const ui: CssToInlineConverterUI = {
83
+ labelHtml: '원본 HTML',
84
+ labelCss: 'CSS 규칙',
85
+ labelOutput: '인라인 HTML 결과',
86
+ placeholderHtml: '<div class="my-class">안녕하세요</div>',
87
+ placeholderCss: '.my-class { color: red; padding: 10px; }',
88
+ placeholderOutput: '스타일이 삽입된 HTML이 여기에 표시됩니다...',
89
+ btnConvert: 'CSS를 HTML에 삽입',
90
+ btnCopy: '코드 복사',
91
+ btnCopied: '복사됨!',
92
+ msgError: '처리 오류입니다. HTML과 CSS가 올바른지 확인하세요.',
93
+ };
94
+
95
+ export const content: ToolLocaleContent<CssToInlineConverterUI> = {
96
+ slug,
97
+ title,
98
+ description,
99
+ ui,
100
+ faqTitle: '자주 묻는 질문',
101
+ faq: faqData,
102
+ bibliographyTitle: '참고 자료 및 문서',
103
+ bibliography: [
104
+ {
105
+ name: 'Can I email: 이메일용 HTML 및 CSS 지원 매트릭스',
106
+ url: 'https://www.caniemail.com/',
107
+ },
108
+ {
109
+ name: 'MDN Web Docs: 글로벌 style 속성',
110
+ url: 'https://developer.mozilla.org/ko/docs/Web/HTML/Global_attributes/style',
111
+ },
112
+ {
113
+ name: 'DOMParser API: 브라우저 내 안전한 파싱',
114
+ url: 'https://developer.mozilla.org/ko/docs/Web/API/DOMParser',
115
+ },
116
+ ],
117
+ howTo: howToData,
118
+ schemas: [faqSchema, howToSchema, appSchema],
119
+ seo: [
120
+ {
121
+ type: 'title',
122
+ text: 'CSS 인라이너란 무엇이며 왜 필요한가요?',
123
+ level: 2,
124
+ },
125
+ {
126
+ type: 'paragraph',
127
+ html: '현대 웹 개발에서는 역할 분리가 일반적입니다. HTML이 구조를 담당하고 외부 CSS 파일이 모든 시각적 스타일을 제공합니다. 하지만 외부 스타일시트나 전역 <code>&lt;style&gt;</code> 태그를 신뢰하지 않는 환경도 존재합니다.',
128
+ },
129
+ {
130
+ type: 'paragraph',
131
+ html: '외부 CSS가 작동하지 않는 가장 대표적인 사례가 <strong>이메일 템플릿 개발</strong>입니다. 이 환경에서 글꼴, 색상, 여백이 올바르게 렌더링되도록 보장하는 유일한 방법은 태그에 직접 삽입하는 것입니다: <code>&lt;span style="color: red;"&gt;</code>.',
132
+ },
133
+ {
134
+ type: 'title',
135
+ text: '이메일 클라이언트에서의 CSS 문제',
136
+ level: 3,
137
+ },
138
+ {
139
+ type: 'paragraph',
140
+ html: 'Microsoft Outlook, Apple Mail, Gmail 같은 이메일 클라이언트는 제한적인 CSS 렌더링 엔진으로 잘 알려져 있습니다. 대부분은 읽기 인터페이스를 손상시킬 수 있는 코드 인젝션을 방지하기 위해 <code>&lt;link&gt;</code> 또는 <code>&lt;style&gt;</code> 태그를 필터링하거나 삭제합니다.',
141
+ },
142
+ {
143
+ type: 'tip',
144
+ html: '뉴스레터나 트랜잭션 이메일(영수증, 계정 확인 메일)에서는 테이블 레이아웃과 <em>인라인 CSS</em>를 사용하는 것이 이메일 마케팅 업계의 표준입니다.',
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: '이 도구가 브라우저에서 작동하는 방식',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'list',
153
+ items: [
154
+ '<strong>안전한 파싱:</strong> <code>DOMParser API</code>를 사용하여 입력된 HTML을 브라우저 내의 안전한 가상 DOM으로 임시 변환합니다.',
155
+ '<strong>캐스케이드 시뮬레이션:</strong> CSS 규칙을 분석하고 선택자에 명시도 가중치를 적용한 후, 선택된 HTML 요소의 <code>style</code> 속성에 코드를 삽입하여 수정합니다.',
156
+ '<strong>100% 오프라인:</strong> 코드의 단 한 바이트도 기기 밖으로 나가지 않습니다. 민감한 콘텐츠가 포함된 템플릿도 완전한 개인 정보 보호가 가능합니다.',
157
+ ],
158
+ },
159
+ ],
160
+ };
161
+
@@ -0,0 +1,160 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { CssToInlineConverterUI } from '../ui';
4
+
5
+ const slug = 'css-naar-inline-html-converter';
6
+ const title = 'CSS naar Inline HTML omzetten. Inliner voor emails';
7
+ const description =
8
+ 'Zet uw stylesheets en CSS-klassen automatisch om naar inline stijlen in uw HTML. Ideaal voor nieuwsbrieven, transactionele emails en betrouwbare webopmaak.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Waarom hebben emails inline CSS nodig in plaats van externe stylesheets?',
13
+ answer:
14
+ 'E-mailclients zoals Outlook, Gmail of Apple Mail filteren of negeren <link>- en <style>-tags om veiligheidsredenen. De enige gegarandeerde manier om een stijl correct toe te passen in een e-mail, is door die rechtstreeks in het style-attribuut van elk HTML-element in te sluiten.',
15
+ },
16
+ {
17
+ question: 'Wat gebeurt er als een element al een eigen style-attribuut heeft?',
18
+ answer:
19
+ 'Het gereedschap respecteert bestaande inline stijlen en voegt de nieuwe eigenschappen daarna toe, waarbij het CSS-cascadegedrag wordt gesimuleerd: eigenschappen die later worden gedeclareerd, overschrijven eerdere bij conflicten.',
20
+ },
21
+ {
22
+ question: 'Werkt het ook met complexe selectors zoals :hover of media queries?',
23
+ answer:
24
+ 'Het gereedschap verwerkt klasse-, id-, attribuut- en structurele pseudo-klasseselectors die DOMParser kan oplossen. Toestandsafhankelijke selectors zoals :hover en media queries kunnen niet worden geïnlined (ze zijn afhankelijk van de runtime-omgeving) en worden genegeerd.',
25
+ },
26
+ {
27
+ question: 'Wordt mijn HTML- en CSS-code naar een server gestuurd?',
28
+ answer:
29
+ 'Nee. Alle verwerking vindt 100% in uw browser plaats via de native DOMParser API. Geen enkele byte van uw code verlaat uw apparaat, wat volledige privacy garandeert voor sjablonen met gevoelige inhoud.',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Plak uw originele HTML',
36
+ text: 'Schrijf of plak de HTML die u wilt verwerken in het veld "Originele HTML". Dit kan een fragment of een volledig document zijn.',
37
+ },
38
+ {
39
+ name: 'Voeg uw CSS-regels toe',
40
+ text: 'Plak de klassen en id\'s die u wilt injecteren in het veld "CSS-regels". Het gereedschap past ze toe met inachtneming van de selectorspecificiteit.',
41
+ },
42
+ {
43
+ name: 'Converteren en kopiëren',
44
+ text: 'Klik op "CSS in HTML injecteren". Het resultaat met alle inline stijlen verschijnt eronder, klaar om te kopiëren en te plakken in uw e-mailprogramma of CMS.',
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: 'UtilityApplication',
77
+ operatingSystem: 'All',
78
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
79
+ inLanguage: 'nl',
80
+ };
81
+
82
+ const ui: CssToInlineConverterUI = {
83
+ labelHtml: 'Originele HTML',
84
+ labelCss: 'CSS-regels',
85
+ labelOutput: 'Inline HTML-resultaat',
86
+ placeholderHtml: '<div class="mijn-klasse">Hallo Wereld</div>',
87
+ placeholderCss: '.mijn-klasse { color: red; padding: 10px; }',
88
+ placeholderOutput: 'Uw HTML met ingebedde stijlen verschijnt hier...',
89
+ btnConvert: 'CSS in HTML injecteren',
90
+ btnCopy: 'Code kopiëren',
91
+ btnCopied: 'Gekopieerd!',
92
+ msgError: 'Verwerkingsfout. Controleer of uw HTML en CSS geldig zijn.',
93
+ };
94
+
95
+ export const content: ToolLocaleContent<CssToInlineConverterUI> = {
96
+ slug,
97
+ title,
98
+ description,
99
+ ui,
100
+ faqTitle: 'Veelgestelde vragen',
101
+ faq: faqData,
102
+ bibliographyTitle: 'Referenties en documentatie',
103
+ bibliography: [
104
+ {
105
+ name: 'Can I email: HTML- en CSS-ondersteuningsmatrix voor emails',
106
+ url: 'https://www.caniemail.com/',
107
+ },
108
+ {
109
+ name: 'MDN Web Docs: Het globale style-attribuut',
110
+ url: 'https://developer.mozilla.org/nl/docs/Web/HTML/Global_attributes/style',
111
+ },
112
+ {
113
+ name: 'DOMParser API: Veilig parseren in de browser',
114
+ url: 'https://developer.mozilla.org/nl/docs/Web/API/DOMParser',
115
+ },
116
+ ],
117
+ howTo: howToData,
118
+ schemas: [faqSchema, howToSchema, appSchema],
119
+ seo: [
120
+ {
121
+ type: 'title',
122
+ text: 'Wat is een CSS Inliner en waarom heeft u die nodig?',
123
+ level: 2,
124
+ },
125
+ {
126
+ type: 'paragraph',
127
+ html: 'Bij het ontwikkelen van moderne webapplicaties zijn we gewend om verantwoordelijkheden te scheiden: HTML bouwt de structuur, een extern CSS-bestand verzorgt alle visuele opmaak. Niet alle omgevingen vertrouwen echter op externe stylesheets of globale <code>&lt;style&gt;</code>-tags.',
128
+ },
129
+ {
130
+ type: 'paragraph',
131
+ html: 'Het meest voorkomende en strenge geval waarbij externe CSS tekortschiet, is de <strong>ontwikkeling van emailsjablonen</strong>. In deze omgevingen is de enige betrouwbare manier om een lettertype, kleur of marge correct weer te geven, het rechtstreeks in de tag insluiten: <code>&lt;span style="color: red;"&gt;</code>.',
132
+ },
133
+ {
134
+ type: 'title',
135
+ text: 'Het CSS-probleem in e-mailclients',
136
+ level: 3,
137
+ },
138
+ {
139
+ type: 'paragraph',
140
+ html: 'E-mailclients zoals Microsoft Outlook, Apple Mail of Gmail staan bekend om hun restrictieve CSS-rendermachines. De meeste filteren of verwijderen <code>&lt;link&gt;</code>- of <code>&lt;style&gt;</code>-tags uit angst voor code-injecties die de leesinterface kunnen verstoren.',
141
+ },
142
+ {
143
+ type: 'tip',
144
+ html: 'Voor nieuwsbrieven of transactionele emails (kassabonnen, accountbevestigingen) geldt het gebruik van tabellen en <em>inline CSS</em> als de gouden standaard in de e-mailmarketingbranche.',
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: 'Hoe dit gereedschap werkt in uw browser',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'list',
153
+ items: [
154
+ '<strong>Veilig parseren:</strong> Gebruikt de <code>DOMParser API</code> om de ingevoerde HTML tijdelijk te transformeren naar een veilige virtuele DOM binnen uw browser.',
155
+ '<strong>Cascadesimulatie:</strong> Analyseert uw CSS-regels, past specificiteitsgewichten toe op selectors en schrijft de <code>style</code>-attributen van de geselecteerde HTML-elementen bij door de code in te injecteren.',
156
+ '<strong>100% offline:</strong> Geen enkele byte van uw code verlaat uw apparaat. Volledige privacy voor sjablonen met gevoelige inhoud.',
157
+ ],
158
+ },
159
+ ],
160
+ };
@@ -0,0 +1,160 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { CssToInlineConverterUI } from '../ui';
4
+
5
+ const slug = 'konwerter-css-do-inline-html';
6
+ const title = 'Konwerter CSS na HTML Inline. Inliner do Wiadomości Email';
7
+ const description =
8
+ 'Transformuj swoje arkusze stylów i klasy CSS w automatycznie zagnieżdżone style w HTML. Idealny do biuletynów, transakcyjnych wiadomości email i bezpiecznych layoutów webowych.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Dlaczego wiadomości email potrzebują inline CSS zamiast zewnętrznych arkuszy stylów?',
13
+ answer:
14
+ 'Klienci poczty, tacy jak Outlook, Gmail lub Apple Mail, filtrują lub ignorują znaczniki <link> i <style> ze względów bezpieczeństwa. Jedynym gwarantowanym sposobem na prawidłowe zastosowanie stylu w wiadomości email jest osadzenie go bezpośrednio w atrybucie style każdego elementu HTML.',
15
+ },
16
+ {
17
+ question: 'Co się stanie, jeśli element ma już własny atrybut style?',
18
+ answer:
19
+ 'Narzędzie respektuje istniejące style inline i dołącza nowe właściwości, symulując zachowanie kaskady CSS: właściwości zadeklarowane później zastępują wcześniejsze w przypadku konfliktu.',
20
+ },
21
+ {
22
+ question: 'Czy to działa z złożonymi selektorami takimi jak :hover lub media queries?',
23
+ answer:
24
+ 'Narzędzie przetwarza selektory klas, id, atrybutów oraz pseudo-klas strukturalnych, które DOMParser może rozwiązać. Selektory zależne od stanu, takie jak :hover, i media queries, nie mogą być zagnieżdżone (zależą od środowiska wykonawczego) i są ignorowane.',
25
+ },
26
+ {
27
+ question: 'Czy mój kod HTML i CSS jest wysyłany na jakiś serwer?',
28
+ answer:
29
+ 'Nie. Całe przetwarzanie odbywa się 100% w przeglądarce przy użyciu natywnego API DOMParser. Żaden bajt Twojego kodu nie opuszcza Twojego urządzenia, gwarantując całkowitą prywatność dla szablonów z wrażliwą zawartością.',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Wklej oryginalny HTML',
36
+ text: 'Wpisz lub wklej HTML, który chcesz przetworzyć, w polu "Oryginalny HTML". Może to być fragment lub pełny dokument.',
37
+ },
38
+ {
39
+ name: 'Dodaj reguły CSS',
40
+ text: 'Wklej klasy i id, które chcesz wstrzyknąć, w polu "Reguły CSS". Narzędzie zastosuje je, respektując specyficzność selektora.',
41
+ },
42
+ {
43
+ name: 'Konwertuj i kopiuj',
44
+ text: 'Kliknij "Wstrzyknij CSS do HTML". Wynik ze wszystkimi zaznajomionymi stylami pojawi się poniżej, gotowy do skopiowania i wklejenia do Twojego menedżera poczty email lub CMS.',
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: 'UtilityApplication',
77
+ operatingSystem: 'All',
78
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
79
+ inLanguage: 'pl',
80
+ };
81
+
82
+ const ui: CssToInlineConverterUI = {
83
+ labelHtml: 'Oryginalny HTML',
84
+ labelCss: 'Reguły CSS',
85
+ labelOutput: 'Wynik HTML Inline',
86
+ placeholderHtml: '<div class="my-class">Hello World</div>',
87
+ placeholderCss: '.my-class { color: red; padding: 10px; }',
88
+ placeholderOutput: 'Twój HTML z zagnieżdżonymi stylami pojawi się tutaj...',
89
+ btnConvert: 'Wstrzyknij CSS do HTML',
90
+ btnCopy: 'Kopiuj Kod',
91
+ btnCopied: 'Skopiowano!',
92
+ msgError: 'Błąd przetwarzania. Sprawdź, czy Twój HTML i CSS są prawidłowe.',
93
+ };
94
+
95
+ export const content: ToolLocaleContent<CssToInlineConverterUI> = {
96
+ slug,
97
+ title,
98
+ description,
99
+ ui,
100
+ faqTitle: 'Często Zadawane Pytania',
101
+ faq: faqData,
102
+ bibliographyTitle: 'Referencje i Dokumentacja',
103
+ bibliography: [
104
+ {
105
+ name: 'Can I email: Macierz Wsparcia HTML i CSS do Wiadomości Email',
106
+ url: 'https://www.caniemail.com/',
107
+ },
108
+ {
109
+ name: 'MDN Web Docs: Globalny atrybut style',
110
+ url: 'https://developer.mozilla.org/en/docs/Web/HTML/Global_attributes/style',
111
+ },
112
+ {
113
+ name: 'API DOMParser: Bezpieczne analizowanie w przeglądarce',
114
+ url: 'https://developer.mozilla.org/en/docs/Web/API/DOMParser',
115
+ },
116
+ ],
117
+ howTo: howToData,
118
+ schemas: [faqSchema, howToSchema, appSchema],
119
+ seo: [
120
+ {
121
+ type: 'title',
122
+ text: 'Co to jest CSS Inliner i po co Ci jest potrzebny?',
123
+ level: 2,
124
+ },
125
+ {
126
+ type: 'paragraph',
127
+ html: 'Podczas opracowywania nowoczesnych aplikacji webowych jesteśmy przyzwyczajeni do separacji zagadnień: HTML buduje strukturę, a zewnętrzny plik CSS dostarcza całego stylu wizualnego. Jednak nie wszystkie środowiska ufają zewnętrznym arkuszom stylów lub globalnym znacznikom <code>&lt;style&gt;</code>.',
128
+ },
129
+ {
130
+ type: 'paragraph',
131
+ html: 'Najpopularniejszy i najsurowszy przypadek użytku, w którym CSS zewnętrzny zawodzi, to <strong>Email Template Development</strong>. W tych środowiskach jedynym niezawodnym sposobem na to, aby czcionka, kolor lub margines były renderowane poprawnie, jest zagnieżdżenie go bezpośrednio w znaczniku: <code>&lt;span style="color: red;"&gt;</code>.',
132
+ },
133
+ {
134
+ type: 'title',
135
+ text: 'Problem CSS w Klientach Poczty',
136
+ level: 3,
137
+ },
138
+ {
139
+ type: 'paragraph',
140
+ html: 'Klienci poczty takie jak Microsoft Outlook, Apple Mail czy Gmail mają złą sławę ze swoimi restrykcyjnymi silnikami renderowania CSS. Większość filtruje lub odrzuca znaczniki <code>&lt;link&gt;</code> lub <code>&lt;style&gt;</code> ze strachu przed wstrzyknięciami kodu, które mogą zepsuć interfejs czytania.',
141
+ },
142
+ {
143
+ type: 'tip',
144
+ html: 'Dla biuletynów lub transakcyjnych wiadomości email (rachunki, potwierdzenia konta) korzystanie z tabel i <em>inline CSS</em> jest standardem złota w branży marketingu email.',
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: 'Jak to Narzędzie Działa w Twojej Przeglądarce',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'list',
153
+ items: [
154
+ '<strong>Bezpieczne Analizowanie:</strong> Używa <code>API DOMParser</code> do tymczasowej transformacji wejściowego HTML w bezpieczny wirtualny DOM wewnątrz Twojej przeglądarki.',
155
+ '<strong>Symulacja Kaskady:</strong> Analizuje reguły CSS, stosuje wagi specyficzności do selektorów i mutuje atrybuty <code>style</code> wybranych elementów HTML poprzez wstrzykiwanie kodu.',
156
+ '<strong>100% Offline:</strong> Żaden bajt Twojego kodu nie opuszcza Twojego urządzenia. Całkowita prywatność dla szablonów z wrażliwą zawartością.',
157
+ ],
158
+ },
159
+ ],
160
+ };