@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 = 'bildforhallande-kalkylator';
6
+ const title = 'Bildförhållande kalkylator i pixlar. Onlineproportioner';
7
+ const description =
8
+ 'Beräkna nya upplösningar för bilder, video och webbdesign och bibehåll exakta proportioner för att undvika förvrängd grafik. Stöder 16:9, 4:3, 21:9 och anpassade format.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Vad är bildförhållande (Aspect Ratio)?',
13
+ answer:
14
+ 'Bildförhållandet beskriver det geometriska förhållandet mellan bredden och höjden på en bild eller skärm. Det representeras med två siffror separerade av ett kolon (t.ex. 16:9), vilket anger hur höjden ändras proportionellt i förhållande till bredden.',
15
+ },
16
+ {
17
+ question: 'Varför är det viktigt att bibehålla korrekta proportioner?',
18
+ answer:
19
+ 'Att ignorera bildförhållandet orsakar ihoptryckta eller utsträckta bilder, oväntade svarta kanter (letterboxing) i videor och webbkomponenter som tappar sin layout på olika skärmstorlekar. Att bibehålla korrekta proportioner är nyckeln till en professionell visning.',
20
+ },
21
+ {
22
+ question: 'Hur beräknar jag höjden från bredden med ett givet förhållande?',
23
+ answer:
24
+ 'Formeln är: Höjd = Bredd × (Höjd i förhållandet / Bredd i förhållandet). Till exempel, för en bredd på 1280px med ett 16:9-förhållande blir höjden: 1280 × (9/16) = 720px.',
25
+ },
26
+ {
27
+ question: 'Vad är standard bildförhållande för YouTube-videor?',
28
+ answer:
29
+ '16:9 är standardförhållandet för YouTube och de flesta moderna videoplattformar. Det motsvarar upplösningar som 1280×720 (HD), 1920×1080 (Full HD) eller 3840×2160 (4K UHD).',
30
+ },
31
+ {
32
+ question: 'Vilket bildförhållande använder vertikala videor i sociala medier?',
33
+ answer:
34
+ '9:16, vilket är den exakta motsatsen till widescreen-formatet. Det är det nativa förhållandet för TikTok, Instagram Reels och YouTube Shorts, som har sitt ursprung i hur vi håller mobilen vertikalt.',
35
+ },
36
+ ];
37
+
38
+ const howToData = [
39
+ {
40
+ name: 'Ange ursprungligt förhållande',
41
+ text: 'Ange bredd- och höjdvärdena för det förhållande du vill bibehålla (t.ex. 16 och 9 för widescreen) eller välj en av förinställningarna.',
42
+ },
43
+ {
44
+ name: 'Justera skalan',
45
+ text: 'Ändra bredd- eller höjdvärdet i avsnittet "Verklig skala". Verktyget beräknar automatiskt det motsatta värdet för att bibehålla proportionerna.',
46
+ },
47
+ {
48
+ name: 'Kontrollera förhandsgranskningen',
49
+ text: 'Förhandsgranskningspanelen visar den resulterande formen i proportionell skala, med det förenklade förhållandet och den beräknade upplösningen.',
50
+ },
51
+ {
52
+ name: 'Använd i ditt projekt',
53
+ text: 'Kopiera de beräknade värdena för att använda i din CSS (aspect-ratio: 16 / 9), vid videoexport eller i inställningarna för ditt designverktyg.',
54
+ },
55
+ ];
56
+
57
+ const faqSchema: WithContext<FAQPage> = {
58
+ '@context': 'https://schema.org',
59
+ '@type': 'FAQPage',
60
+ mainEntity: faqData.map((item) => ({
61
+ '@type': 'Question',
62
+ name: item.question,
63
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
64
+ })),
65
+ };
66
+
67
+ const howToSchema: WithContext<HowToThing> = {
68
+ '@context': 'https://schema.org',
69
+ '@type': 'HowTo',
70
+ name: title,
71
+ description,
72
+ step: howToData.map((step, i) => ({
73
+ '@type': 'HowToStep',
74
+ position: i + 1,
75
+ name: step.name,
76
+ text: step.text,
77
+ })),
78
+ };
79
+
80
+ const appSchema: WithContext<SoftwareApplication> = {
81
+ '@context': 'https://schema.org',
82
+ '@type': 'SoftwareApplication',
83
+ name: title,
84
+ description,
85
+ applicationCategory: 'UtilityApplication',
86
+ operatingSystem: 'All',
87
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
88
+ inLanguage: 'sv',
89
+ };
90
+
91
+ const ui: AspectRatioUI = {
92
+ labelConfig: 'Konfiguration',
93
+ labelRatio: 'Ursprungligt förhållande',
94
+ labelWidth: 'Bredd',
95
+ labelHeight: 'Höjd',
96
+ labelScale: 'Verklig skala',
97
+ labelPixelWidth: 'Pixlar (Bredd)',
98
+ labelPixelHeight: 'Pixlar (Höjd)',
99
+ labelPreview: 'Proportionell förhandsgranskning',
100
+ labelStatus: 'Perfekt förhållande',
101
+ labelOffline: '100 % offline-verktyg',
102
+ };
103
+
104
+ export const content: ToolLocaleContent<AspectRatioUI> = {
105
+ slug,
106
+ title,
107
+ description,
108
+ ui,
109
+ faqTitle: 'Vanliga frågor',
110
+ faq: faqData,
111
+ bibliographyTitle: 'Referenser och 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: Aspect ratio',
119
+ url: 'https://sv.wikipedia.org/wiki/Bildförhållande',
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: 'Vad är bildförhållande?',
132
+ level: 2,
133
+ },
134
+ {
135
+ type: 'paragraph',
136
+ html: 'Inom grafisk design, fotografi och frontend-utveckling beskriver <strong>bildförhållandet</strong> (Aspect Ratio) det geometriska förhållandet mellan bredden och höjden på en bild, skärm eller behållare. Det representeras vanligtvis med två siffror separerade av ett kolon (t.ex. <code>16:9</code>), vilket anger hur höjden ökar proportionellt i förhållande till dess bredd.',
137
+ },
138
+ {
139
+ type: 'paragraph',
140
+ html: 'Felaktig hantering av bildförhållanden är en vanlig orsak till ihoptryckta fotografier, videor med oväntad beskärning (letterboxing) eller webbkomponenter som tappar sin layout när de visas på allt från mobiler till ultrabreda bildskärmar.',
141
+ },
142
+ {
143
+ type: 'title',
144
+ text: 'Vanliga branschförhållanden',
145
+ level: 3,
146
+ },
147
+ {
148
+ type: 'paragraph',
149
+ html: 'Beroende på din disciplin kommer du ständigt att hantera ett begränsat antal globala standardproportioner:',
150
+ },
151
+ {
152
+ type: 'list',
153
+ items: [
154
+ '<strong>16:9 (Widescreen):</strong> Det absolut dominerande formatet för moderna bildskärmar, TV-apparater, YouTube-inspelningar eller standard HD-upplösningar (som 1920×1080 eller 4K).',
155
+ '<strong>9:16 (Vertikalt):</strong> Har sitt ursprung i mobilanvändning (TikTok, Instagram Reels, YouTube Shorts). Exakt samma förhållande som widescreen-videor, men med en fysisk rotation av enheten.',
156
+ '<strong>4:3 (Klassiskt / Vintage):</strong> Finns i gamla TV-apparater och bildskärmar eller i analoga och specialiserade digitala kameramodeller. Dess något kvadratiska utseende drar blicken direkt till det centrala kompositionsplanet.',
157
+ ],
158
+ },
159
+ {
160
+ type: 'title',
161
+ text: 'Webbutveckling och CSS-egenskapen aspect-ratio',
162
+ level: 3,
163
+ },
164
+ {
165
+ type: 'paragraph',
166
+ html: 'Tidigare användes komplexa matematiska system i CSS med ett <strong>Padding Hack</strong> (som att injicera <code>padding-top: 56.25%</code>) för att reservera dynamiska utrymmen i YouTube-iframes eller omslagsbilder, för att undvika problem med Cumulative Layout Shift (CLS) vid sidladdning.',
167
+ },
168
+ {
169
+ type: 'paragraph',
170
+ html: 'Numera tillämpar alla moderna layouter egenskaper som <code>aspect-ratio: 16 / 9;</code> direkt, vilket ger semantisk kod och låter webbläsaren automatiskt härleda den dimension som saknas från den ursprungliga bredden som definierats via Grid eller Flexbox.',
171
+ },
172
+ {
173
+ type: 'paragraph',
174
+ html: 'Denna lokala pixelkalkylator överför designens kraft till en omedelbar skalningsberäkning som skyddar dina renderingar från förödande felkonfigurationer.',
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 = 'en-boy-orani-hesaplayici';
6
+ const title = 'Piksel Cinsinden En Boy Oranı Hesaplayıcı. Çevrimiçi Oranlar';
7
+ const description =
8
+ 'Grafiklerin bozulmasını önlemek için tam oranı koruyarak yeni görüntü, video ve web tasarım çözünürlüklerini hesaplayın. 16:9, 4:3, 21:9 ve özel formatları destekler.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'En Boy Oranı (Aspect Ratio) Nedir?',
13
+ answer:
14
+ 'En Boy Oranı, bir görüntünün veya ekranın genişliği ile yüksekliği arasındaki geometrik ilişkiyi tanımlar. İki sayının iki nokta üst üste ile ayrılmasıyla temsil edilir (örneğin 16:9) ve genişliğe bağlı olarak yüksekliğin orantılı olarak nasıl değiştiğini gösterir.',
15
+ },
16
+ {
17
+ question: 'Doğru oranları korumak neden önemlidir?',
18
+ answer:
19
+ 'En Boy Oranı\'nın göz ardı edilmesi, basık veya gerilmiş görüntülere, videolarda beklenmedik siyah bantlara (letterboxing) ve farklı ekran boyutlarında düzeni bozulan web bileşenlerine neden olur. Doğru oranları korumak, profesyonel bir görünüm için anahtardır.',
20
+ },
21
+ {
22
+ question: 'Belirli bir oranla genişlikten yükseklik nasıl hesaplanır?',
23
+ answer:
24
+ 'Formül şöyledir: Yükseklik = Genişlik × (Oran Yüksekliği / Oran Genişliği). Örneğin, 16:9 oranına sahip 1280 piksel genişlik için yükseklik şöyle olacaktır: 1280 × (9/16) = 720 piksel.',
25
+ },
26
+ {
27
+ question: 'YouTube videoları için standart En Boy Oranı nedir?',
28
+ answer:
29
+ '16:9, YouTube ve çoğu modern video platformu için standart orandır. 1280×720 (HD), 1920×1080 (Full HD) veya 3840×2160 (4K UHD) gibi çözünürlüklere karşılık gelir.',
30
+ },
31
+ {
32
+ question: 'Dikey sosyal medya videoları hangi En Boy Oranını kullanır?',
33
+ answer:
34
+ '9:16, geniş ekran formatının tam tersidir. TikTok, Instagram Reels ve YouTube Shorts\'un yerel oranıdır ve içeriğin dikey tutulan bir cep telefonunda tüketilmesinden kaynaklanır.',
35
+ },
36
+ ];
37
+
38
+ const howToData = [
39
+ {
40
+ name: 'Orijinal oranı girin',
41
+ text: 'Korumak istediğiniz oranın genişlik ve yükseklik değerlerini girin (örneğin geniş ekran için 16 ve 9) veya hazır ayarlardan birini seçin.',
42
+ },
43
+ {
44
+ name: 'Ölçeği ayarlayın',
45
+ text: '"Gerçek Ölçek" bölümünde genişlik veya yükseklik değerini değiştirin. Araç, oranı korumak için karşı değeri otomatik olarak hesaplayacaktır.',
46
+ },
47
+ {
48
+ name: 'Önizlemeyi kontrol edin',
49
+ text: 'Önizleme paneli, basitleştirilmiş oran ve hesaplanan çözünürlükle birlikte ortaya çıkan şekli orantılı ölçekte gösterir.',
50
+ },
51
+ {
52
+ name: 'Projenizde uygulayın',
53
+ text: 'CSS\'inizde (aspect-ratio: 16 / 9), video dışa aktarımında veya tasarım aracınızın ayarlarında kullanmak üzere hesaplanan değerleri kopyalayın.',
54
+ },
55
+ ];
56
+
57
+ const faqSchema: WithContext<FAQPage> = {
58
+ '@context': 'https://schema.org',
59
+ '@type': 'FAQPage',
60
+ mainEntity: faqData.map((item) => ({
61
+ '@type': 'Question',
62
+ name: item.question,
63
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
64
+ })),
65
+ };
66
+
67
+ const howToSchema: WithContext<HowToThing> = {
68
+ '@context': 'https://schema.org',
69
+ '@type': 'HowTo',
70
+ name: title,
71
+ description,
72
+ step: howToData.map((step, i) => ({
73
+ '@type': 'HowToStep',
74
+ position: i + 1,
75
+ name: step.name,
76
+ text: step.text,
77
+ })),
78
+ };
79
+
80
+ const appSchema: WithContext<SoftwareApplication> = {
81
+ '@context': 'https://schema.org',
82
+ '@type': 'SoftwareApplication',
83
+ name: title,
84
+ description,
85
+ applicationCategory: 'UtilityApplication',
86
+ operatingSystem: 'All',
87
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
88
+ inLanguage: 'tr',
89
+ };
90
+
91
+ const ui: AspectRatioUI = {
92
+ labelConfig: 'Yapılandırma',
93
+ labelRatio: 'Orijinal Oran',
94
+ labelWidth: 'Genişlik',
95
+ labelHeight: 'Yükseklik',
96
+ labelScale: 'Gerçek Ölçek',
97
+ labelPixelWidth: 'Piksel (Genişlik)',
98
+ labelPixelHeight: 'Piksel (Yükseklik)',
99
+ labelPreview: 'Orantılı Önizleme',
100
+ labelStatus: 'Mükemmel Oran',
101
+ labelOffline: '%100 Çevrimdışı Araç',
102
+ };
103
+
104
+ export const content: ToolLocaleContent<AspectRatioUI> = {
105
+ slug,
106
+ title,
107
+ description,
108
+ ui,
109
+ faqTitle: 'Sıkça Sorulan Sorular',
110
+ faq: faqData,
111
+ bibliographyTitle: 'Referanslar ve Belgeler',
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://tr.wikipedia.org/wiki/Görüntü_oranı',
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: 'En Boy Oranı Nedir?',
132
+ level: 2,
133
+ },
134
+ {
135
+ type: 'paragraph',
136
+ html: 'Grafik tasarım, fotoğrafçılık ve frontend geliştirmede <strong>En Boy Oranı</strong> (Aspect Ratio), bir görüntünün, ekranın veya kapsayıcının genişliği ile yüksekliği arasındaki geometrik ilişkiyi tanımlar. Tipik olarak iki noktalı bir sayı dizisiyle temsil edilir (örneğin <code>16:9</code>) ve genişliğe yanıt olarak yüksekliğin orantılı olarak nasıl arttığını gösterir.',
137
+ },
138
+ {
139
+ type: 'paragraph',
140
+ html: 'En boy oranlarının yanlış yönetilmesi; basık fotoğrafların, beklenmedik kırpılmalı videoların (letterboxing) veya mobilden ultra geniş monitörlere kadar farklı cihazlarda düzeni bozulan web bileşenlerinin yaygın bir nedenidir.',
141
+ },
142
+ {
143
+ type: 'title',
144
+ text: 'Sektördeki Yaygın Oranlar',
145
+ level: 3,
146
+ },
147
+ {
148
+ type: 'paragraph',
149
+ html: 'Disiplininize bağlı olarak, sınırlı sayıda küresel standart oranla sürekli olarak karşılaşacaksınız:',
150
+ },
151
+ {
152
+ type: 'list',
153
+ items: [
154
+ '<strong>16:9 (Geniş Ekran):</strong> Modern monitörler, TV\'ler, YouTube kayıtları veya standart yüksek çözünürlüklü (1920×1080 veya 4K gibi) çözünürlükler için mutlak hakim formattır.',
155
+ '<strong>9:16 (Dikey):</strong> Yerel mobil içerik tüketiminden (TikTok, Instagram Reels, YouTube Shorts) kaynaklanmıştır. Geniş ekran videolarla tam olarak aynı orandır, ancak cihazın fiziksel olarak döndürülmesiyle oluşur.',
156
+ '<strong>4:3 (Klasik / Nostaljik):</strong> Eski televizyonlarda ve monitörlerde veya analog ve özel dijital kamera modellerinde bulunur. Hafif kare görünümü dikkati doğrudan merkezi kompozisyon eksenine çeker.',
157
+ ],
158
+ },
159
+ {
160
+ type: 'title',
161
+ text: 'Web Geliştirme ve CSS aspect-ratio Özelliği',
162
+ level: 3,
163
+ },
164
+ {
165
+ type: 'paragraph',
166
+ html: 'Eskiden CSS\'de, sayfa yüklenirken korkunç Kümülatif Düzen Kaymasını (CLS) önlemek amacıyla YouTube iframe\'leri veya kapak görselleri için dinamik alanlar ayırmak için <strong>Padding Hack</strong> (örneğin <code>padding-top: %56,25</code> eklemek gibi) kullanan karmaşık matematiksel sistemler kullanılıyordu.',
167
+ },
168
+ {
169
+ type: 'paragraph',
170
+ html: 'Günümüzde tüm modern düzenler <code>aspect-ratio: 16 / 9;</code> gibi özellikleri doğrudan uygulayarak semantik kod sağlar ve tarayıcının Grid veya Flexbox aracılığıyla tanımlanan orijinal genişlikten eksik boyutu otomatik olarak türetmesine olanak tanır.',
171
+ },
172
+ {
173
+ type: 'paragraph',
174
+ html: 'Bu yerel piksel hesaplayıcı, tasarım gücünü anında ölçeklendirme hesaplamasına aktararak çıktılarınızı feci yanlış yapılandırmalardan koruyacaktır.',
175
+ },
176
+ ],
177
+ };
@@ -0,0 +1,178 @@
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 = 'aspect-ratio-calculator';
6
+ const title = '像素宽高比计算器。在线比例换算';
7
+ const description =
8
+ '计算新的图像、视频和网页设计分辨率,同时保持精确的比例,避免图形失真。支持 16:9、4:3、21:9 和自定义格式。';
9
+
10
+ const faqData = [
11
+ {
12
+ question: '什么是宽高比(Aspect Ratio)?',
13
+ answer:
14
+ '宽高比描述了图像或屏幕宽度与高度之间的几何关系。它通常用冒号分隔的两个数字表示(如 16:9),显示高度随宽度按比例变化的方式。',
15
+ },
16
+ {
17
+ question: '为什么保持正确比例很重要?',
18
+ answer:
19
+ '忽视宽高比会导致图像被压缩或拉伸、视频中出现意外的黑边(letterboxing),以及网页组件在不同屏幕尺寸下布局错乱。保持正确的比例是专业展示的关键。',
20
+ },
21
+ {
22
+ question: '如何根据给定比例通过宽度计算高度?',
23
+ answer:
24
+ '计算公式为:高度 = 宽度 × (比例高度 / 比例宽度)。例如,宽度为 1280px 且比例为 16:9 时,高度为:1280 × (9/16) = 720px。',
25
+ },
26
+ {
27
+ question: 'YouTube 视频的标准宽高比是多少?',
28
+ answer:
29
+ '16:9 是 YouTube 和大多数现代视频平台的标准比例。它对应于 1280×720 (HD)、1920×1080 (Full HD) 或 3840×2160 (4K UHD) 等分辨率。',
30
+ },
31
+ {
32
+ question: '垂直社交媒体视频使用什么宽高比?',
33
+ answer:
34
+ '9:16,这恰好是宽屏格式的反转。它是 TikTok、Instagram Reels 和 YouTube Shorts 的原生比例,源于用户垂直握持手机观看内容。',
35
+ },
36
+ ];
37
+
38
+ const howToData = [
39
+ {
40
+ name: '输入原始比例',
41
+ text: '输入您想要保持的比例的宽度和高度值(例如宽屏输入 16 和 9),或者选择一个预设。',
42
+ },
43
+ {
44
+ name: '调整缩放',
45
+ text: '在“实际缩放”部分更改宽度或高度值。工具将自动计算对应的数值以保持比例。',
46
+ },
47
+ {
48
+ name: '查看预览',
49
+ text: '预览面板以等比例展示结果形状,并附带简化的比例和计算出的分辨率。',
50
+ },
51
+ {
52
+ name: '应用到项目中',
53
+ text: '复制计算出的数值,用于您的 CSS (aspect-ratio: 16 / 9)、视频导出或设计工具的设置中。',
54
+ },
55
+ ];
56
+
57
+ const faqSchema: WithContext<FAQPage> = {
58
+ '@context': 'https://schema.org',
59
+ '@type': 'FAQPage',
60
+ mainEntity: faqData.map((item) => ({
61
+ '@type': 'Question',
62
+ name: item.question,
63
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
64
+ })),
65
+ };
66
+
67
+ const howToSchema: WithContext<HowToThing> = {
68
+ '@context': 'https://schema.org',
69
+ '@type': 'HowTo',
70
+ name: title,
71
+ description,
72
+ step: howToData.map((step, i) => ({
73
+ '@type': 'HowToStep',
74
+ position: i + 1,
75
+ name: step.name,
76
+ text: step.text,
77
+ })),
78
+ };
79
+
80
+ const appSchema: WithContext<SoftwareApplication> = {
81
+ '@context': 'https://schema.org',
82
+ '@type': 'SoftwareApplication',
83
+ name: title,
84
+ description,
85
+ applicationCategory: 'UtilityApplication',
86
+ operatingSystem: 'All',
87
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
88
+ inLanguage: 'zh',
89
+ };
90
+
91
+ const ui: AspectRatioUI = {
92
+ labelConfig: '配置',
93
+ labelRatio: '原始比例',
94
+ labelWidth: '宽度',
95
+ labelHeight: '高度',
96
+ labelScale: '实际缩放',
97
+ labelPixelWidth: '像素(宽)',
98
+ labelPixelHeight: '像素(高)',
99
+ labelPreview: '等比预览',
100
+ labelStatus: '完美比例',
101
+ labelOffline: '100% 离线工具',
102
+ };
103
+
104
+ export const content: ToolLocaleContent<AspectRatioUI> = {
105
+ slug,
106
+ title,
107
+ description,
108
+ ui,
109
+ faqTitle: '常见问题',
110
+ faq: faqData,
111
+ bibliographyTitle: '参考资料与文档',
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://zh.wikipedia.org/wiki/宽高比',
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: '什么是宽高比?',
132
+ level: 2,
133
+ },
134
+ {
135
+ type: 'paragraph',
136
+ html: '在图形设计、摄影和前端开发中,<strong>宽高比</strong>(Aspect Ratio)描述了图像、屏幕或容器宽度与高度之间的几何关系。它通常用冒号分隔的两个数字表示(如 <code>16:9</code>),显示高度如何随宽度成比例增加。',
137
+ },
138
+ {
139
+ type: 'paragraph',
140
+ html: '宽高比处理不当是导致照片被压缩、视频出现意外裁剪(黑边)或网页组件在从手机到超宽显示器等不同设备上显示错乱的常见原因。',
141
+ },
142
+ {
143
+ type: 'title',
144
+ text: '行业常用比例',
145
+ level: 3,
146
+ },
147
+ {
148
+ type: 'paragraph',
149
+ html: '根据您的专业领域,您会经常接触到一些全球标准比例:',
150
+ },
151
+ {
152
+ type: 'list',
153
+ items: [
154
+ '<strong>16:9(宽屏):</strong> 现代显示器、电视、YouTube 录制或标准高清分辨率(如 1920×1080 或 4K)的绝对主流格式。',
155
+ '<strong>9:16(垂直):</strong> 源自移动端的原生内容消费(TikTok、Instagram Reels、YouTube Shorts)。与宽屏视频比例完全相同,但设备处于物理旋转状态。',
156
+ '<strong>4:3(经典 / 复古):</strong> 见于旧电视和显示器,或者某些模拟及专用数字相机。其接近正方形的外观将注意力直接吸引到构图的中心轴上。',
157
+ ],
158
+ },
159
+ {
160
+ type: 'title',
161
+ text: '网页开发与 CSS aspect-ratio 属性',
162
+ level: 3,
163
+ },
164
+ {
165
+ type: 'paragraph',
166
+ html: '以前在 CSS 中,为了避免页面加载时严重的内容偏移(CLS),开发者不得不使用 <strong>Padding Hack</strong>(例如设置 <code>padding-top: 56.25%</code>)等复杂的数学方法来为 YouTube iframe 或封面图预留动态空间。',
167
+ },
168
+ {
169
+ type: 'paragraph',
170
+ html: '如今,所有现代布局都直接应用 <code>aspect-ratio: 16 / 9;</code> 等属性,从而实现语义化代码,并允许浏览器根据 Grid 或 Flexbox 定义的原始宽度自动推导出缺失的维度。',
171
+ },
172
+ {
173
+ type: 'paragraph',
174
+ html: '此本地像素计算器将设计决策权交给即时缩放计算,从而保护您的渲染效果免受灾难性配置错误的影响。',
175
+ },
176
+ ],
177
+ };
178
+
@@ -7,10 +7,6 @@ import type { AspectRatioUI } from './ui';
7
7
 
