@jjlmoya/utils-chrono 1.2.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 (277) hide show
  1. package/package.json +65 -0
  2. package/scripts/postinstall.mjs +27 -0
  3. package/src/category/ChronoCategorySEO.astro +8 -0
  4. package/src/category/i18n/de.ts +23 -0
  5. package/src/category/i18n/en.ts +23 -0
  6. package/src/category/i18n/es.ts +23 -0
  7. package/src/category/i18n/fr.ts +23 -0
  8. package/src/category/i18n/id.ts +23 -0
  9. package/src/category/i18n/it.ts +23 -0
  10. package/src/category/i18n/ja.ts +23 -0
  11. package/src/category/i18n/ko.ts +23 -0
  12. package/src/category/i18n/nl.ts +23 -0
  13. package/src/category/i18n/pl.ts +23 -0
  14. package/src/category/i18n/pt.ts +23 -0
  15. package/src/category/i18n/ru.ts +23 -0
  16. package/src/category/i18n/sv.ts +23 -0
  17. package/src/category/i18n/tr.ts +23 -0
  18. package/src/category/i18n/zh.ts +23 -0
  19. package/src/category/index.ts +42 -0
  20. package/src/components/PreviewNavSidebar.astro +116 -0
  21. package/src/components/PreviewToolbar.astro +143 -0
  22. package/src/data.ts +11 -0
  23. package/src/entries.ts +32 -0
  24. package/src/env.d.ts +5 -0
  25. package/src/index.ts +28 -0
  26. package/src/layouts/PreviewLayout.astro +117 -0
  27. package/src/pages/[locale]/[slug].astro +161 -0
  28. package/src/pages/[locale].astro +251 -0
  29. package/src/pages/index.astro +4 -0
  30. package/src/tests/faq_count.test.ts +19 -0
  31. package/src/tests/i18n_coverage.test.ts +36 -0
  32. package/src/tests/locale_completeness.test.ts +29 -0
  33. package/src/tests/mocks/astro_mock.js +2 -0
  34. package/src/tests/no_h1_in_components.test.ts +48 -0
  35. package/src/tests/schemas_fulfillment.test.ts +23 -0
  36. package/src/tests/seo_length.test.ts +22 -0
  37. package/src/tests/shared-test-helpers.ts +56 -0
  38. package/src/tests/slug_language_code_format.test.ts +23 -0
  39. package/src/tests/slug_uniqueness.test.ts +81 -0
  40. package/src/tests/title_quality.test.ts +55 -0
  41. package/src/tests/tool_exports.test.ts +34 -0
  42. package/src/tests/tool_validation.test.ts +18 -0
  43. package/src/tool/beat-rate-converter/beat-rate-converter.css +301 -0
  44. package/src/tool/beat-rate-converter/bibliography.astro +16 -0
  45. package/src/tool/beat-rate-converter/bibliography.ts +12 -0
  46. package/src/tool/beat-rate-converter/client.ts +46 -0
  47. package/src/tool/beat-rate-converter/component.astro +15 -0
  48. package/src/tool/beat-rate-converter/components/ConverterPanel.astro +87 -0
  49. package/src/tool/beat-rate-converter/entry.ts +42 -0
  50. package/src/tool/beat-rate-converter/i18n/de.ts +138 -0
  51. package/src/tool/beat-rate-converter/i18n/en.ts +138 -0
  52. package/src/tool/beat-rate-converter/i18n/es.ts +138 -0
  53. package/src/tool/beat-rate-converter/i18n/fr.ts +138 -0
  54. package/src/tool/beat-rate-converter/i18n/id.ts +138 -0
  55. package/src/tool/beat-rate-converter/i18n/it.ts +138 -0
  56. package/src/tool/beat-rate-converter/i18n/ja.ts +138 -0
  57. package/src/tool/beat-rate-converter/i18n/ko.ts +138 -0
  58. package/src/tool/beat-rate-converter/i18n/nl.ts +138 -0
  59. package/src/tool/beat-rate-converter/i18n/pl.ts +138 -0
  60. package/src/tool/beat-rate-converter/i18n/pt.ts +138 -0
  61. package/src/tool/beat-rate-converter/i18n/ru.ts +138 -0
  62. package/src/tool/beat-rate-converter/i18n/sv.ts +138 -0
  63. package/src/tool/beat-rate-converter/i18n/tr.ts +138 -0
  64. package/src/tool/beat-rate-converter/i18n/zh.ts +138 -0
  65. package/src/tool/beat-rate-converter/index.ts +11 -0
  66. package/src/tool/beat-rate-converter/seo.astro +16 -0
  67. package/src/tool/crown-reference-guide/bibliography.astro +16 -0
  68. package/src/tool/crown-reference-guide/bibliography.ts +20 -0
  69. package/src/tool/crown-reference-guide/client.ts +193 -0
  70. package/src/tool/crown-reference-guide/component.astro +69 -0
  71. package/src/tool/crown-reference-guide/components/CrownView.astro +40 -0
  72. package/src/tool/crown-reference-guide/components/MovementSelector.astro +26 -0
  73. package/src/tool/crown-reference-guide/components/PositionPanel.astro +59 -0
  74. package/src/tool/crown-reference-guide/crown-reference-guide.css +383 -0
  75. package/src/tool/crown-reference-guide/entry.ts +60 -0
  76. package/src/tool/crown-reference-guide/i18n/de.ts +207 -0
  77. package/src/tool/crown-reference-guide/i18n/en.ts +207 -0
  78. package/src/tool/crown-reference-guide/i18n/es.ts +207 -0
  79. package/src/tool/crown-reference-guide/i18n/fr.ts +207 -0
  80. package/src/tool/crown-reference-guide/i18n/id.ts +207 -0
  81. package/src/tool/crown-reference-guide/i18n/it.ts +207 -0
  82. package/src/tool/crown-reference-guide/i18n/ja.ts +207 -0
  83. package/src/tool/crown-reference-guide/i18n/ko.ts +207 -0
  84. package/src/tool/crown-reference-guide/i18n/nl.ts +207 -0
  85. package/src/tool/crown-reference-guide/i18n/pl.ts +207 -0
  86. package/src/tool/crown-reference-guide/i18n/pt.ts +207 -0
  87. package/src/tool/crown-reference-guide/i18n/ru.ts +207 -0
  88. package/src/tool/crown-reference-guide/i18n/sv.ts +207 -0
  89. package/src/tool/crown-reference-guide/i18n/tr.ts +207 -0
  90. package/src/tool/crown-reference-guide/i18n/zh.ts +207 -0
  91. package/src/tool/crown-reference-guide/index.ts +11 -0
  92. package/src/tool/crown-reference-guide/seo.astro +16 -0
  93. package/src/tool/crown-reference-guide/utils.ts +0 -0
  94. package/src/tool/demagnetizing-timer/bibliography.astro +16 -0
  95. package/src/tool/demagnetizing-timer/bibliography.ts +12 -0
  96. package/src/tool/demagnetizing-timer/client.ts +221 -0
  97. package/src/tool/demagnetizing-timer/component.astro +15 -0
  98. package/src/tool/demagnetizing-timer/components/TimerPanel.astro +92 -0
  99. package/src/tool/demagnetizing-timer/demagnetizing-timer.css +389 -0
  100. package/src/tool/demagnetizing-timer/entry.ts +50 -0
  101. package/src/tool/demagnetizing-timer/helpers/field.ts +134 -0
  102. package/src/tool/demagnetizing-timer/i18n/de.ts +143 -0
  103. package/src/tool/demagnetizing-timer/i18n/en.ts +143 -0
  104. package/src/tool/demagnetizing-timer/i18n/es.ts +143 -0
  105. package/src/tool/demagnetizing-timer/i18n/fr.ts +143 -0
  106. package/src/tool/demagnetizing-timer/i18n/id.ts +143 -0
  107. package/src/tool/demagnetizing-timer/i18n/it.ts +143 -0
  108. package/src/tool/demagnetizing-timer/i18n/ja.ts +143 -0
  109. package/src/tool/demagnetizing-timer/i18n/ko.ts +143 -0
  110. package/src/tool/demagnetizing-timer/i18n/nl.ts +143 -0
  111. package/src/tool/demagnetizing-timer/i18n/pl.ts +143 -0
  112. package/src/tool/demagnetizing-timer/i18n/pt.ts +143 -0
  113. package/src/tool/demagnetizing-timer/i18n/ru.ts +143 -0
  114. package/src/tool/demagnetizing-timer/i18n/sv.ts +143 -0
  115. package/src/tool/demagnetizing-timer/i18n/tr.ts +143 -0
  116. package/src/tool/demagnetizing-timer/i18n/zh.ts +143 -0
  117. package/src/tool/demagnetizing-timer/index.ts +11 -0
  118. package/src/tool/demagnetizing-timer/seo.astro +16 -0
  119. package/src/tool/demagnetizing-timer/utils.ts +0 -0
  120. package/src/tool/power-reserve-estimator/bibliography.astro +16 -0
  121. package/src/tool/power-reserve-estimator/bibliography.ts +16 -0
  122. package/src/tool/power-reserve-estimator/client.ts +139 -0
  123. package/src/tool/power-reserve-estimator/component.astro +15 -0
  124. package/src/tool/power-reserve-estimator/components/EstimatorPanel.astro +150 -0
  125. package/src/tool/power-reserve-estimator/entry.ts +51 -0
  126. package/src/tool/power-reserve-estimator/i18n/de.ts +158 -0
  127. package/src/tool/power-reserve-estimator/i18n/en.ts +158 -0
  128. package/src/tool/power-reserve-estimator/i18n/es.ts +158 -0
  129. package/src/tool/power-reserve-estimator/i18n/fr.ts +158 -0
  130. package/src/tool/power-reserve-estimator/i18n/id.ts +158 -0
  131. package/src/tool/power-reserve-estimator/i18n/it.ts +158 -0
  132. package/src/tool/power-reserve-estimator/i18n/ja.ts +158 -0
  133. package/src/tool/power-reserve-estimator/i18n/ko.ts +158 -0
  134. package/src/tool/power-reserve-estimator/i18n/nl.ts +158 -0
  135. package/src/tool/power-reserve-estimator/i18n/pl.ts +158 -0
  136. package/src/tool/power-reserve-estimator/i18n/pt.ts +158 -0
  137. package/src/tool/power-reserve-estimator/i18n/ru.ts +158 -0
  138. package/src/tool/power-reserve-estimator/i18n/sv.ts +158 -0
  139. package/src/tool/power-reserve-estimator/i18n/tr.ts +158 -0
  140. package/src/tool/power-reserve-estimator/i18n/zh.ts +158 -0
  141. package/src/tool/power-reserve-estimator/index.ts +11 -0
  142. package/src/tool/power-reserve-estimator/power-reserve-estimator.css +402 -0
  143. package/src/tool/power-reserve-estimator/seo.astro +16 -0
  144. package/src/tool/strap-taper-calculator/bibliography.astro +16 -0
  145. package/src/tool/strap-taper-calculator/bibliography.ts +12 -0
  146. package/src/tool/strap-taper-calculator/client.ts +129 -0
  147. package/src/tool/strap-taper-calculator/component.astro +15 -0
  148. package/src/tool/strap-taper-calculator/components/CalculatorPanel.astro +114 -0
  149. package/src/tool/strap-taper-calculator/entry.ts +56 -0
  150. package/src/tool/strap-taper-calculator/i18n/de.ts +152 -0
  151. package/src/tool/strap-taper-calculator/i18n/en.ts +152 -0
  152. package/src/tool/strap-taper-calculator/i18n/es.ts +152 -0
  153. package/src/tool/strap-taper-calculator/i18n/fr.ts +152 -0
  154. package/src/tool/strap-taper-calculator/i18n/id.ts +152 -0
  155. package/src/tool/strap-taper-calculator/i18n/it.ts +152 -0
  156. package/src/tool/strap-taper-calculator/i18n/ja.ts +152 -0
  157. package/src/tool/strap-taper-calculator/i18n/ko.ts +152 -0
  158. package/src/tool/strap-taper-calculator/i18n/nl.ts +152 -0
  159. package/src/tool/strap-taper-calculator/i18n/pl.ts +152 -0
  160. package/src/tool/strap-taper-calculator/i18n/pt.ts +152 -0
  161. package/src/tool/strap-taper-calculator/i18n/ru.ts +152 -0
  162. package/src/tool/strap-taper-calculator/i18n/sv.ts +152 -0
  163. package/src/tool/strap-taper-calculator/i18n/tr.ts +152 -0
  164. package/src/tool/strap-taper-calculator/i18n/zh.ts +152 -0
  165. package/src/tool/strap-taper-calculator/index.ts +11 -0
  166. package/src/tool/strap-taper-calculator/seo.astro +16 -0
  167. package/src/tool/strap-taper-calculator/strap-taper-calculator.css +320 -0
  168. package/src/tool/watch-accuracy-tracker/bibliography.astro +16 -0
  169. package/src/tool/watch-accuracy-tracker/bibliography.ts +12 -0
  170. package/src/tool/watch-accuracy-tracker/chart.ts +126 -0
  171. package/src/tool/watch-accuracy-tracker/client.ts +287 -0
  172. package/src/tool/watch-accuracy-tracker/component.astro +35 -0
  173. package/src/tool/watch-accuracy-tracker/components/AccuracyTracker.astro +96 -0
  174. package/src/tool/watch-accuracy-tracker/components/DriftPredictor.astro +126 -0
  175. package/src/tool/watch-accuracy-tracker/components/LogHistory.astro +66 -0
  176. package/src/tool/watch-accuracy-tracker/entry.ts +94 -0
  177. package/src/tool/watch-accuracy-tracker/i18n/de.ts +167 -0
  178. package/src/tool/watch-accuracy-tracker/i18n/en.ts +167 -0
  179. package/src/tool/watch-accuracy-tracker/i18n/es.ts +167 -0
  180. package/src/tool/watch-accuracy-tracker/i18n/fr.ts +167 -0
  181. package/src/tool/watch-accuracy-tracker/i18n/id.ts +167 -0
  182. package/src/tool/watch-accuracy-tracker/i18n/it.ts +167 -0
  183. package/src/tool/watch-accuracy-tracker/i18n/ja.ts +167 -0
  184. package/src/tool/watch-accuracy-tracker/i18n/ko.ts +167 -0
  185. package/src/tool/watch-accuracy-tracker/i18n/nl.ts +167 -0
  186. package/src/tool/watch-accuracy-tracker/i18n/pl.ts +167 -0
  187. package/src/tool/watch-accuracy-tracker/i18n/pt.ts +167 -0
  188. package/src/tool/watch-accuracy-tracker/i18n/ru.ts +167 -0
  189. package/src/tool/watch-accuracy-tracker/i18n/sv.ts +167 -0
  190. package/src/tool/watch-accuracy-tracker/i18n/tr.ts +167 -0
  191. package/src/tool/watch-accuracy-tracker/i18n/zh.ts +167 -0
  192. package/src/tool/watch-accuracy-tracker/index.ts +9 -0
  193. package/src/tool/watch-accuracy-tracker/logger.ts +105 -0
  194. package/src/tool/watch-accuracy-tracker/seo.astro +16 -0
  195. package/src/tool/watch-accuracy-tracker/utils.ts +99 -0
  196. package/src/tool/watch-accuracy-tracker/watch-accuracy-tracker.css +564 -0
  197. package/src/tool/watch-savings-planner/bibliography.astro +16 -0
  198. package/src/tool/watch-savings-planner/bibliography.ts +8 -0
  199. package/src/tool/watch-savings-planner/client.ts +271 -0
  200. package/src/tool/watch-savings-planner/component.astro +33 -0
  201. package/src/tool/watch-savings-planner/components/AddGoalForm.astro +49 -0
  202. package/src/tool/watch-savings-planner/components/GoalCard.astro +58 -0
  203. package/src/tool/watch-savings-planner/entry.ts +62 -0
  204. package/src/tool/watch-savings-planner/i18n/de.ts +153 -0
  205. package/src/tool/watch-savings-planner/i18n/en.ts +155 -0
  206. package/src/tool/watch-savings-planner/i18n/es.ts +153 -0
  207. package/src/tool/watch-savings-planner/i18n/fr.ts +153 -0
  208. package/src/tool/watch-savings-planner/i18n/id.ts +153 -0
  209. package/src/tool/watch-savings-planner/i18n/it.ts +153 -0
  210. package/src/tool/watch-savings-planner/i18n/ja.ts +153 -0
  211. package/src/tool/watch-savings-planner/i18n/ko.ts +153 -0
  212. package/src/tool/watch-savings-planner/i18n/nl.ts +153 -0
  213. package/src/tool/watch-savings-planner/i18n/pl.ts +153 -0
  214. package/src/tool/watch-savings-planner/i18n/pt.ts +153 -0
  215. package/src/tool/watch-savings-planner/i18n/ru.ts +153 -0
  216. package/src/tool/watch-savings-planner/i18n/sv.ts +153 -0
  217. package/src/tool/watch-savings-planner/i18n/tr.ts +153 -0
  218. package/src/tool/watch-savings-planner/i18n/zh.ts +153 -0
  219. package/src/tool/watch-savings-planner/index.ts +11 -0
  220. package/src/tool/watch-savings-planner/seo.astro +16 -0
  221. package/src/tool/watch-savings-planner/utils.ts +0 -0
  222. package/src/tool/watch-savings-planner/watch-savings-planner.css +460 -0
  223. package/src/tool/water-resistance-converter/bibliography.astro +16 -0
  224. package/src/tool/water-resistance-converter/bibliography.ts +16 -0
  225. package/src/tool/water-resistance-converter/client.ts +56 -0
  226. package/src/tool/water-resistance-converter/component.astro +15 -0
  227. package/src/tool/water-resistance-converter/components/ConverterPanel.astro +113 -0
  228. package/src/tool/water-resistance-converter/entry.ts +52 -0
  229. package/src/tool/water-resistance-converter/i18n/de.ts +148 -0
  230. package/src/tool/water-resistance-converter/i18n/en.ts +148 -0
  231. package/src/tool/water-resistance-converter/i18n/es.ts +148 -0
  232. package/src/tool/water-resistance-converter/i18n/fr.ts +148 -0
  233. package/src/tool/water-resistance-converter/i18n/id.ts +148 -0
  234. package/src/tool/water-resistance-converter/i18n/it.ts +148 -0
  235. package/src/tool/water-resistance-converter/i18n/ja.ts +148 -0
  236. package/src/tool/water-resistance-converter/i18n/ko.ts +148 -0
  237. package/src/tool/water-resistance-converter/i18n/nl.ts +148 -0
  238. package/src/tool/water-resistance-converter/i18n/pl.ts +148 -0
  239. package/src/tool/water-resistance-converter/i18n/pt.ts +148 -0
  240. package/src/tool/water-resistance-converter/i18n/ru.ts +148 -0
  241. package/src/tool/water-resistance-converter/i18n/sv.ts +148 -0
  242. package/src/tool/water-resistance-converter/i18n/tr.ts +148 -0
  243. package/src/tool/water-resistance-converter/i18n/zh.ts +148 -0
  244. package/src/tool/water-resistance-converter/index.ts +11 -0
  245. package/src/tool/water-resistance-converter/seo.astro +16 -0
  246. package/src/tool/water-resistance-converter/water-resistance-converter.css +254 -0
  247. package/src/tool/wrist-presence-calculator/bibliography.astro +16 -0
  248. package/src/tool/wrist-presence-calculator/bibliography.ts +12 -0
  249. package/src/tool/wrist-presence-calculator/client.ts +180 -0
  250. package/src/tool/wrist-presence-calculator/component.astro +23 -0
  251. package/src/tool/wrist-presence-calculator/components/CalculatorInputs.astro +97 -0
  252. package/src/tool/wrist-presence-calculator/components/FitResult.astro +68 -0
  253. package/src/tool/wrist-presence-calculator/components/Visualizer.astro +16 -0
  254. package/src/tool/wrist-presence-calculator/entry.ts +59 -0
  255. package/src/tool/wrist-presence-calculator/helpers/canvas.ts +189 -0
  256. package/src/tool/wrist-presence-calculator/helpers/results.ts +78 -0
  257. package/src/tool/wrist-presence-calculator/i18n/de.ts +139 -0
  258. package/src/tool/wrist-presence-calculator/i18n/en.ts +155 -0
  259. package/src/tool/wrist-presence-calculator/i18n/es.ts +139 -0
  260. package/src/tool/wrist-presence-calculator/i18n/fr.ts +139 -0
  261. package/src/tool/wrist-presence-calculator/i18n/id.ts +139 -0
  262. package/src/tool/wrist-presence-calculator/i18n/it.ts +139 -0
  263. package/src/tool/wrist-presence-calculator/i18n/ja.ts +139 -0
  264. package/src/tool/wrist-presence-calculator/i18n/ko.ts +139 -0
  265. package/src/tool/wrist-presence-calculator/i18n/nl.ts +139 -0
  266. package/src/tool/wrist-presence-calculator/i18n/pl.ts +139 -0
  267. package/src/tool/wrist-presence-calculator/i18n/pt.ts +139 -0
  268. package/src/tool/wrist-presence-calculator/i18n/ru.ts +139 -0
  269. package/src/tool/wrist-presence-calculator/i18n/sv.ts +139 -0
  270. package/src/tool/wrist-presence-calculator/i18n/tr.ts +139 -0
  271. package/src/tool/wrist-presence-calculator/i18n/zh.ts +155 -0
  272. package/src/tool/wrist-presence-calculator/index.ts +11 -0
  273. package/src/tool/wrist-presence-calculator/seo.astro +16 -0
  274. package/src/tool/wrist-presence-calculator/utils.ts +30 -0
  275. package/src/tool/wrist-presence-calculator/wrist-presence-calculator.css +372 -0
  276. package/src/tools.ts +26 -0
  277. package/src/types.ts +70 -0
