@jjlmoya/utils-converters 1.7.0 → 1.9.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 (346) 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/slug_uniqueness.test.ts +81 -0
  10. package/src/tests/title_quality.test.ts +55 -0
  11. package/src/tool/avifAJpg/i18n/de.ts +178 -0
  12. package/src/tool/avifAJpg/i18n/en.ts +2 -12
  13. package/src/tool/avifAJpg/i18n/es.ts +2 -12
  14. package/src/tool/avifAJpg/i18n/fr.ts +2 -12
  15. package/src/tool/avifAJpg/i18n/id.ts +178 -0
  16. package/src/tool/avifAJpg/i18n/it.ts +178 -0
  17. package/src/tool/avifAJpg/i18n/ja.ts +178 -0
  18. package/src/tool/avifAJpg/i18n/ko.ts +178 -0
  19. package/src/tool/avifAJpg/i18n/nl.ts +178 -0
  20. package/src/tool/avifAJpg/i18n/pl.ts +178 -0
  21. package/src/tool/avifAJpg/i18n/pt.ts +178 -0
  22. package/src/tool/avifAJpg/i18n/ru.ts +178 -0
  23. package/src/tool/avifAJpg/i18n/sv.ts +178 -0
  24. package/src/tool/avifAJpg/i18n/tr.ts +178 -0
  25. package/src/tool/avifAJpg/i18n/zh.ts +178 -0
  26. package/src/tool/avifAJpg/index.ts +13 -1
  27. package/src/tool/avifAPng/i18n/de.ts +178 -0
  28. package/src/tool/avifAPng/i18n/en.ts +2 -12
  29. package/src/tool/avifAPng/i18n/es.ts +2 -12
  30. package/src/tool/avifAPng/i18n/fr.ts +2 -12
  31. package/src/tool/avifAPng/i18n/id.ts +178 -0
  32. package/src/tool/avifAPng/i18n/it.ts +178 -0
  33. package/src/tool/avifAPng/i18n/ja.ts +178 -0
  34. package/src/tool/avifAPng/i18n/ko.ts +178 -0
  35. package/src/tool/avifAPng/i18n/nl.ts +178 -0
  36. package/src/tool/avifAPng/i18n/pl.ts +178 -0
  37. package/src/tool/avifAPng/i18n/pt.ts +178 -0
  38. package/src/tool/avifAPng/i18n/ru.ts +178 -0
  39. package/src/tool/avifAPng/i18n/sv.ts +178 -0
  40. package/src/tool/avifAPng/i18n/tr.ts +178 -0
  41. package/src/tool/avifAPng/i18n/zh.ts +178 -0
  42. package/src/tool/avifAPng/index.ts +13 -1
  43. package/src/tool/avifAWebp/i18n/de.ts +178 -0
  44. package/src/tool/avifAWebp/i18n/en.ts +2 -12
  45. package/src/tool/avifAWebp/i18n/es.ts +2 -12
  46. package/src/tool/avifAWebp/i18n/fr.ts +2 -12
  47. package/src/tool/avifAWebp/i18n/id.ts +178 -0
  48. package/src/tool/avifAWebp/i18n/it.ts +178 -0
  49. package/src/tool/avifAWebp/i18n/ja.ts +178 -0
  50. package/src/tool/avifAWebp/i18n/ko.ts +178 -0
  51. package/src/tool/avifAWebp/i18n/nl.ts +178 -0
  52. package/src/tool/avifAWebp/i18n/pl.ts +178 -0
  53. package/src/tool/avifAWebp/i18n/pt.ts +178 -0
  54. package/src/tool/avifAWebp/i18n/ru.ts +178 -0
  55. package/src/tool/avifAWebp/i18n/sv.ts +178 -0
  56. package/src/tool/avifAWebp/i18n/tr.ts +178 -0
  57. package/src/tool/avifAWebp/i18n/zh.ts +178 -0
  58. package/src/tool/avifAWebp/index.ts +13 -1
  59. package/src/tool/bmpAJpg/i18n/de.ts +178 -0
  60. package/src/tool/bmpAJpg/i18n/en.ts +2 -12
  61. package/src/tool/bmpAJpg/i18n/es.ts +2 -12
  62. package/src/tool/bmpAJpg/i18n/fr.ts +2 -12
  63. package/src/tool/bmpAJpg/i18n/id.ts +178 -0
  64. package/src/tool/bmpAJpg/i18n/it.ts +178 -0
  65. package/src/tool/bmpAJpg/i18n/ja.ts +178 -0
  66. package/src/tool/bmpAJpg/i18n/ko.ts +178 -0
  67. package/src/tool/bmpAJpg/i18n/nl.ts +178 -0
  68. package/src/tool/bmpAJpg/i18n/pl.ts +178 -0
  69. package/src/tool/bmpAJpg/i18n/pt.ts +178 -0
  70. package/src/tool/bmpAJpg/i18n/ru.ts +178 -0
  71. package/src/tool/bmpAJpg/i18n/sv.ts +178 -0
  72. package/src/tool/bmpAJpg/i18n/tr.ts +178 -0
  73. package/src/tool/bmpAJpg/i18n/zh.ts +178 -0
  74. package/src/tool/bmpAJpg/index.ts +13 -1
  75. package/src/tool/bmpAPng/i18n/de.ts +177 -0
  76. package/src/tool/bmpAPng/i18n/en.ts +2 -12
  77. package/src/tool/bmpAPng/i18n/es.ts +2 -12
  78. package/src/tool/bmpAPng/i18n/fr.ts +2 -12
  79. package/src/tool/bmpAPng/i18n/id.ts +177 -0
  80. package/src/tool/bmpAPng/i18n/it.ts +177 -0
  81. package/src/tool/bmpAPng/i18n/ja.ts +177 -0
  82. package/src/tool/bmpAPng/i18n/ko.ts +177 -0
  83. package/src/tool/bmpAPng/i18n/nl.ts +177 -0
  84. package/src/tool/bmpAPng/i18n/pl.ts +177 -0
  85. package/src/tool/bmpAPng/i18n/pt.ts +177 -0
  86. package/src/tool/bmpAPng/i18n/ru.ts +177 -0
  87. package/src/tool/bmpAPng/i18n/sv.ts +177 -0
  88. package/src/tool/bmpAPng/i18n/tr.ts +177 -0
  89. package/src/tool/bmpAPng/i18n/zh.ts +177 -0
  90. package/src/tool/bmpAPng/index.ts +13 -1
  91. package/src/tool/bmpAWebp/i18n/de.ts +178 -0
  92. package/src/tool/bmpAWebp/i18n/en.ts +2 -12
  93. package/src/tool/bmpAWebp/i18n/es.ts +2 -12
  94. package/src/tool/bmpAWebp/i18n/fr.ts +2 -12
  95. package/src/tool/bmpAWebp/i18n/id.ts +178 -0
  96. package/src/tool/bmpAWebp/i18n/it.ts +178 -0
  97. package/src/tool/bmpAWebp/i18n/ja.ts +178 -0
  98. package/src/tool/bmpAWebp/i18n/ko.ts +178 -0
  99. package/src/tool/bmpAWebp/i18n/nl.ts +178 -0
  100. package/src/tool/bmpAWebp/i18n/pl.ts +178 -0
  101. package/src/tool/bmpAWebp/i18n/pt.ts +178 -0
  102. package/src/tool/bmpAWebp/i18n/ru.ts +178 -0
  103. package/src/tool/bmpAWebp/i18n/sv.ts +178 -0
  104. package/src/tool/bmpAWebp/i18n/tr.ts +178 -0
  105. package/src/tool/bmpAWebp/i18n/zh.ts +178 -0
  106. package/src/tool/bmpAWebp/index.ts +13 -1
  107. package/src/tool/gifAJpg/i18n/de.ts +178 -0
  108. package/src/tool/gifAJpg/i18n/en.ts +2 -12
  109. package/src/tool/gifAJpg/i18n/es.ts +2 -12
  110. package/src/tool/gifAJpg/i18n/fr.ts +2 -12
  111. package/src/tool/gifAJpg/i18n/id.ts +178 -0
  112. package/src/tool/gifAJpg/i18n/it.ts +178 -0
  113. package/src/tool/gifAJpg/i18n/ja.ts +178 -0
  114. package/src/tool/gifAJpg/i18n/ko.ts +178 -0
  115. package/src/tool/gifAJpg/i18n/nl.ts +178 -0
  116. package/src/tool/gifAJpg/i18n/pl.ts +178 -0
  117. package/src/tool/gifAJpg/i18n/pt.ts +178 -0
  118. package/src/tool/gifAJpg/i18n/ru.ts +178 -0
  119. package/src/tool/gifAJpg/i18n/sv.ts +178 -0
  120. package/src/tool/gifAJpg/i18n/tr.ts +178 -0
  121. package/src/tool/gifAJpg/i18n/zh.ts +178 -0
  122. package/src/tool/gifAJpg/index.ts +13 -1
  123. package/src/tool/gifAPng/i18n/de.ts +178 -0
  124. package/src/tool/gifAPng/i18n/en.ts +2 -12
  125. package/src/tool/gifAPng/i18n/es.ts +2 -12
  126. package/src/tool/gifAPng/i18n/fr.ts +2 -12
  127. package/src/tool/gifAPng/i18n/id.ts +178 -0
  128. package/src/tool/gifAPng/i18n/it.ts +178 -0
  129. package/src/tool/gifAPng/i18n/ja.ts +178 -0
  130. package/src/tool/gifAPng/i18n/ko.ts +178 -0
  131. package/src/tool/gifAPng/i18n/nl.ts +178 -0
  132. package/src/tool/gifAPng/i18n/pl.ts +178 -0
  133. package/src/tool/gifAPng/i18n/pt.ts +178 -0
  134. package/src/tool/gifAPng/i18n/ru.ts +178 -0
  135. package/src/tool/gifAPng/i18n/sv.ts +178 -0
  136. package/src/tool/gifAPng/i18n/tr.ts +178 -0
  137. package/src/tool/gifAPng/i18n/zh.ts +178 -0
  138. package/src/tool/gifAPng/index.ts +12 -0
  139. package/src/tool/gifAWebp/i18n/de.ts +178 -0
  140. package/src/tool/gifAWebp/i18n/en.ts +2 -12
  141. package/src/tool/gifAWebp/i18n/es.ts +2 -12
  142. package/src/tool/gifAWebp/i18n/fr.ts +2 -12
  143. package/src/tool/gifAWebp/i18n/id.ts +178 -0
  144. package/src/tool/gifAWebp/i18n/it.ts +178 -0
  145. package/src/tool/gifAWebp/i18n/ja.ts +178 -0
  146. package/src/tool/gifAWebp/i18n/ko.ts +178 -0
  147. package/src/tool/gifAWebp/i18n/nl.ts +178 -0
  148. package/src/tool/gifAWebp/i18n/pl.ts +178 -0
  149. package/src/tool/gifAWebp/i18n/pt.ts +178 -0
  150. package/src/tool/gifAWebp/i18n/ru.ts +178 -0
  151. package/src/tool/gifAWebp/i18n/sv.ts +178 -0
  152. package/src/tool/gifAWebp/i18n/tr.ts +178 -0
  153. package/src/tool/gifAWebp/i18n/zh.ts +178 -0
  154. package/src/tool/gifAWebp/index.ts +12 -0
  155. package/src/tool/imagenBase64/i18n/de.ts +168 -0
  156. package/src/tool/imagenBase64/i18n/en.ts +2 -12
  157. package/src/tool/imagenBase64/i18n/es.ts +2 -12
  158. package/src/tool/imagenBase64/i18n/fr.ts +2 -12
  159. package/src/tool/imagenBase64/i18n/id.ts +168 -0
  160. package/src/tool/imagenBase64/i18n/it.ts +168 -0
  161. package/src/tool/imagenBase64/i18n/ja.ts +168 -0
  162. package/src/tool/imagenBase64/i18n/ko.ts +168 -0
  163. package/src/tool/imagenBase64/i18n/nl.ts +168 -0
  164. package/src/tool/imagenBase64/i18n/pl.ts +168 -0
  165. package/src/tool/imagenBase64/i18n/pt.ts +173 -0
  166. package/src/tool/imagenBase64/i18n/ru.ts +168 -0
  167. package/src/tool/imagenBase64/i18n/sv.ts +168 -0
  168. package/src/tool/imagenBase64/i18n/tr.ts +168 -0
  169. package/src/tool/imagenBase64/i18n/zh.ts +168 -0
  170. package/src/tool/imagenBase64/index.ts +12 -0
  171. package/src/tool/jpgAIco/i18n/de.ts +183 -0
  172. package/src/tool/jpgAIco/i18n/en.ts +8 -13
  173. package/src/tool/jpgAIco/i18n/es.ts +13 -18
  174. package/src/tool/jpgAIco/i18n/fr.ts +9 -14
  175. package/src/tool/jpgAIco/i18n/id.ts +183 -0
  176. package/src/tool/jpgAIco/i18n/it.ts +183 -0
  177. package/src/tool/jpgAIco/i18n/ja.ts +183 -0
  178. package/src/tool/jpgAIco/i18n/ko.ts +183 -0
  179. package/src/tool/jpgAIco/i18n/nl.ts +183 -0
  180. package/src/tool/jpgAIco/i18n/pl.ts +183 -0
  181. package/src/tool/jpgAIco/i18n/pt.ts +183 -0
  182. package/src/tool/jpgAIco/i18n/ru.ts +183 -0
  183. package/src/tool/jpgAIco/i18n/sv.ts +183 -0
  184. package/src/tool/jpgAIco/i18n/tr.ts +183 -0
  185. package/src/tool/jpgAIco/i18n/zh.ts +183 -0
  186. package/src/tool/jpgAIco/index.ts +12 -0
  187. package/src/tool/jpgAPng/i18n/de.ts +178 -0
  188. package/src/tool/jpgAPng/i18n/en.ts +2 -12
  189. package/src/tool/jpgAPng/i18n/es.ts +2 -12
  190. package/src/tool/jpgAPng/i18n/fr.ts +2 -12
  191. package/src/tool/jpgAPng/i18n/id.ts +178 -0
  192. package/src/tool/jpgAPng/i18n/it.ts +178 -0
  193. package/src/tool/jpgAPng/i18n/ja.ts +178 -0
  194. package/src/tool/jpgAPng/i18n/ko.ts +178 -0
  195. package/src/tool/jpgAPng/i18n/nl.ts +178 -0
  196. package/src/tool/jpgAPng/i18n/pl.ts +178 -0
  197. package/src/tool/jpgAPng/i18n/pt.ts +178 -0
  198. package/src/tool/jpgAPng/i18n/ru.ts +178 -0
  199. package/src/tool/jpgAPng/i18n/sv.ts +178 -0
  200. package/src/tool/jpgAPng/i18n/tr.ts +178 -0
  201. package/src/tool/jpgAPng/i18n/zh.ts +178 -0
  202. package/src/tool/jpgAPng/index.ts +13 -1
  203. package/src/tool/jpgAWebp/i18n/de.ts +178 -0
  204. package/src/tool/jpgAWebp/i18n/en.ts +2 -12
  205. package/src/tool/jpgAWebp/i18n/es.ts +2 -12
  206. package/src/tool/jpgAWebp/i18n/fr.ts +2 -12
  207. package/src/tool/jpgAWebp/i18n/id.ts +178 -0
  208. package/src/tool/jpgAWebp/i18n/it.ts +178 -0
  209. package/src/tool/jpgAWebp/i18n/ja.ts +178 -0
  210. package/src/tool/jpgAWebp/i18n/ko.ts +178 -0
  211. package/src/tool/jpgAWebp/i18n/nl.ts +178 -0
  212. package/src/tool/jpgAWebp/i18n/pl.ts +178 -0
  213. package/src/tool/jpgAWebp/i18n/pt.ts +178 -0
  214. package/src/tool/jpgAWebp/i18n/ru.ts +178 -0
  215. package/src/tool/jpgAWebp/i18n/sv.ts +178 -0
  216. package/src/tool/jpgAWebp/i18n/tr.ts +178 -0
  217. package/src/tool/jpgAWebp/i18n/zh.ts +178 -0
  218. package/src/tool/jpgAWebp/index.ts +12 -0
  219. package/src/tool/pngAIco/i18n/de.ts +183 -0
  220. package/src/tool/pngAIco/i18n/en.ts +8 -13
  221. package/src/tool/pngAIco/i18n/es.ts +19 -24
  222. package/src/tool/pngAIco/i18n/fr.ts +20 -25
  223. package/src/tool/pngAIco/i18n/id.ts +183 -0
  224. package/src/tool/pngAIco/i18n/it.ts +183 -0
  225. package/src/tool/pngAIco/i18n/ja.ts +183 -0
  226. package/src/tool/pngAIco/i18n/ko.ts +183 -0
  227. package/src/tool/pngAIco/i18n/nl.ts +183 -0
  228. package/src/tool/pngAIco/i18n/pl.ts +183 -0
  229. package/src/tool/pngAIco/i18n/pt.ts +183 -0
  230. package/src/tool/pngAIco/i18n/ru.ts +183 -0
  231. package/src/tool/pngAIco/i18n/sv.ts +183 -0
  232. package/src/tool/pngAIco/i18n/tr.ts +183 -0
  233. package/src/tool/pngAIco/i18n/zh.ts +183 -0
  234. package/src/tool/pngAIco/index.ts +12 -0
  235. package/src/tool/pngAJpg/i18n/de.ts +191 -0
  236. package/src/tool/pngAJpg/i18n/en.ts +2 -12
  237. package/src/tool/pngAJpg/i18n/es.ts +2 -12
  238. package/src/tool/pngAJpg/i18n/fr.ts +2 -12
  239. package/src/tool/pngAJpg/i18n/id.ts +191 -0
  240. package/src/tool/pngAJpg/i18n/it.ts +191 -0
  241. package/src/tool/pngAJpg/i18n/ja.ts +191 -0
  242. package/src/tool/pngAJpg/i18n/ko.ts +191 -0
  243. package/src/tool/pngAJpg/i18n/nl.ts +191 -0
  244. package/src/tool/pngAJpg/i18n/pl.ts +191 -0
  245. package/src/tool/pngAJpg/i18n/pt.ts +191 -0
  246. package/src/tool/pngAJpg/i18n/ru.ts +191 -0
  247. package/src/tool/pngAJpg/i18n/sv.ts +191 -0
  248. package/src/tool/pngAJpg/i18n/tr.ts +191 -0
  249. package/src/tool/pngAJpg/i18n/zh.ts +191 -0
  250. package/src/tool/pngAJpg/index.ts +13 -1
  251. package/src/tool/pngAWebp/i18n/de.ts +182 -0
  252. package/src/tool/pngAWebp/i18n/en.ts +2 -12
  253. package/src/tool/pngAWebp/i18n/es.ts +2 -12
  254. package/src/tool/pngAWebp/i18n/fr.ts +2 -12
  255. package/src/tool/pngAWebp/i18n/id.ts +182 -0
  256. package/src/tool/pngAWebp/i18n/it.ts +182 -0
  257. package/src/tool/pngAWebp/i18n/ja.ts +182 -0
  258. package/src/tool/pngAWebp/i18n/ko.ts +182 -0
  259. package/src/tool/pngAWebp/i18n/nl.ts +182 -0
  260. package/src/tool/pngAWebp/i18n/pl.ts +182 -0
  261. package/src/tool/pngAWebp/i18n/pt.ts +182 -0
  262. package/src/tool/pngAWebp/i18n/ru.ts +182 -0
  263. package/src/tool/pngAWebp/i18n/sv.ts +182 -0
  264. package/src/tool/pngAWebp/i18n/tr.ts +182 -0
  265. package/src/tool/pngAWebp/i18n/zh.ts +182 -0
  266. package/src/tool/pngAWebp/index.ts +12 -0
  267. package/src/tool/svgAJpg/i18n/de.ts +178 -0
  268. package/src/tool/svgAJpg/i18n/en.ts +8 -13
  269. package/src/tool/svgAJpg/i18n/es.ts +8 -13
  270. package/src/tool/svgAJpg/i18n/fr.ts +2 -12
  271. package/src/tool/svgAJpg/i18n/id.ts +178 -0
  272. package/src/tool/svgAJpg/i18n/it.ts +178 -0
  273. package/src/tool/svgAJpg/i18n/ja.ts +178 -0
  274. package/src/tool/svgAJpg/i18n/ko.ts +178 -0
  275. package/src/tool/svgAJpg/i18n/nl.ts +178 -0
  276. package/src/tool/svgAJpg/i18n/pl.ts +178 -0
  277. package/src/tool/svgAJpg/i18n/pt.ts +178 -0
  278. package/src/tool/svgAJpg/i18n/ru.ts +178 -0
  279. package/src/tool/svgAJpg/i18n/sv.ts +178 -0
  280. package/src/tool/svgAJpg/i18n/tr.ts +178 -0
  281. package/src/tool/svgAJpg/i18n/zh.ts +178 -0
  282. package/src/tool/svgAJpg/index.ts +12 -0
  283. package/src/tool/svgAPng/i18n/de.ts +178 -0
  284. package/src/tool/svgAPng/i18n/en.ts +8 -13
  285. package/src/tool/svgAPng/i18n/es.ts +31 -36
  286. package/src/tool/svgAPng/i18n/fr.ts +2 -12
  287. package/src/tool/svgAPng/i18n/id.ts +178 -0
  288. package/src/tool/svgAPng/i18n/it.ts +178 -0
  289. package/src/tool/svgAPng/i18n/ja.ts +178 -0
  290. package/src/tool/svgAPng/i18n/ko.ts +178 -0
  291. package/src/tool/svgAPng/i18n/nl.ts +178 -0
  292. package/src/tool/svgAPng/i18n/pl.ts +178 -0
  293. package/src/tool/svgAPng/i18n/pt.ts +178 -0
  294. package/src/tool/svgAPng/i18n/ru.ts +178 -0
  295. package/src/tool/svgAPng/i18n/sv.ts +178 -0
  296. package/src/tool/svgAPng/i18n/tr.ts +178 -0
  297. package/src/tool/svgAPng/i18n/zh.ts +178 -0
  298. package/src/tool/svgAPng/index.ts +12 -0
  299. package/src/tool/webpAIco/i18n/de.ts +183 -0
  300. package/src/tool/webpAIco/i18n/en.ts +8 -13
  301. package/src/tool/webpAIco/i18n/es.ts +9 -14
  302. package/src/tool/webpAIco/i18n/fr.ts +11 -16
  303. package/src/tool/webpAIco/i18n/id.ts +183 -0
  304. package/src/tool/webpAIco/i18n/it.ts +183 -0
  305. package/src/tool/webpAIco/i18n/ja.ts +183 -0
  306. package/src/tool/webpAIco/i18n/ko.ts +183 -0
  307. package/src/tool/webpAIco/i18n/nl.ts +183 -0
  308. package/src/tool/webpAIco/i18n/pl.ts +183 -0
  309. package/src/tool/webpAIco/i18n/pt.ts +183 -0
  310. package/src/tool/webpAIco/i18n/ru.ts +183 -0
  311. package/src/tool/webpAIco/i18n/sv.ts +183 -0
  312. package/src/tool/webpAIco/i18n/tr.ts +183 -0
  313. package/src/tool/webpAIco/i18n/zh.ts +183 -0
  314. package/src/tool/webpAIco/index.ts +12 -0
  315. package/src/tool/webpAJpg/i18n/de.ts +187 -0
  316. package/src/tool/webpAJpg/i18n/en.ts +9 -13
  317. package/src/tool/webpAJpg/i18n/es.ts +37 -42
  318. package/src/tool/webpAJpg/i18n/fr.ts +35 -40
  319. package/src/tool/webpAJpg/i18n/id.ts +182 -0
  320. package/src/tool/webpAJpg/i18n/it.ts +182 -0
  321. package/src/tool/webpAJpg/i18n/ja.ts +182 -0
  322. package/src/tool/webpAJpg/i18n/ko.ts +182 -0
  323. package/src/tool/webpAJpg/i18n/nl.ts +182 -0
  324. package/src/tool/webpAJpg/i18n/pl.ts +182 -0
  325. package/src/tool/webpAJpg/i18n/pt.ts +182 -0
  326. package/src/tool/webpAJpg/i18n/ru.ts +182 -0
  327. package/src/tool/webpAJpg/i18n/sv.ts +182 -0
  328. package/src/tool/webpAJpg/i18n/tr.ts +182 -0
  329. package/src/tool/webpAJpg/i18n/zh.ts +182 -0
  330. package/src/tool/webpAJpg/index.ts +12 -0
  331. package/src/tool/webpAPng/i18n/de.ts +182 -0
  332. package/src/tool/webpAPng/i18n/en.ts +8 -13
  333. package/src/tool/webpAPng/i18n/es.ts +35 -40
  334. package/src/tool/webpAPng/i18n/fr.ts +2 -12
  335. package/src/tool/webpAPng/i18n/id.ts +182 -0
  336. package/src/tool/webpAPng/i18n/it.ts +182 -0
  337. package/src/tool/webpAPng/i18n/ja.ts +182 -0
  338. package/src/tool/webpAPng/i18n/ko.ts +182 -0
  339. package/src/tool/webpAPng/i18n/nl.ts +182 -0
  340. package/src/tool/webpAPng/i18n/pl.ts +182 -0
  341. package/src/tool/webpAPng/i18n/pt.ts +182 -0
  342. package/src/tool/webpAPng/i18n/ru.ts +182 -0
  343. package/src/tool/webpAPng/i18n/sv.ts +182 -0
  344. package/src/tool/webpAPng/i18n/tr.ts +182 -0
  345. package/src/tool/webpAPng/i18n/zh.ts +182 -0
  346. 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 = 'bild-till-base64-konverterare';