8
8
  export type AspectRatioLocaleContent = ToolLocaleContent<AspectRatioUI>;
9
9
 
10
- import { content as es } from './i18n/es';
11
- import { content as en } from './i18n/en';
12
- import { content as fr } from './i18n/fr';
13
-
14
10
  export const aspectRatio: DeveloperToolEntry<AspectRatioUI> = {
15
11
  id: 'aspect-ratio',
16
12
  icons: {
@@ -18,9 +14,21 @@ export const aspectRatio: DeveloperToolEntry<AspectRatioUI> = {
18
14
  fg: 'mdi:resize',
19
15
  },
20
16
  i18n: {
21
- es: async () => es,
22
- en: async () => en,
23
- fr: async () => fr,
17
+ de: async () => (await import('./i18n/de')).content,
18
+ en: async () => (await import('./i18n/en')).content,
19
+ es: async () => (await import('./i18n/es')).content,
20
+ fr: async () => (await import('./i18n/fr')).content,
21
+ id: async () => (await import('./i18n/id')).content,
22
+ it: async () => (await import('./i18n/it')).content,
23
+ ja: async () => (await import('./i18n/ja')).content,
24
+ ko: async () => (await import('./i18n/ko')).content,
25
+ nl: async () => (await import('./i18n/nl')).content,
26
+ pl: async () => (await import('./i18n/pl')).content,
27
+ pt: async () => (await import('./i18n/pt')).content,
28
+ ru: async () => (await import('./i18n/ru')).content,
29
+ sv: async () => (await import('./i18n/sv')).content,
30
+ tr: async () => (await import('./i18n/tr')).content,
31
+ zh: async () => (await import('./i18n/zh')).content,
24
32
  },
25
33
  };
26
34