@jjlmoya/utils-chrono 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.
- package/package.json +1 -1
- package/src/category/i18n/de.ts +11 -9
- package/src/category/i18n/en.ts +11 -9
- package/src/category/i18n/fr.ts +11 -9
- package/src/category/i18n/id.ts +11 -9
- package/src/category/i18n/it.ts +11 -9
- package/src/category/i18n/ja.ts +11 -9
- package/src/category/i18n/ko.ts +11 -9
- package/src/category/i18n/nl.ts +11 -9
- package/src/category/i18n/pl.ts +11 -9
- package/src/category/i18n/pt.ts +11 -9
- package/src/category/i18n/ru.ts +11 -9
- package/src/category/i18n/sv.ts +11 -9
- package/src/category/i18n/tr.ts +11 -9
- package/src/category/i18n/zh.ts +11 -9
- package/src/category/index.ts +8 -0
- package/src/entries.ts +13 -1
- package/src/index.ts +4 -0
- package/src/tests/locale_completeness.test.ts +1 -1
- package/src/tests/no_en_dash.test.ts +41 -0
- package/src/tests/no_h1_in_components.test.ts +1 -1
- package/src/tests/tool_validation.test.ts +1 -1
- package/src/tool/beat-rate-converter/bibliography.ts +1 -1
- package/src/tool/beat-rate-converter/components/ConverterPanel.astro +57 -20
- package/src/tool/beat-rate-converter/i18n/en.ts +5 -5
- package/src/tool/crown-reference-guide/bibliography.ts +3 -3
- package/src/tool/crown-reference-guide/i18n/de.ts +37 -29
- package/src/tool/crown-reference-guide/i18n/en.ts +38 -30
- package/src/tool/crown-reference-guide/i18n/es.ts +36 -28
- package/src/tool/crown-reference-guide/i18n/fr.ts +38 -30
- package/src/tool/crown-reference-guide/i18n/id.ts +38 -30
- package/src/tool/crown-reference-guide/i18n/it.ts +38 -30
- package/src/tool/crown-reference-guide/i18n/ja.ts +38 -30
- package/src/tool/crown-reference-guide/i18n/ko.ts +38 -30
- package/src/tool/crown-reference-guide/i18n/nl.ts +38 -30
- package/src/tool/crown-reference-guide/i18n/pl.ts +38 -30
- package/src/tool/crown-reference-guide/i18n/pt.ts +38 -30
- package/src/tool/crown-reference-guide/i18n/ru.ts +41 -33
- package/src/tool/crown-reference-guide/i18n/sv.ts +38 -30
- package/src/tool/crown-reference-guide/i18n/tr.ts +38 -30
- package/src/tool/crown-reference-guide/i18n/zh.ts +37 -29
- package/src/tool/demagnetizing-timer/components/TimerPanel.astro +45 -17
- package/src/tool/demagnetizing-timer/i18n/de.ts +3 -3
- package/src/tool/demagnetizing-timer/i18n/en.ts +2 -2
- package/src/tool/demagnetizing-timer/i18n/es.ts +2 -2
- package/src/tool/demagnetizing-timer/i18n/fr.ts +1 -1
- package/src/tool/demagnetizing-timer/i18n/id.ts +2 -2
- package/src/tool/demagnetizing-timer/i18n/it.ts +2 -2
- package/src/tool/demagnetizing-timer/i18n/ja.ts +1 -1
- package/src/tool/demagnetizing-timer/i18n/ko.ts +1 -1
- package/src/tool/demagnetizing-timer/i18n/nl.ts +2 -2
- package/src/tool/demagnetizing-timer/i18n/pl.ts +3 -3
- package/src/tool/demagnetizing-timer/i18n/pt.ts +2 -2
- package/src/tool/demagnetizing-timer/i18n/ru.ts +10 -10
- package/src/tool/demagnetizing-timer/i18n/sv.ts +2 -2
- package/src/tool/demagnetizing-timer/i18n/tr.ts +2 -2
- package/src/tool/demagnetizing-timer/i18n/zh.ts +1 -1
- package/src/tool/lume-color-simulator/bibliography.astro +16 -0
- package/src/tool/lume-color-simulator/bibliography.ts +16 -0
- package/src/tool/lume-color-simulator/client.ts +186 -0
- package/src/tool/lume-color-simulator/component.astro +17 -0
- package/src/tool/lume-color-simulator/components/LumePanel.astro +98 -0
- package/src/tool/lume-color-simulator/entry.ts +57 -0
- package/src/tool/lume-color-simulator/i18n/de.ts +174 -0
- package/src/tool/lume-color-simulator/i18n/en.ts +174 -0
- package/src/tool/lume-color-simulator/i18n/es.ts +174 -0
- package/src/tool/lume-color-simulator/i18n/fr.ts +174 -0
- package/src/tool/lume-color-simulator/i18n/id.ts +174 -0
- package/src/tool/lume-color-simulator/i18n/it.ts +175 -0
- package/src/tool/lume-color-simulator/i18n/ja.ts +174 -0
- package/src/tool/lume-color-simulator/i18n/ko.ts +174 -0
- package/src/tool/lume-color-simulator/i18n/nl.ts +175 -0
- package/src/tool/lume-color-simulator/i18n/pl.ts +174 -0
- package/src/tool/lume-color-simulator/i18n/pt.ts +174 -0
- package/src/tool/lume-color-simulator/i18n/ru.ts +174 -0
- package/src/tool/lume-color-simulator/i18n/sv.ts +174 -0
- package/src/tool/lume-color-simulator/i18n/tr.ts +174 -0
- package/src/tool/lume-color-simulator/i18n/zh.ts +174 -0
- package/src/tool/lume-color-simulator/index.ts +11 -0
- package/src/tool/lume-color-simulator/lume-color-simulator.css +208 -0
- package/src/tool/lume-color-simulator/seo.astro +16 -0
- package/src/tool/moon-phase-visualizer/bibliography.astro +16 -0
- package/src/tool/moon-phase-visualizer/bibliography.ts +16 -0
- package/src/tool/moon-phase-visualizer/client.ts +243 -0
- package/src/tool/moon-phase-visualizer/component.astro +17 -0
- package/src/tool/moon-phase-visualizer/components/MoonPanel.astro +63 -0
- package/src/tool/moon-phase-visualizer/entry.ts +51 -0
- package/src/tool/moon-phase-visualizer/i18n/de.ts +175 -0
- package/src/tool/moon-phase-visualizer/i18n/en.ts +175 -0
- package/src/tool/moon-phase-visualizer/i18n/es.ts +175 -0
- package/src/tool/moon-phase-visualizer/i18n/fr.ts +175 -0
- package/src/tool/moon-phase-visualizer/i18n/id.ts +175 -0
- package/src/tool/moon-phase-visualizer/i18n/it.ts +176 -0
- package/src/tool/moon-phase-visualizer/i18n/ja.ts +175 -0
- package/src/tool/moon-phase-visualizer/i18n/ko.ts +175 -0
- package/src/tool/moon-phase-visualizer/i18n/nl.ts +176 -0
- package/src/tool/moon-phase-visualizer/i18n/pl.ts +175 -0
- package/src/tool/moon-phase-visualizer/i18n/pt.ts +175 -0
- package/src/tool/moon-phase-visualizer/i18n/ru.ts +175 -0
- package/src/tool/moon-phase-visualizer/i18n/sv.ts +175 -0
- package/src/tool/moon-phase-visualizer/i18n/tr.ts +175 -0
- package/src/tool/moon-phase-visualizer/i18n/zh.ts +175 -0
- package/src/tool/moon-phase-visualizer/index.ts +11 -0
- package/src/tool/moon-phase-visualizer/moon-phase-visualizer.css +216 -0
- package/src/tool/moon-phase-visualizer/seo.astro +16 -0
- package/src/tool/power-reserve-estimator/bibliography.ts +2 -2
- package/src/tool/power-reserve-estimator/components/EstimatorPanel.astro +146 -39
- package/src/tool/power-reserve-estimator/i18n/de.ts +2 -2
- package/src/tool/power-reserve-estimator/i18n/en.ts +3 -3
- package/src/tool/power-reserve-estimator/i18n/es.ts +2 -2
- package/src/tool/power-reserve-estimator/i18n/fr.ts +2 -2
- package/src/tool/power-reserve-estimator/i18n/id.ts +2 -2
- package/src/tool/power-reserve-estimator/i18n/it.ts +2 -2
- package/src/tool/power-reserve-estimator/i18n/nl.ts +2 -2
- package/src/tool/power-reserve-estimator/i18n/pt.ts +2 -2
- package/src/tool/strap-taper-calculator/i18n/en.ts +2 -2
- package/src/tool/strap-taper-calculator/i18n/ru.ts +4 -4
- package/src/tool/tachymeter-calculator/bibliography.astro +16 -0
- package/src/tool/tachymeter-calculator/bibliography.ts +16 -0
- package/src/tool/tachymeter-calculator/client.ts +180 -0
- package/src/tool/tachymeter-calculator/component.astro +15 -0
- package/src/tool/tachymeter-calculator/components/CalculatorPanel.astro +121 -0
- package/src/tool/tachymeter-calculator/entry.ts +43 -0
- package/src/tool/tachymeter-calculator/i18n/de.ts +172 -0
- package/src/tool/tachymeter-calculator/i18n/en.ts +172 -0
- package/src/tool/tachymeter-calculator/i18n/es.ts +172 -0
- package/src/tool/tachymeter-calculator/i18n/fr.ts +172 -0
- package/src/tool/tachymeter-calculator/i18n/id.ts +172 -0
- package/src/tool/tachymeter-calculator/i18n/it.ts +172 -0
- package/src/tool/tachymeter-calculator/i18n/ja.ts +172 -0
- package/src/tool/tachymeter-calculator/i18n/ko.ts +172 -0
- package/src/tool/tachymeter-calculator/i18n/nl.ts +172 -0
- package/src/tool/tachymeter-calculator/i18n/pl.ts +172 -0
- package/src/tool/tachymeter-calculator/i18n/pt.ts +172 -0
- package/src/tool/tachymeter-calculator/i18n/ru.ts +172 -0
- package/src/tool/tachymeter-calculator/i18n/sv.ts +172 -0
- package/src/tool/tachymeter-calculator/i18n/tr.ts +172 -0
- package/src/tool/tachymeter-calculator/i18n/zh.ts +172 -0
- package/src/tool/tachymeter-calculator/index.ts +11 -0
- package/src/tool/tachymeter-calculator/seo.astro +16 -0
- package/src/tool/tachymeter-calculator/tachymeter-calculator.css +492 -0
- package/src/tool/tachymeter-calculator/utils.ts +10 -0
- package/src/tool/watch-accuracy-tracker/i18n/pl.ts +1 -1
- package/src/tool/watch-accuracy-tracker/i18n/ru.ts +6 -6
- package/src/tool/watch-savings-planner/i18n/en.ts +5 -5
- package/src/tool/watch-size-comparator/bibliography.astro +16 -0
- package/src/tool/watch-size-comparator/bibliography.ts +16 -0
- package/src/tool/watch-size-comparator/client.ts +287 -0
- package/src/tool/watch-size-comparator/component.astro +17 -0
- package/src/tool/watch-size-comparator/components/WatchForm.astro +121 -0
- package/src/tool/watch-size-comparator/drawing/index.ts +79 -0
- package/src/tool/watch-size-comparator/drawing/measures.ts +57 -0
- package/src/tool/watch-size-comparator/drawing/utils.ts +37 -0
- package/src/tool/watch-size-comparator/drawing/watch.ts +78 -0
- package/src/tool/watch-size-comparator/entry.ts +62 -0
- package/src/tool/watch-size-comparator/i18n/de.ts +189 -0
- package/src/tool/watch-size-comparator/i18n/en.ts +189 -0
- package/src/tool/watch-size-comparator/i18n/es.ts +189 -0
- package/src/tool/watch-size-comparator/i18n/fr.ts +189 -0
- package/src/tool/watch-size-comparator/i18n/id.ts +189 -0
- package/src/tool/watch-size-comparator/i18n/it.ts +190 -0
- package/src/tool/watch-size-comparator/i18n/ja.ts +189 -0
- package/src/tool/watch-size-comparator/i18n/ko.ts +189 -0
- package/src/tool/watch-size-comparator/i18n/nl.ts +190 -0
- package/src/tool/watch-size-comparator/i18n/pl.ts +189 -0
- package/src/tool/watch-size-comparator/i18n/pt.ts +189 -0
- package/src/tool/watch-size-comparator/i18n/ru.ts +189 -0
- package/src/tool/watch-size-comparator/i18n/sv.ts +189 -0
- package/src/tool/watch-size-comparator/i18n/tr.ts +189 -0
- package/src/tool/watch-size-comparator/i18n/zh.ts +189 -0
- package/src/tool/watch-size-comparator/index.ts +11 -0
- package/src/tool/watch-size-comparator/seo.astro +16 -0
- package/src/tool/watch-size-comparator/watch-size-comparator.css +373 -0
- package/src/tool/water-resistance-converter/bibliography.ts +2 -2
- package/src/tool/water-resistance-converter/i18n/de.ts +5 -5
- package/src/tool/water-resistance-converter/i18n/en.ts +6 -6
- package/src/tool/water-resistance-converter/i18n/es.ts +6 -6
- package/src/tool/water-resistance-converter/i18n/fr.ts +6 -6
- package/src/tool/water-resistance-converter/i18n/id.ts +6 -6
- package/src/tool/water-resistance-converter/i18n/it.ts +6 -6
- package/src/tool/water-resistance-converter/i18n/ja.ts +6 -6
- package/src/tool/water-resistance-converter/i18n/ko.ts +6 -6
- package/src/tool/water-resistance-converter/i18n/nl.ts +6 -6
- package/src/tool/water-resistance-converter/i18n/pl.ts +6 -6
- package/src/tool/water-resistance-converter/i18n/pt.ts +6 -6
- package/src/tool/water-resistance-converter/i18n/ru.ts +8 -8
- package/src/tool/water-resistance-converter/i18n/sv.ts +6 -6
- package/src/tool/water-resistance-converter/i18n/tr.ts +6 -6
- package/src/tool/water-resistance-converter/i18n/zh.ts +3 -3
- package/src/tool/wrist-presence-calculator/i18n/de.ts +1 -1
- package/src/tool/wrist-presence-calculator/i18n/fr.ts +1 -1
- package/src/tool/wrist-presence-calculator/i18n/pl.ts +1 -1
- package/src/tool/wrist-presence-calculator/i18n/pt.ts +1 -1
- package/src/tool/wrist-presence-calculator/i18n/ru.ts +21 -21
- package/src/tool/wrist-presence-calculator/i18n/sv.ts +1 -1
- package/src/tools.ts +8 -0
|
@@ -10,16 +10,16 @@ const { labels } = Astro.props;
|
|
|
10
10
|
<div class="panel-section">
|
|
11
11
|
<div class="section-label">{labels.movementLabel || "Movement"}</div>
|
|
12
12
|
<select class="movement-select" id="movement-select">
|
|
13
|
-
<option value="eta-2824">ETA 2824-2 / SW200
|
|
14
|
-
<option value="eta-2892">ETA 2892-A2 / SW300
|
|
15
|
-
<option value="valjoux-7750">Valjoux 7750 / SW500
|
|
16
|
-
<option value="miyota-8215">Miyota 8215
|
|
17
|
-
<option value="miyota-9015">Miyota 9015
|
|
18
|
-
<option value="seiko-nh35">Seiko NH35 / 4R35
|
|
19
|
-
<option value="seiko-6r35">Seiko 6R35
|
|
20
|
-
<option value="unitas-6498">Unitas 6497 / 6498
|
|
21
|
-
<option value="rolex-3135">Rolex 3135
|
|
22
|
-
<option value="rolex-3235">Rolex 3235
|
|
13
|
+
<option value="eta-2824">ETA 2824-2 / SW200-38h</option>
|
|
14
|
+
<option value="eta-2892">ETA 2892-A2 / SW300-42h</option>
|
|
15
|
+
<option value="valjoux-7750">Valjoux 7750 / SW500-48h</option>
|
|
16
|
+
<option value="miyota-8215">Miyota 8215-40h</option>
|
|
17
|
+
<option value="miyota-9015">Miyota 9015-42h</option>
|
|
18
|
+
<option value="seiko-nh35">Seiko NH35 / 4R35-41h</option>
|
|
19
|
+
<option value="seiko-6r35">Seiko 6R35-70h</option>
|
|
20
|
+
<option value="unitas-6498">Unitas 6497 / 6498-46h</option>
|
|
21
|
+
<option value="rolex-3135">Rolex 3135-48h</option>
|
|
22
|
+
<option value="rolex-3235">Rolex 3235-70h</option>
|
|
23
23
|
<option value="custom">{labels.customMovement || "Custom"}</option>
|
|
24
24
|
</select>
|
|
25
25
|
</div>
|
|
@@ -28,55 +28,145 @@ const { labels } = Astro.props;
|
|
|
28
28
|
<div class="section-label">{labels.customMovement || "Custom"}</div>
|
|
29
29
|
<div class="input-row">
|
|
30
30
|
<div class="input-group">
|
|
31
|
-
<label class="input-label" for="custom-reserve"
|
|
31
|
+
<label class="input-label" for="custom-reserve"
|
|
32
|
+
>{labels.powerReserveHours || "Reserve (h)"}</label
|
|
33
|
+
>
|
|
32
34
|
<div class="stepper-wrap">
|
|
33
|
-
<button
|
|
34
|
-
|
|
35
|
-
|
|
35
|
+
<button
|
|
36
|
+
type="button"
|
|
37
|
+
class="stepper-btn"
|
|
38
|
+
data-target="custom-reserve"
|
|
39
|
+
data-dir="-1">−</button
|
|
40
|
+
>
|
|
41
|
+
<input
|
|
42
|
+
type="number"
|
|
43
|
+
class="stepper-input"
|
|
44
|
+
id="custom-reserve"
|
|
45
|
+
min="1"
|
|
46
|
+
max="336"
|
|
47
|
+
value="38"
|
|
48
|
+
/>
|
|
49
|
+
<button
|
|
50
|
+
type="button"
|
|
51
|
+
class="stepper-btn"
|
|
52
|
+
data-target="custom-reserve"
|
|
53
|
+
data-dir="1">+</button
|
|
54
|
+
>
|
|
36
55
|
</div>
|
|
37
56
|
</div>
|
|
38
57
|
<div class="input-group">
|
|
39
|
-
<label class="input-label" for="custom-turns"
|
|
58
|
+
<label class="input-label" for="custom-turns"
|
|
59
|
+
>{labels.fullWindTurns || "Turns to full"}</label
|
|
60
|
+
>
|
|
40
61
|
<div class="stepper-wrap">
|
|
41
|
-
<button
|
|
42
|
-
|
|
43
|
-
|
|
62
|
+
<button
|
|
63
|
+
type="button"
|
|
64
|
+
class="stepper-btn"
|
|
65
|
+
data-target="custom-turns"
|
|
66
|
+
data-dir="-1">−</button
|
|
67
|
+
>
|
|
68
|
+
<input
|
|
69
|
+
type="number"
|
|
70
|
+
class="stepper-input"
|
|
71
|
+
id="custom-turns"
|
|
72
|
+
min="1"
|
|
73
|
+
max="100"
|
|
74
|
+
value="40"
|
|
75
|
+
/>
|
|
76
|
+
<button
|
|
77
|
+
type="button"
|
|
78
|
+
class="stepper-btn"
|
|
79
|
+
data-target="custom-turns"
|
|
80
|
+
data-dir="1">+</button
|
|
81
|
+
>
|
|
44
82
|
</div>
|
|
45
83
|
</div>
|
|
46
84
|
</div>
|
|
47
85
|
</div>
|
|
48
86
|
|
|
49
87
|
<div class="panel-section">
|
|
50
|
-
<div class="section-label">
|
|
88
|
+
<div class="section-label">
|
|
89
|
+
{labels.turnsLabel || "Crown Turns"}
|
|
90
|
+
<span class="label-sub">+</span>
|
|
91
|
+
</div>
|
|
51
92
|
<div class="input-row">
|
|
52
93
|
<div class="input-group">
|
|
53
|
-
<label class="input-label" for="turns-input"
|
|
94
|
+
<label class="input-label" for="turns-input"
|
|
95
|
+
>{labels.turnsInput || "Turns"}</label
|
|
96
|
+
>
|
|
54
97
|
<div class="stepper-wrap">
|
|
55
|
-
<button
|
|
56
|
-
|
|
57
|
-
|
|
98
|
+
<button
|
|
99
|
+
type="button"
|
|
100
|
+
class="stepper-btn"
|
|
101
|
+
data-target="turns-input"
|
|
102
|
+
data-dir="-5">−5</button
|
|
103
|
+
>
|
|
104
|
+
<input
|
|
105
|
+
type="number"
|
|
106
|
+
class="stepper-input"
|
|
107
|
+
id="turns-input"
|
|
108
|
+
min="0"
|
|
109
|
+
max="100"
|
|
110
|
+
value="0"
|
|
111
|
+
/>
|
|
112
|
+
<button
|
|
113
|
+
type="button"
|
|
114
|
+
class="stepper-btn"
|
|
115
|
+
data-target="turns-input"
|
|
116
|
+
data-dir="5">+5</button
|
|
117
|
+
>
|
|
58
118
|
</div>
|
|
59
119
|
</div>
|
|
60
120
|
</div>
|
|
61
121
|
</div>
|
|
62
122
|
|
|
63
123
|
<div class="panel-section">
|
|
64
|
-
<div class="section-label">
|
|
124
|
+
<div class="section-label">
|
|
125
|
+
{labels.hoursLabel || "Wear Time"}
|
|
126
|
+
<span class="label-sub">+</span>
|
|
127
|
+
</div>
|
|
65
128
|
<div class="input-row">
|
|
66
129
|
<div class="input-group">
|
|
67
|
-
<label class="input-label" for="hours-input"
|
|
130
|
+
<label class="input-label" for="hours-input"
|
|
131
|
+
>{labels.hoursInput || "Hours"}</label
|
|
132
|
+
>
|
|
68
133
|
<div class="stepper-wrap">
|
|
69
|
-
<button
|
|
70
|
-
|
|
71
|
-
|
|
134
|
+
<button
|
|
135
|
+
type="button"
|
|
136
|
+
class="stepper-btn"
|
|
137
|
+
data-target="hours-input"
|
|
138
|
+
data-dir="-1">−</button
|
|
139
|
+
>
|
|
140
|
+
<input
|
|
141
|
+
type="number"
|
|
142
|
+
class="stepper-input"
|
|
143
|
+
id="hours-input"
|
|
144
|
+
min="0"
|
|
145
|
+
max="24"
|
|
146
|
+
value="0"
|
|
147
|
+
/>
|
|
148
|
+
<button
|
|
149
|
+
type="button"
|
|
150
|
+
class="stepper-btn"
|
|
151
|
+
data-target="hours-input"
|
|
152
|
+
data-dir="1">+</button
|
|
153
|
+
>
|
|
72
154
|
</div>
|
|
73
155
|
</div>
|
|
74
156
|
<div class="input-group">
|
|
75
|
-
<label class="input-label" for="activity-select"
|
|
157
|
+
<label class="input-label" for="activity-select"
|
|
158
|
+
>{labels.activityLabel || "Activity"}</label
|
|
159
|
+
>
|
|
76
160
|
<div class="chip-group">
|
|
77
|
-
<button type="button" class="chip active" data-activity="low"
|
|
78
|
-
|
|
79
|
-
|
|
161
|
+
<button type="button" class="chip active" data-activity="low"
|
|
162
|
+
>{labels.activityLow || "Low"}</button
|
|
163
|
+
>
|
|
164
|
+
<button type="button" class="chip" data-activity="medium"
|
|
165
|
+
>{labels.activityMedium || "Medium"}</button
|
|
166
|
+
>
|
|
167
|
+
<button type="button" class="chip" data-activity="high"
|
|
168
|
+
>{labels.activityHigh || "High"}</button
|
|
169
|
+
>
|
|
80
170
|
</div>
|
|
81
171
|
</div>
|
|
82
172
|
</div>
|
|
@@ -84,7 +174,9 @@ const { labels } = Astro.props;
|
|
|
84
174
|
|
|
85
175
|
<button type="button" class="calc-btn" id="calc-btn">
|
|
86
176
|
<svg viewBox="0 0 24 24" width="16" height="16">
|
|
87
|
-
<path
|
|
177
|
+
<path
|
|
178
|
+
d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"
|
|
179
|
+
fill="currentColor"></path>
|
|
88
180
|
</svg>
|
|
89
181
|
{labels.calculate || "Calculate"}
|
|
90
182
|
</button>
|
|
@@ -92,7 +184,9 @@ const { labels } = Astro.props;
|
|
|
92
184
|
<div class="result-card" id="result-card" style="display: none">
|
|
93
185
|
<div class="result-header">
|
|
94
186
|
<svg viewBox="0 0 24 24" width="18" height="18">
|
|
95
|
-
<path
|
|
187
|
+
<path
|
|
188
|
+
d="M13 2.05v2.02c3.95.49 7 3.85 7 7.93 0 4.42-3.58 8-8 8s-8-3.58-8-8c0-4.08 3.05-7.44 7-7.93V2.05C5.05 2.58 2 6.13 2 11c0 5.52 4.48 10 10 10s10-4.48 10-10c0-4.87-3.05-8.42-7-8.95zM12 6v5l4.28 2.54.72-1.21-3.5-2.08V6H12z"
|
|
189
|
+
fill="currentColor"></path>
|
|
96
190
|
</svg>
|
|
97
191
|
<span>{labels.resultLabel || "Estimated Reserve"}</span>
|
|
98
192
|
</div>
|
|
@@ -129,22 +223,35 @@ const { labels } = Astro.props;
|
|
|
129
223
|
<div class="steps-section">
|
|
130
224
|
<div class="step-row">
|
|
131
225
|
<div class="step-marker">1</div>
|
|
132
|
-
<span class="step-text"
|
|
226
|
+
<span class="step-text"
|
|
227
|
+
>{labels.step1 || "Select your movement from the dropdown."}</span
|
|
228
|
+
>
|
|
133
229
|
</div>
|
|
134
230
|
<div class="step-row">
|
|
135
231
|
<div class="step-marker">2</div>
|
|
136
|
-
<span class="step-text"
|
|
232
|
+
<span class="step-text"
|
|
233
|
+
>{labels.step2 || "Enter crown turns and hours worn."}</span
|
|
234
|
+
>
|
|
137
235
|
</div>
|
|
138
236
|
<div class="step-row">
|
|
139
237
|
<div class="step-marker">3</div>
|
|
140
|
-
<span class="step-text"
|
|
238
|
+
<span class="step-text"
|
|
239
|
+
>{labels.step3 || "Press Calculate to see your reserve."}</span
|
|
240
|
+
>
|
|
141
241
|
</div>
|
|
142
242
|
</div>
|
|
143
243
|
|
|
144
244
|
<div class="tip-row">
|
|
145
245
|
<svg class="tip-icon" viewBox="0 0 24 24" width="16" height="16">
|
|
146
|
-
<path
|
|
246
|
+
<path
|
|
247
|
+
d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"
|
|
248
|
+
fill="currentColor"></path>
|
|
147
249
|
</svg>
|
|
148
|
-
<span class="tip-text"
|
|
250
|
+
<span class="tip-text"
|
|
251
|
+
>{
|
|
252
|
+
labels.tipContent ||
|
|
253
|
+
"Manual-wind movements only charge when you turn the crown. Automatic movements also charge while worn."
|
|
254
|
+
}</span
|
|
255
|
+
>
|
|
149
256
|
</div>
|
|
150
257
|
</div>
|
|
@@ -90,7 +90,7 @@ export const content: ToolLocaleContent<PowerReserveEstimatorUI> = {
|
|
|
90
90
|
'name': 'Wie viel lädt eine Kronenumdrehung die Uhr?',
|
|
91
91
|
'acceptedAnswer': {
|
|
92
92
|
'@type': 'Answer',
|
|
93
|
-
'text': 'Das hängt vom Werk ab. Die meisten Automatikkaliber erreichen nach 30
|
|
93
|
+
'text': 'Das hängt vom Werk ab. Die meisten Automatikkaliber erreichen nach 30-40 Umdrehungen den Vollaufzug, sodass jede Umdrehung etwa 2,5-3,3 % der Gesamtreserve ausmacht. Handaufzugswerke wie das Unitas 6498 benötigen ebenfalls etwa 35 Umdrehungen für einen Vollaufzug.',
|
|
94
94
|
},
|
|
95
95
|
},
|
|
96
96
|
{
|
|
@@ -98,7 +98,7 @@ export const content: ToolLocaleContent<PowerReserveEstimatorUI> = {
|
|
|
98
98
|
'name': 'Lädt das Tragen der Uhr genauso stark wie der Aufzug?',
|
|
99
99
|
'acceptedAnswer': {
|
|
100
100
|
'@type': 'Answer',
|
|
101
|
-
'text': 'Das Tragen lädt langsamer und variabler. Bei Büroarbeit laden Sie etwa 4
|
|
101
|
+
'text': 'Das Tragen lädt langsamer und variabler. Bei Büroarbeit laden Sie etwa 4-6 % pro Stunde über den Rotor. Bei aktiver Bewegung kann es 8-10 % pro Stunde erreichen. Das Aufziehen von Hand ist schneller und zuverlässiger.',
|
|
102
102
|
},
|
|
103
103
|
},
|
|
104
104
|
{
|
|
@@ -34,12 +34,12 @@ export const content: ToolLocaleContent<PowerReserveEstimatorUI> = {
|
|
|
34
34
|
tipContent: 'Manual-wind movements only charge when you turn the crown. Automatic movements also charge while worn.',
|
|
35
35
|
},
|
|
36
36
|
seo: [
|
|
37
|
-
{ type: 'title', text: 'Watch Power Reserve Estimator
|
|
37
|
+
{ type: 'title', text: 'Watch Power Reserve Estimator-How Much Reserve Does Your Movement Have Left?', level: 2 },
|
|
38
38
|
{ type: 'paragraph', html: 'Wondering how much power is left in your mechanical watch? Whether you wound the crown this morning or wore it all day, this estimator tells you the approximate charge level and remaining hours for popular calibers like <strong>ETA, Sellita, Miyota, Seiko, and Rolex</strong>.' },
|
|
39
39
|
{ type: 'title', text: 'How Power Reserve Works in a Mechanical Watch', level: 3 },
|
|
40
|
-
{ type: 'paragraph', html: 'The power reserve is the amount of energy stored in the mainspring. When you wind the crown, you tighten the mainspring, storing potential energy. An automatic rotor also winds the mainspring while you wear the watch. The energy then drains at a steady rate
|
|
40
|
+
{ type: 'paragraph', html: 'The power reserve is the amount of energy stored in the mainspring. When you wind the crown, you tighten the mainspring, storing potential energy. An automatic rotor also winds the mainspring while you wear the watch. The energy then drains at a steady rate-typically 2-3% per hour-until the watch stops.' },
|
|
41
41
|
{ type: 'title', text: 'Crown Winding vs. Rotor Charging', level: 3 },
|
|
42
|
-
{ type: 'paragraph', html: 'Manual winding via the crown is the most efficient way to charge a watch
|
|
42
|
+
{ type: 'paragraph', html: 'Manual winding via the crown is the most efficient way to charge a watch-each full rotation adds a predictable amount of energy, typically around 2.5% of the total reserve. Wearing the watch charges more slowly and depends on your activity level: an office worker might charge 4-6% per hour, while someone active might charge 8-10%. This estimator uses a conservative average.' },
|
|
43
43
|
{ type: 'title', text: 'Why Power Reserve Estimation Matters', level: 3 },
|
|
44
44
|
{ type: 'paragraph', html: 'Knowing your watch\'s charge level helps avoid unexpected stops. A watch that runs down overnight may need more winding before bed, or may not be getting enough wear time. Use this tool to understand your charging habits and keep your automatic running.' },
|
|
45
45
|
],
|
|
@@ -90,7 +90,7 @@ export const content: ToolLocaleContent<PowerReserveEstimatorUI> = {
|
|
|
90
90
|
'name': '¿Cuánto carga una vuelta de corona el reloj?',
|
|
91
91
|
'acceptedAnswer': {
|
|
92
92
|
'@type': 'Answer',
|
|
93
|
-
'text': 'Depende del calibre. La mayoría de los calibres automáticos alcanzan la carga completa en 30
|
|
93
|
+
'text': 'Depende del calibre. La mayoría de los calibres automáticos alcanzan la carga completa en 30-40 vueltas, por lo que cada vuelta añade entre un 2,5 y un 3,3 % de la reserva total. Los movimientos de cuerda manual como el Unitas 6498 también necesitan unas 35 vueltas para una carga completa.',
|
|
94
94
|
},
|
|
95
95
|
},
|
|
96
96
|
{
|
|
@@ -98,7 +98,7 @@ export const content: ToolLocaleContent<PowerReserveEstimatorUI> = {
|
|
|
98
98
|
'name': '¿Usar el reloj lo carga tanto como darle cuerda?',
|
|
99
99
|
'acceptedAnswer': {
|
|
100
100
|
'@type': 'Answer',
|
|
101
|
-
'text': 'Usarlo carga más lento y de forma variable. En un trabajo de oficina, puede cargar un 4
|
|
101
|
+
'text': 'Usarlo carga más lento y de forma variable. En un trabajo de oficina, puede cargar un 4-6 % por hora mediante el rotor. Durante movimiento activo puede alcanzar el 8-10 % por hora. La cuerda manual es más rápida y predecible.',
|
|
102
102
|
},
|
|
103
103
|
},
|
|
104
104
|
{
|
|
@@ -90,7 +90,7 @@ export const content: ToolLocaleContent<PowerReserveEstimatorUI> = {
|
|
|
90
90
|
'name': 'Combien un tour de couronne charge-t-il la montre ?',
|
|
91
91
|
'acceptedAnswer': {
|
|
92
92
|
'@type': 'Answer',
|
|
93
|
-
'text': 'Cela dépend du calibre. La plupart des calibres automatiques atteignent le plein remontage en 30
|
|
93
|
+
'text': 'Cela dépend du calibre. La plupart des calibres automatiques atteignent le plein remontage en 30-40 tours, donc chaque tour ajoute environ 2,5-3,3 % de la réserve totale. Les mouvements à remontage manuel comme l\'Unitas 6498 nécessitent également environ 35 tours pour un plein remontage.',
|
|
94
94
|
},
|
|
95
95
|
},
|
|
96
96
|
{
|
|
@@ -98,7 +98,7 @@ export const content: ToolLocaleContent<PowerReserveEstimatorUI> = {
|
|
|
98
98
|
'name': 'Porter la montre la charge-t-il autant que le remontage ?',
|
|
99
99
|
'acceptedAnswer': {
|
|
100
100
|
'@type': 'Answer',
|
|
101
|
-
'text': 'Le port charge plus lentement et de manière variable. Au bureau, vous pouvez charger 4
|
|
101
|
+
'text': 'Le port charge plus lentement et de manière variable. Au bureau, vous pouvez charger 4-6 % par heure via le rotor. En mouvement actif, cela peut atteindre 8-10 % par heure. Le remontage manuel est plus rapide et plus prévisible.',
|
|
102
102
|
},
|
|
103
103
|
},
|
|
104
104
|
{
|
|
@@ -90,7 +90,7 @@ export const content: ToolLocaleContent<PowerReserveEstimatorUI> = {
|
|
|
90
90
|
'name': 'Berapa banyak satu putaran mahkota mengisi arloji?',
|
|
91
91
|
'acceptedAnswer': {
|
|
92
92
|
'@type': 'Answer',
|
|
93
|
-
'text': 'Tergantung pada mesinnya. Sebagian besar kaliber otomatis mencapai pengisian penuh dalam 30
|
|
93
|
+
'text': 'Tergantung pada mesinnya. Sebagian besar kaliber otomatis mencapai pengisian penuh dalam 30-40 putaran, jadi setiap putaran menambah sekitar 2,5-3,3% dari total cadangan. Mesin manual seperti Unitas 6498 juga membutuhkan sekitar 35 putaran untuk pengisian penuh.',
|
|
94
94
|
},
|
|
95
95
|
},
|
|
96
96
|
{
|
|
@@ -98,7 +98,7 @@ export const content: ToolLocaleContent<PowerReserveEstimatorUI> = {
|
|
|
98
98
|
'name': 'Apakah memakai arloji mengisinya sama seperti memutar?',
|
|
99
99
|
'acceptedAnswer': {
|
|
100
100
|
'@type': 'Answer',
|
|
101
|
-
'text': 'Memakai mengisi lebih lambat dan bervariasi. Di pekerjaan meja, Anda mungkin mengisi 4
|
|
101
|
+
'text': 'Memakai mengisi lebih lambat dan bervariasi. Di pekerjaan meja, Anda mungkin mengisi 4-6% per jam melalui rotor. Saat bergerak aktif, bisa mencapai 8-10% per jam. Memutar dengan tangan lebih cepat dan lebih dapat diprediksi.',
|
|
102
102
|
},
|
|
103
103
|
},
|
|
104
104
|
{
|
|
@@ -90,7 +90,7 @@ export const content: ToolLocaleContent<PowerReserveEstimatorUI> = {
|
|
|
90
90
|
'name': 'Quanto carica un giro di corona l\'orologio?',
|
|
91
91
|
'acceptedAnswer': {
|
|
92
92
|
'@type': 'Answer',
|
|
93
|
-
'text': 'Dipende dal movimento. La maggior parte dei calibri automatici raggiunge la carica completa in 30
|
|
93
|
+
'text': 'Dipende dal movimento. La maggior parte dei calibri automatici raggiunge la carica completa in 30-40 giri, quindi ogni giro aggiunge circa il 2,5-3,3% della riserva totale. I movimenti a carica manuale come l\'Unitas 6498 necessitano di circa 35 giri per una carica completa.',
|
|
94
94
|
},
|
|
95
95
|
},
|
|
96
96
|
{
|
|
@@ -98,7 +98,7 @@ export const content: ToolLocaleContent<PowerReserveEstimatorUI> = {
|
|
|
98
98
|
'name': 'Indossare l\'orologio lo carica quanto la carica manuale?',
|
|
99
99
|
'acceptedAnswer': {
|
|
100
100
|
'@type': 'Answer',
|
|
101
|
-
'text': 'Indossarlo carica più lentamente e in modo variabile. In un lavoro d\'ufficio, puoi caricare il 4
|
|
101
|
+
'text': 'Indossarlo carica più lentamente e in modo variabile. In un lavoro d\'ufficio, puoi caricare il 4-6% all\'ora tramite il rotore. Durante movimento attivo può raggiungere l\'8-10% all\'ora. La carica a mano è più veloce e prevedibile.',
|
|
102
102
|
},
|
|
103
103
|
},
|
|
104
104
|
{
|
|
@@ -90,7 +90,7 @@ export const content: ToolLocaleContent<PowerReserveEstimatorUI> = {
|
|
|
90
90
|
'name': 'Hoeveel laadt één kroondraai het horloge?',
|
|
91
91
|
'acceptedAnswer': {
|
|
92
92
|
'@type': 'Answer',
|
|
93
|
-
'text': 'Dat hangt af van het uurwerk. De meeste automatische kalibers bereiken een volle winding in 30
|
|
93
|
+
'text': 'Dat hangt af van het uurwerk. De meeste automatische kalibers bereiken een volle winding in 30-40 draaien, dus elke draai voegt ongeveer 2,5-3,3% van de totale reserve toe. Handopwinduurwerken zoals de Unitas 6498 hebben ook ongeveer 35 draaien nodig voor een volle winding.',
|
|
94
94
|
},
|
|
95
95
|
},
|
|
96
96
|
{
|
|
@@ -98,7 +98,7 @@ export const content: ToolLocaleContent<PowerReserveEstimatorUI> = {
|
|
|
98
98
|
'name': 'Laadt het dragen van het horloge evenveel als opwinden?',
|
|
99
99
|
'acceptedAnswer': {
|
|
100
100
|
'@type': 'Answer',
|
|
101
|
-
'text': 'Dragen laadt langzamer en wisselender. Op kantoor laadt u ongeveer 4
|
|
101
|
+
'text': 'Dragen laadt langzamer en wisselender. Op kantoor laadt u ongeveer 4-6% per uur via de rotor. Bij actieve beweging kan het 8-10% per uur bereiken. Handmatig opwinden is sneller en voorspelbaarder.',
|
|
102
102
|
},
|
|
103
103
|
},
|
|
104
104
|
{
|
|
@@ -90,7 +90,7 @@ export const content: ToolLocaleContent<PowerReserveEstimatorUI> = {
|
|
|
90
90
|
'name': 'Quanto uma volta da coroa carrega o relógio?',
|
|
91
91
|
'acceptedAnswer': {
|
|
92
92
|
'@type': 'Answer',
|
|
93
|
-
'text': 'Depende do calibre. A maioria dos calibres automáticos atinge a carga total em 30
|
|
93
|
+
'text': 'Depende do calibre. A maioria dos calibres automáticos atinge a carga total em 30-40 voltas, então cada volta adiciona cerca de 2,5-3,3% da reserva total. Movimentos de corda manual como o Unitas 6498 também precisam de cerca de 35 voltas para uma carga completa.',
|
|
94
94
|
},
|
|
95
95
|
},
|
|
96
96
|
{
|
|
@@ -98,7 +98,7 @@ export const content: ToolLocaleContent<PowerReserveEstimatorUI> = {
|
|
|
98
98
|
'name': 'Usar o relógio carrega tanto quanto dar corda?',
|
|
99
99
|
'acceptedAnswer': {
|
|
100
100
|
'@type': 'Answer',
|
|
101
|
-
'text': 'Usar carrega mais lentamente e de forma variável. No escritório, você pode carregar 4
|
|
101
|
+
'text': 'Usar carrega mais lentamente e de forma variável. No escritório, você pode carregar 4-6% por hora pelo rotor. Durante movimento ativo pode chegar a 8-10% por hora. Dar corda manualmente é mais rápido e previsível.',
|
|
102
102
|
},
|
|
103
103
|
},
|
|
104
104
|
{
|
|
@@ -37,10 +37,10 @@ export const content: ToolLocaleContent<StrapTaperCalculatorUI> = {
|
|
|
37
37
|
step3: 'Read the proportions and visual representation.',
|
|
38
38
|
},
|
|
39
39
|
seo: [
|
|
40
|
-
{ type: 'title', text: 'Watch Strap Taper Calculator
|
|
40
|
+
{ type: 'title', text: 'Watch Strap Taper Calculator-Proportions, Buckle Width & Visual Guide', level: 2 },
|
|
41
41
|
{ type: 'paragraph', html: 'A well proportioned strap makes or breaks a watch. Too much taper on a diver makes it look fragile. No taper on a dress watch makes it look clunky. This calculator helps you find the ideal <strong>strap taper ratio</strong> based on your case diameter and lug width.' },
|
|
42
42
|
{ type: 'title', text: 'What Is Strap Taper?', level: 3 },
|
|
43
|
-
{ type: 'paragraph', html: 'Strap taper is the reduction in width from the lug end to the buckle end of a watch strap. A classic dress watch might taper from 20 mm at the lugs to 16 mm at the buckle
|
|
43
|
+
{ type: 'paragraph', html: 'Strap taper is the reduction in width from the lug end to the buckle end of a watch strap. A classic dress watch might taper from 20 mm at the lugs to 16 mm at the buckle-a 4 mm taper. A dive watch might stay at 20 mm straight through for a more tool-like appearance.' },
|
|
44
44
|
{ type: 'title', text: 'The Golden Ratio for Strap Proportions', level: 3 },
|
|
45
45
|
{ type: 'paragraph', html: 'Watch enthusiasts generally agree that a lug width between 45% and 55% of the case diameter looks best. For the taper, a buckle width that is 75% to 85% of the lug width creates a balanced, elegant silhouette. Ratios outside this range can make the watch look top heavy or fragile.' },
|
|
46
46
|
{ type: 'title', text: 'Taper by Watch Style', level: 3 },
|
|
@@ -40,16 +40,16 @@ export const content: ToolLocaleContent<StrapTaperCalculatorUI> = {
|
|
|
40
40
|
{ type: 'title', text: 'Калькулятор сужения ремешка \u2014 Пропорции, ширина пряжки и визуальное руководство', level: 2 },
|
|
41
41
|
{ type: 'paragraph', html: 'Правильно подобранный ремешок может как украсить часы, так и испортить их. Слишком сильное сужение на дайверских часах делает их хрупкими на вид. Отсутствие сужения на классических часах делает их грубыми. Этот калькулятор поможет вам найти идеальное <strong>соотношение сужения ремешка</strong> на основе диаметра корпуса и ширины ушек.' },
|
|
42
42
|
{ type: 'title', text: 'Что такое сужение ремешка?', level: 3 },
|
|
43
|
-
{ type: 'paragraph', html: 'Сужение
|
|
43
|
+
{ type: 'paragraph', html: 'Сужение ремешка-это уменьшение ширины от ушек до пряжки. Классические часы могут сужаться с 20 мм у ушек до 16 мм у пряжки-сужение на 4 мм. Дайверские часы могут оставаться прямыми на 20 мм для более инструментального вида.' },
|
|
44
44
|
{ type: 'title', text: 'Золотое сечение для пропорций ремешка', level: 3 },
|
|
45
45
|
{ type: 'paragraph', html: 'Энтузиасты часов в целом сходятся во мнении, что ширина ушек от 45% до 55% диаметра корпуса выглядит лучше всего. Что касается сужения, ширина пряжки от 75% до 85% ширины ушек создаёт сбалансированный, элегантный силуэт. Соотношения за пределами этого диапазона могут сделать часы визуально тяжелыми или слишком хрупкими.' },
|
|
46
46
|
{ type: 'title', text: 'Сужение по стилю часов', level: 3 },
|
|
47
|
-
{ type: 'paragraph', html: 'Классические часы: сужение на 4 мм (с 20 до 16 мм). Спортивные часы: сужение на 2
|
|
47
|
+
{ type: 'paragraph', html: 'Классические часы: сужение на 4 мм (с 20 до 16 мм). Спортивные часы: сужение на 2-3 мм. Дайверские часы: сужение на 0-2 мм. Военные или полевые часы: прямое сужение для прочного вида. Пилотские часы: минимальное сужение в соответствии с эстетикой приборов.' },
|
|
48
48
|
],
|
|
49
49
|
faq: [
|
|
50
50
|
{
|
|
51
51
|
question: 'Какое сужение ремешка идеально подходит для классических часов?',
|
|
52
|
-
answer: 'Сужение на 4
|
|
52
|
+
answer: 'Сужение на 4 мм-классический выбор. Для ширины ушек 20 мм это означает пряжку 16 мм. Это создаёт элегантный силуэт, который дополняет изысканный вид классических часов.',
|
|
53
53
|
},
|
|
54
54
|
{
|
|
55
55
|
question: 'Должны ли дайверские часы иметь сужающийся ремешок?',
|
|
@@ -89,7 +89,7 @@ export const content: ToolLocaleContent<StrapTaperCalculatorUI> = {
|
|
|
89
89
|
'name': 'Какое сужение ремешка идеально подходит для классических часов?',
|
|
90
90
|
'acceptedAnswer': {
|
|
91
91
|
'@type': 'Answer',
|
|
92
|
-
'text': 'Сужение на 4
|
|
92
|
+
'text': 'Сужение на 4 мм-классический выбор. Для ширины ушек 20 мм это даёт пряжку 16 мм, создавая элегантный силуэт.',
|
|
93
93
|
},
|
|
94
94
|
},
|
|
95
95
|
{
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
import { Bibliography as SharedBibliography } from '@jjlmoya/utils-shared';
|
|
3
|
+
import { tachymeterCalculator } from './index';
|
|
4
|
+
import type { KnownLocale } from '../../types';
|
|
5
|
+
|
|
6
|
+
interface Props {
|
|
7
|
+
locale?: KnownLocale;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const { locale = 'en' } = Astro.props as Props;
|
|
11
|
+
const loader = tachymeterCalculator.i18n[locale] || tachymeterCalculator.i18n.en;
|
|
12
|
+
const content = await loader?.();
|
|
13
|
+
if (!content) return null;
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
{content && <SharedBibliography links={content.bibliography} />}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { BibliographyEntry } from '../../types';
|
|
2
|
+
|
|
3
|
+
export const bibliography: BibliographyEntry[] = [
|
|
4
|
+
{
|
|
5
|
+
name: 'Tachymeter-Wikipedia',
|
|
6
|
+
url: 'https://en.wikipedia.org/wiki/Tachymeter_(watch)',
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
name: 'How to Use a Tachymeter Bezel',
|
|
10
|
+
url: 'https://www.truefacet.com/guide/understanding-tachymeter-bezel/',
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
name: 'Tachymeter Explained: Formula & Examples',
|
|
14
|
+
url: 'https://www.citizenwatch-global.com/support/exterior/tachymeter.html',
|
|
15
|
+
},
|
|
16
|
+
];
|