@jjlmoya/utils-diy 1.10.0 → 1.12.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 (286) hide show
  1. package/package.json +1 -1
  2. package/src/category/index.ts +2 -1
  3. package/src/entries.ts +3 -1
  4. package/src/index.ts +2 -0
  5. package/src/pages/[locale]/[slug].astro +28 -12
  6. package/src/tests/locale_completeness.test.ts +7 -9
  7. package/src/tests/shared-test-helpers.ts +56 -0
  8. package/src/tests/tool_exports.test.ts +34 -0
  9. package/src/tests/tool_validation.test.ts +2 -2
  10. package/src/tool/balusterCalculator/baluster-calculator.css +9 -9
  11. package/src/tool/balusterCalculator/bibliography.astro +2 -10
  12. package/src/tool/balusterCalculator/bibliography.ts +16 -0
  13. package/src/tool/balusterCalculator/i18n/de.ts +2 -15
  14. package/src/tool/balusterCalculator/i18n/en.ts +2 -15
  15. package/src/tool/balusterCalculator/i18n/es.ts +2 -15
  16. package/src/tool/balusterCalculator/i18n/fr.ts +2 -15
  17. package/src/tool/balusterCalculator/i18n/id.ts +2 -15
  18. package/src/tool/balusterCalculator/i18n/it.ts +2 -15
  19. package/src/tool/balusterCalculator/i18n/ja.ts +2 -15
  20. package/src/tool/balusterCalculator/i18n/ko.ts +2 -15
  21. package/src/tool/balusterCalculator/i18n/nl.ts +2 -15
  22. package/src/tool/balusterCalculator/i18n/pl.ts +2 -15
  23. package/src/tool/balusterCalculator/i18n/pt.ts +2 -15
  24. package/src/tool/balusterCalculator/i18n/ru.ts +2 -15
  25. package/src/tool/balusterCalculator/i18n/sv.ts +2 -15
  26. package/src/tool/balusterCalculator/i18n/tr.ts +2 -15
  27. package/src/tool/balusterCalculator/i18n/zh.ts +2 -15
  28. package/src/tool/balusterCalculator/seo.astro +1 -1
  29. package/src/tool/clayCalculator/bibliography.astro +2 -10
  30. package/src/tool/clayCalculator/bibliography.ts +12 -0
  31. package/src/tool/clayCalculator/clay-shrinkage-calculator.css +30 -30
  32. package/src/tool/clayCalculator/i18n/de.ts +2 -11
  33. package/src/tool/clayCalculator/i18n/en.ts +2 -11
  34. package/src/tool/clayCalculator/i18n/es.ts +2 -11
  35. package/src/tool/clayCalculator/i18n/fr.ts +2 -11
  36. package/src/tool/clayCalculator/i18n/id.ts +2 -11
  37. package/src/tool/clayCalculator/i18n/it.ts +2 -11
  38. package/src/tool/clayCalculator/i18n/ja.ts +2 -11
  39. package/src/tool/clayCalculator/i18n/ko.ts +2 -11
  40. package/src/tool/clayCalculator/i18n/nl.ts +2 -11
  41. package/src/tool/clayCalculator/i18n/pl.ts +2 -11
  42. package/src/tool/clayCalculator/i18n/pt.ts +2 -11
  43. package/src/tool/clayCalculator/i18n/ru.ts +2 -11
  44. package/src/tool/clayCalculator/i18n/sv.ts +2 -11
  45. package/src/tool/clayCalculator/i18n/tr.ts +2 -11
  46. package/src/tool/clayCalculator/i18n/zh.ts +2 -11
  47. package/src/tool/clayCalculator/seo.astro +1 -1
  48. package/src/tool/concreteCalculator/bibliography.astro +2 -9
  49. package/src/tool/concreteCalculator/bibliography.ts +7 -0
  50. package/src/tool/concreteCalculator/concrete-mortar-calculator.css +18 -18
  51. package/src/tool/concreteCalculator/i18n/de.ts +2 -15
  52. package/src/tool/concreteCalculator/i18n/en.ts +2 -15
  53. package/src/tool/concreteCalculator/i18n/es.ts +2 -15
  54. package/src/tool/concreteCalculator/i18n/fr.ts +2 -15
  55. package/src/tool/concreteCalculator/i18n/id.ts +2 -15
  56. package/src/tool/concreteCalculator/i18n/it.ts +2 -15
  57. package/src/tool/concreteCalculator/i18n/ja.ts +2 -15
  58. package/src/tool/concreteCalculator/i18n/ko.ts +2 -15
  59. package/src/tool/concreteCalculator/i18n/nl.ts +2 -15
  60. package/src/tool/concreteCalculator/i18n/pl.ts +2 -15
  61. package/src/tool/concreteCalculator/i18n/pt.ts +2 -15
  62. package/src/tool/concreteCalculator/i18n/ru.ts +2 -15
  63. package/src/tool/concreteCalculator/i18n/sv.ts +2 -15
  64. package/src/tool/concreteCalculator/i18n/tr.ts +2 -15
  65. package/src/tool/concreteCalculator/i18n/zh.ts +2 -15
  66. package/src/tool/concreteCalculator/seo.astro +2 -1
  67. package/src/tool/cutOptimizer/bibliography.astro +2 -9
  68. package/src/tool/cutOptimizer/bibliography.ts +12 -0
  69. package/src/tool/cutOptimizer/cut-optimizer.css +25 -25
  70. package/src/tool/cutOptimizer/i18n/de.ts +2 -11
  71. package/src/tool/cutOptimizer/i18n/en.ts +2 -11
  72. package/src/tool/cutOptimizer/i18n/es.ts +2 -11
  73. package/src/tool/cutOptimizer/i18n/fr.ts +2 -11
  74. package/src/tool/cutOptimizer/i18n/id.ts +2 -11
  75. package/src/tool/cutOptimizer/i18n/it.ts +2 -11
  76. package/src/tool/cutOptimizer/i18n/ja.ts +2 -11
  77. package/src/tool/cutOptimizer/i18n/ko.ts +2 -11
  78. package/src/tool/cutOptimizer/i18n/nl.ts +2 -11
  79. package/src/tool/cutOptimizer/i18n/pl.ts +2 -11
  80. package/src/tool/cutOptimizer/i18n/pt.ts +2 -11
  81. package/src/tool/cutOptimizer/i18n/ru.ts +2 -11
  82. package/src/tool/cutOptimizer/i18n/sv.ts +2 -11
  83. package/src/tool/cutOptimizer/i18n/tr.ts +2 -11
  84. package/src/tool/cutOptimizer/i18n/zh.ts +2 -11
  85. package/src/tool/cutOptimizer/seo.astro +2 -1
  86. package/src/tool/drillCalculator/bibliography.astro +2 -9
  87. package/src/tool/drillCalculator/bibliography.ts +12 -0
  88. package/src/tool/drillCalculator/drill-rpm-calculator.css +57 -57
  89. package/src/tool/drillCalculator/i18n/de.ts +2 -5
  90. package/src/tool/drillCalculator/i18n/en.ts +2 -5
  91. package/src/tool/drillCalculator/i18n/es.ts +2 -5
  92. package/src/tool/drillCalculator/i18n/fr.ts +2 -5
  93. package/src/tool/drillCalculator/i18n/id.ts +2 -5
  94. package/src/tool/drillCalculator/i18n/it.ts +2 -5
  95. package/src/tool/drillCalculator/i18n/ja.ts +2 -5
  96. package/src/tool/drillCalculator/i18n/ko.ts +2 -5
  97. package/src/tool/drillCalculator/i18n/nl.ts +2 -5
  98. package/src/tool/drillCalculator/i18n/pl.ts +2 -5
  99. package/src/tool/drillCalculator/i18n/pt.ts +2 -5
  100. package/src/tool/drillCalculator/i18n/ru.ts +2 -5
  101. package/src/tool/drillCalculator/i18n/sv.ts +2 -5
  102. package/src/tool/drillCalculator/i18n/tr.ts +2 -5
  103. package/src/tool/drillCalculator/i18n/zh.ts +2 -5
  104. package/src/tool/drillCalculator/seo.astro +2 -1
  105. package/src/tool/drillSharpener/bibliography.astro +2 -9
  106. package/src/tool/drillSharpener/bibliography.ts +16 -0
  107. package/src/tool/drillSharpener/drill-sharpening-master.css +1 -1
  108. package/src/tool/drillSharpener/i18n/de.ts +2 -5
  109. package/src/tool/drillSharpener/i18n/en.ts +2 -6
  110. package/src/tool/drillSharpener/i18n/es.ts +2 -6
  111. package/src/tool/drillSharpener/i18n/fr.ts +2 -6
  112. package/src/tool/drillSharpener/i18n/id.ts +2 -5
  113. package/src/tool/drillSharpener/i18n/it.ts +2 -5
  114. package/src/tool/drillSharpener/i18n/ja.ts +2 -5
  115. package/src/tool/drillSharpener/i18n/ko.ts +2 -5
  116. package/src/tool/drillSharpener/i18n/nl.ts +2 -5
  117. package/src/tool/drillSharpener/i18n/pl.ts +2 -5
  118. package/src/tool/drillSharpener/i18n/pt.ts +2 -5
  119. package/src/tool/drillSharpener/i18n/ru.ts +2 -5
  120. package/src/tool/drillSharpener/i18n/sv.ts +2 -5
  121. package/src/tool/drillSharpener/i18n/tr.ts +2 -5
  122. package/src/tool/drillSharpener/i18n/zh.ts +2 -5
  123. package/src/tool/drillSharpener/seo.astro +2 -1
  124. package/src/tool/epoxyCalculator/bibliography.astro +2 -10
  125. package/src/tool/epoxyCalculator/bibliography.ts +20 -0
  126. package/src/tool/epoxyCalculator/epoxy-resin-calculator.css +13 -13
  127. package/src/tool/epoxyCalculator/i18n/de.ts +2 -5
  128. package/src/tool/epoxyCalculator/i18n/en.ts +2 -19
  129. package/src/tool/epoxyCalculator/i18n/es.ts +2 -19
  130. package/src/tool/epoxyCalculator/i18n/fr.ts +2 -19
  131. package/src/tool/epoxyCalculator/i18n/id.ts +2 -5
  132. package/src/tool/epoxyCalculator/i18n/it.ts +2 -5
  133. package/src/tool/epoxyCalculator/i18n/ja.ts +2 -5
  134. package/src/tool/epoxyCalculator/i18n/ko.ts +2 -5
  135. package/src/tool/epoxyCalculator/i18n/nl.ts +2 -5
  136. package/src/tool/epoxyCalculator/i18n/pl.ts +2 -5
  137. package/src/tool/epoxyCalculator/i18n/pt.ts +2 -5
  138. package/src/tool/epoxyCalculator/i18n/ru.ts +2 -5
  139. package/src/tool/epoxyCalculator/i18n/sv.ts +2 -5
  140. package/src/tool/epoxyCalculator/i18n/tr.ts +2 -5
  141. package/src/tool/epoxyCalculator/i18n/zh.ts +2 -5
  142. package/src/tool/epoxyCalculator/seo.astro +1 -1
  143. package/src/tool/furnitureFit/bibliography.astro +2 -9
  144. package/src/tool/furnitureFit/bibliography.ts +12 -0
  145. package/src/tool/furnitureFit/furniture-fit-calculator.css +7 -7
  146. package/src/tool/furnitureFit/i18n/de.ts +2 -5
  147. package/src/tool/furnitureFit/i18n/en.ts +2 -5
  148. package/src/tool/furnitureFit/i18n/es.ts +2 -5
  149. package/src/tool/furnitureFit/i18n/fr.ts +2 -5
  150. package/src/tool/furnitureFit/i18n/id.ts +2 -5
  151. package/src/tool/furnitureFit/i18n/it.ts +2 -5
  152. package/src/tool/furnitureFit/i18n/ja.ts +2 -5
  153. package/src/tool/furnitureFit/i18n/ko.ts +2 -5
  154. package/src/tool/furnitureFit/i18n/nl.ts +2 -5
  155. package/src/tool/furnitureFit/i18n/pl.ts +2 -5
  156. package/src/tool/furnitureFit/i18n/pt.ts +2 -5
  157. package/src/tool/furnitureFit/i18n/ru.ts +2 -5
  158. package/src/tool/furnitureFit/i18n/sv.ts +2 -5
  159. package/src/tool/furnitureFit/i18n/tr.ts +2 -5
  160. package/src/tool/furnitureFit/i18n/zh.ts +2 -5
  161. package/src/tool/furnitureFit/seo.astro +2 -1
  162. package/src/tool/mortarCalculator/bibliography.astro +2 -9
  163. package/src/tool/mortarCalculator/bibliography.ts +20 -0
  164. package/src/tool/mortarCalculator/i18n/de.ts +2 -5
  165. package/src/tool/mortarCalculator/i18n/en.ts +2 -19
  166. package/src/tool/mortarCalculator/i18n/es.ts +2 -19
  167. package/src/tool/mortarCalculator/i18n/fr.ts +2 -19
  168. package/src/tool/mortarCalculator/i18n/id.ts +2 -5
  169. package/src/tool/mortarCalculator/i18n/it.ts +2 -5
  170. package/src/tool/mortarCalculator/i18n/ja.ts +2 -5
  171. package/src/tool/mortarCalculator/i18n/ko.ts +2 -5
  172. package/src/tool/mortarCalculator/i18n/nl.ts +2 -5
  173. package/src/tool/mortarCalculator/i18n/pl.ts +2 -5
  174. package/src/tool/mortarCalculator/i18n/pt.ts +2 -5
  175. package/src/tool/mortarCalculator/i18n/ru.ts +2 -5
  176. package/src/tool/mortarCalculator/i18n/sv.ts +2 -5
  177. package/src/tool/mortarCalculator/i18n/tr.ts +2 -5
  178. package/src/tool/mortarCalculator/i18n/zh.ts +2 -5
  179. package/src/tool/mortarCalculator/lime-mortar-calculator.css +30 -30
  180. package/src/tool/mortarCalculator/seo.astro +2 -1
  181. package/src/tool/passepartoutCalculator/bibliography.astro +2 -9
  182. package/src/tool/passepartoutCalculator/bibliography.ts +16 -0
  183. package/src/tool/passepartoutCalculator/i18n/de.ts +2 -6
  184. package/src/tool/passepartoutCalculator/i18n/en.ts +2 -15
  185. package/src/tool/passepartoutCalculator/i18n/es.ts +2 -15
  186. package/src/tool/passepartoutCalculator/i18n/fr.ts +2 -15
  187. package/src/tool/passepartoutCalculator/i18n/id.ts +2 -6
  188. package/src/tool/passepartoutCalculator/i18n/it.ts +2 -6
  189. package/src/tool/passepartoutCalculator/i18n/ja.ts +2 -6
  190. package/src/tool/passepartoutCalculator/i18n/ko.ts +2 -6
  191. package/src/tool/passepartoutCalculator/i18n/nl.ts +2 -6
  192. package/src/tool/passepartoutCalculator/i18n/pl.ts +2 -6
  193. package/src/tool/passepartoutCalculator/i18n/pt.ts +2 -6
  194. package/src/tool/passepartoutCalculator/i18n/ru.ts +2 -6
  195. package/src/tool/passepartoutCalculator/i18n/sv.ts +2 -6
  196. package/src/tool/passepartoutCalculator/i18n/tr.ts +2 -6
  197. package/src/tool/passepartoutCalculator/i18n/zh.ts +2 -6
  198. package/src/tool/passepartoutCalculator/passepartout-calculator.css +26 -26
  199. package/src/tool/passepartoutCalculator/seo.astro +2 -1
  200. package/src/tool/stairCalculator/bibliography.astro +2 -9
  201. package/src/tool/stairCalculator/bibliography.ts +16 -0
  202. package/src/tool/stairCalculator/i18n/de.ts +2 -5
  203. package/src/tool/stairCalculator/i18n/en.ts +2 -6
  204. package/src/tool/stairCalculator/i18n/es.ts +2 -6
  205. package/src/tool/stairCalculator/i18n/fr.ts +2 -6
  206. package/src/tool/stairCalculator/i18n/id.ts +2 -5
  207. package/src/tool/stairCalculator/i18n/it.ts +2 -5
  208. package/src/tool/stairCalculator/i18n/ja.ts +2 -5
  209. package/src/tool/stairCalculator/i18n/ko.ts +2 -5
  210. package/src/tool/stairCalculator/i18n/nl.ts +2 -5
  211. package/src/tool/stairCalculator/i18n/pl.ts +2 -5
  212. package/src/tool/stairCalculator/i18n/pt.ts +2 -5
  213. package/src/tool/stairCalculator/i18n/ru.ts +2 -5
  214. package/src/tool/stairCalculator/i18n/sv.ts +2 -5
  215. package/src/tool/stairCalculator/i18n/tr.ts +2 -5
  216. package/src/tool/stairCalculator/i18n/zh.ts +2 -5
  217. package/src/tool/stairCalculator/seo.astro +2 -1
  218. package/src/tool/stairCalculator/stair-calculator.css +10 -10
  219. package/src/tool/thermalExpansionCalculator/bibliography.astro +2 -9
  220. package/src/tool/thermalExpansionCalculator/bibliography.ts +16 -0
  221. package/src/tool/thermalExpansionCalculator/i18n/de.ts +2 -6
  222. package/src/tool/thermalExpansionCalculator/i18n/en.ts +2 -6
  223. package/src/tool/thermalExpansionCalculator/i18n/es.ts +2 -6
  224. package/src/tool/thermalExpansionCalculator/i18n/fr.ts +2 -6
  225. package/src/tool/thermalExpansionCalculator/i18n/id.ts +2 -6
  226. package/src/tool/thermalExpansionCalculator/i18n/it.ts +2 -6
  227. package/src/tool/thermalExpansionCalculator/i18n/ja.ts +2 -6
  228. package/src/tool/thermalExpansionCalculator/i18n/ko.ts +2 -6
  229. package/src/tool/thermalExpansionCalculator/i18n/nl.ts +2 -6
  230. package/src/tool/thermalExpansionCalculator/i18n/pl.ts +2 -6
  231. package/src/tool/thermalExpansionCalculator/i18n/pt.ts +2 -6
  232. package/src/tool/thermalExpansionCalculator/i18n/ru.ts +2 -6
  233. package/src/tool/thermalExpansionCalculator/i18n/sv.ts +2 -6
  234. package/src/tool/thermalExpansionCalculator/i18n/tr.ts +2 -6
  235. package/src/tool/thermalExpansionCalculator/i18n/zh.ts +2 -6
  236. package/src/tool/thermalExpansionCalculator/seo.astro +2 -1
  237. package/src/tool/thermalExpansionCalculator/thermal-expansion-calculator.css +19 -19
  238. package/src/tool/voltageDropCalculator/bibliography.astro +2 -9
  239. package/src/tool/voltageDropCalculator/bibliography.ts +16 -0
  240. package/src/tool/voltageDropCalculator/i18n/de.ts +2 -5
  241. package/src/tool/voltageDropCalculator/i18n/en.ts +2 -6
  242. package/src/tool/voltageDropCalculator/i18n/es.ts +2 -6
  243. package/src/tool/voltageDropCalculator/i18n/fr.ts +2 -6
  244. package/src/tool/voltageDropCalculator/i18n/id.ts +2 -5
  245. package/src/tool/voltageDropCalculator/i18n/it.ts +2 -5
  246. package/src/tool/voltageDropCalculator/i18n/ja.ts +2 -5
  247. package/src/tool/voltageDropCalculator/i18n/ko.ts +2 -5
  248. package/src/tool/voltageDropCalculator/i18n/nl.ts +2 -5
  249. package/src/tool/voltageDropCalculator/i18n/pl.ts +2 -5
  250. package/src/tool/voltageDropCalculator/i18n/pt.ts +2 -5
  251. package/src/tool/voltageDropCalculator/i18n/ru.ts +2 -5
  252. package/src/tool/voltageDropCalculator/i18n/sv.ts +2 -5
  253. package/src/tool/voltageDropCalculator/i18n/tr.ts +2 -5
  254. package/src/tool/voltageDropCalculator/i18n/zh.ts +2 -5
  255. package/src/tool/voltageDropCalculator/seo.astro +2 -1
  256. package/src/tool/voltageDropCalculator/voltage-drop-calculator.css +24 -24
  257. package/src/tool/workshopFractionConverter/bibliography.astro +6 -0
  258. package/src/tool/workshopFractionConverter/bibliography.ts +12 -0
  259. package/src/tool/workshopFractionConverter/client.ts +183 -0
  260. package/src/tool/workshopFractionConverter/component.astro +226 -0
  261. package/src/tool/workshopFractionConverter/converter.ts +110 -0
  262. package/src/tool/workshopFractionConverter/engine.ts +223 -0
  263. package/src/tool/workshopFractionConverter/entry.ts +24 -0
  264. package/src/tool/workshopFractionConverter/i18n/de.ts +141 -0
  265. package/src/tool/workshopFractionConverter/i18n/en.ts +141 -0
  266. package/src/tool/workshopFractionConverter/i18n/es.ts +141 -0
  267. package/src/tool/workshopFractionConverter/i18n/fr.ts +141 -0
  268. package/src/tool/workshopFractionConverter/i18n/id.ts +141 -0
  269. package/src/tool/workshopFractionConverter/i18n/it.ts +141 -0
  270. package/src/tool/workshopFractionConverter/i18n/ja.ts +141 -0
  271. package/src/tool/workshopFractionConverter/i18n/ko.ts +141 -0
  272. package/src/tool/workshopFractionConverter/i18n/nl.ts +141 -0
  273. package/src/tool/workshopFractionConverter/i18n/pl.ts +141 -0
  274. package/src/tool/workshopFractionConverter/i18n/pt.ts +141 -0
  275. package/src/tool/workshopFractionConverter/i18n/ru.ts +141 -0
  276. package/src/tool/workshopFractionConverter/i18n/sv.ts +141 -0
  277. package/src/tool/workshopFractionConverter/i18n/tr.ts +141 -0
  278. package/src/tool/workshopFractionConverter/i18n/zh.ts +141 -0
  279. package/src/tool/workshopFractionConverter/index.ts +11 -0
  280. package/src/tool/workshopFractionConverter/seo.astro +15 -0
  281. package/src/tool/workshopFractionConverter/types-client.ts +89 -0
  282. package/src/tool/workshopFractionConverter/ui-updater.ts +94 -0
  283. package/src/tool/workshopFractionConverter/ui.ts +38 -0
  284. package/src/tool/workshopFractionConverter/workshop-fraction-converter.css +563 -0
  285. package/src/tools.ts +2 -1
  286. package/src/types.ts +1 -1
