@jjlmoya/utils-converters 1.7.0 → 1.8.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 (345) hide show
  1. package/package.json +60 -59
  2. package/src/shared/logic/schemas.ts +57 -0
  3. package/src/tests/faq_count.test.ts +13 -4
  4. package/src/tests/i18n_coverage.test.ts +36 -0
  5. package/src/tests/locale_completeness.test.ts +42 -0
  6. package/src/tests/no_h1_in_components.test.ts +48 -0
  7. package/src/tests/schemas_fulfillment.test.ts +23 -0
  8. package/src/tests/seo_length.test.ts +1 -1
  9. package/src/tests/title_quality.test.ts +55 -0
  10. package/src/tool/avifAJpg/i18n/de.ts +178 -0
  11. package/src/tool/avifAJpg/i18n/en.ts +2 -12
  12. package/src/tool/avifAJpg/i18n/es.ts +2 -12
  13. package/src/tool/avifAJpg/i18n/fr.ts +2 -12
  14. package/src/tool/avifAJpg/i18n/id.ts +178 -0
  15. package/src/tool/avifAJpg/i18n/it.ts +178 -0
  16. package/src/tool/avifAJpg/i18n/ja.ts +178 -0
  17. package/src/tool/avifAJpg/i18n/ko.ts +178 -0
  18. package/src/tool/avifAJpg/i18n/nl.ts +178 -0
  19. package/src/tool/avifAJpg/i18n/pl.ts +178 -0
  20. package/src/tool/avifAJpg/i18n/pt.ts +178 -0
  21. package/src/tool/avifAJpg/i18n/ru.ts +178 -0
  22. package/src/tool/avifAJpg/i18n/sv.ts +178 -0
  23. package/src/tool/avifAJpg/i18n/tr.ts +178 -0
  24. package/src/tool/avifAJpg/i18n/zh.ts +178 -0
  25. package/src/tool/avifAJpg/index.ts +13 -1
  26. package/src/tool/avifAPng/i18n/de.ts +178 -0
  27. package/src/tool/avifAPng/i18n/en.ts +2 -12
  28. package/src/tool/avifAPng/i18n/es.ts +2 -12
  29. package/src/tool/avifAPng/i18n/fr.ts +2 -12
  30. package/src/tool/avifAPng/i18n/id.ts +178 -0
  31. package/src/tool/avifAPng/i18n/it.ts +178 -0
  32. package/src/tool/avifAPng/i18n/ja.ts +178 -0
  33. package/src/tool/avifAPng/i18n/ko.ts +178 -0
  34. package/src/tool/avifAPng/i18n/nl.ts +178 -0
  35. package/src/tool/avifAPng/i18n/pl.ts +178 -0
  36. package/src/tool/avifAPng/i18n/pt.ts +178 -0
  37. package/src/tool/avifAPng/i18n/ru.ts +178 -0
  38. package/src/tool/avifAPng/i18n/sv.ts +178 -0
  39. package/src/tool/avifAPng/i18n/tr.ts +178 -0
  40. package/src/tool/avifAPng/i18n/zh.ts +178 -0
  41. package/src/tool/avifAPng/index.ts +13 -1
  42. package/src/tool/avifAWebp/i18n/de.ts +178 -0
  43. package/src/tool/avifAWebp/i18n/en.ts +2 -12
  44. package/src/tool/avifAWebp/i18n/es.ts +2 -12
  45. package/src/tool/avifAWebp/i18n/fr.ts +2 -12
  46. package/src/tool/avifAWebp/i18n/id.ts +178 -0
  47. package/src/tool/avifAWebp/i18n/it.ts +178 -0
  48. package/src/tool/avifAWebp/i18n/ja.ts +178 -0
  49. package/src/tool/avifAWebp/i18n/ko.ts +178 -0
  50. package/src/tool/avifAWebp/i18n/nl.ts +178 -0
  51. package/src/tool/avifAWebp/i18n/pl.ts +178 -0
  52. package/src/tool/avifAWebp/i18n/pt.ts +178 -0
  53. package/src/tool/avifAWebp/i18n/ru.ts +178 -0
  54. package/src/tool/avifAWebp/i18n/sv.ts +178 -0
  55. package/src/tool/avifAWebp/i18n/tr.ts +178 -0
  56. package/src/tool/avifAWebp/i18n/zh.ts +178 -0
  57. package/src/tool/avifAWebp/index.ts +13 -1
  58. package/src/tool/bmpAJpg/i18n/de.ts +178 -0
  59. package/src/tool/bmpAJpg/i18n/en.ts +2 -12
  60. package/src/tool/bmpAJpg/i18n/es.ts +2 -12
  61. package/src/tool/bmpAJpg/i18n/fr.ts +2 -12
  62. package/src/tool/bmpAJpg/i18n/id.ts +178 -0
  63. package/src/tool/bmpAJpg/i18n/it.ts +178 -0
  64. package/src/tool/bmpAJpg/i18n/ja.ts +178 -0
  65. package/src/tool/bmpAJpg/i18n/ko.ts +178 -0
  66. package/src/tool/bmpAJpg/i18n/nl.ts +178 -0
  67. package/src/tool/bmpAJpg/i18n/pl.ts +178 -0
  68. package/src/tool/bmpAJpg/i18n/pt.ts +178 -0
  69. package/src/tool/bmpAJpg/i18n/ru.ts +178 -0
  70. package/src/tool/bmpAJpg/i18n/sv.ts +178 -0
  71. package/src/tool/bmpAJpg/i18n/tr.ts +178 -0
  72. package/src/tool/bmpAJpg/i18n/zh.ts +178 -0
  73. package/src/tool/bmpAJpg/index.ts +13 -1
  74. package/src/tool/bmpAPng/i18n/de.ts +177 -0
  75. package/src/tool/bmpAPng/i18n/en.ts +2 -12
  76. package/src/tool/bmpAPng/i18n/es.ts +2 -12
  77. package/src/tool/bmpAPng/i18n/fr.ts +2 -12
  78. package/src/tool/bmpAPng/i18n/id.ts +177 -0
  79. package/src/tool/bmpAPng/i18n/it.ts +177 -0
  80. package/src/tool/bmpAPng/i18n/ja.ts +177 -0
  81. package/src/tool/bmpAPng/i18n/ko.ts +177 -0
  82. package/src/tool/bmpAPng/i18n/nl.ts +177 -0
  83. package/src/tool/bmpAPng/i18n/pl.ts +177 -0
  84. package/src/tool/bmpAPng/i18n/pt.ts +177 -0
  85. package/src/tool/bmpAPng/i18n/ru.ts +177 -0
  86. package/src/tool/bmpAPng/i18n/sv.ts +177 -0
  87. package/src/tool/bmpAPng/i18n/tr.ts +177 -0
  88. package/src/tool/bmpAPng/i18n/zh.ts +177 -0
  89. package/src/tool/bmpAPng/index.ts +13 -1
  90. package/src/tool/bmpAWebp/i18n/de.ts +178 -0
  91. package/src/tool/bmpAWebp/i18n/en.ts +2 -12
  92. package/src/tool/bmpAWebp/i18n/es.ts +2 -12
  93. package/src/tool/bmpAWebp/i18n/fr.ts +2 -12
  94. package/src/tool/bmpAWebp/i18n/id.ts +178 -0
  95. package/src/tool/bmpAWebp/i18n/it.ts +178 -0
  96. package/src/tool/bmpAWebp/i18n/ja.ts +178 -0
  97. package/src/tool/bmpAWebp/i18n/ko.ts +178 -0
  98. package/src/tool/bmpAWebp/i18n/nl.ts +178 -0
  99. package/src/tool/bmpAWebp/i18n/pl.ts +178 -0
  100. package/src/tool/bmpAWebp/i18n/pt.ts +178 -0
  101. package/src/tool/bmpAWebp/i18n/ru.ts +178 -0
  102. package/src/tool/bmpAWebp/i18n/sv.ts +178 -0
  103. package/src/tool/bmpAWebp/i18n/tr.ts +178 -0
  104. package/src/tool/bmpAWebp/i18n/zh.ts +178 -0
  105. package/src/tool/bmpAWebp/index.ts +13 -1
  106. package/src/tool/gifAJpg/i18n/de.ts +178 -0
  107. package/src/tool/gifAJpg/i18n/en.ts +2 -12
  108. package/src/tool/gifAJpg/i18n/es.ts +2 -12
  109. package/src/tool/gifAJpg/i18n/fr.ts +2 -12
  110. package/src/tool/gifAJpg/i18n/id.ts +178 -0
  111. package/src/tool/gifAJpg/i18n/it.ts +178 -0
  112. package/src/tool/gifAJpg/i18n/ja.ts +178 -0
  113. package/src/tool/gifAJpg/i18n/ko.ts +178 -0
  114. package/src/tool/gifAJpg/i18n/nl.ts +178 -0
  115. package/src/tool/gifAJpg/i18n/pl.ts +178 -0
  116. package/src/tool/gifAJpg/i18n/pt.ts +178 -0
  117. package/src/tool/gifAJpg/i18n/ru.ts +178 -0
  118. package/src/tool/gifAJpg/i18n/sv.ts +178 -0
  119. package/src/tool/gifAJpg/i18n/tr.ts +178 -0
  120. package/src/tool/gifAJpg/i18n/zh.ts +178 -0
  121. package/src/tool/gifAJpg/index.ts +13 -1
  122. package/src/tool/gifAPng/i18n/de.ts +178 -0
  123. package/src/tool/gifAPng/i18n/en.ts +2 -12
  124. package/src/tool/gifAPng/i18n/es.ts +2 -12
  125. package/src/tool/gifAPng/i18n/fr.ts +2 -12
  126. package/src/tool/gifAPng/i18n/id.ts +178 -0
  127. package/src/tool/gifAPng/i18n/it.ts +178 -0
  128. package/src/tool/gifAPng/i18n/ja.ts +178 -0
  129. package/src/tool/gifAPng/i18n/ko.ts +178 -0
  130. package/src/tool/gifAPng/i18n/nl.ts +178 -0
  131. package/src/tool/gifAPng/i18n/pl.ts +178 -0
  132. package/src/tool/gifAPng/i18n/pt.ts +178 -0
  133. package/src/tool/gifAPng/i18n/ru.ts +178 -0
  134. package/src/tool/gifAPng/i18n/sv.ts +178 -0
  135. package/src/tool/gifAPng/i18n/tr.ts +178 -0
  136. package/src/tool/gifAPng/i18n/zh.ts +178 -0
  137. package/src/tool/gifAPng/index.ts +12 -0
  138. package/src/tool/gifAWebp/i18n/de.ts +178 -0
  139. package/src/tool/gifAWebp/i18n/en.ts +2 -12
  140. package/src/tool/gifAWebp/i18n/es.ts +2 -12
  141. package/src/tool/gifAWebp/i18n/fr.ts +2 -12
  142. package/src/tool/gifAWebp/i18n/id.ts +178 -0
  143. package/src/tool/gifAWebp/i18n/it.ts +178 -0
  144. package/src/tool/gifAWebp/i18n/ja.ts +178 -0
  145. package/src/tool/gifAWebp/i18n/ko.ts +178 -0
  146. package/src/tool/gifAWebp/i18n/nl.ts +178 -0
  147. package/src/tool/gifAWebp/i18n/pl.ts +178 -0
  148. package/src/tool/gifAWebp/i18n/pt.ts +178 -0
  149. package/src/tool/gifAWebp/i18n/ru.ts +178 -0
  150. package/src/tool/gifAWebp/i18n/sv.ts +178 -0
  151. package/src/tool/gifAWebp/i18n/tr.ts +178 -0
  152. package/src/tool/gifAWebp/i18n/zh.ts +178 -0
  153. package/src/tool/gifAWebp/index.ts +12 -0
  154. package/src/tool/imagenBase64/i18n/de.ts +168 -0
  155. package/src/tool/imagenBase64/i18n/en.ts +2 -12
  156. package/src/tool/imagenBase64/i18n/es.ts +2 -12
  157. package/src/tool/imagenBase64/i18n/fr.ts +2 -12
  158. package/src/tool/imagenBase64/i18n/id.ts +168 -0
  159. package/src/tool/imagenBase64/i18n/it.ts +168 -0
  160. package/src/tool/imagenBase64/i18n/ja.ts +168 -0
  161. package/src/tool/imagenBase64/i18n/ko.ts +168 -0
  162. package/src/tool/imagenBase64/i18n/nl.ts +168 -0
  163. package/src/tool/imagenBase64/i18n/pl.ts +168 -0
  164. package/src/tool/imagenBase64/i18n/pt.ts +173 -0
  165. package/src/tool/imagenBase64/i18n/ru.ts +168 -0
  166. package/src/tool/imagenBase64/i18n/sv.ts +168 -0
  167. package/src/tool/imagenBase64/i18n/tr.ts +168 -0
  168. package/src/tool/imagenBase64/i18n/zh.ts +168 -0
  169. package/src/tool/imagenBase64/index.ts +12 -0
  170. package/src/tool/jpgAIco/i18n/de.ts +183 -0
  171. package/src/tool/jpgAIco/i18n/en.ts +8 -13
  172. package/src/tool/jpgAIco/i18n/es.ts +13 -18
  173. package/src/tool/jpgAIco/i18n/fr.ts +9 -14
  174. package/src/tool/jpgAIco/i18n/id.ts +183 -0
  175. package/src/tool/jpgAIco/i18n/it.ts +183 -0
  176. package/src/tool/jpgAIco/i18n/ja.ts +183 -0
  177. package/src/tool/jpgAIco/i18n/ko.ts +183 -0
  178. package/src/tool/jpgAIco/i18n/nl.ts +183 -0
  179. package/src/tool/jpgAIco/i18n/pl.ts +183 -0
  180. package/src/tool/jpgAIco/i18n/pt.ts +183 -0
  181. package/src/tool/jpgAIco/i18n/ru.ts +183 -0
  182. package/src/tool/jpgAIco/i18n/sv.ts +183 -0
  183. package/src/tool/jpgAIco/i18n/tr.ts +183 -0
  184. package/src/tool/jpgAIco/i18n/zh.ts +183 -0
  185. package/src/tool/jpgAIco/index.ts +12 -0
  186. package/src/tool/jpgAPng/i18n/de.ts +178 -0
  187. package/src/tool/jpgAPng/i18n/en.ts +2 -12
  188. package/src/tool/jpgAPng/i18n/es.ts +2 -12
  189. package/src/tool/jpgAPng/i18n/fr.ts +2 -12
  190. package/src/tool/jpgAPng/i18n/id.ts +178 -0
  191. package/src/tool/jpgAPng/i18n/it.ts +178 -0
  192. package/src/tool/jpgAPng/i18n/ja.ts +178 -0
  193. package/src/tool/jpgAPng/i18n/ko.ts +178 -0
  194. package/src/tool/jpgAPng/i18n/nl.ts +178 -0
  195. package/src/tool/jpgAPng/i18n/pl.ts +178 -0
  196. package/src/tool/jpgAPng/i18n/pt.ts +178 -0
  197. package/src/tool/jpgAPng/i18n/ru.ts +178 -0
  198. package/src/tool/jpgAPng/i18n/sv.ts +178 -0
  199. package/src/tool/jpgAPng/i18n/tr.ts +178 -0
  200. package/src/tool/jpgAPng/i18n/zh.ts +178 -0
  201. package/src/tool/jpgAPng/index.ts +13 -1
  202. package/src/tool/jpgAWebp/i18n/de.ts +178 -0
  203. package/src/tool/jpgAWebp/i18n/en.ts +2 -12
  204. package/src/tool/jpgAWebp/i18n/es.ts +2 -12
  205. package/src/tool/jpgAWebp/i18n/fr.ts +2 -12
  206. package/src/tool/jpgAWebp/i18n/id.ts +178 -0
  207. package/src/tool/jpgAWebp/i18n/it.ts +178 -0
  208. package/src/tool/jpgAWebp/i18n/ja.ts +178 -0
  209. package/src/tool/jpgAWebp/i18n/ko.ts +178 -0
  210. package/src/tool/jpgAWebp/i18n/nl.ts +178 -0
  211. package/src/tool/jpgAWebp/i18n/pl.ts +178 -0
  212. package/src/tool/jpgAWebp/i18n/pt.ts +178 -0
  213. package/src/tool/jpgAWebp/i18n/ru.ts +178 -0
  214. package/src/tool/jpgAWebp/i18n/sv.ts +178 -0
  215. package/src/tool/jpgAWebp/i18n/tr.ts +178 -0
  216. package/src/tool/jpgAWebp/i18n/zh.ts +178 -0
  217. package/src/tool/jpgAWebp/index.ts +12 -0
  218. package/src/tool/pngAIco/i18n/de.ts +183 -0
  219. package/src/tool/pngAIco/i18n/en.ts +8 -13
  220. package/src/tool/pngAIco/i18n/es.ts +19 -24
  221. package/src/tool/pngAIco/i18n/fr.ts +20 -25
  222. package/src/tool/pngAIco/i18n/id.ts +183 -0
  223. package/src/tool/pngAIco/i18n/it.ts +183 -0
  224. package/src/tool/pngAIco/i18n/ja.ts +183 -0
  225. package/src/tool/pngAIco/i18n/ko.ts +183 -0
  226. package/src/tool/pngAIco/i18n/nl.ts +183 -0
  227. package/src/tool/pngAIco/i18n/pl.ts +183 -0
  228. package/src/tool/pngAIco/i18n/pt.ts +183 -0
  229. package/src/tool/pngAIco/i18n/ru.ts +183 -0
  230. package/src/tool/pngAIco/i18n/sv.ts +183 -0
  231. package/src/tool/pngAIco/i18n/tr.ts +183 -0
  232. package/src/tool/pngAIco/i18n/zh.ts +183 -0
  233. package/src/tool/pngAIco/index.ts +12 -0
  234. package/src/tool/pngAJpg/i18n/de.ts +191 -0
  235. package/src/tool/pngAJpg/i18n/en.ts +2 -12
  236. package/src/tool/pngAJpg/i18n/es.ts +2 -12
  237. package/src/tool/pngAJpg/i18n/fr.ts +2 -12
  238. package/src/tool/pngAJpg/i18n/id.ts +191 -0
  239. package/src/tool/pngAJpg/i18n/it.ts +191 -0
  240. package/src/tool/pngAJpg/i18n/ja.ts +191 -0
  241. package/src/tool/pngAJpg/i18n/ko.ts +191 -0
  242. package/src/tool/pngAJpg/i18n/nl.ts +191 -0
  243. package/src/tool/pngAJpg/i18n/pl.ts +191 -0
  244. package/src/tool/pngAJpg/i18n/pt.ts +191 -0
  245. package/src/tool/pngAJpg/i18n/ru.ts +191 -0
  246. package/src/tool/pngAJpg/i18n/sv.ts +191 -0
  247. package/src/tool/pngAJpg/i18n/tr.ts +191 -0
  248. package/src/tool/pngAJpg/i18n/zh.ts +191 -0
  249. package/src/tool/pngAJpg/index.ts +13 -1
  250. package/src/tool/pngAWebp/i18n/de.ts +182 -0
  251. package/src/tool/pngAWebp/i18n/en.ts +2 -12
  252. package/src/tool/pngAWebp/i18n/es.ts +2 -12
  253. package/src/tool/pngAWebp/i18n/fr.ts +2 -12
  254. package/src/tool/pngAWebp/i18n/id.ts +182 -0
  255. package/src/tool/pngAWebp/i18n/it.ts +182 -0
  256. package/src/tool/pngAWebp/i18n/ja.ts +182 -0
  257. package/src/tool/pngAWebp/i18n/ko.ts +182 -0
  258. package/src/tool/pngAWebp/i18n/nl.ts +182 -0
  259. package/src/tool/pngAWebp/i18n/pl.ts +182 -0
  260. package/src/tool/pngAWebp/i18n/pt.ts +182 -0
  261. package/src/tool/pngAWebp/i18n/ru.ts +182 -0
  262. package/src/tool/pngAWebp/i18n/sv.ts +182 -0
  263. package/src/tool/pngAWebp/i18n/tr.ts +182 -0
  264. package/src/tool/pngAWebp/i18n/zh.ts +182 -0
  265. package/src/tool/pngAWebp/index.ts +12 -0
  266. package/src/tool/svgAJpg/i18n/de.ts +178 -0
  267. package/src/tool/svgAJpg/i18n/en.ts +8 -13
  268. package/src/tool/svgAJpg/i18n/es.ts +8 -13
  269. package/src/tool/svgAJpg/i18n/fr.ts +2 -12
  270. package/src/tool/svgAJpg/i18n/id.ts +178 -0
  271. package/src/tool/svgAJpg/i18n/it.ts +178 -0
  272. package/src/tool/svgAJpg/i18n/ja.ts +178 -0
  273. package/src/tool/svgAJpg/i18n/ko.ts +178 -0
  274. package/src/tool/svgAJpg/i18n/nl.ts +178 -0
  275. package/src/tool/svgAJpg/i18n/pl.ts +178 -0
  276. package/src/tool/svgAJpg/i18n/pt.ts +178 -0
  277. package/src/tool/svgAJpg/i18n/ru.ts +178 -0
  278. package/src/tool/svgAJpg/i18n/sv.ts +178 -0
  279. package/src/tool/svgAJpg/i18n/tr.ts +178 -0
  280. package/src/tool/svgAJpg/i18n/zh.ts +178 -0
  281. package/src/tool/svgAJpg/index.ts +12 -0
  282. package/src/tool/svgAPng/i18n/de.ts +178 -0
  283. package/src/tool/svgAPng/i18n/en.ts +8 -13
  284. package/src/tool/svgAPng/i18n/es.ts +31 -36
  285. package/src/tool/svgAPng/i18n/fr.ts +2 -12
  286. package/src/tool/svgAPng/i18n/id.ts +178 -0
  287. package/src/tool/svgAPng/i18n/it.ts +178 -0
  288. package/src/tool/svgAPng/i18n/ja.ts +178 -0
  289. package/src/tool/svgAPng/i18n/ko.ts +178 -0
  290. package/src/tool/svgAPng/i18n/nl.ts +178 -0
  291. package/src/tool/svgAPng/i18n/pl.ts +178 -0
  292. package/src/tool/svgAPng/i18n/pt.ts +178 -0
  293. package/src/tool/svgAPng/i18n/ru.ts +178 -0
  294. package/src/tool/svgAPng/i18n/sv.ts +178 -0
  295. package/src/tool/svgAPng/i18n/tr.ts +178 -0
  296. package/src/tool/svgAPng/i18n/zh.ts +178 -0
  297. package/src/tool/svgAPng/index.ts +12 -0
  298. package/src/tool/webpAIco/i18n/de.ts +183 -0
  299. package/src/tool/webpAIco/i18n/en.ts +8 -13
  300. package/src/tool/webpAIco/i18n/es.ts +9 -14
  301. package/src/tool/webpAIco/i18n/fr.ts +11 -16
  302. package/src/tool/webpAIco/i18n/id.ts +183 -0
  303. package/src/tool/webpAIco/i18n/it.ts +183 -0
  304. package/src/tool/webpAIco/i18n/ja.ts +183 -0
  305. package/src/tool/webpAIco/i18n/ko.ts +183 -0
  306. package/src/tool/webpAIco/i18n/nl.ts +183 -0
  307. package/src/tool/webpAIco/i18n/pl.ts +183 -0
  308. package/src/tool/webpAIco/i18n/pt.ts +183 -0
  309. package/src/tool/webpAIco/i18n/ru.ts +183 -0
  310. package/src/tool/webpAIco/i18n/sv.ts +183 -0
  311. package/src/tool/webpAIco/i18n/tr.ts +183 -0
  312. package/src/tool/webpAIco/i18n/zh.ts +183 -0
  313. package/src/tool/webpAIco/index.ts +12 -0
  314. package/src/tool/webpAJpg/i18n/de.ts +187 -0
  315. package/src/tool/webpAJpg/i18n/en.ts +9 -13
  316. package/src/tool/webpAJpg/i18n/es.ts +37 -42
  317. package/src/tool/webpAJpg/i18n/fr.ts +35 -40
  318. package/src/tool/webpAJpg/i18n/id.ts +182 -0
  319. package/src/tool/webpAJpg/i18n/it.ts +182 -0
  320. package/src/tool/webpAJpg/i18n/ja.ts +182 -0
  321. package/src/tool/webpAJpg/i18n/ko.ts +182 -0
  322. package/src/tool/webpAJpg/i18n/nl.ts +182 -0
  323. package/src/tool/webpAJpg/i18n/pl.ts +182 -0
  324. package/src/tool/webpAJpg/i18n/pt.ts +182 -0
  325. package/src/tool/webpAJpg/i18n/ru.ts +182 -0
  326. package/src/tool/webpAJpg/i18n/sv.ts +182 -0
  327. package/src/tool/webpAJpg/i18n/tr.ts +182 -0
  328. package/src/tool/webpAJpg/i18n/zh.ts +182 -0
  329. package/src/tool/webpAJpg/index.ts +12 -0
  330. package/src/tool/webpAPng/i18n/de.ts +182 -0
  331. package/src/tool/webpAPng/i18n/en.ts +8 -13
  332. package/src/tool/webpAPng/i18n/es.ts +35 -40
  333. package/src/tool/webpAPng/i18n/fr.ts +2 -12
  334. package/src/tool/webpAPng/i18n/id.ts +182 -0
  335. package/src/tool/webpAPng/i18n/it.ts +182 -0
  336. package/src/tool/webpAPng/i18n/ja.ts +182 -0
  337. package/src/tool/webpAPng/i18n/ko.ts +182 -0
  338. package/src/tool/webpAPng/i18n/nl.ts +182 -0
  339. package/src/tool/webpAPng/i18n/pl.ts +182 -0
  340. package/src/tool/webpAPng/i18n/pt.ts +182 -0
  341. package/src/tool/webpAPng/i18n/ru.ts +182 -0
  342. package/src/tool/webpAPng/i18n/sv.ts +182 -0
  343. package/src/tool/webpAPng/i18n/tr.ts +182 -0
  344. package/src/tool/webpAPng/i18n/zh.ts +182 -0
  345. package/src/tool/webpAPng/index.ts +12 -0