@@ -0,0 +1,148 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import type { WaterResistanceConverterUI } from '../entry';
3
+ import { bibliography } from '../bibliography';
4
+
5
+ export const content: ToolLocaleContent<WaterResistanceConverterUI> = {
6
+ slug: 'vattenbestandighet-omvandlare',
7
+ title: 'Klocka Vattenbeständighet Omvandlare — Meter, ATM, Bar & Fot',
8
+ description: 'Omvandla klockors vattenbeständighetsklasser mellan meter, fot, ATM och bar. Se vad varje klass faktiskt innebär för vardagligt bruk, simning och dykning.',
9
+ ui: {
10
+ title: 'Vattenbeständighet Omvandlare',
11
+ depthLabel: 'Vattenbeständighet',
12
+ enterDepth: 'Ange djupklass',
13
+ unitMeters: 'Meter (m)',
14
+ unitFeet: 'Fot (ft)',
15
+ unitATM: 'Atmosfärer (ATM)',
16
+ unitBar: 'Bar (bar)',
17
+ convertedValues: 'Motsvarande Värden',
18
+ ratingLabel: 'Klass',
19
+ whatItMeans: 'Vad Det Betyder',
20
+ notWaterResistant: 'Inte Vattenbeständig',
21
+ notWaterResistantDesc: 'Inga stänk. Håll borta från vatten helt och hållet.',
22
+ handWash: 'Stänktålig',
23
+ handWashDesc: 'Handtvätt, regn, lätta stänk. Ingen simning, ingen dusch.',
24
+ showerSwim: 'Dusch och Ytsimning',
25
+ showerSwimDesc: 'Duscha, ytsimning i bassäng. Ingen dykning eller snorkling.',
26
+ snorkeling: 'Simning och Snorkling',
27
+ snorkelingDesc: 'Bassängsimning, snorkling, vattensport. Utmärkt daglig beständighet.',
28
+ scubaDiving: 'Rekreationsdykning',
29
+ scubaDivingDesc: 'Sportdykning, högintensiva marina aktiviteter. ISO kompatibel.',
30
+ saturationDiving: 'Djup / Mättnadsdykning',
31
+ saturationDivingDesc: 'Professionell mättnadsdykning. Extrema djup. Heliumventil kontext.',
32
+ tipTitle: 'Tips',
33
+ tipContent: 'Vattenbeständighet försämras med tiden. Packningar och tätningar bör testas årligen och bytas ut var 3\u20135 år.',
34
+ },
35
+ seo: [
36
+ { type: 'title', text: 'Klocka Vattenbeständighet Omvandlare — Avkoda Meter, ATM, Bar & Fot', level: 2 },
37
+ { type: 'paragraph', html: 'En vattenbeständighetsklass på 30 meter betyder inte att du kan dyka till 30 meter. Det betyder att klockan klarar stänk och lätt regn. Denna omvandlare översätter mellan <strong>meter, fot, atmosfärer (ATM) och bar</strong> och talar om vad varje klass faktiskt tillåter.' },
38
+ { type: 'title', text: 'Sanningen Om Vattenbeständighetsklasser', level: 3 },
39
+ { type: 'paragraph', html: 'Klockors vattenbeständighet testas under statiskt tryck i ett laboratorium. Verkliga förhållanden — att röra armen, dyka, temperaturförändringar — skapar dynamiskt tryck som är mycket högre. En 30m / 3 ATM klocka är endast stänktålig. För simning behöver du minst 100m / 10 ATM. För sportdykning är 200m / 20 ATM standard ingångsnivån.' },
40
+ { type: 'title', text: 'Varför Vattenbeständighet Försämras Över Tid', level: 3 },
41
+ { type: 'paragraph', html: 'Gummipackningarna och O-ringarna som tätar din klocka torkar ut, spricker och komprimeras med tiden. Värme, UV-ljus och kemikalier accelererar denna process. En klocka som en gång var vattenbeständig till 100m kan efter 5 år utan service endast vara stänktålig. Låt dina tätningar testas årligen och bytas ut var 3 till 5 år.' },
42
+ { type: 'title', text: 'ISO 6425 — Standard för Dykarklockor', level: 3 },
43
+ { type: 'paragraph', html: 'För att en klocka ska kallas "dykarklocka" måste den uppfylla ISO 6425 standarder: minst 100m vattenbeständighet, en enkelriktad ring, självlysande markeringar och en skruvkrona. Klockor som uppfyller denna standard testas 25% över sitt klassade djup. En ISO certifierad 200m klocka testas vid 250m.' },
44
+ ],
45
+ faq: [
46
+ {
47
+ question: 'Kan jag simma med en 30 meter vattenbeständig klocka?',
48
+ answer: 'Nej. En 30m / 3 ATM klass innebär endast stänktålighet — handtvätt, regn och svett. Simning skapar dynamiskt tryck som överstiger det statiska testtrycket. För simning, välj minst 100m / 10 ATM.',
49
+ },
50
+ {
51
+ question: 'Vad är skillnaden mellan ATM, bar och meter?',
52
+ answer: '1 ATM = 1 bar ≈ 10 meter statisk vattenpelare. Inom klockindustrin är de i huvudsak likvärdiga. En 10 ATM klocka är samma som en 10 bar klocka och är klassad till cirka 100 meter.',
53
+ },
54
+ {
55
+ question: 'Hur ofta bör jag testa min klockas vattenbeständighet?',
56
+ answer: 'En gång om året, särskilt före vattenexponering. Packningar och tätningar slits ut. Var 3-5 år bör alla tätningar bytas ut vid en full service.',
57
+ },
58
+ {
59
+ question: 'Vad innebär ISO 6425 certifiering?',
60
+ answer: 'ISO 6425 är den internationella standarden för dykarklockor. Den kräver minst 100m beständighet, en enkelriktad ring, självlysande markeringar och testning 25% över det klassade djupet.',
61
+ },
62
+ ],
63
+ bibliography,
64
+ howTo: [
65
+ {
66
+ name: 'Ange din klass',
67
+ text: 'Skriv in din klockas vattenbeständighetsnummer och välj enhet (meter, fot, ATM eller bar).',
68
+ },
69
+ {
70
+ name: 'Läs motsvarigheterna',
71
+ text: 'Kortet visar de omvandlade värdena i alla fyra enheterna samtidigt.',
72
+ },
73
+ {
74
+ name: 'Kontrollera rekommendationen',
75
+ text: 'Det markerade kortet visar vilka aktiviteter som är säkra med din klockas klass.',
76
+ },
77
+ ],
78
+ schemas: [
79
+ {
80
+ '@context': 'https://schema.org',
81
+ '@type': 'FAQPage',
82
+ 'mainEntity': [
83
+ {
84
+ '@type': 'Question',
85
+ 'name': 'Kan jag simma med en 30 meter vattenbeständig klocka?',
86
+ 'acceptedAnswer': {
87
+ '@type': 'Answer',
88
+ 'text': 'Nej. En 30m / 3 ATM klass innebär endast stänktålighet — handtvätt, regn och svett. För simning, välj minst 100m / 10 ATM.',
89
+ },
90
+ },
91
+ {
92
+ '@type': 'Question',
93
+ 'name': 'Vad är skillnaden mellan ATM, bar och meter?',
94
+ 'acceptedAnswer': {
95
+ '@type': 'Answer',
96
+ 'text': '1 ATM = 1 bar ≈ 10 meter statisk vattenpelare. Inom klockindustrin är de i huvudsak likvärdiga.',
97
+ },
98
+ },
99
+ {
100
+ '@type': 'Question',
101
+ 'name': 'Hur ofta bör jag testa min klockas vattenbeständighet?',
102
+ 'acceptedAnswer': {
103
+ '@type': 'Answer',
104
+ 'text': 'En gång om året, särskilt före vattenexponering. Var 3-5 år bör alla tätningar bytas ut vid en full service.',
105
+ },
106
+ },
107
+ {
108
+ '@type': 'Question',
109
+ 'name': 'Vad innebär ISO 6425 certifiering?',
110
+ 'acceptedAnswer': {
111
+ '@type': 'Answer',
112
+ 'text': 'ISO 6425 kräver minst 100m beständighet, en enkelriktad ring, självlysande markeringar och testning 25% över det klassade djupet.',
113
+ },
114
+ },
115
+ ],
116
+ },
117
+ {
118
+ '@context': 'https://schema.org',
119
+ '@type': 'SoftwareApplication',
120
+ 'name': 'Klocka Vattenbeständighet Omvandlare',
121
+ 'operatingSystem': 'Alla',
122
+ 'applicationCategory': 'UtilitiesApplication',
123
+ 'browserRequirements': 'Kräver HTML5. Kräver JavaScript.',
124
+ },
125
+ {
126
+ '@context': 'https://schema.org',
127
+ '@type': 'HowTo',
128
+ 'name': 'Hur man omvandlar klockors vattenbeständighetsklasser',
129
+ 'step': [
130
+ {
131
+ '@type': 'HowToStep',
132
+ 'name': 'Ange din klass',
133
+ 'text': 'Skriv in din klockas vattenbeständighetsnummer och välj enhet.',
134
+ },
135
+ {
136
+ '@type': 'HowToStep',
137
+ 'name': 'Läs motsvarigheterna',
138
+ 'text': 'Kortet visar de omvandlade värdena i alla fyra enheterna samtidigt.',
139
+ },
140
+ {
141
+ '@type': 'HowToStep',
142
+ 'name': 'Kontrollera rekommendationen',
143
+ 'text': 'Det markerade kortet visar vilka aktiviteter som är säkra med din klockas klass.',
144
+ },
145
+ ],
146
+ },
147
+ ],
148
+ };
@@ -0,0 +1,148 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import type { WaterResistanceConverterUI } from '../entry';
3
+ import { bibliography } from '../bibliography';
4
+
5
+ export const content: ToolLocaleContent<WaterResistanceConverterUI> = {
6
+ slug: 'su-direnci-donusturucu',
7
+ title: 'Saat Su Direnci Dönüştürücü — Metre, ATM, Bar & Fit',
8
+ description: 'Saat su direnci değerlerini metre, fit, ATM ve bar arasında dönüştürün. Günlük kullanım, yüzme ve dalışta her değerin aslında ne anlama geldiğini görün.',
9
+ ui: {
10
+ title: 'Su Direnci Dönüştürücü',
11
+ depthLabel: 'Su Direnci',
12
+ enterDepth: 'Derinlik değerini girin',
13
+ unitMeters: 'Metre (m)',
14
+ unitFeet: 'Fit (ft)',
15
+ unitATM: 'Atmosfer (ATM)',
16
+ unitBar: 'Bar (bar)',
17
+ convertedValues: 'Eşdeğer Değerler',
18
+ ratingLabel: 'Değer',
19
+ whatItMeans: 'Anlamı',
20
+ notWaterResistant: 'Su Geçirmez Değil',
21
+ notWaterResistantDesc: 'Su sıçraması bile olmamalı. Sudan tamamen uzak tutun.',
22
+ handWash: 'Sıçramaya Dayanıklı',
23
+ handWashDesc: 'El yıkama, yağmur, hafif sıçramalar. Yüzme veya duş yok.',
24
+ showerSwim: 'Duş ve Yüzey Yüzmesi',
25
+ showerSwimDesc: 'Duş alma, sığ havuzda yüzme. Dalış veya şnorkel yok.',
26
+ snorkeling: 'Yüzme ve Şnorkel',
27
+ snorkelingDesc: 'Havuzda yüzme, şnorkel, su sporları. Günlük kullanımda mükemmel direnç.',
28
+ scubaDiving: 'Rekreasyonel Dalış',
29
+ scubaDivingDesc: 'Tüplü dalış, yüksek etkili deniz aktiviteleri. ISO uyumlu.',
30
+ saturationDiving: 'Derin / Satürasyon Dalışı',
31
+ saturationDivingDesc: 'Profesyonel satürasyon dalışı. Aşırı derinlikler. Helyum kaçış vanası bağlamı.',
32
+ tipTitle: 'İpucu',
33
+ tipContent: 'Su direnci zamanla azalır. Contalar yıllık olarak test edilmeli ve her 3\u20135 yılda bir değiştirilmelidir.',
34
+ },
35
+ seo: [
36
+ { type: 'title', text: 'Saat Su Direnci Dönüştürücü — Metre, ATM, Bar & Fit değerlerini anlama', level: 2 },
37
+ { type: 'paragraph', html: '30 metrelik su direnci değeri, 30 metreye dalabileceğiniz anlamına gelmez. Saatin su sıçramalarına ve hafif yağmura dayanabileceği anlamına gelir. Bu dönüştürücü <strong>metre, fit, atmosfer (ATM) ve bar</strong> arasında çeviri yapar ve her değerin aslında neye izin verdiğini söyler.' },
38
+ { type: 'title', text: 'Su Direnci Değerleri Hakkında Gerçekler', level: 3 },
39
+ { type: 'paragraph', html: 'Saat su direnci laboratuvar ortamında statik basınç altında test edilir. Gerçek dünya koşulları — kol hareketi, dalış, sıcaklık değişimleri — çok daha yüksek dinamik basınç oluşturur. 30m / 3 ATM bir saat yalnızca sıçramaya dayanıklıdır. Yüzmek için en az 100m / 10 ATM gerekir. Tüplü dalış için 200m / 20 ATM standart giriş seviyesidir.' },
40
+ { type: 'title', text: 'Su Direnci Zamanla Neden Azalır', level: 3 },
41
+ { type: 'paragraph', html: 'Saatinizi sızdırmaz hale getiren lastik contalar ve O-ringler zamanla kurur, çatlar ve sıkışır. Isı, UV ışığı ve kimyasallar bu süreci hızlandırır. Eskiden 100m su geçirmez olan bir saat, 5 yıl bakım yapılmadığında yalnızca sıçramaya dayanıklı hale gelebilir. Contalarınızı yıllık olarak test ettirin ve her 3 ila 5 yılda bir değiştirin.' },
42
+ { type: 'title', text: 'ISO 6425 — Dalgıç Saati Standardı', level: 3 },
43
+ { type: 'paragraph', html: 'Bir saatin "dalgıç saati" olarak adlandırılması için ISO 6425 standartlarını karşılaması gerekir: en az 100m su direnci, tek yönlü döner bezel, fosforlu işaretler ve vidalı kurma kolu. Bu standardı karşılayan saatler, belirtilen derinliğin %25 üzerinde test edilir. 200m ISO sertifikalı bir saat 250mde test edilir.' },
44
+ ],
45
+ faq: [
46
+ {
47
+ question: '30 metre su geçirmez bir saatle yüzebilir miyim?',
48
+ answer: 'Hayır. 30m / 3 ATM değeri yalnızca sıçrama direnci anlamına gelir — el yıkama, yağmur ve ter. Yüzme, statik test basıncını aşan dinamik basınç oluşturur. Yüzmek için en az 100m / 10 ATM seçin.',
49
+ },
50
+ {
51
+ question: 'ATM, bar ve metre arasındaki fark nedir?',
52
+ answer: '1 ATM = 1 bar ≈ 10 metre statik su sütunudur. Saat endüstrisinde temelde eşdeğerdirler. 10 ATM saat, 10 bar saat ile aynıdır ve yaklaşık 100 metre için derecelendirilmiştir.',
53
+ },
54
+ {
55
+ question: 'Saatimin su direncini ne sıklıkta test ettirmeliyim?',
56
+ answer: 'Yılda bir kez, özellikle suyla temastan önce. Contalar aşınır. Her 3-5 yılda bir, tüm contalar tam bakım sırasında değiştirilmelidir.',
57
+ },
58
+ {
59
+ question: 'ISO 6425 sertifikası ne anlama gelir?',
60
+ answer: 'ISO 6425, dalgıç saatleri için uluslararası standarttır. En az 100m direnç, tek yönlü döner bezel, fosforlu işaretler ve belirtilen derinliğin %25 üzerinde test gerektirir.',
61
+ },
62
+ ],
63
+ bibliography,
64
+ howTo: [
65
+ {
66
+ name: 'Değerinizi girin',
67
+ text: 'Saatinizin su direnci numarasını yazın ve birimi seçin (metre, fit, ATM veya bar).',
68
+ },
69
+ {
70
+ name: 'Eşdeğerleri okuyun',
71
+ text: 'Kart, dört birimdeki dönüştürülmüş değerleri aynı anda gösterir.',
72
+ },
73
+ {
74
+ name: 'Öneriyi kontrol edin',
75
+ text: 'Vurgulanan kart, saatinizin değerinde hangi aktivitelerin güvenli olduğunu gösterir.',
76
+ },
77
+ ],
78
+ schemas: [
79
+ {
80
+ '@context': 'https://schema.org',
81
+ '@type': 'FAQPage',
82
+ 'mainEntity': [
83
+ {
84
+ '@type': 'Question',
85
+ 'name': '30 metre su geçirmez bir saatle yüzebilir miyim?',
86
+ 'acceptedAnswer': {
87
+ '@type': 'Answer',
88
+ 'text': 'Hayır. 30m / 3 ATM değeri yalnızca sıçrama direnci anlamına gelir — el yıkama, yağmur ve ter. Yüzmek için en az 100m / 10 ATM seçin.',
89
+ },
90
+ },
91
+ {
92
+ '@type': 'Question',
93
+ 'name': 'ATM, bar ve metre arasındaki fark nedir?',
94
+ 'acceptedAnswer': {
95
+ '@type': 'Answer',
96
+ 'text': '1 ATM = 1 bar ≈ 10 metre statik su sütunudur. Saat endüstrisinde temelde eşdeğerdirler.',
97
+ },
98
+ },
99
+ {
100
+ '@type': 'Question',
101
+ 'name': 'Saatimin su direncini ne sıklıkta test ettirmeliyim?',
102
+ 'acceptedAnswer': {
103
+ '@type': 'Answer',
104
+ 'text': 'Yılda bir kez, özellikle suyla temastan önce. Her 3-5 yılda bir, tüm contalar tam bakım sırasında değiştirilmelidir.',
105
+ },
106
+ },
107
+ {
108
+ '@type': 'Question',
109
+ 'name': 'ISO 6425 sertifikası ne anlama gelir?',
110
+ 'acceptedAnswer': {
111
+ '@type': 'Answer',
112
+ 'text': 'ISO 6425, en az 100m direnç, tek yönlü döner bezel, fosforlu işaretler ve belirtilen derinliğin %25 üzerinde test gerektirir.',
113
+ },
114
+ },
115
+ ],
116
+ },
117
+ {
118
+ '@context': 'https://schema.org',
119
+ '@type': 'SoftwareApplication',
120
+ 'name': 'Saat Su Direnci Dönüştürücü',
121
+ 'operatingSystem': 'Tümü',
122
+ 'applicationCategory': 'UtilitiesApplication',
123
+ 'browserRequirements': 'HTML5 gerekli. JavaScript gerekli.',
124
+ },
125
+ {
126
+ '@context': 'https://schema.org',
127
+ '@type': 'HowTo',
128
+ 'name': 'Saat su direnci değerleri nasıl dönüştürülür',
129
+ 'step': [
130
+ {
131
+ '@type': 'HowToStep',
132
+ 'name': 'Değerinizi girin',
133
+ 'text': 'Saatinizin su direnci numarasını yazın ve birimi seçin.',
134
+ },
135
+ {
136
+ '@type': 'HowToStep',
137
+ 'name': 'Eşdeğerleri okuyun',
138
+ 'text': 'Kart, dört birimdeki dönüştürülmüş değerleri aynı anda gösterir.',
139
+ },
140
+ {
141
+ '@type': 'HowToStep',
142
+ 'name': 'Öneriyi kontrol edin',
143
+ 'text': 'Vurgulanan kart, saatinizin değerinde hangi aktivitelerin güvenli olduğunu gösterir.',
144
+ },
145
+ ],
146
+ },
147
+ ],
148
+ };
@@ -0,0 +1,148 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import type { WaterResistanceConverterUI } from '../entry';
3
+ import { bibliography } from '../bibliography';
4
+
5
+ export const content: ToolLocaleContent<WaterResistanceConverterUI> = {
6
+ slug: 'water-resistance-converter',
7
+ title: '手表防水换算工具 — 米、ATM、巴、英尺',
8
+ description: '在米、英尺、ATM和巴之间换算手表的防水等级。了解每个等级在日常佩戴、游泳和潜水中的实际含义。',
9
+ ui: {
10
+ title: '防水换算工具',
11
+ depthLabel: '防水等级',
12
+ enterDepth: '输入防水深度',
13
+ unitMeters: '米 (m)',
14
+ unitFeet: '英尺 (ft)',
15
+ unitATM: '大气压 (ATM)',
16
+ unitBar: '巴 (bar)',
17
+ convertedValues: '等效值',
18
+ ratingLabel: '等级',
19
+ whatItMeans: '含义',
20
+ notWaterResistant: '不防水',
21
+ notWaterResistantDesc: '避免任何水溅。完全远离水源。',
22
+ handWash: '防溅水',
23
+ handWashDesc: '洗手、雨水、轻微水溅。不可游泳,不可淋浴。',
24
+ showerSwim: '淋浴和浅泳',
25
+ showerSwimDesc: '淋浴、泳池浅水游泳。不可潜水或浮潜。',
26
+ snorkeling: '游泳和浮潜',
27
+ snorkelingDesc: '泳池游泳、浮潜、水上运动。日常使用中防水性出色。',
28
+ scubaDiving: '休闲水肺潜水',
29
+ scubaDivingDesc: '水肺潜水、高强度海洋活动。符合ISO标准。',
30
+ saturationDiving: '深潜 / 饱和潜水',
31
+ saturationDivingDesc: '专业饱和潜水。极端深度。氦气排放阀场景。',
32
+ tipTitle: '提示',
33
+ tipContent: '防水性能会随时间下降。密封垫圈应每年检测,每3\u20135年更换一次。',
34
+ },
35
+ seo: [
36
+ { type: 'title', text: '手表防水换算工具 — 解读米、ATM、巴和英尺', level: 2 },
37
+ { type: 'paragraph', html: '30米防水等级并不意味着你可以潜到30米深度。它意味着手表能够承受水溅和轻微雨水。本换算工具可在<strong>米、英尺、大气压(ATM)和巴</strong>之间进行转换,并告诉你每个等级实际允许的活动范围。' },
38
+ { type: 'title', text: '防水等级的真相', level: 3 },
39
+ { type: 'paragraph', html: '手表防水性能是在实验室静态压力下测试的。实际使用条件——手臂摆动、潜水、温度变化——会产生更高的动态压力。30m / 3 ATM的手表仅防溅水。游泳至少需要100m / 10 ATM。水肺潜水则以200m / 20 ATM为标准入门要求。' },
40
+ { type: 'title', text: '防水性能为何随时间下降', level: 3 },
41
+ { type: 'paragraph', html: '密封手表的橡胶密封垫和O形圈会随着时间推移而干燥、开裂和压缩。热量、紫外线和化学物质会加速这一过程。曾经防水100m的手表,5年未经维护后可能仅剩防溅水能力。请每年检测密封件,每3至5年更换一次。' },
42
+ { type: 'title', text: 'ISO 6425 — 潜水表标准', level: 3 },
43
+ { type: 'paragraph', html: '手表要被称为"潜水表",必须符合ISO 6425标准:至少100m防水、单向旋转表圈、夜光标记和旋入式表冠。符合该标准的手表需在额定深度125%的压力下测试。200m ISO认证手表在250m深度进行测试。' },
44
+ ],
45
+ faq: [
46
+ {
47
+ question: '30米防水的手表可以游泳吗?',
48
+ answer: '不可以。30m / 3 ATM等级仅表示防溅水——洗手、雨水和汗水。游泳产生的动态压力超过静态测试压力。游泳请选择至少100m / 10 ATM。',
49
+ },
50
+ {
51
+ question: 'ATM、巴和米有什么区别?',
52
+ answer: '1 ATM = 1巴 ≈ 10米静态水柱。在钟表行业,它们基本等效。10 ATM手表与10巴手表相同,约可承受100米深度。',
53
+ },
54
+ {
55
+ question: '我应该多久检测一次手表的防水性能?',
56
+ answer: '每年一次,尤其是在接触水之前。密封垫会老化。每3-5年,应在全面保养时更换所有密封件。',
57
+ },
58
+ {
59
+ question: 'ISO 6425认证是什么意思?',
60
+ answer: 'ISO 6425是潜水表的国际标准。要求至少100m防水、单向旋转表圈、夜光标记,并在额定深度125%的压力下进行测试。',
61
+ },
62
+ ],
63
+ bibliography,
64
+ howTo: [
65
+ {
66
+ name: '输入等级',
67
+ text: '输入手表的防水数值并选择单位(米、英尺、ATM或巴)。',
68
+ },
69
+ {
70
+ name: '查看等效值',
71
+ text: '卡片同时显示所有四种单位的换算值。',
72
+ },
73
+ {
74
+ name: '查看建议',
75
+ text: '高亮显示的卡片显示在该防水等级下安全的活动。',
76
+ },
77
+ ],
78
+ schemas: [
79
+ {
80
+ '@context': 'https://schema.org',
81
+ '@type': 'FAQPage',
82
+ 'mainEntity': [
83
+ {
84
+ '@type': 'Question',
85
+ 'name': '30米防水的手表可以游泳吗?',
86
+ 'acceptedAnswer': {
87
+ '@type': 'Answer',
88
+ 'text': '不可以。30m / 3 ATM等级仅表示防溅水——洗手、雨水和汗水。游泳请选择至少100m / 10 ATM。',
89
+ },
90
+ },
91
+ {
92
+ '@type': 'Question',
93
+ 'name': 'ATM、巴和米有什么区别?',
94
+ 'acceptedAnswer': {
95
+ '@type': 'Answer',
96
+ 'text': '1 ATM = 1巴 ≈ 10米静态水柱。在钟表行业,它们基本等效。',
97
+ },
98
+ },
99
+ {
100
+ '@type': 'Question',
101
+ 'name': '我应该多久检测一次手表的防水性能?',
102
+ 'acceptedAnswer': {
103
+ '@type': 'Answer',
104
+ 'text': '每年一次,尤其是在接触水之前。每3-5年,应在全面保养时更换所有密封件。',
105
+ },
106
+ },
107
+ {
108
+ '@type': 'Question',
109
+ 'name': 'ISO 6425认证是什么意思?',
110
+ 'acceptedAnswer': {
111
+ '@type': 'Answer',
112
+ 'text': 'ISO 6425要求至少100m防水、单向旋转表圈、夜光标记,并在额定深度125%的压力下进行测试。',
113
+ },
114
+ },
115
+ ],
116
+ },
117
+ {
118
+ '@context': 'https://schema.org',
119
+ '@type': 'SoftwareApplication',
120
+ 'name': '手表防水换算工具',
121
+ 'operatingSystem': '全部',
122
+ 'applicationCategory': 'UtilitiesApplication',
123
+ 'browserRequirements': '需要HTML5。需要JavaScript。',
124
+ },
125
+ {
126
+ '@context': 'https://schema.org',
127
+ '@type': 'HowTo',
128
+ 'name': '如何换算手表防水等级',
129
+ 'step': [
130
+ {
131
+ '@type': 'HowToStep',
132
+ 'name': '输入等级',
133
+ 'text': '输入手表的防水数值并选择单位。',
134
+ },
135
+ {
136
+ '@type': 'HowToStep',
137
+ 'name': '查看等效值',
138
+ 'text': '卡片同时显示所有四种单位的换算值。',
139
+ },
140
+ {
141
+ '@type': 'HowToStep',
142
+ 'name': '查看建议',
143
+ 'text': '高亮显示的卡片显示在该防水等级下安全的活动。',
144
+ },
145
+ ],
146
+ },
147
+ ],
148
+ };
@@ -0,0 +1,11 @@
1
+ import type { ToolDefinition } from '../../types';
2
+ import { waterResistanceConverter } from './entry';
3
+
4
+ export * from './entry';
5
+
6
+ export const WATER_RESISTANCE_CONVERTER_TOOL: ToolDefinition = {
7
+ entry: waterResistanceConverter,
8
+ Component: () => import('./component.astro'),
9
+ SEOComponent: () => import('./seo.astro'),
10
+ BibliographyComponent: () => import('./bibliography.astro'),
11
+ };
@@ -0,0 +1,16 @@
1
+ ---
2
+ import { SEORenderer } from '@jjlmoya/utils-shared';
3
+ import { waterResistanceConverter } from './index';
4
+ import type { KnownLocale } from '../../types';
5
+
6
+ interface Props {
7
+ locale?: KnownLocale;
8
+ }
9
+
10
+ const { locale = 'en' } = Astro.props;
11
+ const loader = waterResistanceConverter.i18n[locale] || waterResistanceConverter.i18n.en;
12
+ const content = await loader?.();
13
+ if (!content) return null;
14
+ ---
15
+
16
+ {content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}