@jjlmoya/utils-developer 1.3.0 → 1.5.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/index.ts +12 -0
  16. package/src/tests/faq_count.test.ts +1 -1
  17. package/src/tests/i18n_coverage.test.ts +36 -0
  18. package/src/tests/locale_completeness.test.ts +2 -2
  19. package/src/tests/slug_uniqueness.test.ts +81 -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 +2 -1
  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 +2 -1
  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 +2 -1
  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,177 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { AspectRatioUI } from '../ui';
4
+
5
+ const slug = 'seitenverhaeltnis-rechner';
6
+ const title = 'Seitenverhältnis Rechner in Pixeln. Online Proportionen';
7
+ const description =
8
+ 'Berechnen Sie neue Bild-, Video- und Webdesign-Auflösungen und behalten Sie die exakten Proportionen bei, um grafische Verzerrungen zu vermeiden. Unterstützt 16:9, 4:3, 21:9 und benutzerdefinierte Formate.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Was ist das Seitenverhältnis?',
13
+ answer:
14
+ 'Das Seitenverhältnis (Aspect Ratio) beschreibt das geometrische Verhältnis zwischen der Breite und der Höhe eines Bildes oder Bildschirms. Es wird durch zwei Zahlen dargestellt, die durch einen Doppelpunkt getrennt sind (z. B. 16:9), und gibt an, wie sich die Höhe proportional zur Breite verändert.',
15
+ },
16
+ {
17
+ question: 'Warum ist es wichtig, die korrekten Proportionen beizubehalten?',
18
+ answer:
19
+ 'Das Ignorieren des Seitenverhältnisses führt zu gestauchten oder gestreckten Bildern, unerwünschten schwarzen Balken (Letterboxing) in Videos und Webkomponenten, deren Layout bei unterschiedlichen Bildschirmgrößen zerstört wird. Die Beibehaltung korrekter Proportionen ist entscheidend für eine professionelle Darstellung.',
20
+ },
21
+ {
22
+ question: 'Wie berechne ich die Höhe aus der Breite bei einem gegebenen Verhältnis?',
23
+ answer:
24
+ 'Die Formel lautet: Höhe = Breite × (Verhältnis Höhe / Verhältnis Breite). Beispiel: Bei einer Breite von 1280px mit einem Verhältnis von 16:9 wäre die Höhe: 1280 × (9/16) = 720px.',
25
+ },
26
+ {
27
+ question: 'Was ist das Standard-Seitenverhältnis für YouTube-Videos?',
28
+ answer:
29
+ '16:9 ist das Standardverhältnis für YouTube und die meisten modernen Videoplattformen. Es entspricht Auflösungen wie 1280×720 (HD), 1920×1080 (Full HD) oder 3840×2160 (4K UHD).',
30
+ },
31
+ {
32
+ question: 'Welches Seitenverhältnis nutzen vertikale Social-Media-Videos?',
33
+ answer:
34
+ '9:16, was genau dem Umkehrschluss des Breitbildformats entspricht. Es ist das native Verhältnis für TikTok, Instagram Reels und YouTube Shorts, bedingt durch die vertikale Nutzung von Smartphones.',
35
+ },
36
+ ];
37
+
38
+ const howToData = [
39
+ {
40
+ name: 'Originalverhältnis eingeben',
41
+ text: 'Geben Sie die Breiten- und Höhenwerte des Verhältnisses ein, das Sie beibehalten möchten (z. B. 16 und 9 für Breitbild), oder wählen Sie eine der Voreinstellungen.',
42
+ },
43
+ {
44
+ name: 'Skalierung anpassen',
45
+ text: 'Ändern Sie den Breiten- oder Höhenwert im Abschnitt "Echtmaßstab". Das Tool berechnet automatisch den jeweils anderen Wert, um die Proportionen zu wahren.',
46
+ },
47
+ {
48
+ name: 'Vorschau prüfen',
49
+ text: 'Das Vorschauband zeigt die resultierende Form im proportionalen Maßstab mit dem vereinfachten Verhältnis und der berechneten Auflösung.',
50
+ },
51
+ {
52
+ name: 'In Ihr Projekt übernehmen',
53
+ text: 'Kopieren Sie die berechneten Werte, um sie in Ihrem CSS (aspect-ratio: 16 / 9), beim Video-Export oder in den Einstellungen Ihres Design-Tools zu verwenden.',
54
+ },
55
+ ];
56
+
57
+ const faqSchema: WithContext<FAQPage> = {
58
+ '@context': 'https://schema.org',
59
+ '@type': 'FAQPage',
60
+ mainEntity: faqData.map((item) => ({
61
+ '@type': 'Question',
62
+ name: item.question,
63
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
64
+ })),
65
+ };
66
+
67
+ const howToSchema: WithContext<HowToThing> = {
68
+ '@context': 'https://schema.org',
69
+ '@type': 'HowTo',
70
+ name: title,
71
+ description,
72
+ step: howToData.map((step, i) => ({
73
+ '@type': 'HowToStep',
74
+ position: i + 1,
75
+ name: step.name,
76
+ text: step.text,
77
+ })),
78
+ };
79
+
80
+ const appSchema: WithContext<SoftwareApplication> = {
81
+ '@context': 'https://schema.org',
82
+ '@type': 'SoftwareApplication',
83
+ name: title,
84
+ description,
85
+ applicationCategory: 'UtilityApplication',
86
+ operatingSystem: 'All',
87
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
88
+ inLanguage: 'de',
89
+ };
90
+
91
+ const ui: AspectRatioUI = {
92
+ labelConfig: 'Konfiguration',
93
+ labelRatio: 'Originalverhältnis',
94
+ labelWidth: 'Breite',
95
+ labelHeight: 'Höhe',
96
+ labelScale: 'Echtmaßstab',
97
+ labelPixelWidth: 'Pixel (Breite)',
98
+ labelPixelHeight: 'Pixel (Höhe)',
99
+ labelPreview: 'Proportionale Vorschau',
100
+ labelStatus: 'Perfektes Verhältnis',
101
+ labelOffline: '100% Offline-Tool',
102
+ };
103
+
104
+ export const content: ToolLocaleContent<AspectRatioUI> = {
105
+ slug,
106
+ title,
107
+ description,
108
+ ui,
109
+ faqTitle: 'Häufig gestellte Fragen',
110
+ faq: faqData,
111
+ bibliographyTitle: 'Referenzen und Dokumentation',
112
+ bibliography: [
113
+ {
114
+ name: 'MDN Web Docs: aspect-ratio (CSS)',
115
+ url: 'https://developer.mozilla.org/en-US/docs/Web/CSS/aspect-ratio',
116
+ },
117
+ {
118
+ name: 'Wikipedia: Seitenverhältnis',
119
+ url: 'https://de.wikipedia.org/wiki/Seitenverhältnis',
120
+ },
121
+ {
122
+ name: 'W3C: CSS Box Sizing Level 4',
123
+ url: 'https://www.w3.org/TR/css-sizing-4/#aspect-ratio',
124
+ },
125
+ ],
126
+ howTo: howToData,
127
+ schemas: [faqSchema, howToSchema, appSchema],
128
+ seo: [
129
+ {
130
+ type: 'title',
131
+ text: 'Was ist das Seitenverhältnis?',
132
+ level: 2,
133
+ },
134
+ {
135
+ type: 'paragraph',
136
+ html: 'Im Grafikdesign, in der Fotografie und in der Frontend-Entwicklung beschreibt das <strong>Seitenverhältnis</strong> (Aspect Ratio) die geometrische Beziehung zwischen der Breite und der Höhe eines Bildes, eines Bildschirms oder eines Containers. Es wird üblicherweise durch zwei Zahlen dargestellt, die durch einen Doppelpunkt getrennt sind (z. B. <code>16:9</code>), und gibt an, wie die Höhe proportional zur Breite skaliert wird.',
137
+ },
138
+ {
139
+ type: 'paragraph',
140
+ html: 'Falsch gehandhabte Seitenverhältnisse sind eine häufige Ursache für gestauchte Fotos, Videos mit unerwartetem Beschnitt (Letterboxing) oder Webkomponenten, deren Layout beim Betrachten auf unterschiedlichen Geräten – vom Smartphone bis hin zu Ultra-Wide-Monitoren – fehlerhaft dargestellt wird.',
141
+ },
142
+ {
143
+ type: 'title',
144
+ text: 'Gängige Branchenverhältnisse',
145
+ level: 3,
146
+ },
147
+ {
148
+ type: 'paragraph',
149
+ html: 'Je nach Fachbereich werden Sie ständig mit einer begrenzten Anzahl an globalen Standardproportionen zu tun haben:',
150
+ },
151
+ {
152
+ type: 'list',
153
+ items: [
154
+ '<strong>16:9 (Widescreen):</strong> Das absolut dominante Format für moderne Monitore, Fernseher, YouTube-Aufnahmen oder Standard-HD-Auflösungen (wie 1920×1080 oder 4K).',
155
+ '<strong>9:16 (Vertikal):</strong> Entstanden durch die native Nutzung von Inhalten auf Mobilgeräten (TikTok, Instagram Reels, YouTube Shorts). Exakt das gleiche Verhältnis wie Breitbildvideos, jedoch mit einer physischen Drehung des Geräts.',
156
+ '<strong>4:3 (Klassisch / Vintage):</strong> Zu finden bei alten Fernsehern und Monitoren sowie bei analogen und speziellen digitalen Kameramodellen. Die fast quadratische Optik lenkt den Blick direkt auf die zentrale Bildachse.',
157
+ ],
158
+ },
159
+ {
160
+ type: 'title',
161
+ text: 'Webentwicklung und die CSS-Eigenschaft aspect-ratio',
162
+ level: 3,
163
+ },
164
+ {
165
+ type: 'paragraph',
166
+ html: 'Früher wurden in CSS komplexe mathematische Systeme mit einem <strong>Padding-Hack</strong> (wie <code>padding-top: 56.25%</code>) verwendet, um dynamische Platzhalter für YouTube-Iframes oder Titelbilder zu reservieren und so ein störendes Cumulative Layout Shift (CLS) beim Laden der Seite zu vermeiden.',
167
+ },
168
+ {
169
+ type: 'paragraph',
170
+ html: 'Heutzutage nutzen alle modernen Layouts direkt Eigenschaften wie <code>aspect-ratio: 16 / 9;</code>. Dies sorgt für semantischen Code und ermöglicht es dem Browser, die fehlende Dimension automatisch von der ursprünglichen, über Grid oder Flexbox definierten Breite abzuleiten.',
171
+ },
172
+ {
173
+ type: 'paragraph',
174
+ html: 'Dieser lokale Pixel-Rechner unterstützt Sie dabei, durch sofortige Skalierungsberechnungen Designfehler und katastrophale Fehlkonfigurationen zu vermeiden.',
175
+ },
176
+ ],
177
+ };
@@ -0,0 +1,177 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { AspectRatioUI } from '../ui';
4
+
5
+ const slug = 'kalkulator-rasio-aspek';
6
+ const title = 'Kalkulator Rasio Aspek dalam Piksel. Proporsi Online';
7
+ const description =
8
+ 'Hitung resolusi gambar, video, dan desain web baru sambil tetap mempertahankan proporsi yang tepat untuk menghindari distorsi grafis. Mendukung format 16:9, 4:3, 21:9, dan khusus.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Apa itu Rasio Aspek?',
13
+ answer:
14
+ 'Rasio Aspek menjelaskan hubungan geometris antara lebar dan tinggi gambar atau layar. Ini direpresentasikan dengan dua angka yang dipisahkan oleh titik dua (misalnya 16:9), yang menunjukkan bagaimana tinggi berubah secara proporsional terhadap lebar.',
15
+ },
16
+ {
17
+ question: 'Mengapa penting untuk menjaga proporsi yang benar?',
18
+ answer:
19
+ 'Mengabaikan Rasio Aspek menyebabkan gambar tampak gepeng atau tertarik, munculnya kotak hitam (letterboxing) yang tidak diinginkan pada video, dan komponen web yang tata letaknya rusak pada ukuran layar yang berbeda. Menjaga proporsi yang benar adalah kunci tampilan profesional.',
20
+ },
21
+ {
22
+ question: 'Bagaimana cara menghitung tinggi dari lebar dengan rasio tertentu?',
23
+ answer:
24
+ 'Rumusnya adalah: Tinggi = Lebar × (Tinggi Rasio / Lebar Rasio). Contohnya, untuk lebar 1280px dengan rasio 16:9, tingginya adalah: 1280 × (9/16) = 720px.',
25
+ },
26
+ {
27
+ question: 'Berapa Rasio Aspek standar untuk video YouTube?',
28
+ answer:
29
+ '16:9 adalah rasio standar untuk YouTube dan sebagian besar platform video modern. Ini sesuai dengan resolusi seperti 1280×720 (HD), 1920×1080 (Full HD), atau 3840×2160 (4K UHD).',
30
+ },
31
+ {
32
+ question: 'Rasio Aspek apa yang digunakan video media sosial vertikal?',
33
+ answer:
34
+ '9:16, yang merupakan kebalikan dari format widescreen. Ini adalah rasio asli TikTok, Instagram Reels, dan YouTube Shorts, yang berasal dari penggunaan ponsel secara vertikal.',
35
+ },
36
+ ];
37
+
38
+ const howToData = [
39
+ {
40
+ name: 'Masukkan rasio asli',
41
+ text: 'Masukkan nilai lebar dan tinggi dari rasio yang ingin Anda pertahankan (misalnya 16 dan 9 untuk widescreen) atau pilih salah satu preset.',
42
+ },
43
+ {
44
+ name: 'Sesuaikan skala',
45
+ text: 'Ubah nilai lebar atau tinggi di bagian "Skala Nyata". Alat ini akan secara otomatis menghitung nilai pasangannya untuk menjaga proporsi.',
46
+ },
47
+ {
48
+ name: 'Periksa pratinjau',
49
+ text: 'Panel pratinjau menunjukkan bentuk yang dihasilkan dalam skala proporsional, dengan rasio yang disederhanakan dan resolusi yang dihitung.',
50
+ },
51
+ {
52
+ name: 'Terapkan di proyek Anda',
53
+ text: 'Salin nilai yang dihitung untuk digunakan dalam CSS Anda (aspect-ratio: 16 / 9), dalam ekspor video, atau dalam pengaturan alat desain Anda.',
54
+ },
55
+ ];
56
+
57
+ const faqSchema: WithContext<FAQPage> = {
58
+ '@context': 'https://schema.org',
59
+ '@type': 'FAQPage',
60
+ mainEntity: faqData.map((item) => ({
61
+ '@type': 'Question',
62
+ name: item.question,
63
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
64
+ })),
65
+ };
66
+
67
+ const howToSchema: WithContext<HowToThing> = {
68
+ '@context': 'https://schema.org',
69
+ '@type': 'HowTo',
70
+ name: title,
71
+ description,
72
+ step: howToData.map((step, i) => ({
73
+ '@type': 'HowToStep',
74
+ position: i + 1,
75
+ name: step.name,
76
+ text: step.text,
77
+ })),
78
+ };
79
+
80
+ const appSchema: WithContext<SoftwareApplication> = {
81
+ '@context': 'https://schema.org',
82
+ '@type': 'SoftwareApplication',
83
+ name: title,
84
+ description,
85
+ applicationCategory: 'UtilityApplication',
86
+ operatingSystem: 'All',
87
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
88
+ inLanguage: 'id',
89
+ };
90
+
91
+ const ui: AspectRatioUI = {
92
+ labelConfig: 'Konfigurasi',
93
+ labelRatio: 'Rasio Asli',
94
+ labelWidth: 'Lebar',
95
+ labelHeight: 'Tinggi',
96
+ labelScale: 'Skala Nyata',
97
+ labelPixelWidth: 'Piksel (Lebar)',
98
+ labelPixelHeight: 'Piksel (Tinggi)',
99
+ labelPreview: 'Pratinjau Proporsional',
100
+ labelStatus: 'Rasio Sempurna',
101
+ labelOffline: 'Alat 100% Offline',
102
+ };
103
+
104
+ export const content: ToolLocaleContent<AspectRatioUI> = {
105
+ slug,
106
+ title,
107
+ description,
108
+ ui,
109
+ faqTitle: 'Pertanyaan yang Sering Diajukan',
110
+ faq: faqData,
111
+ bibliographyTitle: 'Referensi dan Dokumentasi',
112
+ bibliography: [
113
+ {
114
+ name: 'MDN Web Docs: aspect-ratio (CSS)',
115
+ url: 'https://developer.mozilla.org/en-US/docs/Web/CSS/aspect-ratio',
116
+ },
117
+ {
118
+ name: 'Wikipedia: Aspect ratio',
119
+ url: 'https://en.wikipedia.org/wiki/Aspect_ratio',
120
+ },
121
+ {
122
+ name: 'W3C: CSS Box Sizing Level 4',
123
+ url: 'https://www.w3.org/TR/css-sizing-4/#aspect-ratio',
124
+ },
125
+ ],
126
+ howTo: howToData,
127
+ schemas: [faqSchema, howToSchema, appSchema],
128
+ seo: [
129
+ {
130
+ type: 'title',
131
+ text: 'Apa itu Rasio Aspek?',
132
+ level: 2,
133
+ },
134
+ {
135
+ type: 'paragraph',
136
+ html: 'Dalam desain grafis, fotografi, dan pengembangan frontend, <strong>Rasio Aspek</strong> menjelaskan hubungan geometris antara lebar dan tinggi gambar, layar, atau kontainer. Biasanya direpresentasikan dengan dua angka yang dipisahkan oleh titik dua (misalnya <code>16:9</code>), yang menunjukkan bagaimana tinggi bertambah secara proporsional sebagai respons terhadap lebarnya.',
137
+ },
138
+ {
139
+ type: 'paragraph',
140
+ html: 'Kesalahan penanganan rasio aspek adalah penyebab umum foto yang tampak gepeng, video dengan pemotongan yang tidak terduga (letterboxing), atau komponen web yang tata letaknya rusak saat dilihat dari ponsel hingga monitor ultra-lebar.',
141
+ },
142
+ {
143
+ type: 'title',
144
+ text: 'Rasio Umum di Industri',
145
+ level: 3,
146
+ },
147
+ {
148
+ type: 'paragraph',
149
+ html: 'Tergantung pada disiplin ilmu Anda, Anda akan terus berurusan dengan sejumlah kecil proporsi standar global:',
150
+ },
151
+ {
152
+ type: 'list',
153
+ items: [
154
+ '<strong>16:9 (Widescreen):</strong> Format dominan mutlak untuk monitor modern, TV, rekaman YouTube, atau resolusi definisi tinggi standar (seperti 1920×1080 atau 4K).',
155
+ '<strong>9:16 (Vertikal):</strong> Berasal dari konsumsi konten seluler asli (TikTok, Instagram Reels, YouTube Shorts). Rasio yang sama persis dengan video widescreen, tetapi dengan rotasi fisik perangkat yang diterapkan.',
156
+ '<strong>4:3 (Klasik / Vintage):</strong> Ada pada televisi dan monitor lama atau pada model kamera digital analog dan khusus. Penampilannya yang agak persegi menarik perhatian langsung ke sumbu komposisi tengah.',
157
+ ],
158
+ },
159
+ {
160
+ type: 'title',
161
+ text: 'Pengembangan Web dan properti CSS aspect-ratio',
162
+ level: 3,
163
+ },
164
+ {
165
+ type: 'paragraph',
166
+ html: 'Dahulu dalam CSS, sistem matematika yang rumit menggunakan <strong>Padding Hack</strong> (seperti menyisipkan <code>padding-top: 56.25%</code>) digunakan untuk memesan ruang dinamis pada iframe YouTube atau gambar sampul, untuk menghindari Cumulative Layout Shift (CLS) yang buruk saat pemuatan halaman.',
167
+ },
168
+ {
169
+ type: 'paragraph',
170
+ html: 'Saat ini, semua tata letak modern secara langsung menerapkan properti seperti <code>aspect-ratio: 16 / 9;</code>, menghasilkan kode semantik dan memungkinkan browser secara otomatis menurunkan dimensi yang hilang dari lebar asli yang ditentukan melalui Grid atau Flexbox.',
171
+ },
172
+ {
173
+ type: 'paragraph',
174
+ html: 'Kalkulator piksel lokal ini mentransfer kekuatan desain ke perhitungan penskalaan instan yang akan melindungi render Anda dari miskonfigurasi fatal.',
175
+ },
176
+ ],
177
+ };
@@ -0,0 +1,177 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { AspectRatioUI } from '../ui';
4
+
5
+ const slug = 'calcolatore-proporzioni';
6
+ const title = 'Calcolatore Proporzioni (Aspect Ratio) in Pixel. Proporzioni Online';
7
+ const description =
8
+ 'Calcola nuove risoluzioni per immagini, video e web design mantenendo l\'esatta proporzione per evitare distorsioni grafiche. Supporta i formati 16:9, 4:3, 21:9 e personalizzati.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Cos\'è l\'Aspect Ratio (proporzione)?',
13
+ answer:
14
+ 'L\'Aspect Ratio descrive la relazione geometrica tra la larghezza e l\'altezza di un\'immagine o di uno schermo. Viene rappresentato con due numeri separati da due punti (ad es. 16:9), indicando come l\'altezza cambia proporzionalmente rispetto alla larghezza.',
15
+ },
16
+ {
17
+ question: 'Perché è importante mantenere le proporzioni corrette?',
18
+ answer:
19
+ 'Ignorare l\'Aspect Ratio causa immagini schiacciate o allungate, barre nere indesiderate (letterboxing) nei video e componenti web che rompono il loro layout a diverse dimensioni di schermo. Mantenere le proporzioni corrette è fondamentale per una visualizzazione professionale.',
20
+ },
21
+ {
22
+ question: 'Come calcolo l\'altezza dalla larghezza con un dato rapporto?',
23
+ answer:
24
+ 'La formula è: Altezza = Larghezza × (Altezza Rapporto / Larghezza Rapporto). Ad esempio, per una larghezza di 1280px con un rapporto 16:9, l\'altezza sarebbe: 1280 × (9/16) = 720px.',
25
+ },
26
+ {
27
+ question: 'Qual è l\'Aspect Ratio standard per i video di YouTube?',
28
+ answer:
29
+ 'Il rapporto 16:9 è lo standard per YouTube e la maggior parte delle moderne piattaforme video. Corrisponde a risoluzioni come 1280×720 (HD), 1920×1080 (Full HD) o 3840×2160 (4K UHD).',
30
+ },
31
+ {
32
+ question: 'Quale Aspect Ratio utilizzano i video verticali sui social media?',
33
+ answer:
34
+ '9:16, che è esattamente l\'inverso del formato widescreen. È il rapporto nativo di TikTok, Instagram Reels e YouTube Shorts, originato dal consumo di contenuti su uno smartphone tenuto verticalmente.',
35
+ },
36
+ ];
37
+
38
+ const howToData = [
39
+ {
40
+ name: 'Inserisci il rapporto originale',
41
+ text: 'Inserisci i valori di larghezza e altezza del rapporto che vuoi mantenere (ad es. 16 e 9 per il widescreen) o seleziona uno dei preset.',
42
+ },
43
+ {
44
+ name: 'Regola la scala',
45
+ text: 'Cambia il valore della larghezza o dell\'altezza nella sezione "Scala reale". Lo strumento calcolerà automaticamente il valore opposto per mantenere la proporzione.',
46
+ },
47
+ {
48
+ name: 'Controlla l\'anteprima',
49
+ text: 'Il pannello di anteprima mostra la forma risultante in scala proporzionale, con il rapporto semplificato e la risoluzione calcolata.',
50
+ },
51
+ {
52
+ name: 'Applica nel tuo progetto',
53
+ text: 'Copia i valori calcolati per usarli nel tuo CSS (aspect-ratio: 16 / 9), nell\'esportazione dei video o nelle impostazioni del tuo strumento di progettazione.',
54
+ },
55
+ ];
56
+
57
+ const faqSchema: WithContext<FAQPage> = {
58
+ '@context': 'https://schema.org',
59
+ '@type': 'FAQPage',
60
+ mainEntity: faqData.map((item) => ({
61
+ '@type': 'Question',
62
+ name: item.question,
63
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
64
+ })),
65
+ };
66
+
67
+ const howToSchema: WithContext<HowToThing> = {
68
+ '@context': 'https://schema.org',
69
+ '@type': 'HowTo',
70
+ name: title,
71
+ description,
72
+ step: howToData.map((step, i) => ({
73
+ '@type': 'HowToStep',
74
+ position: i + 1,
75
+ name: step.name,
76
+ text: step.text,
77
+ })),
78
+ };
79
+
80
+ const appSchema: WithContext<SoftwareApplication> = {
81
+ '@context': 'https://schema.org',
82
+ '@type': 'SoftwareApplication',
83
+ name: title,
84
+ description,
85
+ applicationCategory: 'UtilityApplication',
86
+ operatingSystem: 'All',
87
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
88
+ inLanguage: 'it',
89
+ };
90
+
91
+ const ui: AspectRatioUI = {
92
+ labelConfig: 'Configurazione',
93
+ labelRatio: 'Rapporto originale',
94
+ labelWidth: 'Larghezza',
95
+ labelHeight: 'Altezza',
96
+ labelScale: 'Scala reale',
97
+ labelPixelWidth: 'Pixel (Larghezza)',
98
+ labelPixelHeight: 'Pixel (Altezza)',
99
+ labelPreview: 'Anteprima proporzionale',
100
+ labelStatus: 'Proporzione perfetta',
101
+ labelOffline: 'Strumento 100% offline',
102
+ };
103
+
104
+ export const content: ToolLocaleContent<AspectRatioUI> = {
105
+ slug,
106
+ title,
107
+ description,
108
+ ui,
109
+ faqTitle: 'Domande frequenti',
110
+ faq: faqData,
111
+ bibliographyTitle: 'Riferimenti e documentazione',
112
+ bibliography: [
113
+ {
114
+ name: 'MDN Web Docs: aspect-ratio (CSS)',
115
+ url: 'https://developer.mozilla.org/en-US/docs/Web/CSS/aspect-ratio',
116
+ },
117
+ {
118
+ name: 'Wikipedia: Aspect ratio',
119
+ url: 'https://it.wikipedia.org/wiki/Rapporto_d\'aspetto',
120
+ },
121
+ {
122
+ name: 'W3C: CSS Box Sizing Level 4',
123
+ url: 'https://www.w3.org/TR/css-sizing-4/#aspect-ratio',
124
+ },
125
+ ],
126
+ howTo: howToData,
127
+ schemas: [faqSchema, howToSchema, appSchema],
128
+ seo: [
129
+ {
130
+ type: 'title',
131
+ text: 'Cos\'è l\'Aspect Ratio?',
132
+ level: 2,
133
+ },
134
+ {
135
+ type: 'paragraph',
136
+ html: 'Nel graphic design, nella fotografia e nello sviluppo frontend, l\'<strong>Aspect Ratio</strong> descrive la relazione geometrica tra la larghezza e l\'altezza di un\'immagine, di uno schermo o di un contenitore. Viene tipicamente rappresentato con due numeri separati da due punti (ad es. <code>16:9</code>), indicando come l\'altezza aumenta proporzionalmente in risposta alla sua larghezza.',
137
+ },
138
+ {
139
+ type: 'paragraph',
140
+ html: 'Una gestione errata delle proporzioni è una causa comune di fotografie schiacciate, video con ritagli imprevisti (letterboxing) o componenti web che rompono i loro layout quando visualizzati progressivamente da mobile a monitor ultra-wide.',
141
+ },
142
+ {
143
+ type: 'title',
144
+ text: 'Rapporti comuni del settore',
145
+ level: 3,
146
+ },
147
+ {
148
+ type: 'paragraph',
149
+ html: 'A seconda della tua disciplina, avrai costantemente a che fare con un numero limitato di proporzioni standard globali:',
150
+ },
151
+ {
152
+ type: 'list',
153
+ items: [
154
+ '<strong>16:9 (Widescreen):</strong> Il formato assolutamente dominante per monitor moderni, TV, registrazioni YouTube o risoluzioni standard ad alta definizione (come 1920×1080 o 4K).',
155
+ '<strong>9:16 (Verticale):</strong> Originato dal consumo nativo di contenuti mobile (TikTok, Instagram Reels, YouTube Shorts). Esattamente lo stesso rapporto dei video widescreen, ma con la rotazione fisica del dispositivo applicata.',
156
+ '<strong>4:3 (Classico / Vintage):</strong> Presente nelle vecchie televisioni e monitor o nei modelli di macchine fotografiche analogiche e digitali specializzate. Il suo aspetto leggermente quadrato attira l\'attenzione direttamente sull\'asse compositivo centrale.',
157
+ ],
158
+ },
159
+ {
160
+ type: 'title',
161
+ text: 'Sviluppo Web e la proprietà CSS aspect-ratio',
162
+ level: 3,
163
+ },
164
+ {
165
+ type: 'paragraph',
166
+ html: 'In precedenza nei CSS, venivano utilizzati complessi sistemi matematici che utilizzavano un <strong>Padding Hack</strong> (come l\'inserimento di un <code>padding-top: 56.25%</code>) per riservare spazi dinamici negli iframe di YouTube o nelle immagini di copertina, per evitare il terribile Cumulative Layout Shift (CLS) al caricamento della pagina.',
167
+ },
168
+ {
169
+ type: 'paragraph',
170
+ html: 'Oggigiorno tutti i layout moderni applicano direttamente proprietà come <code>aspect-ratio: 16 / 9;</code>, ottenendo un codice semantico e permettendo al browser di ricavare automaticamente la dimensione mancante dalla larghezza originale definita via Grid o Flexbox.',
171
+ },
172
+ {
173
+ type: 'paragraph',
174
+ html: 'Questo calcolatore di pixel locale trasferisce il potere del design a un calcolo di ridimensionamento istantaneo che proteggerà i tuoi render da errori di configurazione catastrofici.',
175
+ },
176
+ ],
177
+ };