@@ -0,0 +1,168 @@
1
+ import type { ImagenBase64LocaleContent } from '../index';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
+ import type { ImageToBase64UI } from '../index';
4
+
5
+ const slug = 'konverter-gambar-ke-base64';
6
+ const title = 'Konverter Gambar ke Base64 Online';
7
+ const description =
8
+ 'Konversi gambar apa pun ke kode Base64 dan Data URI langsung di browser Anda. Tanpa pengunggahan file. Gratis, privat, dan instan.';
9
+
10
+ const ui: ImageToBase64UI = {
11
+ dragTitle: 'Tarik gambar Anda ke sini',
12
+ dragSubtext: 'atau klik untuk menelusuri file Anda',
13
+ formatBadge: 'Mendukung JPG, PNG, WEBP, SVG, GIF',
14
+ dataUriLabel: 'Data URI (Siap untuk CSS / HTML src="")',
15
+ base64Label: 'Hanya Base64 (Teks terenkripsi biasa)',
16
+ copyBtn: 'Salin',
17
+ dataUriPlaceholder: 'Unggah gambar untuk melihat kode Data URI...',
18
+ base64Placeholder: 'Unggah gambar untuk melihat kode Base64 murni...',
19
+ toastMessage: 'Kode disalin ke papan klip!',
20
+ invalidImageAlert: 'Silakan unggah file gambar yang valid.',
21
+ bibliographyTitle: 'Referensi Bibliografi',
22
+ faqTitle: 'Pertanyaan yang Sering Diajukan',
23
+ };
24
+
25
+ const faq: ImagenBase64LocaleContent['faq'] = [
26
+ {
27
+ question: 'Apa itu Base64 dan apa kegunaannya dalam pengembangan web?',
28
+ answer:
29
+ 'Base64 adalah sistem pengkodean yang mengubah data biner menjadi string teks ASCII. Dalam pengembangan web, ini digunakan untuk menyematkan gambar langsung di dalam file HTML atau CSS melalui Data URI, sehingga mengurangi jumlah permintaan HTTP ke server.',
30
+ },
31
+ {
32
+ question: 'Apakah aman mengonversi gambar saya ke Base64 di sini?',
33
+ answer:
34
+ 'Sangat aman dan privat. Alat kami bekerja 100% secara lokal di browser Anda. Gambar Anda tidak pernah diunggah atau diproses di server eksternal mana pun.',
35
+ },
36
+ {
37
+ question: 'Format gambar apa saja yang didukung oleh konverter Base64?',
38
+ answer:
39
+ 'Alat ini kompatibel dengan file JPG, PNG, GIF, WebP, dan bahkan file vektor SVG. Saat memuat gambar, alat ini akan secara otomatis mendeteksi tipe MIME-nya untuk menghasilkan kode Data URI yang tepat.',
40
+ },
41
+ {
42
+ question: 'Kapan saya sebaiknya TIDAK menggunakan gambar Base64?',
43
+ answer:
44
+ 'Anda harus menghindari penggunaan gambar Base64 untuk foto besar atau gambar beresolusi tinggi. Kode Base64 memakan ruang sekitar 33% lebih banyak daripada file biner aslinya, yang dapat membuat stylesheet CSS atau dokumen HTML Anda membengkak secara berlebihan.',
45
+ },
46
+ ];
47
+
48
+ const howTo: ImagenBase64LocaleContent['howTo'] = [
49
+ {
50
+ name: 'Tarik atau Pilih Gambar Anda',
51
+ text: 'Pindahkan gambar apa pun (JPG, PNG, WebP, SVG, GIF) ke area unggah untuk memulai konversi.',
52
+ },
53
+ {
54
+ name: 'Salin Kode yang Dihasilkan',
55
+ text: 'Anda akan melihat dua area teks: Data URI lengkap (siap digunakan di src="" atau CSS) dan Base64 murni untuk kegunaan lain.',
56
+ },
57
+ {
58
+ name: 'Gunakan Kode dalam Proyek Anda',
59
+ text: 'Tempelkan Data URI secara langsung ke src dari tag img atau di CSS Anda sebagai background-image tanpa memerlukan file eksternal.',
60
+ },
61
+ ];
62
+
63
+ const bibliography: ImagenBase64LocaleContent['bibliography'] = [
64
+ {
65
+ name: 'MDN Web Docs: Data URIs',
66
+ url: 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs',
67
+ },
68
+ {
69
+ name: 'Base64 Encoding RFC 4648',
70
+ url: 'https://datatracker.ietf.org/doc/html/rfc4648',
71
+ },
72
+ ];
73
+
74
+ const seo: ImagenBase64LocaleContent['seo'] = [
75
+ {
76
+ type: 'title',
77
+ text: 'Konverter Gambar ke Base64: Sematkan Gambar Tanpa Permintaan HTTP',
78
+ level: 2,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'Base64 adalah teknik pengkodean yang mengubah data biner — seperti gambar — menjadi string teks ASCII murni. Hasilnya adalah Data URI: URL mandiri yang dimulai dengan <code>data:image/png;base64,...</code> dan berisi seluruh gambar yang dikodekan. Dengan menyematkan kode ini langsung di HTML, CSS, atau JSON Anda, gambar akan dimuat tanpa permintaan HTTP tambahan ke server — nol latensi jaringan, pemuatan instan.',
83
+ },
84
+ {
85
+ type: 'title',
86
+ text: 'Kapan menggunakan gambar Base64',
87
+ level: 3,
88
+ },
89
+ {
90
+ type: 'paragraph',
91
+ html: 'Argumen utama untuk Base64 adalah penghapusan permintaan jaringan. Setiap gambar pada halaman web berarti permintaan HTTP dengan overhead koneksi, DNS, jabat tangan TLS, dan latensi. Untuk gambar kritis yang sangat kecil — logo aplikasi utama, favicon, ikon UI — menyematkannya dalam Base64 di CSS atau HTML akan menghapus biaya tersebut dan menjamin gambar ditampilkan secara instan bahkan sebelum browser menyimpan apa pun di cache.',
92
+ },
93
+ {
94
+ type: 'paragraph',
95
+ html: 'Teknik ini sangat ampuh dalam aplikasi SPA (Single Page Application) di mana bundle JavaScript dan CSS dibuat pada saat build: menyematkan gambar kecil dalam bundle menjamin gambar dimuat bersama dengan kode tanpa permintaan tambahan. Ini juga sangat penting untuk email HTML, di mana klien email memblokir gambar eksternal tetapi hampir selalu menampilkan Data URI yang disematkan.',
96
+ },
97
+ {
98
+ type: 'title',
99
+ text: 'Kasus penggunaan untuk gambar Base64',
100
+ level: 3,
101
+ },
102
+ {
103
+ type: 'list',
104
+ icon: 'mdi:check-circle',
105
+ items: [
106
+ 'HTML inline: <code>&lt;img src="data:image/png;base64,..."&gt;</code> untuk ikon kritis.',
107
+ 'CSS background: <code>background-image: url("data:image/svg+xml;base64,...")</code> untuk SVG UI.',
108
+ 'JSON dan API REST: kirim gambar sebagai data teks dalam payload JSON.',
109
+ 'Email HTML: gambar yang disematkan yang ditampilkan bahkan ketika klien memblokir URL eksternal.',
110
+ 'Penyematan SVG: sematkan gambar raster di dalam file SVG sebagai data inline.',
111
+ ],
112
+ },
113
+ {
114
+ type: 'title',
115
+ text: 'Cara kerja konversi di browser',
116
+ level: 3,
117
+ },
118
+ {
119
+ type: 'paragraph',
120
+ html: 'Saat Anda memilih atau menarik gambar, API <code>FileReader</code> browser membacanya langsung dari disk sebagai data biner di RAM. Metode <code>readAsDataURL()</code> mengubah byte biner tersebut menjadi representasi Base64 menggunakan algoritme RFC 4648 — setiap 3 byte data asli direpresentasikan sebagai 4 karakter ASCII dari alfabet Base64. Hasilnya mencakup tipe MIME yang benar yang dideteksi secara otomatis.',
121
+ },
122
+ {
123
+ type: 'tip',
124
+ title: 'Gunakan hanya untuk gambar kecil (di bawah 10 KB)',
125
+ html: 'Base64 meningkatkan ukuran file sekitar 33%: gambar 10 KB menjadi teks ~13,3 KB. Untuk ikon dan logo kecil, biaya ini minimal dan penghapusan permintaan HTTP mengimbanginya. Untuk foto atau gambar besar, overhead ukurannya signifikan — selalu gunakan CDN untuk gambar besar.',
126
+ },
127
+ {
128
+ type: 'title',
129
+ text: 'Kapan TIDAK menggunakan Base64',
130
+ level: 3,
131
+ },
132
+ {
133
+ type: 'tip',
134
+ title: 'Hindari Base64 untuk gambar besar — gunakan CDN sebagai gantinya',
135
+ html: 'Jika Anda memiliki gambar yang lebih besar dari 10-20 KB, Base64 merusak kinerja: ia membengkakkan ukuran HTML/CSS, mencegah browser menyimpan gambar secara independen di cache, dan memblokir rendering saat parser memproses string raksasa tersebut. Untuk gambar besar, selalu sajikan dari CDN dengan header cache yang sesuai.',
136
+ },
137
+ {
138
+ type: 'title',
139
+ text: 'Kompatibilitas dan privasi',
140
+ level: 3,
141
+ },
142
+ {
143
+ type: 'paragraph',
144
+ html: 'Data URI kompatibel dengan 100% browser modern dan sebagian besar klien email. Alat kami memproses semuanya secara lokal melalui API FileReader — gambar Anda tidak pernah meninggalkan perangkat Anda. Hal ini membuatnya cocok untuk gambar perusahaan, tangkapan layar pribadi, atau konten visual rahasia apa pun yang perlu Anda konversi ke Base64.',
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: 'Kesimpulan: Alat penyematan tercepat dan paling privat',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'paragraph',
153
+ html: 'Mengonversi gambar ke Base64 adalah teknik yang ditargetkan namun sangat ampuh jika diterapkan dengan benar. Gunakan untuk gambar kecil dan kritis di mana nol permintaan HTTP membuat perbedaan, dan hindari untuk gambar besar di mana CDN selalu menang. Dengan alat kami, Anda mendapatkan Data URI dalam sekejap, tanpa mengunggah apa pun ke server mana pun.',
154
+ },
155
+ ];
156
+
157
+
158
+ export const content: ImagenBase64LocaleContent = {
159
+ slug,
160
+ title,
161
+ description,
162
+ ui,
163
+ seo,
164
+ faq,
165
+ bibliography,
166
+ howTo,
167
+ schemas: generateSchemas({ title, description, inLanguage: 'id', faq, howTo }),
168
+ };
@@ -0,0 +1,168 @@
1
+ import type { ImagenBase64LocaleContent } from '../index';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
+ import type { ImageToBase64UI } from '../index';
4
+
5
+ const slug = 'convertitore-immagine-in-base64';
6
+ const title = 'Convertitore da Immagine a Base64 Online';
7
+ const description =
8
+ 'Converti qualsiasi immagine in codice Base64 e Data URI direttamente nel tuo browser. Nessun caricamento di file. Gratuito, privato e istantaneo.';
9
+
10
+ const ui: ImageToBase64UI = {
11
+ dragTitle: 'Trascina qui la tua immagine',
12
+ dragSubtext: 'o clicca per sfogliare i tuoi file',
13
+ formatBadge: 'Supporta JPG, PNG, WEBP, SVG, GIF',
14
+ dataUriLabel: 'Data URI (Pronto per CSS / HTML src="")',
15
+ base64Label: 'Solo Base64 (Testo codificato semplice)',
16
+ copyBtn: 'Copia',
17
+ dataUriPlaceholder: 'Carica un\'immagine per vedere il codice Data URI...',
18
+ base64Placeholder: 'Carica un\'immagine per vedere il codice Base64 puro...',
19
+ toastMessage: 'Codice copiato negli appunti!',
20
+ invalidImageAlert: 'Per favore carica un file immagine valido.',
21
+ bibliographyTitle: 'Riferimenti Bibliografici',
22
+ faqTitle: 'Domande Frequenti',
23
+ };
24
+
25
+ const faq: ImagenBase64LocaleContent['faq'] = [
26
+ {
27
+ question: 'Cos\'è Base64 e a cosa serve nello sviluppo web?',
28
+ answer:
29
+ 'Base64 è un sistema di codifica che converte i dati binari in una stringa di testo ASCII. Nello sviluppo web, viene utilizzato per incorporare le immagini direttamente all\'interno di file HTML o CSS tramite Data URI, riducendo il numero di richieste HTTP al server.',
30
+ },
31
+ {
32
+ question: 'È sicuro convertire le mie immagini in Base64 qui?',
33
+ answer:
34
+ 'Assolutamente sicuro e privato. Il nostro strumento funziona al 100% localmente nel tuo browser. Le tue immagini non vengono mai caricate o elaborate su alcun server esterno.',
35
+ },
36
+ {
37
+ question: 'Quali formati di immagine supporta il convertitore Base64?',
38
+ answer:
39
+ 'Lo strumento è compatibile con file JPG, PNG, GIF, WebP e persino file vettoriali SVG. Al caricamento dell\'immagine, rileverà automaticamente il suo tipo MIME per generare l\'esatto codice Data URI.',
40
+ },
41
+ {
42
+ question: 'Quando NON dovrei usare immagini Base64?',
43
+ answer:
44
+ 'Dovresti evitare di usare immagini Base64 per fotografie di grandi dimensioni o immagini ad alta risoluzione. Il codice Base64 occupa circa il 33% di spazio in più rispetto al file binario originale, il che può gonfiare eccessivamente i tuoi fogli di stile CSS o documenti HTML.',
45
+ },
46
+ ];
47
+
48
+ const howTo: ImagenBase64LocaleContent['howTo'] = [
49
+ {
50
+ name: 'Trascina o Seleziona la tua Immagine',
51
+ text: 'Sposta qualsiasi immagine (JPG, PNG, WebP, SVG, GIF) nell\'area di caricamento per avviare la conversione.',
52
+ },
53
+ {
54
+ name: 'Copia il Codice Generato',
55
+ text: 'Vedrai due aree di testo: il Data URI completo (pronto per l\'uso in src="" o CSS) e il Base64 puro per altri usi.',
56
+ },
57
+ {
58
+ name: 'Usa il Codice nel tuo Progetto',
59
+ text: 'Incolla il Data URI direttamente nel src di un tag img o nel tuo CSS come background-image senza bisogno di file esterni.',
60
+ },
61
+ ];
62
+
63
+ const bibliography: ImagenBase64LocaleContent['bibliography'] = [
64
+ {
65
+ name: 'MDN Web Docs: Data URIs',
66
+ url: 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs',
67
+ },
68
+ {
69
+ name: 'Base64 Encoding RFC 4648',
70
+ url: 'https://datatracker.ietf.org/doc/html/rfc4648',
71
+ },
72
+ ];
73
+
74
+ const seo: ImagenBase64LocaleContent['seo'] = [
75
+ {
76
+ type: 'title',
77
+ text: 'Convertitore da Immagine a Base64: Incorpora Immagini Senza Richieste HTTP',
78
+ level: 2,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'Base64 è una tecnica di codifica che trasforma i dati binari — come un\'immagine — in una stringa di testo ASCII pura. Il risultato è un Data URI: un URL autonomo che inizia con <code>data:image/png;base64,...</code> e contiene l\'intera immagine codificata. Incorporando questo codice direttamente nel tuo HTML, CSS o JSON, l\'immagine viene caricata senza alcuna richiesta HTTP aggiuntiva al server — latenza di rete zero, caricamento istantaneo.',
83
+ },
84
+ {
85
+ type: 'title',
86
+ text: 'Quando usare immagini Base64',
87
+ level: 3,
88
+ },
89
+ {
90
+ type: 'paragraph',
91
+ html: 'L\'argomento principale a favore di Base64 è l\'eliminazione delle richieste di rete. Ogni immagine su una pagina web significa una richiesta HTTP con il suo overhead di connessione, DNS, handshake TLS e latenza. Per immagini critiche molto piccole — il logo principale dell\'applicazione, la favicon, un\'icona dell\'interfaccia utente — incorporarle in Base64 nel CSS o nell\'HTML elimina quel costo e garantisce che vengano visualizzate istantaneamente anche prima che il browser abbia memorizzato qualcosa in cache.',
92
+ },
93
+ {
94
+ type: 'paragraph',
95
+ html: 'Questa tecnica è particolarmente potente nelle app SPA (Single Page Application) in cui il bundle JavaScript e CSS viene generato al momento della build: incorporare piccole immagini nel bundle garantisce che vengano caricate insieme al codice senza richieste aggiuntive. È anche indispensabile per le e-mail HTML, dove i client di posta bloccano le immagini esterne ma visualizzano quasi sempre i Data URI incorporati.',
96
+ },
97
+ {
98
+ type: 'title',
99
+ text: 'Casi d\'uso per le immagini Base64',
100
+ level: 3,
101
+ },
102
+ {
103
+ type: 'list',
104
+ icon: 'mdi:check-circle',
105
+ items: [
106
+ 'HTML inline: <code>&lt;img src="data:image/png;base64,..."&gt;</code> per icone critiche.',
107
+ 'CSS background: <code>background-image: url("data:image/svg+xml;base64,...")</code> per SVG della UI.',
108
+ 'JSON e API REST: invia immagini come dati di testo nei payload JSON.',
109
+ 'Email HTML: immagini incorporate che vengono visualizzate anche quando il client blocca gli URL esterni.',
110
+ 'Incorporamento SVG: incorpora immagini raster all\'interno di file SVG come dati inline.',
111
+ ],
112
+ },
113
+ {
114
+ type: 'title',
115
+ text: 'Come funziona la conversione nel browser',
116
+ level: 3,
117
+ },
118
+ {
119
+ type: 'paragraph',
120
+ html: 'Quando selezioni o trascini un\'immagine, l\'API <code>FileReader</code> del browser la legge direttamente dal disco come dati binari nella RAM. Il metodo <code>readAsDataURL()</code> converte quei byte binari nella loro rappresentazione Base64 utilizzando l\'algoritmo RFC 4648 — ogni 3 byte di dati originali sono rappresentati come 4 caratteri ASCII dall\'alfabeto Base64. Il risultato include il tipo MIME corretto rilevato automaticamente.',
121
+ },
122
+ {
123
+ type: 'tip',
124
+ title: 'Usalo solo per immagini piccole (sotto i 10 KB)',
125
+ html: 'Base64 aumenta la dimensione del file di circa il 33%: un\'immagine da 10 KB diventa circa 13,3 KB di testo. Per icone e logo piccoli questo costo è minimo e l\'eliminazione della richiesta HTTP lo compensa. Per fotografie o immagini di grandi dimensioni, il sovrapprezzo dimensionale è significativo — usa sempre una CDN per le immagini grandi.',
126
+ },
127
+ {
128
+ type: 'title',
129
+ text: 'Quando NON usare Base64',
130
+ level: 3,
131
+ },
132
+ {
133
+ type: 'tip',
134
+ title: 'Evita Base64 per immagini grandi — usa invece una CDN',
135
+ html: 'Se hai immagini più grandi di 10-20 KB, Base64 danneggia le prestazioni: gonfia la dimensione di HTML/CSS, impedisce al browser di memorizzare l\'immagine in cache in modo indipendente e blocca il rendering mentre il parser elabora la stringa gigante. Per le immagini grandi, servi sempre da una CDN con intestazioni di cache appropriate.',
136
+ },
137
+ {
138
+ type: 'title',
139
+ text: 'Compatibilità e privacy',
140
+ level: 3,
141
+ },
142
+ {
143
+ type: 'paragraph',
144
+ html: 'I Data URI sono compatibili con il 100% dei browser moderni e la maggior parte dei client di posta elettronica. Il nostro strumento elabora tutto localmente tramite l\'API FileReader: le tue immagini non lasciano mai il tuo dispositivo. Questo lo rende adatto per immagini aziendali, screenshot privati o qualsiasi contenuto visivo riservato che hai bisogno di convertire in Base64.',
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: 'Conclusione: Lo strumento di incorporamento più rapido e privato',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'paragraph',
153
+ html: 'Convertire le immagini in Base64 è una tecnica mirata ma molto potente se applicata correttamente. Usala per immagini piccole e critiche dove l\'assenza di richieste HTTP fa la differenza, ed evitala per immagini grandi dove una CDN vince sempre. Con il nostro strumento, ottieni il Data URI in un istante, senza caricare nulla su alcun server.',
154
+ },
155
+ ];
156
+
157
+
158
+ export const content: ImagenBase64LocaleContent = {
159
+ slug,
160
+ title,
161
+ description,
162
+ ui,
163
+ seo,
164
+ faq,
165
+ bibliography,
166
+ howTo,
167
+ schemas: generateSchemas({ title, description, inLanguage: 'it', faq, howTo }),
168
+ };
@@ -0,0 +1,168 @@
1
+ import type { ImagenBase64LocaleContent } from '../index';
2
+ import { generateSchemas } from '../../../shared/logic/schemas';
3
+ import type { ImageToBase64UI } from '../index';
4
+
5
+ const slug = 'image-to-base64-converter';
6
+ const title = '画像Base64変換器オンライン';
7
+ const description =
8
+ 'ブラウザ上で直接、画像をBase64コードとData URIに変換します。ファイルのアップロード不要。無料、安全、そして即座に処理されます。';
9
+
10
+ const ui: ImageToBase64UI = {
11
+ dragTitle: 'ここに画像をドラッグ',
12
+ dragSubtext: 'またはクリックしてファイルを参照',
13
+ formatBadge: 'JPG, PNG, WEBP, SVG, GIFに対応',
14
+ dataUriLabel: 'Data URI(CSS / HTML src=""用)',
15
+ base64Label: 'Base64のみ(純粋なエンコードテキスト)',
16
+ copyBtn: 'コピー',
17
+ dataUriPlaceholder: '画像をアップロードしてData URIコードを表示...',
18
+ base64Placeholder: '画像をアップロードして純粋なBase64コードを表示...',
19
+ toastMessage: 'コードをクリップボードにコピーしました!',
20
+ invalidImageAlert: '有効な画像ファイルをアップロードしてください。',
21
+ bibliographyTitle: '参考文献',
22
+ faqTitle: 'よくある質問',
23
+ };
24
+
25
+ const faq: ImagenBase64LocaleContent['faq'] = [
26
+ {
27
+ question: 'Base64とは何ですか?Web開発で何に使用されますか?',
28
+ answer:
29
+ 'Base64は、バイナリデータをASCIIテキスト文字列に変換するエンコード方式です。Web開発では、Data URIを使用してHTMLやCSSファイル内に画像を直接埋め込むために使用され、サーバーへのHTTPリクエスト数を減らすことができます。',
30
+ },
31
+ {
32
+ question: 'ここで画像をBase64に変換するのは安全ですか?',
33
+ answer:
34
+ '完全に安全でプライバシーが守られています。当ツールはブラウザ内で100%ローカルに動作します。画像が外部サーバーにアップロードされたり、処理されたりすることはありません。',
35
+ },
36
+ {
37
+ question: 'Base64変換器はどの画像形式をサポートしていますか?',
38
+ answer:
39
+ '当ツールは、JPG、PNG、GIF、WebP、さらにはSVGベクトルファイルに対応しています。画像を読み込む際、MIMEタイプを自動的に検出して、正確なData URIコードを生成します。',
40
+ },
41
+ {
42
+ question: 'Base64画像をどのような場合に使用すべきではありませんか?',
43
+ answer:
44
+ '大きな写真や高解像度の画像にBase64画像を使用することは避けてください。Base64コードは元のバイナリファイルよりも約33%容量が増えるため、CSSスタイルシートやHTMLドキュメントが不必要に肥大化する可能性があります。',
45
+ },
46
+ ];
47
+
48
+ const howTo: ImagenBase64LocaleContent['howTo'] = [
49
+ {
50
+ name: '画像をドラッグまたは選択',
51
+ text: '画像(JPG, PNG, WebP, SVG, GIF)をアップロードエリアに移動して変換を開始します。',
52
+ },
53
+ {
54
+ name: '生成されたコードをコピー',
55
+ text: '2つのテキストエリアが表示されます。完全なData URI(src=""やCSSで使用可能)と、他の用途向けの純粋なBase64です。',
56
+ },
57
+ {
58
+ name: 'プロジェクトでコードを使用',
59
+ text: '外部ファイルを必要とせず、Data URIをimgタグのsrcやCSSのbackground-imageに直接貼り付けます。',
60
+ },
61
+ ];
62
+
63
+ const bibliography: ImagenBase64LocaleContent['bibliography'] = [
64
+ {
65
+ name: 'MDN Web Docs: Data URIs',
66
+ url: 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs',
67
+ },
68
+ {
69
+ name: 'Base64 Encoding RFC 4648',
70
+ url: 'https://datatracker.ietf.org/doc/html/rfc4648',
71
+ },
72
+ ];
73
+
74
+ const seo: ImagenBase64LocaleContent['seo'] = [
75
+ {
76
+ type: 'title',
77
+ text: '画像Base64変換器:HTTPリクエストなしで画像を埋め込む',
78
+ level: 2,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'Base64は、画像のようなバイナリデータを純粋なASCIIテキスト文字列に変換するエンコード手法です。その結果がData URIであり、<code>data:image/png;base64,...</code>で始まる自己完結型のURLで、エンコードされた画像全体が含まれます。このコードをHTML、CSS、またはJSONに直接埋め込むことで、サーバーへの追加のHTTPリクエストなしで画像が読み込まれます。ネットワーク遅延はゼロで、即座に表示されます。',
83
+ },
84
+ {
85
+ type: 'title',
86
+ text: 'Base64画像を使用すべき場合',
87
+ level: 3,
88
+ },
89
+ {
90
+ type: 'paragraph',
91
+ html: 'Base64を使用する最大のメリットは、ネットワークリクエストの排除です。Webページ上のすべての画像は、接続、DNS、TLSハンドシェイク、および遅延を伴うHTTPリクエストを意味します。アプリケーションのメインロゴ、ファビコン、UIアイコンなどの非常に小さな重要な画像の場合、CSSやHTMLにBase64で埋め込むことで、そのコストを排除し、ブラウザがキャッシュする前であっても即座に表示されることを保証します。',
92
+ },
93
+ {
94
+ type: 'paragraph',
95
+ html: 'この技術は、ビルド時にJavaScriptとCSSのバンドルが生成されるSPA(シングルページアプリケーション)で特に強力です。小さな画像をバンドルに埋め込むことで、追加のリクエストなしにコードと一緒に読み込まれることが保証されます。また、メールクライアントが外部画像をブロックしても、埋め込まれたData URIはほとんどの場合表示されるHTMLメールでも不可欠です。',
96
+ },
97
+ {
98
+ type: 'title',
99
+ text: 'Base64画像の活用事例',
100
+ level: 3,
101
+ },
102
+ {
103
+ type: 'list',
104
+ icon: 'mdi:check-circle',
105
+ items: [
106
+ 'HTMLインライン:重要なアイコン用の <code>&lt;img src="data:image/png;base64,..."&gt;</code>。',
107
+ 'CSS背景:UI用SVGの <code>background-image: url("data:image/svg+xml;base64,...")</code>。',
108
+ 'JSONとREST API:JSONペイロード内にテキストデータとして画像を送信。',
109
+ 'HTMLメール:クライアントが外部URLをブロックしても表示される埋め込み画像。',
110
+ 'SVG埋め込み:インラインデータとしてSVGファイル内にラスター画像を埋め込む。',
111
+ ],
112
+ },
113
+ {
114
+ type: 'title',
115
+ text: 'ブラウザでの変換の仕組み',
116
+ level: 3,
117
+ },
118
+ {
119
+ type: 'paragraph',
120
+ html: '画像を選択またはドラッグすると、ブラウザの <code>FileReader</code> APIがディスクからRAMへバイナリデータとして直接読み込みます。 <code>readAsDataURL()</code> メソッドは、RFC 4648アルゴリズムを使用して、そのバイナリバイトをBase64表現に変換します。元のデータの3バイトごとに、Base64アルファベットの4つのASCII文字で表現されます。結果には、自動的に検出された正しいMIMEタイプが含まれます。',
121
+ },
122
+ {
123
+ type: 'tip',
124
+ title: '小さな画像(10 KB未満)にのみ使用してください',
125
+ html: 'Base64はファイルサイズを約33%増加させます。10 KBの画像は約13.3 KBのテキストになります。小さなアイコンやロゴの場合、このコストはわずかであり、HTTPリクエストの排除によって十分に相殺されます。写真や大きな画像の場合、容量のオーバーヘッドが大きいため、常にCDNを使用してください。',
126
+ },
127
+ {
128
+ type: 'title',
129
+ text: 'Base64を使用すべきではない場合',
130
+ level: 3,
131
+ },
132
+ {
133
+ type: 'tip',
134
+ title: '大きな画像にはBase64を避け、代わりにCDNを使用してください',
135
+ html: '画像が10〜20 KBを超える場合、Base64はパフォーマンスを低下させます。HTML/CSSのサイズを肥大化させ、ブラウザが画像を個別にキャッシュするのを妨げ、パサーが巨大な文字列を処理している間レンダリングをブロックします。大きな画像については、常に適切なキャッシュヘッダーを設定したCDNから提供してください。',
136
+ },
137
+ {
138
+ type: 'title',
139
+ text: '互換性とプライバシー',
140
+ level: 3,
141
+ },
142
+ {
143
+ type: 'paragraph',
144
+ html: 'Data URIはすべての現代的なブラウザおよびほとんどのメールクライアントと互換性があります。当ツールはFileReader APIを介してローカルですべてを処理するため、画像がデバイス外に出ることはありません。これにより、企業内画像、プライベートなスクリーンショット、またはBase64に変換する必要がある機密性の高いビジュアルコンテンツに適しています。',
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: '結論:最も高速でプライベートな埋め込みツール',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'paragraph',
153
+ html: '画像をBase64に変換することは、正しく適用されれば非常に強力な技術です。ゼロHTTPリクエストが効果を発揮する小さな重要な画像に使用し、CDNが常に優位に立つ大きな画像には使用を避けてください。当ツールを使用すれば、サーバーへのアップロードなしで、瞬時にData URIを取得できます。',
154
+ },
155
+ ];
156
+
157
+
158
+ export const content: ImagenBase64LocaleContent = {
159
+ slug,
160
+ title,
161
+ description,
162
+ ui,
163
+ seo,
164
+ faq,
165
+ bibliography,
166
+ howTo,
167
+ schemas: generateSchemas({ title, description, inLanguage: 'ja', faq, howTo }),
168
+ };