@@ -0,0 +1,141 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { WorkshopFractionConverterUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
5
+
6
+ const slug = 'workshop-fraction-converter';
7
+ const title = '워크숍용 분수 미리 변환기';
8
+ const description = '분수 단위 인치를 즉시 밀리미터로 변환하세요. 워크숍에 적합한 표준 규격 볼트, 나사, 소켓을 찾아줍니다. 기름진 손이나 장갑을 낀 상태에서도 사용하기 편리하도록 설계되었습니다.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: '왜 분수를 밀리미터로 변환해야 하나요?',
13
+ answer: '대부분의 현대식 공구와 부품은 미터법을 사용하지만, 오래된 공구나 사양서에는 여전히 분수 단위 인치가 사용됩니다. 이 변환기는 그 차이를 메워 정확한 미터법 환산값이나 가장 가까운 표준 규격 사이즈를 찾도록 도와줍니다.',
14
+ },
15
+ {
16
+ question: '1/2인치와 12.7mm의 차이는 무엇인가요?',
17
+ answer: '1/2인치는 정확히 12.7밀리미터입니다 (0.5 × 25.4 = 12.7). 표준 규격에서는 제조사들이 공통 부품 사이즈를 양쪽 시스템에 맞추기 때문에 미터법 공구와 인치법 공구가 서로 호환되는 경우가 많습니다.',
18
+ },
19
+ {
20
+ question: '왜 "가장 가까운 부품"이 표시되나요?',
21
+ answer: '정확한 변환값이 표준 부품 사이즈 사이에 위치하는 경우가 많기 때문입니다. 이 도구는 사용자의 측정값과 가장 가까운 시판 볼트나 소켓을 찾아주어 워크숍에 있는 것을 활용할 수 있게 합니다.',
22
+ },
23
+ {
24
+ question: '목공 정밀도와 금속 정밀도의 차이는 무엇인가요?',
25
+ answer: '목공에서는 0.5mm 정도의 차이는 무시되는 경우가 많지만, 금속 가공이나 정밀 기계 작업에서는 0.1mm가 매우 중요합니다. 정밀 모드는 재료에 따른 허용 오차 범위를 안내합니다.',
26
+ },
27
+ {
28
+ question: '오프라인에서도 사용할 수 있나요?',
29
+ answer: '네. 모든 계산은 브라우저에서 수행됩니다. 첫 로딩 후에는 완전히 오프라인으로 작동하므로 WiFi가 없는 워크숍에서도 사용하기에 적합합니다.',
30
+ },
31
+ {
32
+ question: '히스토리 기능이 있는 이유는 무엇인가요?',
33
+ answer: '분해 작업이나 부품이 많은 프로젝트를 수행할 때, 히스토리 기능을 통해 다시 입력할 필요 없이 측정값을 참조할 수 있으며 작업 중에 부품 리스트를 작성하는 데 도움이 됩니다.',
34
+ },
35
+ ];
36
+
37
+ const howToData = [
38
+ {
39
+ name: '측정 유형 선택',
40
+ text: '분수를 밀리미터로 변환하려면 "순방향"을, 캘리퍼스로 측정한 값에서 분수를 찾으려면 "역방향"을 선택하세요.',
41
+ },
42
+ {
43
+ name: '값 입력',
44
+ text: '3열 입력란(정수, 분자, 분모)을 사용하거나 퀵 프리셋 버튼을 누르세요. 스텝 버튼을 사용하면 타이핑 없이 조정할 수 있습니다.',
45
+ },
46
+ {
47
+ name: '결과 확인',
48
+ text: '정확한 환산값과 함께 가장 가까운 표준 볼트 및 소켓 사이즈가 표시됩니다. 시각적 스케일을 통해 비례를 파악할 수 있습니다.',
49
+ },
50
+ {
51
+ name: '히스토리에 저장',
52
+ text: '"히스토리에 저장"을 클릭하여 측정값을 기록하세요. 히스토리는 브라우저를 닫아도 유지됩니다.',
53
+ },
54
+ ];
55
+
56
+ const faqSchema: WithContext<FAQPage> = {
57
+ '@context': 'https://schema.org',
58
+ '@type': 'FAQPage',
59
+ mainEntity: faqData.map((item) => ({
60
+ '@type': 'Question',
61
+ name: item.question,
62
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
63
+ })),
64
+ };
65
+
66
+ const howToSchema: WithContext<HowToThing> = {
67
+ '@context': 'https://schema.org',
68
+ '@type': 'HowTo',
69
+ name: title,
70
+ description,
71
+ step: howToData.map((step, i) => ({
72
+ '@type': 'HowToStep',
73
+ position: i + 1,
74
+ name: step.name,
75
+ text: step.text,
76
+ })),
77
+ };
78
+
79
+ const appSchema: WithContext<SoftwareApplication> = {
80
+ '@context': 'https://schema.org',
81
+ '@type': 'SoftwareApplication',
82
+ name: title,
83
+ description,
84
+ applicationCategory: 'UtilityApplication',
85
+ operatingSystem: 'All',
86
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
87
+ inLanguage: 'ko',
88
+ };
89
+
90
+ export const content: ToolLocaleContent<WorkshopFractionConverterUI> = {
91
+ slug,
92
+ title,
93
+ description,
94
+ faqTitle: '자주 묻는 질문',
95
+ faq: faqData,
96
+ bibliography,
97
+ schemas: [faqSchema, howToSchema, appSchema],
98
+ seo: [
99
+ { title: 'FAQ', type: 'faq', schema: faqSchema },
100
+ { title: '사용 방법', type: 'howto', schema: howToSchema },
101
+ { title: '애플리케이션', type: 'app', schema: appSchema },
102
+ ],
103
+ ui: {
104
+ labelFraction: '측정 유형',
105
+ labelWhole: '정수',
106
+ labelNumerator: '분자',
107
+ labelDenominator: '분모',
108
+ labelInches: '인치',
109
+ labelMillimeters: '밀리미터',
110
+ resultTitle: '변환 결과',
111
+ resultFraction: '분수',
112
+ resultInches: '인치',
113
+ resultMillimeters: '밀리미터',
114
+ matchTitle: '가장 가까운 규격',
115
+ matchClosestFastener: '표준 볼트 또는 부품 사이즈',
116
+ matchClosestSocket: '표준 소켓 또는 렌치 사이즈',
117
+ matchDifference: '측정값과의 차이',
118
+ matchRecommendation: '재고가 있는 경우 이 사이즈를 사용하세요',
119
+ reverseSearchTitle: '역방향 검색',
120
+ reverseSearchLabel: '측정값 (mm)',
121
+ reverseSearchButton: '분수 찾기',
122
+ reverseSearchHint: '캘리퍼스로 측정한 값을 입력하세요',
123
+ unitMm: 'mm',
124
+ unitInch: 'in',
125
+ modeForward: '분수 → 미리',
126
+ modeReverse: '미리 → 분수',
127
+ precisionLabel: '정밀 모드',
128
+ precisionCarpentry: '목공',
129
+ precisionMetal: '금속 가공',
130
+ buttonConvert: '변환',
131
+ buttonClear: '지우기',
132
+ buttonCopyResult: '결과 복사',
133
+ buttonSaveToHistory: '히스토리에 저장',
134
+ historyTitle: '히스토리',
135
+ historyEmpty: '저장된 측정값이 없습니다',
136
+ historyRemove: '삭제',
137
+ helpText: '측정값을 선택하거나 분수를 입력하여 시작하세요.',
138
+ toolOverline: '워크숍 툴',
139
+ labelVisualReference: '시각적 참조 (1인치 = 96px)',
140
+ },
141
+ };
@@ -0,0 +1,141 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { WorkshopFractionConverterUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
5
+
6
+ const slug = 'werkplaats-breuk-naar-millimeter-omzetter';
7
+ const title = 'Werkplaats Omzetter: Breuken naar Millimeters';
8
+ const description = 'Zet inch-breuken direct om in millimeters. Vind de dichtstbijzijnde standaard bouten, moeren en doppen voor je werkplaats. Ontworpen voor vuile handen en werkhandschoenen.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Waarom moet ik breuken omzetten naar millimeters?',
13
+ answer: 'De meeste moderne gereedschappen en bevestigingsmiddelen gebruiken het metrische systeem, maar veel vintage gereedschap en specificaties gebruiken nog inch-breuken. Deze omzetter overbrugt die kloof en helpt je het exacte metrische equivalent of de dichtstbijzijnde standaardmaat te vinden.',
14
+ },
15
+ {
16
+ question: 'Wat is het verschil tussen 1/2 inch en 12,7 mm?',
17
+ answer: '1/2 inch is exact gelijk aan 12,7 millimeter (0,5 × 25,4 = 12,7). Metrisch en imperiaal gereedschap is vaak uitwisselbaar bij standaardmaten omdat fabrikanten gangbare maten in beide systemen op elkaar afstemmen.',
18
+ },
19
+ {
20
+ question: 'Waarom toont de tool de "dichtstbijzijnde match"?',
21
+ answer: 'Omdat exacte conversies vaak tussen de standaardmaten in vallen. De tool vindt de commercieel verkrijgbare bout of dop die het dichtst bij je meting ligt, zodat je kunt gebruiken wat er in je werkplaats ligt.',
22
+ },
23
+ {
24
+ question: 'Wat is het verschil tussen houtbewerkings- en metaalprecisie?',
25
+ answer: 'Bij houtbewerking zijn verschillen van 0,5 mm vaak verwaarloosbaar. Bij metaalbewerking en verspaning telt elke 0,1 mm. De precisiemodus geeft acceptabele toleranties aan voor jouw materiaal.',
26
+ },
27
+ {
28
+ question: 'Kan ik deze tool offline gebruiken?',
29
+ answer: 'Ja. Alle berekeningen gebeuren in je browser. De tool werkt volledig offline na de eerste keer laden, ideaal voor gebruik in de werkplaats zonder WiFi.',
30
+ },
31
+ {
32
+ question: 'Waarom heeft de tool een geschiedenis?',
33
+ answer: 'Bij demontage of projecten met veel onderdelen kun je in de geschiedenis metingen terugzoeken zonder ze opnieuw in te voeren, en zo tijdens het werk een onderdelenlijst opbouwen.',
34
+ },
35
+ ];
36
+
37
+ const howToData = [
38
+ {
39
+ name: 'Kies het type meting',
40
+ text: 'Kies "Direct" om een breuk naar millimeters om te zetten, of "Omgekeerd" om de breuk te vinden voor een maat die je met een schuifmaat hebt genomen.',
41
+ },
42
+ {
43
+ name: 'Voer de maat in',
44
+ text: 'Gebruik de drie kolommen (geheel, teller, noemer) of tik op een snelkeuzeknop. Met de instelknoppen kun je waarden aanpassen zonder te typen.',
45
+ },
46
+ {
47
+ name: 'Bekijk de resultaten',
48
+ text: 'Het resultaat toont de exacte omzetting plus de dichtstbijzijnde standaard bout- en dopmaten. De visuele schaal geeft een goed gevoel voor verhoudingen.',
49
+ },
50
+ {
51
+ name: 'Opslaan in geschiedenis',
52
+ text: 'Klik op "Opslaan in geschiedenis" om metingen te bewaren. De geschiedenis blijft in je browser bewaard, ook na het afsluiten.',
53
+ },
54
+ ];
55
+
56
+ const faqSchema: WithContext<FAQPage> = {
57
+ '@context': 'https://schema.org',
58
+ '@type': 'FAQPage',
59
+ mainEntity: faqData.map((item) => ({
60
+ '@type': 'Question',
61
+ name: item.question,
62
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
63
+ })),
64
+ };
65
+
66
+ const howToSchema: WithContext<HowToThing> = {
67
+ '@context': 'https://schema.org',
68
+ '@type': 'HowTo',
69
+ name: title,
70
+ description,
71
+ step: howToData.map((step, i) => ({
72
+ '@type': 'HowToStep',
73
+ position: i + 1,
74
+ name: step.name,
75
+ text: step.text,
76
+ })),
77
+ };
78
+
79
+ const appSchema: WithContext<SoftwareApplication> = {
80
+ '@context': 'https://schema.org',
81
+ '@type': 'SoftwareApplication',
82
+ name: title,
83
+ description,
84
+ applicationCategory: 'UtilityApplication',
85
+ operatingSystem: 'All',
86
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
87
+ inLanguage: 'nl',
88
+ };
89
+
90
+ export const content: ToolLocaleContent<WorkshopFractionConverterUI> = {
91
+ slug,
92
+ title,
93
+ description,
94
+ faqTitle: 'Veelgestelde Vragen',
95
+ faq: faqData,
96
+ bibliography,
97
+ schemas: [faqSchema, howToSchema, appSchema],
98
+ seo: [
99
+ { title: 'FAQ', type: 'faq', schema: faqSchema },
100
+ { title: 'Handleiding', type: 'howto', schema: howToSchema },
101
+ { title: 'Applicatie', type: 'app', schema: appSchema },
102
+ ],
103
+ ui: {
104
+ labelFraction: 'Type meting',
105
+ labelWhole: 'Heel getal',
106
+ labelNumerator: 'Teller',
107
+ labelDenominator: 'Noemer',
108
+ labelInches: 'Inches',
109
+ labelMillimeters: 'Millimeters',
110
+ resultTitle: 'Omzettingsresultaat',
111
+ resultFraction: 'Breuk',
112
+ resultInches: 'Inches',
113
+ resultMillimeters: 'Millimeters',
114
+ matchTitle: 'Dichtstbijzijnde Match',
115
+ matchClosestFastener: 'Standaard bout- of moermaat',
116
+ matchClosestSocket: 'Standaard dop- of sleutelmaat',
117
+ matchDifference: 'Verschil met je meting',
118
+ matchRecommendation: 'Gebruik deze maat indien beschikbaar',
119
+ reverseSearchTitle: 'Omgekeerd zoeken',
120
+ reverseSearchLabel: 'Gemeten maat (mm)',
121
+ reverseSearchButton: 'Breuk zoeken',
122
+ reverseSearchHint: 'Meet met een schuifmaat en voer de waarde in',
123
+ unitMm: 'mm',
124
+ unitInch: 'in',
125
+ modeForward: 'Breuk → Metrisch',
126
+ modeReverse: 'Metrisch → Breuk',
127
+ precisionLabel: 'Precisiemodus',
128
+ precisionCarpentry: 'Houtbewerking',
129
+ precisionMetal: 'Metaalbewerking',
130
+ buttonConvert: 'Omzetten',
131
+ buttonClear: 'Wissen',
132
+ buttonCopyResult: 'Resultaat kopiëren',
133
+ buttonSaveToHistory: 'Opslaan',
134
+ historyTitle: 'Geschiedenis',
135
+ historyEmpty: 'Nog geen metingen',
136
+ historyRemove: 'Verwijderen',
137
+ helpText: 'Kies een maat of voer een breuk in om te beginnen.',
138
+ toolOverline: 'Werkplaats Tools',
139
+ labelVisualReference: 'Visuele Referentie (1 inch = 96px)',
140
+ },
141
+ };
@@ -0,0 +1,141 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { WorkshopFractionConverterUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
5
+
6
+ const slug = 'warsztatowy-konwerter-ulamkow-na-milimetry';
7
+ const title = 'Konwerter Ułamków na Milimetry Warsztatowy';
8
+ const description = 'Błyskawicznie zamieniaj ułamkowe wymiary calowe na milimetry. Znajdź najbliższe standardowe śruby, sworznie i nasadki do swojego warsztatu. Stworzony dla brudnych rąk i palców w rękawicach.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Dlaczego muszę przeliczać ułamki na milimetry?',
13
+ answer: 'Większość nowoczesnych narzędzi i elementów złącznych korzysta z systemu metrycznego, jednak wiele starszych narzędzi i specyfikacji nadal używa ułamków cala. Ten konwerter wypełnia tę lukę, pomagając znaleźć dokładny ekwiwalent metryczny lub najbliższy standardowy rozmiar elementu złącznego.',
14
+ },
15
+ {
16
+ question: 'Jaka jest różnica między 1/2 cala a 12,7 mm?',
17
+ answer: '1/2 cala to dokładnie 12,7 milimetra (0,5 × 25,4 = 12,7). Narzędzia metryczne i calowe są często wymienne w standardowych rozmiarach, ponieważ producenci dopasowują popularne rozmiary elementów złącznych w obu systemach.',
18
+ },
19
+ {
20
+ question: 'Dlaczego narzędzie pokazuje "najbliższe dopasowanie"?',
21
+ answer: 'Ponieważ dokładne przeliczenia często wypadają pomiędzy standardowymi rozmiarami elementów złącznych. Narzędzie znajduje najbliższą dostępną w handlu śrubę lub nasadkę, abyś mógł użyć tego, co masz pod ręką w warsztacie.',
22
+ },
23
+ {
24
+ question: 'Czym różni się precyzja stolarska od metalowej?',
25
+ answer: 'W stolarstwie różnice rzędu 0,5 mm są często pomijalne. W obróbce metali i skrawaniu liczy się każde 0,1 mm. Tryb precyzji wskazuje akceptowalne zakresy tolerancji dla danego materiału.',
26
+ },
27
+ {
28
+ question: 'Czy mogę korzystać z tego narzędzia offline?',
29
+ answer: 'Tak. Wszystkie obliczenia odbywają się w przeglądarce. Narzędzie działa całkowicie offline po pierwszym załadowaniu, co jest idealne do użytku w warsztacie bez WiFi.',
30
+ },
31
+ {
32
+ question: 'Dlaczego narzędzie zawiera historię?',
33
+ answer: 'Podczas demontażu lub pracy nad projektem z wieloma częściami, historia pozwala sprawdzać wymiary bez ich ponownego wpisywania i pomaga tworzyć listę części w trakcie pracy.',
34
+ },
35
+ ];
36
+
37
+ const howToData = [
38
+ {
39
+ name: 'Wybierz rodzaj pomiaru',
40
+ text: 'Wybierz "Wprost", aby zamienić ułamek na milimetry, lub "Odwrotnie", aby znaleźć ułamek dla wymiaru zdjętego suwmiarką.',
41
+ },
42
+ {
43
+ name: 'Wprowadź wymiar',
44
+ text: 'Użyj trzykolumnowego wejścia (całość, licznik, mianownik) lub dotknij przycisku szybkiego wyboru. Przyciski krokowe pozwalają na regulację bez pisania.',
45
+ },
46
+ {
47
+ name: 'Przejrzyj wyniki',
48
+ text: 'Wynik pokazuje dokładne przeliczenie oraz najbliższe standardowe rozmiary śrub i nasadek. Skala wizualna ułatwia ocenę proporcji.',
49
+ },
50
+ {
51
+ name: 'Zapisz w historii',
52
+ text: 'Kliknij "Zapisz w historii", aby zachować pomiary na później. Historia pozostaje w przeglądarce nawet po jej zamknięciu.',
53
+ },
54
+ ];
55
+
56
+ const faqSchema: WithContext<FAQPage> = {
57
+ '@context': 'https://schema.org',
58
+ '@type': 'FAQPage',
59
+ mainEntity: faqData.map((item) => ({
60
+ '@type': 'Question',
61
+ name: item.question,
62
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
63
+ })),
64
+ };
65
+
66
+ const howToSchema: WithContext<HowToThing> = {
67
+ '@context': 'https://schema.org',
68
+ '@type': 'HowTo',
69
+ name: title,
70
+ description,
71
+ step: howToData.map((step, i) => ({
72
+ '@type': 'HowToStep',
73
+ position: i + 1,
74
+ name: step.name,
75
+ text: step.text,
76
+ })),
77
+ };
78
+
79
+ const appSchema: WithContext<SoftwareApplication> = {
80
+ '@context': 'https://schema.org',
81
+ '@type': 'SoftwareApplication',
82
+ name: title,
83
+ description,
84
+ applicationCategory: 'UtilityApplication',
85
+ operatingSystem: 'All',
86
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
87
+ inLanguage: 'pl',
88
+ };
89
+
90
+ export const content: ToolLocaleContent<WorkshopFractionConverterUI> = {
91
+ slug,
92
+ title,
93
+ description,
94
+ faqTitle: 'Często Zadawane Pytania',
95
+ faq: faqData,
96
+ bibliography,
97
+ schemas: [faqSchema, howToSchema, appSchema],
98
+ seo: [
99
+ { title: 'FAQ', type: 'faq', schema: faqSchema },
100
+ { title: 'Jak używać', type: 'howto', schema: howToSchema },
101
+ { title: 'Aplikacja', type: 'app', schema: appSchema },
102
+ ],
103
+ ui: {
104
+ labelFraction: 'Rodzaj Pomiaru',
105
+ labelWhole: 'Całość',
106
+ labelNumerator: 'Licznik',
107
+ labelDenominator: 'Mianownik',
108
+ labelInches: 'Cale',
109
+ labelMillimeters: 'Milimetry',
110
+ resultTitle: 'Wynik Konwersji',
111
+ resultFraction: 'Ułamek',
112
+ resultInches: 'Cale',
113
+ resultMillimeters: 'Milimetry',
114
+ matchTitle: 'Najbliższe Dopasowanie',
115
+ matchClosestFastener: 'Standardowy rozmiar śruby lub elementu',
116
+ matchClosestSocket: 'Standardowy rozmiar nasadki lub klucza',
117
+ matchDifference: 'Różnica względem pomiaru',
118
+ matchRecommendation: 'Użyj tego rozmiaru, jeśli jest dostępny',
119
+ reverseSearchTitle: 'Wyszukiwanie Odwrotne',
120
+ reverseSearchLabel: 'Zmierzony Rozmiar (mm)',
121
+ reverseSearchButton: 'Znajdź Ułamek',
122
+ reverseSearchHint: 'Zmierz suwmiarką i wpisz wartość',
123
+ unitMm: 'mm',
124
+ unitInch: 'cal',
125
+ modeForward: 'Ułamek → Metryczny',
126
+ modeReverse: 'Metryczny → Ułamek',
127
+ precisionLabel: 'Tryb Precyzji',
128
+ precisionCarpentry: 'Stolarstwo',
129
+ precisionMetal: 'Ślusarstwo',
130
+ buttonConvert: 'Przelicz',
131
+ buttonClear: 'Wyczyść',
132
+ buttonCopyResult: 'Kopiuj Wynik',
133
+ buttonSaveToHistory: 'Zapisz w Historii',
134
+ historyTitle: 'Historia',
135
+ historyEmpty: 'Brak pomiarów',
136
+ historyRemove: 'Usuń',
137
+ helpText: 'Wybierz wymiar lub wpisz ułamek, aby zacząć.',
138
+ toolOverline: 'Narzędzia Warsztatowe',
139
+ labelVisualReference: 'Odniesienie Wizualne (1 cal = 96px)',
140
+ },
141
+ };
@@ -0,0 +1,141 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { WorkshopFractionConverterUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
5
+
6
+ const slug = 'conversor-fracoes-polegadas-milimetros';
7
+ const title = 'Conversor de Frações para Milímetros para Oficina';
8
+ const description = 'Converta medidas de polegadas fracionárias em milímetros instantaneamente. Encontre os parafusos, porcas e chaves padrão mais próximos para sua oficina. Projetado para mãos sujas e dedos com luvas.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Por que preciso converter frações em milímetros?',
13
+ answer: 'A maioria das ferramentas e fixadores modernos usa o sistema métrico, mas muitas ferramentas antigas e especificações ainda usam polegadas fracionárias. Este conversor preenche essa lacuna, ajudando você a encontrar o equivalente métrico exato ou o tamanho de fixador padrão mais próximo.',
14
+ },
15
+ {
16
+ question: 'Qual é a diferença entre 1/2 polegada e 12,7 mm?',
17
+ answer: '1/2 polegada equivale exatamente a 12,7 milímetros (0,5 × 25,4 = 12,7). Ferramentas métricas e imperiais são frequentemente intercambiáveis em tamanhos padrão porque os fabricantes alinham os tamanhos comuns de parafusos em ambos os sistemas.',
18
+ },
19
+ {
20
+ question: 'Por que a ferramenta mostra o "fixador mais próximo"?',
21
+ answer: 'Porque as conversões exatas muitas vezes caem entre os tamanhos padrão de fixadores. A ferramenta encontra o parafuso ou chave comercial mais próximo da sua medida, para que você possa usar o que estiver disponível na sua oficina.',
22
+ },
23
+ {
24
+ question: 'Qual é a diferença entre a precisão para carpintaria e metalurgia?',
25
+ answer: 'Na carpintaria, diferenças de 0,5 mm são frequentemente insignificantes. Na metalurgia e usinagem, 0,1 mm faz diferença. O modo de precisão indica faixas de tolerância aceitáveis para o seu material.',
26
+ },
27
+ {
28
+ question: 'Posso usar esta ferramenta offline?',
29
+ answer: 'Sim. Todos os cálculos acontecem no seu navegador. A ferramenta funciona completamente offline após o primeiro carregamento, perfeita para uso na oficina sem WiFi.',
30
+ },
31
+ {
32
+ question: 'Por que a ferramenta inclui um histórico?',
33
+ answer: 'Ao trabalhar em uma desmontagem ou em um projeto com várias peças, o histórico permite consultar medidas sem digitá-las novamente e ajuda a construir uma lista de peças enquanto você trabalha.',
34
+ },
35
+ ];
36
+
37
+ const howToData = [
38
+ {
39
+ name: 'Selecione o tipo de medição',
40
+ text: 'Escolha "Direta" para converter uma fração em milímetros, ou "Inversa" para encontrar a fração de uma medida que você tirou com um paquímetro.',
41
+ },
42
+ {
43
+ name: 'Insira a medida',
44
+ text: 'Use a entrada de três colunas (inteiro, numerador, denominador) ou toque em um botão de ajuste rápido. Os botões de ajuste permitem alterar os valores sem digitar.',
45
+ },
46
+ {
47
+ name: 'Analise os resultados',
48
+ text: 'O resultado mostra a conversão exata, além dos tamanhos de parafusos e chaves padrão mais próximos. A escala visual ajuda a ter uma noção de proporção.',
49
+ },
50
+ {
51
+ name: 'Salve no histórico',
52
+ text: 'Clique em "Salvar no Histórico" para guardar as medições para referência futura. O histórico permanece no seu navegador, mesmo depois de fechá-lo.',
53
+ },
54
+ ];
55
+
56
+ const faqSchema: WithContext<FAQPage> = {
57
+ '@context': 'https://schema.org',
58
+ '@type': 'FAQPage',
59
+ mainEntity: faqData.map((item) => ({
60
+ '@type': 'Question',
61
+ name: item.question,
62
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
63
+ })),
64
+ };
65
+
66
+ const howToSchema: WithContext<HowToThing> = {
67
+ '@context': 'https://schema.org',
68
+ '@type': 'HowTo',
69
+ name: title,
70
+ description,
71
+ step: howToData.map((step, i) => ({
72
+ '@type': 'HowToStep',
73
+ position: i + 1,
74
+ name: step.name,
75
+ text: step.text,
76
+ })),
77
+ };
78
+
79
+ const appSchema: WithContext<SoftwareApplication> = {
80
+ '@context': 'https://schema.org',
81
+ '@type': 'SoftwareApplication',
82
+ name: title,
83
+ description,
84
+ applicationCategory: 'UtilityApplication',
85
+ operatingSystem: 'All',
86
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
87
+ inLanguage: 'pt',
88
+ };
89
+
90
+ export const content: ToolLocaleContent<WorkshopFractionConverterUI> = {
91
+ slug,
92
+ title,
93
+ description,
94
+ faqTitle: 'Perguntas Frequentes',
95
+ faq: faqData,
96
+ bibliography,
97
+ schemas: [faqSchema, howToSchema, appSchema],
98
+ seo: [
99
+ { title: 'FAQ', type: 'faq', schema: faqSchema },
100
+ { title: 'Como usar', type: 'howto', schema: howToSchema },
101
+ { title: 'Aplicação', type: 'app', schema: appSchema },
102
+ ],
103
+ ui: {
104
+ labelFraction: 'Tipo de Medição',
105
+ labelWhole: 'Inteiro',
106
+ labelNumerator: 'Numerador',
107
+ labelDenominator: 'Denominador',
108
+ labelInches: 'Polegadas',
109
+ labelMillimeters: 'Milímetros',
110
+ resultTitle: 'Resultado da Conversão',
111
+ resultFraction: 'Fração',
112
+ resultInches: 'Polegadas',
113
+ resultMillimeters: 'Milímetros',
114
+ matchTitle: 'Fixador Padrão mais Próximo',
115
+ matchClosestFastener: 'Tamanho de parafuso ou porca padrão',
116
+ matchClosestSocket: 'Tamanho de chave ou soquete padrão',
117
+ matchDifference: 'Diferença para sua medição',
118
+ matchRecommendation: 'Use este tamanho se disponível',
119
+ reverseSearchTitle: 'Busca Inversa',
120
+ reverseSearchLabel: 'Medida Tirada (mm)',
121
+ reverseSearchButton: 'Encontrar Fração',
122
+ reverseSearchHint: 'Meça com um paquímetro e insira o valor',
123
+ unitMm: 'mm',
124
+ unitInch: 'pol',
125
+ modeForward: 'Fração → Métrico',
126
+ modeReverse: 'Métrico → Fração',
127
+ precisionLabel: 'Modo de Precisão',
128
+ precisionCarpentry: 'Carpintaria',
129
+ precisionMetal: 'Metalurgia',
130
+ buttonConvert: 'Converter',
131
+ buttonClear: 'Limpar',
132
+ buttonCopyResult: 'Copiar Resultado',
133
+ buttonSaveToHistory: 'Salvar no Histórico',
134
+ historyTitle: 'Histórico',
135
+ historyEmpty: 'Nenhuma medição ainda',
136
+ historyRemove: 'Remover',
137
+ helpText: 'Selecione uma medida ou insira uma fração para começar.',
138
+ toolOverline: 'Ferramentas de Oficina',
139
+ labelVisualReference: 'Referência Visual (1 polegada = 96px)',
140
+ },
141
+ };