6
+ const title = 'Bild till Base64 konverterare Online';
7
+ const description =
8
+ 'Konvertera valfri bild till Base64-kod och Data URI direkt i din webbläsare. Inga filuppladdningar. Gratis, privat och omedelbart.';
9
+
10
+ const ui: ImageToBase64UI = {
11
+ dragTitle: 'Dra din bild hit',
12
+ dragSubtext: 'eller klicka för att bläddra bland dina filer',
13
+ formatBadge: 'Stöder JPG, PNG, WEBP, SVG, GIF',
14
+ dataUriLabel: 'Data URI (Klar för CSS / HTML src="")',
15
+ base64Label: 'Endast Base64 (Ren kodad text)',
16
+ copyBtn: 'Kopiera',
17
+ dataUriPlaceholder: 'Ladda upp en bild för att se Data URI-koden...',
18
+ base64Placeholder: 'Ladda upp en bild för att se den rena Base64-koden...',
19
+ toastMessage: 'Koden kopierad till urklipp!',
20
+ invalidImageAlert: 'Vänligen ladda upp en giltig bildfil.',
21
+ bibliographyTitle: 'Bibliografiska Referenser',
22
+ faqTitle: 'Vanliga Frågor',
23
+ };
24
+
25
+ const faq: ImagenBase64LocaleContent['faq'] = [
26
+ {
27
+ question: 'Vad är Base64 och vad används det till i webbutveckling?',
28
+ answer:
29
+ 'Base64 är ett kodningssystem som konverterar binära data till en ASCII-textsträng. Inom webbutveckling används det för att bädda in bilder direkt i HTML- eller CSS-filer via Data URI:er, vilket minskar antalet HTTP-anrop till servern.',
30
+ },
31
+ {
32
+ question: 'Är det säkert att konvertera mina bilder till Base64 här?',
33
+ answer:
34
+ 'Absolut säkert och privat. Vårt verktyg fungerar 100% lokalt i din webbläsare. Dina bilder laddas aldrig upp till eller behandlas på någon extern server.',
35
+ },
36
+ {
37
+ question: 'Vilka bildformat stöder Base64-konverteraren?',
38
+ answer:
39
+ 'Verktyget är kompatibelt med JPG, PNG, GIF, WebP och till och med SVG-vektorfiler. När bilden laddas detekteras automatiskt dess MIME-typ för att generera den exakta Data URI-koden.',
40
+ },
41
+ {
42
+ question: 'När ska jag INTE använda Base64-bilder?',
43
+ answer:
44
+ 'Du bör undvika att använda Base64-bilder för stora fotografier eller högupplösta bilder. Base64-kod tar upp cirka 33% mer plats än den ursprungliga binära filen, vilket kan blåsa upp dina CSS-stilmallar eller HTML-dokument överdrivet mycket.',
45
+ },
46
+ ];
47
+
48
+ const howTo: ImagenBase64LocaleContent['howTo'] = [
49
+ {
50
+ name: 'Dra eller välj din bild',
51
+ text: 'Flytta valfri bild (JPG, PNG, WebP, SVG, GIF) till uppladdningsområdet för att starta konverteringen.',
52
+ },
53
+ {
54
+ name: 'Kopiera den genererade koden',
55
+ text: 'Du kommer att se två textfält: den kompletta Data URI-koden (klar att använda i src="" eller CSS) och den rena Base64-koden för andra ändamål.',
56
+ },
57
+ {
58
+ name: 'Använd koden i ditt projekt',
59
+ text: 'Klistra in Data URI direkt i src för en img-tagg eller i din CSS som background-image utan att behöva externa filer.',
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: 'Bild till Base64-konverterare: Bädda in bilder utan HTTP-anrop',
78
+ level: 2,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'Base64 är en kodningsteknik som transformerar binära data — som en bild — till en ren ASCII-textsträng. Resultatet är en Data URI: en självständig URL som börjar med <code>data:image/png;base64,...</code> och innehåller hela den kodade bilden. Genom att bädda in denna kod direkt i din HTML, CSS eller JSON, laddas bilden utan något extra HTTP-anrop till servern — noll nätverkslatens, omedelbar laddning.',
83
+ },
84
+ {
85
+ type: 'title',
86
+ text: 'När man ska använda Base64-bilder',
87
+ level: 3,
88
+ },
89
+ {
90
+ type: 'paragraph',
91
+ html: 'Huvudargumentet för Base64 är elimineringen av nätverksanrop. Varje bild på en webbsida innebär ett HTTP-anrop med dess overhead för anslutning, DNS, TLS-handskakning och latens. För mycket små kritiska bilder — applikationens huvudlogotyp, favicon, en UI-ikon — eliminerar inbäddning i Base64 i CSS eller HTML den kostnaden och garanterar att de visas omedelbart även innan webbläsaren har hunnit cacha något.',
92
+ },
93
+ {
94
+ type: 'paragraph',
95
+ html: 'Denna teknik är särskilt kraftfull i SPA-appar (Single Page Application) där JavaScript- och CSS-paketet genereras vid byggtiden: att bädda in små bilder i paketet garanterar att de laddas tillsammans med koden utan extra anrop. Det är också oumbärligt för HTML-e-postmeddelanden, där e-postklienter blockerar externa bilder men nästan alltid visar inbäddade Data URI:er.',
96
+ },
97
+ {
98
+ type: 'title',
99
+ text: 'Användningsområden för Base64-bilder',
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> för kritiska ikoner.',
107
+ 'CSS background: <code>background-image: url("data:image/svg+xml;base64,...")</code> för UI-SVG:er.',
108
+ 'JSON och REST API:er: skicka bilder som textdata i JSON-objekt.',
109
+ 'HTML-e-postmeddelanden: inbäddade bilder som visas även när klienten blockerar externa URL:er.',
110
+ 'SVG-inbäddning: bädda in rasterbilder inuti SVG-filer som inline-data.',
111
+ ],
112
+ },
113
+ {
114
+ type: 'title',
115
+ text: 'Hur konverteringen fungerar i webbläsaren',
116
+ level: 3,
117
+ },
118
+ {
119
+ type: 'paragraph',
120
+ html: 'När du väljer eller drar en bild på plats, läser webbläsarens <code>FileReader</code>-API den direkt från disken som binära data i RAM-minnet. Metoden <code>readAsDataURL()</code> konverterar de binära byten till deras Base64-representation med RFC 4648-algoritmen — var 3:e byte av originaldata representeras som 4 ASCII-tecken från Base64-alfabetet. Resultatet inkluderar den automatiskt detekterade korrekta MIME-typen.',
121
+ },
122
+ {
123
+ type: 'tip',
124
+ title: 'Använd det endast för små bilder (under 10 KB)',
125
+ html: 'Base64 ökar filstorleken med cirka 33%: en bild på 10 KB blir ~13,3 KB text. För små ikoner och logotyper är denna kostnad minimal och elimineringen av HTTP-anropet kompenserar för det. För fotografier eller stora bilder är storleksökningen betydande — använd alltid ett CDN för stora bilder.',
126
+ },
127
+ {
128
+ type: 'title',
129
+ text: 'När man INTE ska använda Base64',
130
+ level: 3,
131
+ },
132
+ {
133
+ type: 'tip',
134
+ title: 'Undvik Base64 för stora bilder — använd ett CDN istället',
135
+ html: 'Om du har bilder som är större än 10-20 KB, skadar Base64 prestandan: det blåser upp HTML/CSS-storleken, förhindrar att webbläsaren kan cacha bilden oberoende och blockerar renderingen medan tolken bearbetar den gigantiska strängen. För stora bilder, leverera alltid från ett CDN med lämpliga cache-headers.',
136
+ },
137
+ {
138
+ type: 'title',
139
+ text: 'Kompatibilitet och integritet',
140
+ level: 3,
141
+ },
142
+ {
143
+ type: 'paragraph',
144
+ html: 'Data URI:er är kompatibla med 100% av moderna webbläsare och de flesta e-postklienter. Vårt verktyg bearbetar allt lokalt via FileReader-API:et — dina bilder lämnar aldrig din enhet. Detta gör det lämpligt för företagsbilder, privata skärmdumpar eller annat konfidentiellt visuellt innehåll som du behöver konvertera till Base64.',
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: 'Slutsats: Det snabbaste och mest privata inbäddningsverktyget',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'paragraph',
153
+ html: 'Att konvertera bilder till Base64 är en nischad men mycket kraftfull teknik när den tillämpas korrekt. Använd den för små, kritiska bilder där noll HTTP-anrop gör skillnad, och undvik den för stora bilder där ett CDN alltid vinner. Med vårt verktyg får du Data URI på ett ögonblick, utan att ladda upp något till någon 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: 'sv', 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 = 'goruntuden-base64-e-donusturucu';
6
+ const title = 'Görüntüden Base64\'e Online Dönüştürücü';
7
+ const description =
8
+ 'Herhangi bir görüntüyü doğrudan tarayıcınızda Base64 koduna ve Data URI\'ye dönüştürün. Dosya yüklemesi yok. Ücretsiz, özel ve anında.';
9
+
10
+ const ui: ImageToBase64UI = {
11
+ dragTitle: 'Görüntünüzü buraya sürükleyin',
12
+ dragSubtext: 'veya dosyalarınıza göz atmak için tıklayın',
13
+ formatBadge: 'JPG, PNG, WEBP, SVG, GIF destekler',
14
+ dataUriLabel: 'Data URI (CSS / HTML src="" için hazır)',
15
+ base64Label: 'Yalnızca Base64 (Düz kodlanmış metin)',
16
+ copyBtn: 'Kopyala',
17
+ dataUriPlaceholder: 'Data URI kodunu görmek için bir görüntü yükleyin...',
18
+ base64Placeholder: 'Saf Base64 kodunu görmek için bir görüntü yükleyin...',
19
+ toastMessage: 'Kod panoya kopyalandı!',
20
+ invalidImageAlert: 'Lütfen geçerli bir görüntü dosyası yükleyin.',
21
+ bibliographyTitle: 'Bibliyografik Referanslar',
22
+ faqTitle: 'Sıkça Sorulan Sorular',
23
+ };
24
+
25
+ const faq: ImagenBase64LocaleContent['faq'] = [
26
+ {
27
+ question: 'Base64 nedir ve web geliştirmede ne için kullanılır?',
28
+ answer:
29
+ 'Base64, ikili verileri bir ASCII metin dizisine dönüştüren bir kodlama sistemidir. Web geliştirmede, görüntüleri Data URI\'ler aracılığıyla doğrudan HTML veya CSS dosyalarına gömerek sunucuya yapılan HTTP isteklerinin sayısını azaltmak için kullanılır.',
30
+ },
31
+ {
32
+ question: 'Görüntülerimi burada Base64\'e dönüştürmek güvenli mi?',
33
+ answer:
34
+ 'Kesinlikle güvenli ve özel. Aracımız tarayıcınızda %100 yerel olarak çalışır. Görüntüleriniz asla harici bir sunucuya yüklenmez veya işlenmez.',
35
+ },
36
+ {
37
+ question: 'Base64 dönüştürücü hangi görüntü formatlarını destekler?',
38
+ answer:
39
+ 'Araç JPG, PNG, GIF, WebP ve hatta SVG vektör dosyalarıyla uyumludur. Görüntü yüklendiğinde, tam Data URI kodunu oluşturmak için MIME türünü otomatik olarak algılar.',
40
+ },
41
+ {
42
+ question: 'Base64 görüntüleri ne zaman kullanmamalıyım?',
43
+ answer:
44
+ 'Büyük fotoğraflar veya yüksek çözünürlüklü görüntüler için Base64 görüntüleri kullanmaktan kaçınmalısınız. Base64 kodu, orijinal ikili dosyadan yaklaşık %33 daha fazla yer kaplar ve bu da CSS stil sayfalarınızı veya HTML belgelerinizi aşırı derecede şişirebilir.',
45
+ },
46
+ ];
47
+
48
+ const howTo: ImagenBase64LocaleContent['howTo'] = [
49
+ {
50
+ name: 'Görüntünüzü Sürükleyin veya Seçin',
51
+ text: 'Dönüştürmeyi başlatmak için herhangi bir görüntüyü (JPG, PNG, WebP, SVG, GIF) yükleme alanına taşıyın.',
52
+ },
53
+ {
54
+ name: 'Oluşturulan Kodu Kopyalayın',
55
+ text: 'İki metin alanı göreceksiniz: tam Data URI (src="" veya CSS\'de kullanıma hazır) ve diğer kullanımlar için saf Base64.',
56
+ },
57
+ {
58
+ name: 'Kodu Projenizde Kullanın',
59
+ text: 'Data URI\'yi, harici dosyalara ihtiyaç duymadan bir img etiketinin src\'sine veya CSS\'nize background-image olarak doğrudan yapıştırın.',
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: 'Görüntüden Base64\'e Dönüştürücü: HTTP İstekleri Olmadan Görüntüleri Gömün',
78
+ level: 2,
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'Base64, bir görüntü gibi ikili verileri saf bir ASCII metin dizisine dönüştüren bir kodlama tekniğidir. Sonuç bir Data URI\'dir: <code>data:image/png;base64,...</code> ile başlayan ve kodlanmış görüntünün tamamını içeren bağımsız bir URL. Bu kodu doğrudan HTML, CSS veya JSON\'unuza gömerek, görüntü sunucuya ek bir HTTP isteği olmadan yüklenir; sıfır ağ gecikmesi, anında yükleme.',
83
+ },
84
+ {
85
+ type: 'title',
86
+ text: 'Base64 görüntüleri ne zaman kullanılır',
87
+ level: 3,
88
+ },
89
+ {
90
+ type: 'paragraph',
91
+ html: 'Base64 lehine en büyük argüman, ağ isteklerinin ortadan kaldırılmasıdır. Bir web sayfasındaki her görüntü, bağlantı, DNS, TLS anlaşması ve gecikme yüküyle birlikte bir HTTP isteği anlamına gelir. Çok küçük kritik görüntüler (ana uygulama logosu, favicon, bir kullanıcı arayüzü simgesi) için bunları CSS veya HTML\'de Base64 olarak gömmek bu maliyeti ortadan kaldırır ve tarayıcı henüz hiçbir şeyi önbelleğe almadan önce anında görüntülenmelerini garanti eder.',
92
+ },
93
+ {
94
+ type: 'paragraph',
95
+ html: 'Bu teknik, JavaScript ve CSS paketinin derleme zamanında oluşturulduğu SPA (Tek Sayfalı Uygulama) uygulamalarında özellikle güçlüdür: küçük görüntüleri pakete gömmek, ek istekler olmadan kodla birlikte yüklenmelerini garanti eder. Ayrıca, posta istemcilerinin harici görüntüleri engellediği ancak gömülü Data URI\'leri neredeyse her zaman görüntülediği HTML e-postaları için de vazgeçilmezdir.',
96
+ },
97
+ {
98
+ type: 'title',
99
+ text: 'Base64 görüntüleri için kullanım durumları',
100
+ level: 3,
101
+ },
102
+ {
103
+ type: 'list',
104
+ icon: 'mdi:check-circle',
105
+ items: [
106
+ 'HTML satır içi: Kritik simgeler için <code>&lt;img src="data:image/png;base64,..."&gt;</code>.',
107
+ 'CSS arka planı: Kullanıcı arayüzü SVG\'leri için <code>background-image: url("data:image/svg+xml;base64,...")</code>.',
108
+ 'JSON ve REST API\'ler: Görüntüleri JSON yüklerinde metin verisi olarak gönderin.',
109
+ 'HTML e-postaları: İstemci harici URL\'leri engellediğinde bile görüntülenen gömülü görüntüler.',
110
+ 'SVG gömme: Raster görüntüleri satır içi veri olarak SVG dosyalarının içine gömün.',
111
+ ],
112
+ },
113
+ {
114
+ type: 'title',
115
+ text: 'Dönüşüm tarayıcıda nasıl çalışır',
116
+ level: 3,
117
+ },
118
+ {
119
+ type: 'paragraph',
120
+ html: 'Bir görüntü seçtiğinizde veya sürüklediğinizde, tarayıcının <code>FileReader</code> API\'si görüntüyü doğrudan diskten RAM\'deki ikili veriler olarak okur. <code>readAsDataURL()</code> yöntemi, bu ikili baytları RFC 4648 algoritmasını kullanarak Base64 gösterimlerine dönüştürür; orijinal verilerin her 3 baytı Base64 alfabesinden 4 ASCII karakteri olarak temsil edilir. Sonuç, otomatik olarak algılanan doğru MIME türünü içerir.',
121
+ },
122
+ {
123
+ type: 'tip',
124
+ title: 'Yalnızca küçük görüntüler için kullanın (10 KB\'ın altında)',
125
+ html: 'Base64 dosya boyutunu yaklaşık %33 artırır: 10 KB\'lık bir görüntü ~13,3 KB mtn haline gelir. Küçük simgeler ve logolar için bu maliyet minimumdur ve HTTP isteğinin ortadan kaldırılması bunu telafi eder. Fotoğraflar veya büyük görüntüler için boyut yükü önemlidir; büyük görüntüler için her zaman bir CDN kullanın.',
126
+ },
127
+ {
128
+ type: 'title',
129
+ text: 'Base64 ne zaman KULLANILMAZ',
130
+ level: 3,
131
+ },
132
+ {
133
+ type: 'tip',
134
+ title: 'Büyük görüntüler için Base64\'ten kaçının — bunun yerine bir CDN kullanın',
135
+ html: '10-20 KB\'tan daha büyük görüntüleriniz varsa, Base64 performansa zarar verir: HTML/CSS boyutunu şişirir, tarayıcının görüntüyü bağımsız olarak önbelleğe almasını engeller ve ayrıştırıcı devasa dizeyi işlerken oluşturmayı engeller. Büyük görüntüler için her zaman uygun önbellek başlıklarına sahip bir CDN\'den sunun.',
136
+ },
137
+ {
138
+ type: 'title',
139
+ text: 'Uyumluluk ve gizlilik',
140
+ level: 3,
141
+ },
142
+ {
143
+ type: 'paragraph',
144
+ html: 'Data URI\'ler, modern tarayıcıların %100\'ü ve çoğu e-posta istemcisiyle uyumludur. Aracımız her şeyi FileReader API aracılığıyla yerel olarak işler; görüntüleriniz asla cihazınızdan ayrılmaz. Bu, kurumsal görüntüler, özel ekran görüntüleri veya Base64\'e dönüştürmeniz gereken herhangi bir gizli görsel içerik için uygun hale getirir.',
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: 'Sonuç: En hızlı ve en özel gömme aracı',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'paragraph',
153
+ html: 'Görüntüleri Base64\'e dönüştürmek, doğru uygulandığında hedeflenen ancak çok güçlü bir tekniktir. Sıfır HTTP isteğinin fark yarattığı küçük, kritik görüntüler için kullanın ve bir CDN\'nin her zaman kazandığı büyük görüntüler için bundan kaçının. Aracımızla, herhangi bir sunucuya hiçbir şey yüklemeden anında Data URI alırsınız.',
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: 'tr', 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: '您将看到两个文本区域: 完整的 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 的主要理由是消除网络请求。网页上的每张图片都意味着一次 HTTP 请求, 带有连接、DNS、TLS 握手和延迟的开销。对于非常小的关键图片——主应用程序图标、favicon、UI 图标——在 CSS 或 HTML 中以 Base64 嵌入可以消除该成本, 并保证它们即使在浏览器缓存任何内容之前也能立即显示。',
92
+ },
93
+ {
94
+ type: 'paragraph',
95
+ html: '这种技术在 SPA (单页面应用程序) 中尤其强大, 其中 JavaScript 和 CSS 包在构建时生成: 在包中嵌入小图片可保证它们与代码一起加载, 无需额外请求。它对于 HTML 电子邮件也必不可少, 邮邮件客户端会拦截外部图片, 但几乎总是显示嵌入的 Data URI。',
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 兼容 100% 的现代浏览器和大多数电子邮件客户端。我们的工具通过 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: 'zh', faq, howTo }),
168
+ };
@@ -30,6 +30,18 @@ export const imagenBase64: ConvertersToolEntry<ImageToBase64UI> = {
30
30
  es: () => import('./i18n/es').then((m) => m.content),
31
31
  en: () => import('./i18n/en').then((m) => m.content),
32
32
  fr: () => import('./i18n/fr').then((m) => m.content),
33
+ de: () => import('./i18n/de').then((m) => m.content),
34
+ id: () => import('./i18n/id').then((m) => m.content),
35
+ it: () => import('./i18n/it').then((m) => m.content),
36
+ ja: () => import('./i18n/ja').then((m) => m.content),
37
+ ko: () => import('./i18n/ko').then((m) => m.content),
38
+ nl: () => import('./i18n/nl').then((m) => m.content),
39
+ pl: () => import('./i18n/pl').then((m) => m.content),
40
+ pt: () => import('./i18n/pt').then((m) => m.content),
41
+ ru: () => import('./i18n/ru').then((m) => m.content),
42
+ sv: () => import('./i18n/sv').then((m) => m.content),
43
+ tr: () => import('./i18n/tr').then((m) => m.content),
44
+ zh: () => import('./i18n/zh').then((m) => m.content),
33
45
  },
34
46
  };
35
47