@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,179 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { MusicalTypographyUI } from '../ui';
4
+
5
+ const slug = 'muzikale-typografische-schaal';
6
+ const title = 'Muzikale Typografische Schaal. Modulaire Schaalcalculator';
7
+ const description =
8
+ 'Gratis onlinetool om harmonieuze visuele hiërarchiën te maken met modulaire schalen op basis van muzikale verhoudingen. Genereert kant-en-klare CSS-variabelen voor uw webdesign.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Wat is een typografische modulaire schaal?',
13
+ answer:
14
+ 'Dit is een methode om lettergroottes te bepalen op basis van een constante wiskundige verhouding. Net als in muziek, waar noten harmonische relaties hebben, creëert de modulaire schaal een evenwichtige en voorspelbare visuele hiërarchi.',
15
+ },
16
+ {
17
+ question: 'Waarom muzikale intervallen voor design gebruiken?',
18
+ answer:
19
+ 'Muzikale intervallen zijn verhoudingen die het menselijk brein als harmonieus waarneemt. Ze toepassen op tekstgroottes creëert een visuele structuur die juist en professioneel aanvoelt, in plaats van willekeurig gekozen maten.',
20
+ },
21
+ {
22
+ question: 'Wat is de Gulden Snede in typografie?',
23
+ answer:
24
+ 'Dit is de verhouding 1.618, ook wel de Gulden Sectie genoemd. Het creëert zeer dramatische en elegante schalen waar elke stap in de hiërarchi exponentieel groeit. Perfect voor portfolio- of kunstgerichte websites.',
25
+ },
26
+ {
27
+ question: 'Hoe implementeer ik de schaal in mijn CSS-bestand?',
28
+ answer:
29
+ 'De tool genereert CSS-variabelen (tokens) in het formaat :root { --step-N: Xrem; }. Kopieer ze naar uw hoofd CSS-bestand en gebruik ze met var(--step-N) om typografische consistentie over uw site te handhaven.',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Stel basisgrootte in',
36
+ text: 'Voer de lettergrootte voor uw lichaamstekst in (meestal 16px), die de fundamentele noot van uw schaal vormt.',
37
+ },
38
+ {
39
+ name: 'Kies het interval',
40
+ text: 'Selecteer een muzikale verhouding om te bepalen hoeveel ruimte er is tussen verschillende kopniveaus.',
41
+ },
42
+ {
43
+ name: 'Preview de hiërarchi',
44
+ text: 'Zie in real-time hoe de typografische niveaus zich gedragen om te verifiëren dat de visuele harmonie bij uw project past.',
45
+ },
46
+ {
47
+ name: 'Exporteer de code',
48
+ text: 'Klik Kopieer CSS-variabelen om het blok gereed voor rechtstreekse invoer in uw workflow te krijgen.',
49
+ },
50
+ ];
51
+
52
+ const faqSchema: WithContext<FAQPage> = {
53
+ '@context': 'https://schema.org',
54
+ '@type': 'FAQPage',
55
+ mainEntity: faqData.map((item) => ({
56
+ '@type': 'Question',
57
+ name: item.question,
58
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
59
+ })),
60
+ };
61
+
62
+ const howToSchema: WithContext<HowToThing> = {
63
+ '@context': 'https://schema.org',
64
+ '@type': 'HowTo',
65
+ name: title,
66
+ description,
67
+ step: howToData.map((step, i) => ({
68
+ '@type': 'HowToStep',
69
+ position: i + 1,
70
+ name: step.name,
71
+ text: step.text,
72
+ })),
73
+ };
74
+
75
+ const appSchema: WithContext<SoftwareApplication> = {
76
+ '@context': 'https://schema.org',
77
+ '@type': 'SoftwareApplication',
78
+ name: title,
79
+ description,
80
+ applicationCategory: 'DesignApplication',
81
+ operatingSystem: 'All',
82
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
83
+ inLanguage: 'nl',
84
+ };
85
+
86
+ const ui: MusicalTypographyUI = {
87
+ labelConfig: 'Configuratie',
88
+ labelBaseSize: 'Basisgrootte (px)',
89
+ hintBaseSize: 'Uw paragraaftekstgrootte (meestal 16px).',
90
+ labelRatio: 'Muzikale Schaal (Verhouding)',
91
+ hintRatio: 'Bepaalt hoeveel de grootte bij elke stap toeneemt.',
92
+ labelCalculated: 'Berekende Waarden',
93
+ labelPreview: 'Preview',
94
+ btnCopyCss: 'Kopieer CSS-variabelen',
95
+ feedbackCopied: 'Variabelen naar klembord gekopieerd!',
96
+ previewText: 'Muzikale Typografie',
97
+ previewSubtext: 'Een perfecte harmonische schaal voor uw design.',
98
+ ratioSecundaMenor: 'Kleine Secunde',
99
+ ratioSegundaMayor: 'Grote Secunde',
100
+ ratioTerceraMenor: 'Kleine Terts',
101
+ ratioTerceraMayor: 'Grote Terts',
102
+ ratioCuartaPerfecta: 'Perfect Kwartal',
103
+ ratioCuartaAumentada: 'Verhoogd Kwartal',
104
+ ratioQuintaPerfecta: 'Perfect Kwintal',
105
+ ratioProporcionAurea: 'Gulden Snede',
106
+ ratioSextaMayor: 'Grote Sext',
107
+ ratioSeptimaMenor: 'Kleine Septiem',
108
+ ratioSeptimaMayor: 'Grote Septiem',
109
+ ratioOctava: 'Octaaf',
110
+ };
111
+
112
+ export const content: ToolLocaleContent<MusicalTypographyUI> = {
113
+ slug,
114
+ title,
115
+ description,
116
+ ui,
117
+ faqTitle: 'Veelgestelde Vragen',
118
+ faq: faqData,
119
+ bibliographyTitle: 'Referenties',
120
+ bibliography: [
121
+ {
122
+ name: 'Bringhurst, R. The Elements of Typographic Style',
123
+ url: 'https://en.wikipedia.org/wiki/The_Elements_of_Typographic_Style',
124
+ },
125
+ {
126
+ name: 'Brown, T. More Meaningful Typography. A List Apart',
127
+ url: 'https://alistapart.com/article/more-meaningful-typography/',
128
+ },
129
+ {
130
+ name: 'Physics of Music. Musical Intervals and Scales',
131
+ url: 'https://es.scribd.com/document/199729396/Physics-of-Music-Notes',
132
+ },
133
+ ],
134
+ howTo: howToData,
135
+ schemas: [faqSchema, howToSchema, appSchema],
136
+ seo: [
137
+ {
138
+ type: 'title',
139
+ text: 'De onzichtbare harmonie van webdesign',
140
+ level: 2,
141
+ },
142
+ {
143
+ type: 'paragraph',
144
+ html: 'De <strong>Muzikale Typografische Schaal</strong> past de wiskunde van muzikale intervallen toe op typografisch design. Net als dat een muziekcompositie wordt beheerst door precieze verhoudingen, profiteert een stevig design van een wiskundige structuur die alle maten met elkaar in verband stelt.',
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: 'Hoe de modulaire schaal werkt',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'grid',
153
+ columns: 2,
154
+ },
155
+ {
156
+ type: 'card',
157
+ title: 'De formule',
158
+ html: '<p>De progressie is eenvoudig: <code>Size = Base × Ratio<sup>n</sup></code>. Stap 0 is uw basistekst. Stap 1 is een klein bijschrift. Stap 4 of 5 kan uw hoofd H1 zijn. Dezelfde vermenigvuldigingsconstante (de verhouding) garandeert dat alle relaties consistent zijn.</p>',
159
+ },
160
+ {
161
+ type: 'card',
162
+ title: 'Waarom "Muzikaal"',
163
+ html: '<p>De Pythagoreeërs ontdekten dat het delen van een snaar in eenvoudige verhoudingen (1:2, 2:3, 3:4) medeklinker klanken voortbrengen. Deze intervallen, octaaf, perfect kwintal en perfect kwartal, zijn precies de typografische verhoudingen. U stelt visuele muziek samen.</p>',
164
+ },
165
+ {
166
+ type: 'title',
167
+ text: 'De juiste verhouding kiezen',
168
+ level: 3,
169
+ },
170
+ {
171
+ type: 'tip',
172
+ html: 'Voor dichte interfaces (dashboards, tabellen) gebruik kleine verhoudingen zoals <code>1.125</code> of <code>1.2</code>. Voor redactionele of portfoliowers, gebruik meer expressieve verhoudingen zoals <code>1.5</code> of <code>1.618</code>.',
173
+ },
174
+ {
175
+ type: 'paragraph',
176
+ html: 'Beperk de schaal niet alleen tot <code>font-size</code>. Dezelfde CSS-variabelen werken voor <code>margin</code>, <code>padding</code> en <code>gap</code>. Wanneer witruimte dezelfde wiskundige progressie volgt als de tekst, bereikt het ontwerp een coheesieniveau dat iedereen voelt maar weinigen kunnen uitleggen.',
177
+ },
178
+ ],
179
+ };
@@ -0,0 +1,179 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { MusicalTypographyUI } from '../ui';
4
+
5
+ const slug = 'muzyczna-skala-typograficzna';
6
+ const title = 'Muzyczna Skala Typograficzna. Kalkulator Skali Modularnej';
7
+ const description =
8
+ 'Darmowe narzędzie online do tworzenia harmonijnych hierarchii wizualnych przy użyciu skal modularnych opartych na proporcjach muzycznych. Generuje gotowe zmienne CSS do Twojego projektu webowego.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Co to jest typograficzna skala modularna?',
13
+ answer:
14
+ 'To metoda określania rozmiarów czcionek na podstawie stałego stosunku matematycznego. Podobnie jak w muzyce, gdzie nuty mają relacje harmoniczne, skala modularna tworzy zbalansowaną i przewidywalną hierarchię wizualną.',
15
+ },
16
+ {
17
+ question: 'Dlaczego używać interwałów muzycznych do projektowania?',
18
+ answer:
19
+ 'Interwały muzyczne to proporcje, które ludzki mózg postrzega jako harmonijne. Zastosowanie ich do rozmiarów tekstu tworzy strukturę wizualną, która wydaje się poprawna i profesjonalna, zamiast przypadkowych rozmiarów.',
20
+ },
21
+ {
22
+ question: 'Co to jest Złota Proporcja w typografii?',
23
+ answer:
24
+ 'To proporcja 1.618, znana jako Złota Sekcja. Tworzy bardzo dramatyczne i eleganckie skale, w których każdy krok hierarchii rośnie wykładniczo. Idealny dla portfela lub stron nastawionych na sztukę.',
25
+ },
26
+ {
27
+ question: 'Jak wdrożyć skalę w moim pliku CSS?',
28
+ answer:
29
+ 'Narzędzie generuje zmienne CSS (tokeny) w formacie :root { --step-N: Xrem; }. Skopiuj je do głównego pliku CSS i używaj ich z var(--step-N), aby zachować konsystencję typograficzną na całej stronie.',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Ustaw rozmiar bazowy',
36
+ text: 'Wprowadź rozmiar czcionki dla tekstu w treści (zwykle 16px), który będzie służyć jako fundamentalna nuta Twojej skali.',
37
+ },
38
+ {
39
+ name: 'Wybierz interwał',
40
+ text: 'Wybierz proporcję muzyczną, aby określić, ile miejsca jest między różnymi poziomami nagłówków.',
41
+ },
42
+ {
43
+ name: 'Podgląd hierarchii',
44
+ text: 'Obserwuj, jak zachowują się poziomy typograficzne w czasie rzeczywistym, aby zweryfikować, że wizualna harmonia pasuje do Twojego projektu.',
45
+ },
46
+ {
47
+ name: 'Eksportuj kod',
48
+ text: 'Kliknij Skopiuj zmienne CSS, aby uzyskać blok gotowy do wklejenia bezpośrednio do Twojego przepływu pracy.',
49
+ },
50
+ ];
51
+
52
+ const faqSchema: WithContext<FAQPage> = {
53
+ '@context': 'https://schema.org',
54
+ '@type': 'FAQPage',
55
+ mainEntity: faqData.map((item) => ({
56
+ '@type': 'Question',
57
+ name: item.question,
58
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
59
+ })),
60
+ };
61
+
62
+ const howToSchema: WithContext<HowToThing> = {
63
+ '@context': 'https://schema.org',
64
+ '@type': 'HowTo',
65
+ name: title,
66
+ description,
67
+ step: howToData.map((step, i) => ({
68
+ '@type': 'HowToStep',
69
+ position: i + 1,
70
+ name: step.name,
71
+ text: step.text,
72
+ })),
73
+ };
74
+
75
+ const appSchema: WithContext<SoftwareApplication> = {
76
+ '@context': 'https://schema.org',
77
+ '@type': 'SoftwareApplication',
78
+ name: title,
79
+ description,
80
+ applicationCategory: 'DesignApplication',
81
+ operatingSystem: 'All',
82
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
83
+ inLanguage: 'pl',
84
+ };
85
+
86
+ const ui: MusicalTypographyUI = {
87
+ labelConfig: 'Konfiguracja',
88
+ labelBaseSize: 'Rozmiar Bazowy (px)',
89
+ hintBaseSize: 'Rozmiar tekstu w akapicie (zwykle 16px).',
90
+ labelRatio: 'Skala Muzyczna (Stosunek)',
91
+ hintRatio: 'Określa, jak bardzo rozmiar rośnie na każdym etapie.',
92
+ labelCalculated: 'Wartości Obliczone',
93
+ labelPreview: 'Podgląd',
94
+ btnCopyCss: 'Skopiuj Zmienne CSS',
95
+ feedbackCopied: 'Zmienne skopiowane do schowka!',
96
+ previewText: 'Muzyczna Typografia',
97
+ previewSubtext: 'Idealna harmoniczna skala do Twojego projektowania.',
98
+ ratioSecundaMenor: 'Sekunda Mała',
99
+ ratioSegundaMayor: 'Sekunda Duża',
100
+ ratioTerceraMenor: 'Tercja Mała',
101
+ ratioTerceraMayor: 'Tercja Duża',
102
+ ratioCuartaPerfecta: 'Kwarta Czysta',
103
+ ratioCuartaAumentada: 'Kwarta Powiększona',
104
+ ratioQuintaPerfecta: 'Kwinta Czysta',
105
+ ratioProporcionAurea: 'Złota Proporcja',
106
+ ratioSextaMayor: 'Seksta Duża',
107
+ ratioSeptimaMenor: 'Septyma Mała',
108
+ ratioSeptimaMayor: 'Septyma Duża',
109
+ ratioOctava: 'Oktawa',
110
+ };
111
+
112
+ export const content: ToolLocaleContent<MusicalTypographyUI> = {
113
+ slug,
114
+ title,
115
+ description,
116
+ ui,
117
+ faqTitle: 'Często Zadawane Pytania',
118
+ faq: faqData,
119
+ bibliographyTitle: 'Referencje',
120
+ bibliography: [
121
+ {
122
+ name: 'Bringhurst, R. The Elements of Typographic Style',
123
+ url: 'https://en.wikipedia.org/wiki/The_Elements_of_Typographic_Style',
124
+ },
125
+ {
126
+ name: 'Brown, T. More Meaningful Typography. A List Apart',
127
+ url: 'https://alistapart.com/article/more-meaningful-typography/',
128
+ },
129
+ {
130
+ name: 'Physics of Music. Musical Intervals and Scales',
131
+ url: 'https://es.scribd.com/document/199729396/Physics-of-Music-Notes',
132
+ },
133
+ ],
134
+ howTo: howToData,
135
+ schemas: [faqSchema, howToSchema, appSchema],
136
+ seo: [
137
+ {
138
+ type: 'title',
139
+ text: 'Niewidzialna harmonia projektowania webowego',
140
+ level: 2,
141
+ },
142
+ {
143
+ type: 'paragraph',
144
+ html: '<strong>Muzyczna Skala Typograficzna</strong> stosuje matematykę interwałów muzycznych do projektowania typograficznego. Podobnie jak kompozycja muzyczna jest rządzona dokładnymi proporcjami, solidny design korzysta ze struktury matematycznej, która wiąże wszystkie rozmiary ze sobą.',
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: 'Jak działa skala modularna',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'grid',
153
+ columns: 2,
154
+ },
155
+ {
156
+ type: 'card',
157
+ title: 'Wzór',
158
+ html: '<p>Progresja jest prosta: <code>Size = Base × Ratio<sup>n</sup></code>. Krok 0 to Twój tekst bazowy. Krok 1 to mały podtytuł. Krok 4 lub 5 może być Twoim głównym H1. Ta sama stała mnożenia (stosunek) zapewnia, że wszystkie relacje są spójne.</p>',
159
+ },
160
+ {
161
+ type: 'card',
162
+ title: 'Dlaczego "Muzyczna"',
163
+ html: '<p>Pitagorejczycy odkryli, że podział struny na proste proporcje (1:2, 2:3, 3:4) wytwarzał spółgłoski. Te interwały, oktawa, kwinta czysta i kwarta czysta, to dokładnie typograficzne stosunki. Komponujesz wizualną muzykę.</p>',
164
+ },
165
+ {
166
+ type: 'title',
167
+ text: 'Wybór właściwego stosunku',
168
+ level: 3,
169
+ },
170
+ {
171
+ type: 'tip',
172
+ html: 'W gęstych interfejsach (pulpity nawigacyjne, tabele) używaj małych stosunków, takich jak <code>1.125</code> lub <code>1.2</code>. W przypadku redakcyjnych lub portfelowych stron internetowych używaj bardziej ekspresywnych stosunków, takich jak <code>1.5</code> lub <code>1.618</code>.',
173
+ },
174
+ {
175
+ type: 'paragraph',
176
+ html: 'Nie ograniczaj skali tylko do <code>font-size</code>. Te same zmienne CSS działają dla <code>margin</code>, <code>padding</code> i <code>gap</code>. Kiedy białe miejsce podąża za tą samą progresją matematyczną co tekst, design osiąga poziom koherencji, który wszyscy czują, ale niewielu potrafi wyjaśnić.',
177
+ },
178
+ ],
179
+ };
@@ -0,0 +1,101 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { MusicalTypographyUI } from '../ui';
4
+
5
+ const slug = 'escala-tipografica-musical';
6
+ const title = 'Escala Tipográfica Musical. Calculadora de Escala Modular';
7
+ const description =
8
+ 'Ferramenta online gratuita para criar hierarquias visuais harmoniosas usando escalas modulares baseadas em proporções musicais. Gera variáveis CSS prontas para usar no seu design web.';
9
+
10
+ const faqData = [
11
+ { question: 'O que é uma escala tipográfica modular?', answer: 'É um método para determinar tamanhos de fonte com base em uma proporção matemática constante. Assim como na música, onde as notas têm relações harmônicas, a escala modular cria uma hierarquia visual equilibrada e previsível.' },
12
+ { question: 'Por que usar intervalos musicais para design?', answer: 'Intervalos musicais são proporções que o cérebro humano percebe como harmoniosas. Aplicá-los a tamanhos de texto cria uma estrutura visual que parece correta e profissional, em vez de escolher tamanhos aleatoriamente.' },
13
+ { question: 'Qual é a Razão Dourada em tipografia?', answer: 'É a proporção 1.618, conhecida como a Seção Dourada. Ela cria escalas muito dramáticas e elegantes, onde cada passo da hierarquia cresce exponencialmente. Perfeita para portfólios ou sites focados em arte.' },
14
+ { question: 'Como implemento a escala no meu arquivo CSS?', answer: 'A ferramenta gera variáveis CSS (tokens) no formato :root { --step-N: Xrem; }. Copie-as para seu arquivo CSS principal e use-as com var(--step-N) para manter consistência tipográfica em seu site.' },
15
+ ];
16
+
17
+ const howToData = [
18
+ { name: 'Defina o tamanho base', text: 'Digite o tamanho da fonte para seu texto de corpo (geralmente 16px), que servirá como nota fundamental de sua escala.' },
19
+ { name: 'Escolha o intervalo', text: 'Selecione uma proporção musical para determinar quanto espaço existe entre diferentes níveis de título.' },
20
+ { name: 'Visualize a hierarquia', text: 'Veja em tempo real como os níveis tipográficos se comportam para verificar se a harmonia visual se ajusta ao seu projeto.' },
21
+ { name: 'Exporte o código', text: 'Clique em Copiar Variáveis CSS para obter o bloco pronto para colar diretamente em seu fluxo de trabalho.' },
22
+ ];
23
+
24
+ const faqSchema: WithContext<FAQPage> = {
25
+ '@context': 'https://schema.org',
26
+ '@type': 'FAQPage',
27
+ mainEntity: faqData.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })),
28
+ };
29
+
30
+ const howToSchema: WithContext<HowToThing> = {
31
+ '@context': 'https://schema.org',
32
+ '@type': 'HowTo',
33
+ name: title,
34
+ description,
35
+ step: howToData.map((step, i) => ({ '@type': 'HowToStep', position: i + 1, name: step.name, text: step.text })),
36
+ };
37
+
38
+ const appSchema: WithContext<SoftwareApplication> = {
39
+ '@context': 'https://schema.org',
40
+ '@type': 'SoftwareApplication',
41
+ name: title,
42
+ description,
43
+ applicationCategory: 'DesignApplication',
44
+ operatingSystem: 'All',
45
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
46
+ inLanguage: 'pt',
47
+ };
48
+
49
+ const ui: MusicalTypographyUI = {
50
+ labelConfig: 'Configuração',
51
+ labelBaseSize: 'Tamanho Base (px)',
52
+ hintBaseSize: 'Seu tamanho de texto de parágrafo (geralmente 16px).',
53
+ labelRatio: 'Escala Musical (Razão)',
54
+ hintRatio: 'Determina quanto o tamanho cresce em cada etapa.',
55
+ labelCalculated: 'Valores Calculados',
56
+ labelPreview: 'Visualizar',
57
+ btnCopyCss: 'Copiar Variáveis CSS',
58
+ feedbackCopied: 'Variáveis copiadas para a área de transferência!',
59
+ previewText: 'Tipografia Musical',
60
+ previewSubtext: 'Uma escala harmônica perfeita para seu design.',
61
+ ratioSecundaMenor: 'Segunda Menor',
62
+ ratioSegundaMayor: 'Segunda Maior',
63
+ ratioTerceraMenor: 'Terça Menor',
64
+ ratioTerceraMayor: 'Terça Maior',
65
+ ratioCuartaPerfecta: 'Quarta Perfeita',
66
+ ratioCuartaAumentada: 'Quarta Aumentada',
67
+ ratioQuintaPerfecta: 'Quinta Perfeita',
68
+ ratioProporcionAurea: 'Razão Dourada',
69
+ ratioSextaMayor: 'Sexta Maior',
70
+ ratioSeptimaMenor: 'Sétima Menor',
71
+ ratioSeptimaMayor: 'Sétima Maior',
72
+ ratioOctava: 'Oitava',
73
+ };
74
+
75
+ export const content: ToolLocaleContent<MusicalTypographyUI> = {
76
+ slug,
77
+ title,
78
+ description,
79
+ ui,
80
+ faqTitle: 'Perguntas Frequentes',
81
+ faq: faqData,
82
+ bibliographyTitle: 'Referências',
83
+ bibliography: [
84
+ { name: 'Bringhurst, R. The Elements of Typographic Style', url: 'https://en.wikipedia.org/wiki/The_Elements_of_Typographic_Style' },
85
+ { name: 'Brown, T. More Meaningful Typography. A List Apart', url: 'https://alistapart.com/article/more-meaningful-typography/' },
86
+ { name: 'Physics of Music. Musical Intervals and Scales', url: 'https://es.scribd.com/document/199729396/Physics-of-Music-Notes' },
87
+ ],
88
+ howTo: howToData,
89
+ schemas: [faqSchema, howToSchema, appSchema],
90
+ seo: [
91
+ { type: 'title', text: 'A Harmonia Invisível do Web Design', level: 2 },
92
+ { type: 'paragraph', html: 'A <strong>Escala Tipográfica Musical</strong> aplica a matemática de intervalos musicais ao design tipográfico. Assim como uma composição musical é regida por proporções precisas, um design sólido se beneficia de uma estrutura matemática que relaciona todos os tamanhos.' },
93
+ { type: 'title', text: 'Como a escala modular funciona', level: 3 },
94
+ { type: 'grid', columns: 2 },
95
+ { type: 'card', title: 'A fórmula', html: '<p>A progressão é simples: <code>Size = Base × Ratio<sup>n</sup></code>. Etapa 0 é seu texto base. Etapa 1 é um pequeno subtítulo. Etapa 4 ou 5 pode ser seu H1 principal. A mesma constante multiplicadora (a razão) garante que todas as relações sejam consistentes.</p>' },
96
+ { type: 'card', title: 'Por que "Musical"', html: '<p>Os pitagóricos descobriram que dividir uma corda em proporções simples (1:2, 2:3, 3:4) produz sons consonantes. Esses intervalos, oitava, quinta perfeita e quarta perfeita, são exatamente as razões tipográficas. Você está compondo música visual.</p>' },
97
+ { type: 'title', text: 'Escolhendo a razão certa', level: 3 },
98
+ { type: 'tip', html: 'Para interfaces densas (painéis, tabelas) use razões pequenas como <code>1.125</code> ou <code>1.2</code>. Para sites editoriais ou de portfólio, use razões mais expressivas como <code>1.5</code> ou <code>1.618</code>.' },
99
+ { type: 'paragraph', html: 'Não limite a escala apenas a <code>font-size</code>. As mesmas variáveis CSS funcionam para <code>margin</code>, <code>padding</code> e <code>gap</code>. Quando o espaço em branco segue a mesma progressão matemática que o texto, o design atinge um nível de coesão que todos sentem mas poucos conseguem explicar.' },
100
+ ],
101
+ };
@@ -0,0 +1,47 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { MusicalTypographyUI } from '../ui';
4
+
5
+ const slug = 'muzykalnaya-tipograficheskaya-shkala';
6
+ const title = 'Музыкальная Типографическая Шкала. Калькулятор Модульной Шкалы';
7
+ const description = 'Бесплатный онлайн-инструмент для создания гармоничных визуальных иерархий с использованием модульных шкал на основе музыкальных пропорций. Генерирует готовые CSS-переменные для вашего веб-дизайна.';
8
+
9
+ const faqData = [
10
+ { question: 'Что такое типографическая модульная шкала?', answer: 'Это метод определения размеров шрифтов на основе постоянного математического соотношения. Подобно музыке, где ноты имеют гармонические отношения, модульная шкала создаёт сбалансированную и предсказуемую визуальную иерархию.' },
11
+ { question: 'Почему использовать музыкальные интервалы для дизайна?', answer: 'Музыкальные интервалы — это пропорции, которые человеческий мозг воспринимает как гармоничные. Применение их к размерам текста создаёт визуальную структуру, которая ощущается правильной и профессиональной, а не случайно выбранной.' },
12
+ { question: 'Что такое Золотое Сечение в типографии?', answer: 'Это пропорция 1.618, известная как Золотое Сечение. Она создаёт очень драматичные и элегантные шкалы, где каждый шаг иерархии растёт экспоненциально. Идеально для портфолио или сайтов, ориентированных на искусство.' },
13
+ { question: 'Как я могу применить шкалу в своём файле CSS?', answer: 'Инструмент генерирует CSS-переменные (токены) в формате :root { --step-N: Xrem; }. Скопируйте их в свой основной CSS-файл и используйте с var(--step-N), чтобы сохранить типографическую согласованность на всём сайте.' },
14
+ ];
15
+
16
+ const howToData = [
17
+ { name: 'Установите базовый размер', text: 'Введите размер шрифта для текста вашего основного текста (обычно 16px), который будет служить основной нотой вашей шкалы.' },
18
+ { name: 'Выберите интервал', text: 'Выберите музыкальную пропорцию, чтобы определить, сколько пространства находится между разными уровнями заголовков.' },
19
+ { name: 'Предпросмотр иерархии', text: 'Смотрите в реальном времени, как ведут себя типографические уровни, чтобы проверить, соответствует ли визуальная гармония вашему проекту.' },
20
+ { name: 'Экспортируйте код', text: 'Нажмите Копировать CSS-переменные, чтобы получить блок, готовый для прямой вставки в ваш рабочий процесс.' },
21
+ ];
22
+
23
+ const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faqData.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
24
+ const howToSchema: WithContext<HowToThing> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howToData.map((step, i) => ({ '@type': 'HowToStep', position: i + 1, name: step.name, text: step.text })) };
25
+ const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'DesignApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' }, inLanguage: 'ru' };
26
+
27
+ const ui: MusicalTypographyUI = {
28
+ labelConfig: 'Конфигурация', labelBaseSize: 'Базовый Размер (px)', hintBaseSize: 'Размер вашего текста в параграфе (обычно 16px).', labelRatio: 'Музыкальная Шкала (Соотношение)', hintRatio: 'Определяет, насколько размер растёт на каждом шаге.', labelCalculated: 'Вычисленные Значения', labelPreview: 'Предпросмотр', btnCopyCss: 'Копировать CSS-Переменные', feedbackCopied: 'Переменные скопированы в буфер обмена!', previewText: 'Музыкальная Типография', previewSubtext: 'Идеальная гармоничная шкала для вашего дизайна.', ratioSecundaMenor: 'Малая Секунда', ratioSegundaMayor: 'Большая Секунда', ratioTerceraMenor: 'Малая Терция', ratioTerceraMayor: 'Большая Терция', ratioCuartaPerfecta: 'Чистая Кварта', ratioCuartaAumentada: 'Увеличенная Кварта', ratioQuintaPerfecta: 'Чистая Квинта', ratioProporcionAurea: 'Золотое Сечение', ratioSextaMayor: 'Большая Секста', ratioSeptimaMenor: 'Малая Септима', ratioSeptimaMayor: 'Большая Септима', ratioOctava: 'Октава',
29
+ };
30
+
31
+ export const content: ToolLocaleContent<MusicalTypographyUI> = {
32
+ slug, title, description, ui, faqTitle: 'Часто Задаваемые Вопросы', faq: faqData, bibliographyTitle: 'Ссылки', bibliography: [
33
+ { name: 'Bringhurst, R. The Elements of Typographic Style', url: 'https://en.wikipedia.org/wiki/The_Elements_of_Typographic_Style' },
34
+ { name: 'Brown, T. More Meaningful Typography. A List Apart', url: 'https://alistapart.com/article/more-meaningful-typography/' },
35
+ { name: 'Physics of Music. Musical Intervals and Scales', url: 'https://es.scribd.com/document/199729396/Physics-of-Music-Notes' },
36
+ ], howTo: howToData, schemas: [faqSchema, howToSchema, appSchema], seo: [
37
+ { type: 'title', text: 'Невидимая гармония веб-дизайна', level: 2 },
38
+ { type: 'paragraph', html: '<strong>Музыкальная Типографическая Шкала</strong> применяет математику музыкальных интервалов к типографическому дизайну. Подобно тому, как музыкальная композиция управляется точными пропорциями, хороший дизайн выигрывает от математической структуры, которая связывает все размеры вместе.' },
39
+ { type: 'title', text: 'Как работает модульная шкала', level: 3 },
40
+ { type: 'grid', columns: 2 },
41
+ { type: 'card', title: 'Формула', html: '<p>Прогрессия простая: <code>Size = Base × Ratio<sup>n</sup></code>. Шаг 0 — это ваш базовый текст. Шаг 1 — маленький подзаголовок. Шаг 4 или 5 может быть вашим главным H1. Одна и та же постоянная умножения (соотношение) гарантирует, что все отношения согласованы.</p>' },
42
+ { type: 'card', title: 'Почему "Музыкальная"', html: '<p>Пифагорейцы открыли, что деление струны на простые пропорции (1:2, 2:3, 3:4) производит созвучные звуки. Эти интервалы, октава, чистая квинта и чистая кварта, — это ровно типографические соотношения. Вы сочиняете визуальную музыку.</p>' },
43
+ { type: 'title', text: 'Выбор правильного соотношения', level: 3 },
44
+ { type: 'tip', html: 'Для плотных интерфейсов (приборные панели, таблицы) используйте малые соотношения, такие как <code>1.125</code> или <code>1.2</code>. Для редакционных или портфельных сайтов используйте более выразительные соотношения, такие как <code>1.5</code> или <code>1.618</code>.' },
45
+ { type: 'paragraph', html: 'Не ограничивайте шкалу только <code>font-size</code>. Те же CSS-переменные работают для <code>margin</code>, <code>padding</code> и <code>gap</code>. Когда белое пространство следует той же математической прогрессии, что и текст, дизайн достигает уровня связности, который все ощущают, но мало кто может объяснить.' },
46
+ ],
47
+ };
@@ -0,0 +1,29 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { MusicalTypographyUI } from '../ui';
4
+
5
+ const slug = 'musikal-typografi-skal';
6
+ const title = 'Musikal Typografisk Skala. Modulär Skalakalkylator';
7
+ const description = 'Gratis onlineverktyg för att skapa harmoniska visuella hierarkier med modulära skalor baserade på musikaliska proportioner. Genererar redo-att-använda CSS-variabler för din webdesign.';
8
+
9
+ const faqData = [
10
+ { question: 'Vad är en typografisk modulär skala?', answer: 'Det är en metod för att bestämma teckenstorlekar baserat på ett konstant matematiskt förhållande. Precis som i musik, där noter har harmoniska relationer, skapar den modulära skalan en balanserad och förutsebar visuell hierarki.' },
11
+ { question: 'Varför använda musikaliska intervaller för design?', answer: 'Musikaliska intervaller är proportioner som den mänskliga hjärnan uppfattar som harmoniska. Att tillämpa dem på textstorlekar skapar en visuell struktur som känns korrekt och professionell, snarare än godtyckligt valda storlekar.' },
12
+ { question: 'Vad är det gyllene snittet i typografi?', answer: 'Det är proportionen 1.618, känd som den gyllene sektionen. Det skapar mycket dramatiska och eleganta skalor där varje steg i hierarkin växer exponentiellt. Perfekt för portfölj- eller konstfokuserade webbplatser.' },
13
+ { question: 'Hur implementerar jag skalan i min CSS-fil?', answer: 'Verktyget genererar CSS-variabler (tokens) i formatet :root { --step-N: Xrem; }. Kopiera dem till din huvudsakliga CSS-fil och använd dem med var(--step-N) för att bibehålla typografisk konsistens på din webbplats.' },
14
+ ];
15
+
16
+ const howToData = [
17
+ { name: 'Ställ in basstorlek', text: 'Ange teckenstorleken för din brödtext (vanligtvis 16px) som kommer att fungera som grundnoten i din skala.' },
18
+ { name: 'Välj intervall', text: 'Välj en musikalisk proportion för att bestämma hur mycket utrymme det finns mellan olika rubriknivåer.' },
19
+ { name: 'Förhandsgranska hierarkin', text: 'Titta i realtid på hur de typografiska nivåerna beter sig för att verifiera att den visuella harmonin passar ditt projekt.' },
20
+ { name: 'Exportera koden', text: 'Klicka Kopiera CSS-variabler för att få blocket klart att klistra in direkt i ditt arbetsflöde.' },
21
+ ];
22
+
23
+ const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faqData.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
24
+ const howToSchema: WithContext<HowToThing> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howToData.map((step, i) => ({ '@type': 'HowToStep', position: i + 1, name: step.name, text: step.text })) };
25
+ const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'DesignApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' }, inLanguage: 'sv' };
26
+
27
+ const ui: MusicalTypographyUI = { labelConfig: 'Konfiguration', labelBaseSize: 'Basstorlek (px)', hintBaseSize: 'Din styckestextstorlek (vanligtvis 16px).', labelRatio: 'Musikal Skala (Förhållande)', hintRatio: 'Bestämmer hur mycket storleken växer vid varje steg.', labelCalculated: 'Beräknade Värden', labelPreview: 'Förhandsvisning', btnCopyCss: 'Kopiera CSS-Variabler', feedbackCopied: 'Variabler kopierade till urklipp!', previewText: 'Musikal Typografi', previewSubtext: 'En perfekt harmonisk skala för din design.', ratioSecundaMenor: 'Liten Sekund', ratioSegundaMayor: 'Stor Sekund', ratioTerceraMenor: 'Liten Ters', ratioTerceraMayor: 'Stor Ters', ratioCuartaPerfecta: 'Perfekt Fjärdedel', ratioCuartaAumentada: 'Utökad Fjärdedel', ratioQuintaPerfecta: 'Perfekt Kvint', ratioProporcionAurea: 'Gyllene Snitt', ratioSextaMayor: 'Stor Sext', ratioSeptimaMenor: 'Liten Septim', ratioSeptimaMayor: 'Stor Septim', ratioOctava: 'Oktav' };
28
+
29
+ export const content: ToolLocaleContent<MusicalTypographyUI> = { slug, title, description, ui, faqTitle: 'Vanliga Frågor', faq: faqData, bibliographyTitle: 'Referenser', bibliography: [{ name: 'Bringhurst, R. The Elements of Typographic Style', url: 'https://en.wikipedia.org/wiki/The_Elements_of_Typographic_Style' }, { name: 'Brown, T. More Meaningful Typography. A List Apart', url: 'https://alistapart.com/article/more-meaningful-typography/' }, { name: 'Physics of Music. Musical Intervals and Scales', url: 'https://es.scribd.com/document/199729396/Physics-of-Music-Notes' }], howTo: howToData, schemas: [faqSchema, howToSchema, appSchema], seo: [{ type: 'title', text: 'Den osynliga harmonin inom webdesign', level: 2 }, { type: 'paragraph', html: 'Den <strong>Musikala Typografiska Skalan</strong> tillämpar matematiken för musikaliska intervaller på typografisk design. Precis som en musikkomposition styrs av exakta proportioner, gynnas en solid design av en matematisk struktur som relaterar alla storlekar till varandra.' }, { type: 'title', text: 'Hur den modulära skalan fungerar', level: 3 }, { type: 'grid', columns: 2 }, { type: 'card', title: 'Formeln', html: '<p>Progressionen är enkel: <code>Size = Base × Ratio<sup>n</sup></code>. Steg 0 är din bastex. Steg 1 är en liten undertext. Steg 4 eller 5 kan vara din huvudsakliga H1. Samma multiplikationskonstant (förhållandet) säkerställer att alla relationer är konsekventa.</p>' }, { type: 'card', title: 'Varför "Musikal"', html: '<p>Pythagoreerna upptäckte att delning av en sträng i enkla proportioner (1:2, 2:3, 3:4) producerade konsonanta ljud. Dessa intervaller, oktav, perfekt kvint och perfekt fjärdedel, är exakt de typografiska proportionerna. Du komponerar visuell musik.</p>' }, { type: 'title', text: 'Att välja rätt förhållande', level: 3 }, { type: 'tip', html: 'För täta gränssnitt (instrumentpaneler, tabeller) använd små förhållanden som <code>1.125</code> eller <code>1.2</code>. För redaktionella eller portföljwebbplatser, använd mer uttrycksfulla förhållanden som <code>1.5</code> eller <code>1.618</code>.' }, { type: 'paragraph', html: 'Begränsa inte skalan till bara <code>font-size</code>. Samma CSS-variabler fungerar för <code>margin</code>, <code>padding</code> och <code>gap</code>. När tomt utrymme följer samma matematiska progression som texten, uppnår designen en nivå av sammanhållning som alla känner men få kan förklara.' }] };
@@ -0,0 +1,29 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { MusicalTypographyUI } from '../ui';
4
+
5
+ const slug = 'muziksal-tipografi-olcegi';
6
+ const title = 'Müziksel Tipografi Ölçeği. Modüler Ölçek Hesaplayıcısı';
7
+ const description = 'Müziksel oranlarına dayalı modüler ölçekler kullanarak uyumlu görsel hiyerarşiler oluşturmak için ücretsiz çevrimiçi araç. Web tasarımınız için kullanıma hazır CSS değişkenleri oluşturur.';
8
+
9
+ const faqData = [
10
+ { question: 'Tipografik modüler ölçek nedir?', answer: 'Sabit bir matematiksel orana dayalı olarak yazı tipi boyutlarını belirleme yöntemidir. Müzikte notaların uyumlu ilişkileri olduğu gibi, modüler ölçek dengeli ve öngörülebilir bir görsel hiyerarşi oluşturur.' },
11
+ { question: 'Tasarımda neden müzik intervallerini kullanmalı?', answer: 'Müzik aralıkları, insan beyninin uyumlu olarak algıladığı oranlarıdır. Bunları metin boyutlarına uygulamak, rastgele seçilen boyutlar yerine doğru ve profesyonel hissettiren bir görsel yapı oluşturur.' },
12
+ { question: 'Tipografide Altın Oran nedir?', answer: '1.618 oranıdır, Altın Bölüm olarak bilinir. Hiyerarşideki her adım üstel olarak büyüyen çok dramatik ve zarif ölçekler oluşturur. Portföy veya sanat odaklı web siteleri için mükemmeldir.' },
13
+ { question: 'CSS dosyamda ölçeği nasıl uygularım?', answer: 'Araç, :root { --step-N: Xrem; } biçiminde CSS değişkenleri (tokens) oluşturur. Bunları ana CSS dosyanıza kopyalayın ve web sitenizde tipografik tutarlılığı sağlamak için var(--step-N) ile kullanın.' },
14
+ ];
15
+
16
+ const howToData = [
17
+ { name: 'Temel boyutu ayarlayın', text: 'Gövde metninizin yazı tipi boyutunu (genellikle 16px) girin, bu sizin ölçeğinizin temel notası olacak.' },
18
+ { name: 'Aralığı seçin', text: 'Farklı başlık seviyeleri arasında ne kadar alan olduğunu belirlemek için müzik oranı seçin.' },
19
+ { name: 'Hiyerarşiyi önizleyin', text: 'Görsel harmoni tasarımınıza uygun olduğunu doğrulamak için tipografik seviyelerin gerçek zamanlı nasıl davrandığını izleyin.' },
20
+ { name: 'Kodu dışa aktarın', text: 'Iş akışınıza doğrudan yapıştırmaya hazır blok almak için CSS Değişkenlerini Kopyala\'ya tıklayın.' },
21
+ ];
22
+
23
+ const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faqData.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
24
+ const howToSchema: WithContext<HowToThing> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howToData.map((step, i) => ({ '@type': 'HowToStep', position: i + 1, name: step.name, text: step.text })) };
25
+ const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'DesignApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' }, inLanguage: 'tr' };
26
+
27
+ const ui: MusicalTypographyUI = { labelConfig: 'Yapılandırma', labelBaseSize: 'Temel Boyut (px)', hintBaseSize: 'Paragraf metin boyutunuz (genellikle 16px).', labelRatio: 'Müzik Ölçeği (Oran)', hintRatio: 'Boyutun her adımda ne kadar büyüdüğünü belirler.', labelCalculated: 'Hesaplanan Değerler', labelPreview: 'Önizleme', btnCopyCss: 'CSS Değişkenlerini Kopyala', feedbackCopied: 'Değişkenler panoya kopyalandı!', previewText: 'Müziksel Tipografi', previewSubtext: 'Tasarımınız için mükemmel uyumlu ölçek.', ratioSecundaMenor: 'Küçük İkinci', ratioSegundaMayor: 'Büyük İkinci', ratioTerceraMenor: 'Küçük Üçüncü', ratioTerceraMayor: 'Büyük Üçüncü', ratioCuartaPerfecta: 'Mükemmel Dördüncü', ratioCuartaAumentada: 'Arttırılmış Dördüncü', ratioQuintaPerfecta: 'Mükemmel Beşinci', ratioProporcionAurea: 'Altın Oran', ratioSextaMayor: 'Büyük Altıncı', ratioSeptimaMenor: 'Küçük Yedinci', ratioSeptimaMayor: 'Büyük Yedinci', ratioOctava: 'Sekizinci' };
28
+
29
+ export const content: ToolLocaleContent<MusicalTypographyUI> = { slug, title, description, ui, faqTitle: 'Sık Sorulan Sorular', faq: faqData, bibliographyTitle: 'Referanslar', bibliography: [{ name: 'Bringhurst, R. The Elements of Typographic Style', url: 'https://en.wikipedia.org/wiki/The_Elements_of_Typographic_Style' }, { name: 'Brown, T. More Meaningful Typography. A List Apart', url: 'https://alistapart.com/article/more-meaningful-typography/' }, { name: 'Physics of Music. Musical Intervals and Scales', url: 'https://es.scribd.com/document/199729396/Physics-of-Music-Notes' }], howTo: howToData, schemas: [faqSchema, howToSchema, appSchema], seo: [{ type: 'title', text: 'Web Tasarımının Görünmez Uyumu', level: 2 }, { type: 'paragraph', html: '<strong>Müziksel Tipografi Ölçeği</strong> müzik aralıklarının matematiğini tipografik tasarıma uygular. Müzik bestesi kesin oranlarla yönetildiği gibi, iyi tasarım tüm boyutları birbiriyle ilişkilendiren matematiksel bir yapıdan yararlanır.' }, { type: 'title', text: 'Modüler ölçek nasıl çalışır', level: 3 }, { type: 'grid', columns: 2 }, { type: 'card', title: 'Formül', html: '<p>İlerleme basittir: <code>Size = Base × Ratio<sup>n</sup></code>. Adım 0, temel metniniz. Adım 1, küçük bir altyazı. Adım 4 veya 5, ana H1\'iniz olabilir. Aynı çarpma sabiti (oran) tüm ilişkilerin tutarlı olmasını sağlar.</p>' }, { type: 'card', title: 'Neden "Müziksel"', html: '<p>Pythagorası, bir dizeyi basit oranlara (1:2, 2:3, 3:4) böldüğünde uyumlu sesler üretileceğini keşfetti. Bu aralıklar, sekizinci, mükemmel beşinci ve mükemmel dördüncü, tam olarak tipografik oranlarıdır. Görsel müzik besteliyorsunuz.</p>' }, { type: 'title', text: 'Doğru oranı seçme', level: 3 }, { type: 'tip', html: 'Yoğun arayüzler (panolar, tablolar) için <code>1.125</code> veya <code>1.2</code> gibi küçük oranlar kullanın. Editoryal veya portföy siteleri için <code>1.5</code> veya <code>1.618</code> gibi daha anlatımlı oranlar kullanın.' }, { type: 'paragraph', html: 'Ölçeği sadece <code>font-size</code> ile sınırlamayın. Aynı CSS değişkenleri <code>margin</code>, <code>padding</code> ve <code>gap</code> için çalışır. Boş alan, metin ile aynı matematiksel ilerlemeyi takip ettiğinde, tasarım herkesin hissettiği ancak çok azının açıklayabileceği bir tutarlılık düzeyine ulaşır.' }] };
@@ -0,0 +1,30 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { MusicalTypographyUI } from '../ui';
4
+
5
+ const slug = 'musical-typography';
6
+ const title = '音乐性排版秤。模块化秤计算器';
7
+ const description = '免费在线工具,使用基于音乐比例的模块化秤创建和谐的视觉层级。为您的网页设计生成现成的CSS变量。';
8
+
9
+ const faqData = [
10
+ { question: '什么是排版模块化秤?', answer: '这是一种基于恒定数学比例来确定字体大小的方法。就像音乐中音符有和谐关系一样,模块化秤创建了平衡且可预测的视觉层级。' },
11
+ { question: '为什么在设计中使用音乐间隔?', answer: '音乐间隔是人脑感知为和谐的比例。将它们应用于文本大小会创建看起来正确和专业的视觉结构,而不是随意选择的大小。' },
12
+ { question: '排版中的黄金比例是什么?', answer: '这是比例1.618,称为黄金分割。它创建非常戏剧性和优雅的秤,其中层级中的每一步呈指数增长。非常适合投资组合或以艺术为中心的网站。' },
13
+ { question: '我如何在CSS文件中实施秤?', answer: '该工具以:root { --step-N: Xrem; }格式生成CSS变量(token)。将它们复制到主CSS文件中,并使用var(--step-N)来维护您网站上的排版一致性。' },
14
+ ];
15
+
16
+ const howToData = [
17
+ { name: '设置基础大小', text: '输入正文的字体大小(通常为16px),它将作为您秤的基本音符。' },
18
+ { name: '选择间隔', text: '选择一个音乐比例来确定不同标题级别之间有多少空间。' },
19
+ { name: '预览层级', text: '实时查看排版级别的表现方式,以验证视觉和谐是否适合您的项目。' },
20
+ { name: '导出代码', text: '单击复制CSS变量获取准备好直接粘贴到工作流的块。' },
21
+ ];
22
+
23
+ const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faqData.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
24
+ const howToSchema: WithContext<HowToThing> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howToData.map((step, i) => ({ '@type': 'HowToStep', position: i + 1, name: step.name, text: step.text })) };
25
+ const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'DesignApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' }, inLanguage: 'zh' };
26
+
27
+ const ui: MusicalTypographyUI = { labelConfig: '配置', labelBaseSize: '基础大小 (px)', hintBaseSize: '您的段落文本大小(通常16px)。', labelRatio: '音乐秤(比例)', hintRatio: '确定每个步骤的大小增长程度。', labelCalculated: '计算值', labelPreview: '预览', btnCopyCss: '复制CSS变量', feedbackCopied: '变量已复制到剪贴板!', previewText: '音乐排版', previewSubtext: '为您的设计提供完美的和谐秤。', ratioSecundaMenor: '小二度', ratioSegundaMayor: '大二度', ratioTerceraMenor: '小三度', ratioTerceraMayor: '大三度', ratioCuartaPerfecta: '完全四度', ratioCuartaAumentada: '增大四度', ratioQuintaPerfecta: '完全五度', ratioProporcionAurea: '黄金比例', ratioSextaMayor: '大六度', ratioSeptimaMenor: '小七度', ratioSeptimaMayor: '大七度', ratioOctava: '八度' };
28
+
29
+ export const content: ToolLocaleContent<MusicalTypographyUI> = { slug, title, description, ui, faqTitle: '常见问题', faq: faqData, bibliographyTitle: '参考', bibliography: [{ name: 'Bringhurst, R. The Elements of Typographic Style', url: 'https://en.wikipedia.org/wiki/The_Elements_of_Typographic_Style' }, { name: 'Brown, T. More Meaningful Typography. A List Apart', url: 'https://alistapart.com/article/more-meaningful-typography/' }, { name: 'Physics of Music. Musical Intervals and Scales', url: 'https://es.scribd.com/document/199729396/Physics-of-Music-Notes' }], howTo: howToData, schemas: [faqSchema, howToSchema, appSchema], seo: [{ type: 'title', text: '网页设计中看不见的和谐', level: 2 }, { type: 'paragraph', html: '<strong>音乐排版秤</strong>将音乐间隔的数学应用于排版设计。就像音乐作品受精确比例支配一样,一个好的设计受益于一个将所有大小联系起来的数学结构。' }, { type: 'title', text: '模块化秤如何工作', level: 3 }, { type: 'grid', columns: 2 }, { type: 'card', title: '公式', html: '<p>进度很简单:<code>Size = Base × Ratio<sup>n</sup></code>。第0步是您的基础文本。第1步是小字幕。第4或5步可能是您的主H1。相同的乘法常数(比例)确保所有关系一致。</p>' }, { type: 'card', title: '为什么是"音乐的"', html: '<p>毕达哥拉斯发现,将弦分成简单比例(1:2、2:3、3:4)会产生辅音。这些间隔、八度、完全五度和完全四度,正是排版比例。您正在组成视觉音乐。</p>' }, { type: 'title', text: '选择正确的比例', level: 3 }, { type: 'tip', html: '对于密集界面(仪表板、表格),使用小比例(如<code>1.125</code>或<code>1.2</code>)。对于编辑或投资组合网站,使用更富表现力的比例(如<code>1.5</code>或<code>1.618</code>)。' }, { type: 'paragraph', html: '不要将秤限制在仅<code>font-size</code>。相同的CSS变量适用于<code>margin</code>、<code>padding</code>和<code>gap</code>。当空白遵循与文本相同的数学进度时,设计达到所有人都能感受但很少有人能解释的凝聚力。' }] };
30
+