@jjlmoya/utils-health 1.1.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 +60 -0
- package/src/category/i18n/en.ts +60 -0
- package/src/category/i18n/es.ts +60 -0
- package/src/category/i18n/fr.ts +60 -0
- package/src/category/index.ts +22 -0
- package/src/category/seo.astro +15 -0
- package/src/components/PreviewNavSidebar.astro +116 -0
- package/src/components/PreviewToolbar.astro +143 -0
- package/src/data.ts +28 -0
- package/src/env.d.ts +5 -0
- package/src/index.ts +36 -0
- package/src/layouts/PreviewLayout.astro +117 -0
- package/src/pages/[locale]/[slug].astro +146 -0
- package/src/pages/[locale].astro +251 -0
- package/src/pages/index.astro +4 -0
- package/src/tests/faq_count.test.ts +19 -0
- package/src/tests/locale_completeness.test.ts +42 -0
- package/src/tests/mocks/astro_mock.js +2 -0
- package/src/tests/no_h1_in_components.test.ts +48 -0
- package/src/tests/schemas_fulfillment.test.ts +23 -0
- package/src/tests/seo_length.test.ts +22 -0
- package/src/tests/title_quality.test.ts +55 -0
- package/src/tests/tool_validation.test.ts +17 -0
- package/src/tool/binauralTuner/bibliography.astro +14 -0
- package/src/tool/binauralTuner/component.astro +687 -0
- package/src/tool/binauralTuner/i18n/en.ts +187 -0
- package/src/tool/binauralTuner/i18n/es.ts +187 -0
- package/src/tool/binauralTuner/i18n/fr.ts +187 -0
- package/src/tool/binauralTuner/index.ts +27 -0
- package/src/tool/binauralTuner/seo.astro +14 -0
- package/src/tool/binauralTuner/ui.ts +18 -0
- package/src/tool/bloodUnitConverter/bibliography.astro +14 -0
- package/src/tool/bloodUnitConverter/component.astro +915 -0
- package/src/tool/bloodUnitConverter/i18n/en.ts +227 -0
- package/src/tool/bloodUnitConverter/i18n/es.ts +250 -0
- package/src/tool/bloodUnitConverter/i18n/fr.ts +218 -0
- package/src/tool/bloodUnitConverter/index.ts +27 -0
- package/src/tool/bloodUnitConverter/seo.astro +14 -0
- package/src/tool/bloodUnitConverter/ui.ts +38 -0
- package/src/tool/bmiCalculator/bibliography.astro +14 -0
- package/src/tool/bmiCalculator/component.astro +415 -0
- package/src/tool/bmiCalculator/i18n/en.ts +217 -0
- package/src/tool/bmiCalculator/i18n/es.ts +221 -0
- package/src/tool/bmiCalculator/i18n/fr.ts +217 -0
- package/src/tool/bmiCalculator/index.ts +27 -0
- package/src/tool/bmiCalculator/seo.astro +14 -0
- package/src/tool/bmiCalculator/ui.ts +21 -0
- package/src/tool/breathingVisualizer/bibliography.astro +14 -0
- package/src/tool/breathingVisualizer/component.astro +636 -0
- package/src/tool/breathingVisualizer/i18n/en.ts +206 -0
- package/src/tool/breathingVisualizer/i18n/es.ts +206 -0
- package/src/tool/breathingVisualizer/i18n/fr.ts +206 -0
- package/src/tool/breathingVisualizer/index.ts +27 -0
- package/src/tool/breathingVisualizer/seo.astro +14 -0
- package/src/tool/breathingVisualizer/ui.ts +31 -0
- package/src/tool/caffeineTracker/bibliography.astro +14 -0
- package/src/tool/caffeineTracker/component.astro +1210 -0
- package/src/tool/caffeineTracker/i18n/en.ts +198 -0
- package/src/tool/caffeineTracker/i18n/es.ts +198 -0
- package/src/tool/caffeineTracker/i18n/fr.ts +198 -0
- package/src/tool/caffeineTracker/index.ts +27 -0
- package/src/tool/caffeineTracker/logic.ts +31 -0
- package/src/tool/caffeineTracker/seo.astro +14 -0
- package/src/tool/caffeineTracker/ui.ts +36 -0
- package/src/tool/daltonismSimulator/bibliography.astro +14 -0
- package/src/tool/daltonismSimulator/component.astro +383 -0
- package/src/tool/daltonismSimulator/i18n/en.ts +188 -0
- package/src/tool/daltonismSimulator/i18n/es.ts +218 -0
- package/src/tool/daltonismSimulator/i18n/fr.ts +168 -0
- package/src/tool/daltonismSimulator/index.ts +27 -0
- package/src/tool/daltonismSimulator/seo.astro +14 -0
- package/src/tool/daltonismSimulator/ui.ts +20 -0
- package/src/tool/digestionStopwatch/bibliography.astro +14 -0
- package/src/tool/digestionStopwatch/component.astro +627 -0
- package/src/tool/digestionStopwatch/i18n/en.ts +173 -0
- package/src/tool/digestionStopwatch/i18n/es.ts +173 -0
- package/src/tool/digestionStopwatch/i18n/fr.ts +173 -0
- package/src/tool/digestionStopwatch/index.ts +27 -0
- package/src/tool/digestionStopwatch/logic.ts +63 -0
- package/src/tool/digestionStopwatch/seo.astro +14 -0
- package/src/tool/digestionStopwatch/ui.ts +20 -0
- package/src/tool/epworthSleepinessScale/bibliography.astro +14 -0
- package/src/tool/epworthSleepinessScale/component.astro +528 -0
- package/src/tool/epworthSleepinessScale/i18n/en.ts +217 -0
- package/src/tool/epworthSleepinessScale/i18n/es.ts +217 -0
- package/src/tool/epworthSleepinessScale/i18n/fr.ts +217 -0
- package/src/tool/epworthSleepinessScale/index.ts +27 -0
- package/src/tool/epworthSleepinessScale/seo.astro +14 -0
- package/src/tool/epworthSleepinessScale/ui.ts +27 -0
- package/src/tool/hydrationCalculator/bibliography.astro +14 -0
- package/src/tool/hydrationCalculator/component.astro +694 -0
- package/src/tool/hydrationCalculator/i18n/en.ts +217 -0
- package/src/tool/hydrationCalculator/i18n/es.ts +222 -0
- package/src/tool/hydrationCalculator/i18n/fr.ts +199 -0
- package/src/tool/hydrationCalculator/index.ts +27 -0
- package/src/tool/hydrationCalculator/seo.astro +14 -0
- package/src/tool/hydrationCalculator/ui.ts +28 -0
- package/src/tool/pelliRobsonTest/bibliography.astro +14 -0
- package/src/tool/pelliRobsonTest/component.astro +653 -0
- package/src/tool/pelliRobsonTest/i18n/en.ts +205 -0
- package/src/tool/pelliRobsonTest/i18n/es.ts +205 -0
- package/src/tool/pelliRobsonTest/i18n/fr.ts +205 -0
- package/src/tool/pelliRobsonTest/index.ts +27 -0
- package/src/tool/pelliRobsonTest/seo.astro +14 -0
- package/src/tool/pelliRobsonTest/ui.ts +21 -0
- package/src/tool/peripheralVisionTrainer/bibliography.astro +14 -0
- package/src/tool/peripheralVisionTrainer/component.astro +678 -0
- package/src/tool/peripheralVisionTrainer/i18n/en.ts +224 -0
- package/src/tool/peripheralVisionTrainer/i18n/es.ts +224 -0
- package/src/tool/peripheralVisionTrainer/i18n/fr.ts +211 -0
- package/src/tool/peripheralVisionTrainer/index.ts +27 -0
- package/src/tool/peripheralVisionTrainer/seo.astro +14 -0
- package/src/tool/peripheralVisionTrainer/ui.ts +26 -0
- package/src/tool/readingDistanceCalculator/bibliography.astro +14 -0
- package/src/tool/readingDistanceCalculator/component.astro +588 -0
- package/src/tool/readingDistanceCalculator/i18n/en.ts +202 -0
- package/src/tool/readingDistanceCalculator/i18n/es.ts +215 -0
- package/src/tool/readingDistanceCalculator/i18n/fr.ts +193 -0
- package/src/tool/readingDistanceCalculator/index.ts +31 -0
- package/src/tool/readingDistanceCalculator/seo.astro +14 -0
- package/src/tool/readingDistanceCalculator/ui.ts +18 -0
- package/src/tool/screenDecompressionTime/bibliography.astro +14 -0
- package/src/tool/screenDecompressionTime/component.astro +671 -0
- package/src/tool/screenDecompressionTime/i18n/en.ts +225 -0
- package/src/tool/screenDecompressionTime/i18n/es.ts +247 -0
- package/src/tool/screenDecompressionTime/i18n/fr.ts +225 -0
- package/src/tool/screenDecompressionTime/index.ts +27 -0
- package/src/tool/screenDecompressionTime/seo.astro +14 -0
- package/src/tool/screenDecompressionTime/ui.ts +32 -0
- package/src/tool/tinnitusReliever/bibliography.astro +14 -0
- package/src/tool/tinnitusReliever/component.astro +581 -0
- package/src/tool/tinnitusReliever/i18n/en.ts +161 -0
- package/src/tool/tinnitusReliever/i18n/es.ts +161 -0
- package/src/tool/tinnitusReliever/i18n/fr.ts +161 -0
- package/src/tool/tinnitusReliever/index.ts +27 -0
- package/src/tool/tinnitusReliever/seo.astro +14 -0
- package/src/tool/tinnitusReliever/ui.ts +9 -0
- package/src/tool/ubeCalculator/bibliography.astro +14 -0
- package/src/tool/ubeCalculator/component.astro +683 -0
- package/src/tool/ubeCalculator/i18n/en.ts +200 -0
- package/src/tool/ubeCalculator/i18n/es.ts +200 -0
- package/src/tool/ubeCalculator/i18n/fr.ts +196 -0
- package/src/tool/ubeCalculator/index.ts +27 -0
- package/src/tool/ubeCalculator/seo.astro +14 -0
- package/src/tool/ubeCalculator/ui.ts +26 -0
- package/src/tool/waterPurifier/bibliography.astro +14 -0
- package/src/tool/waterPurifier/component.astro +628 -0
- package/src/tool/waterPurifier/i18n/en.ts +167 -0
- package/src/tool/waterPurifier/i18n/es.ts +167 -0
- package/src/tool/waterPurifier/i18n/fr.ts +167 -0
- package/src/tool/waterPurifier/index.ts +27 -0
- package/src/tool/waterPurifier/seo.astro +14 -0
- package/src/tool/waterPurifier/ui.ts +18 -0
- package/src/tools.ts +19 -0
- package/src/types.ts +72 -0
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import type { WithContext, SoftwareApplication, FAQPage, HowToThing } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { ReadingDistanceCalculatorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'reading-distance-calculator';
|
|
6
|
+
const title = 'Optimal Reading Distance Calculator';
|
|
7
|
+
const description =
|
|
8
|
+
'Find out how many centimetres from the screen you should sit based on your font size. Avoid eye strain and protect your vision with ergonomics.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Why does font size matter for reading distance?',
|
|
13
|
+
answer:
|
|
14
|
+
'Because the eye needs text to project a specific size on the retina for effortless recognition. If text is small, we tend to lean in, which forces the ciliary muscle to over-contract, causing eye strain.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'What is the minimum healthy reading distance?',
|
|
18
|
+
answer:
|
|
19
|
+
'As a general rule, you should never be closer than 35-40 cm to any screen. For computer monitors, the ideal distance is usually between 50 and 70 cm.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'Does screen resolution (PPI) affect the distance?',
|
|
23
|
+
answer:
|
|
24
|
+
'Yes. On high-pixel-density screens, text may look very sharp but be physically smaller. That is why it is vital to adjust your operating system scaling to maintain a comfortable viewing distance.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'What if I wear progressive lenses?',
|
|
28
|
+
answer:
|
|
29
|
+
'People with presbyopia or progressive lenses have a sweet spot for focus. The calculator helps you find the physical distance, but you should also ensure an upright posture to avoid straining your neck.',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
question: 'How does reading distance affect childhood myopia?',
|
|
33
|
+
answer:
|
|
34
|
+
'Children have a remarkable capacity for accommodation that lets them see very close objects without apparent effort. However, this is a high risk factor for myopia development. Maintaining the recommended distance from an early age is key to preserving long-term vision.',
|
|
35
|
+
},
|
|
36
|
+
];
|
|
37
|
+
|
|
38
|
+
const howToData = [
|
|
39
|
+
{
|
|
40
|
+
name: 'Adjust the zoom control',
|
|
41
|
+
text: 'Move the slider until the preview text matches the font size you normally use on your screen.',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: 'Read the recommended distance',
|
|
45
|
+
text: 'The number in centimetres shows the minimum healthy limit. Position yourself at that distance or further from your screen.',
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: 'Interpret the status indicator',
|
|
49
|
+
text: 'The traffic light tells you whether your font size means high risk, recommended distance or safe zone for your eyes.',
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: 'Apply the ergonomic tip',
|
|
53
|
+
text: 'If the calculated distance seems too large, increase your browser zoom (Ctrl +) instead of moving closer to the screen.',
|
|
54
|
+
},
|
|
55
|
+
];
|
|
56
|
+
|
|
57
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
58
|
+
'@context': 'https://schema.org',
|
|
59
|
+
'@type': 'FAQPage',
|
|
60
|
+
mainEntity: faqData.map((item) => ({
|
|
61
|
+
'@type': 'Question',
|
|
62
|
+
name: item.question,
|
|
63
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
64
|
+
})),
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
68
|
+
'@context': 'https://schema.org',
|
|
69
|
+
'@type': 'HowTo',
|
|
70
|
+
name: title,
|
|
71
|
+
description,
|
|
72
|
+
step: howToData.map((step, i) => ({
|
|
73
|
+
'@type': 'HowToStep',
|
|
74
|
+
position: i + 1,
|
|
75
|
+
name: step.name,
|
|
76
|
+
text: step.text,
|
|
77
|
+
})),
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
81
|
+
'@context': 'https://schema.org',
|
|
82
|
+
'@type': 'SoftwareApplication',
|
|
83
|
+
name: title,
|
|
84
|
+
description,
|
|
85
|
+
applicationCategory: 'HealthApplication',
|
|
86
|
+
operatingSystem: 'Web',
|
|
87
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
export const content: ToolLocaleContent<ReadingDistanceCalculatorUI> = {
|
|
91
|
+
slug,
|
|
92
|
+
title,
|
|
93
|
+
description,
|
|
94
|
+
faqTitle: 'Frequently asked questions about reading distance and eye strain',
|
|
95
|
+
faq: faqData,
|
|
96
|
+
bibliographyTitle: 'Scientific references',
|
|
97
|
+
bibliography: [
|
|
98
|
+
{
|
|
99
|
+
name: 'American Academy of Ophthalmology — Computers, Digital Devices and Eye Strain',
|
|
100
|
+
url: 'https://www.aao.org/',
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
name: 'NIOSH — Ergonomic Guidelines for Computer Workstations',
|
|
104
|
+
url: 'https://www.cdc.gov/niosh/',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
name: 'College of Optometrists — Digital eye strain',
|
|
108
|
+
url: 'https://www.college-optometrists.org/',
|
|
109
|
+
},
|
|
110
|
+
],
|
|
111
|
+
howTo: howToData,
|
|
112
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
113
|
+
ui: {
|
|
114
|
+
bannerText:
|
|
115
|
+
'The problem: if your font is small, you are forced to sit close. If you sit close, your eyes suffer. Tell us your font size and we will tell you where you should be.',
|
|
116
|
+
zoomLabel: 'ZOOM',
|
|
117
|
+
previewText: 'This text represents your screen',
|
|
118
|
+
resultLabel: 'Eye Strain Limit',
|
|
119
|
+
resultUnit: 'cm',
|
|
120
|
+
resultFooter: 'Closer than this and you will get headaches',
|
|
121
|
+
statusWarning: 'High Risk!',
|
|
122
|
+
statusWarningDesc: 'Tiny font. You are forcing focus.',
|
|
123
|
+
statusSafe: 'Safe Zone',
|
|
124
|
+
statusSafeDesc: 'You can read from far away without effort.',
|
|
125
|
+
statusIdeal: 'Recommended Distance',
|
|
126
|
+
statusIdealDesc: 'Keep the screen at this separation.',
|
|
127
|
+
conceptTitle1: 'The relationship',
|
|
128
|
+
conceptText1:
|
|
129
|
+
'If your font is small, the screen needs to be closer for you to read it. If it is less than 40 cm away, your ocular muscle contracts at maximum and headaches appear.',
|
|
130
|
+
conceptTitle2: 'The trick',
|
|
131
|
+
conceptText2:
|
|
132
|
+
'If the recommended distance is very large and you cannot see well, do not move closer. Increase the zoom (Ctrl +) on your screen to read from a distance without straining your eyes.',
|
|
133
|
+
},
|
|
134
|
+
seo: [
|
|
135
|
+
{
|
|
136
|
+
type: 'summary',
|
|
137
|
+
title: 'Optimal Reading Distance Calculator',
|
|
138
|
+
items: [
|
|
139
|
+
'<strong>Ergonomics-based</strong>: calculates the minimum healthy limit based on font size.',
|
|
140
|
+
'<strong>Real-time preview</strong>: adjust zoom and see the text at actual size.',
|
|
141
|
+
'<strong>Risk traffic light</strong>: shows whether your configuration is high risk, ideal or safe zone.',
|
|
142
|
+
'<strong>Ergonomic tip</strong>: guides you to increase zoom instead of leaning in.',
|
|
143
|
+
],
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'title',
|
|
147
|
+
text: 'Optimal Reading Distance: Protect Your Vision in the Digital Age',
|
|
148
|
+
level: 2,
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
type: 'paragraph',
|
|
152
|
+
html: 'We spend an average of eight to ten hours a day in front of screens. Whether working on a laptop, scrolling social media on a phone or watching series on a tablet, our eyes are under constant strain. One of the most critical factors for avoiding computer vision syndrome and progressive myopia is <strong>reading distance</strong>. The exact figure depends entirely on the font size you are consuming.',
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
type: 'title',
|
|
156
|
+
text: 'The Science Behind Visual Distance',
|
|
157
|
+
level: 2,
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
type: 'paragraph',
|
|
161
|
+
html: 'The human eye works similarly to a camera. To focus on nearby objects, the ciliary muscle must contract to change the shape of the lens — a process called <strong>accommodation</strong>. If you spend hours with the ciliary muscle contracted because text is too close or too small, it fatigues, causing what is known as asthenopia or eye strain.',
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
type: 'tip',
|
|
165
|
+
title: 'The Visual Rest Rule',
|
|
166
|
+
html: 'To complement good reading distance, every 20 minutes look at an object 20 feet (about 6 metres) away for at least <strong>20 seconds</strong> to relax your focus.',
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
type: 'title',
|
|
170
|
+
text: 'Factors That Determine Your Ideal Distance',
|
|
171
|
+
level: 2,
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
type: 'list',
|
|
175
|
+
items: [
|
|
176
|
+
'<strong>Pixel density (PPI):</strong> on high-resolution screens, text is sharper but physically smaller.',
|
|
177
|
+
'<strong>Contrast:</strong> grey text on a white background forces the eye closer than pure black text.',
|
|
178
|
+
'<strong>Ambient lighting:</strong> low light causes the pupil to dilate, reducing depth of field.',
|
|
179
|
+
'<strong>Presbyopia:</strong> with age, the lens loses elasticity and the minimum focus distance increases.',
|
|
180
|
+
],
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
type: 'title',
|
|
184
|
+
text: 'Tips for Healthy Reading',
|
|
185
|
+
level: 2,
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
type: 'list',
|
|
189
|
+
items: [
|
|
190
|
+
'<strong>Increase zoom:</strong> do not be afraid to set your browser to 110% or 125%. Larger text means you can sit further from the monitor.',
|
|
191
|
+
'<strong>Adjust monitor height:</strong> the top edge should be at or slightly below eye level.',
|
|
192
|
+
'<strong>Avoid excessive brightness:</strong> your screen should not be a lamp. Adjust brightness to match a white sheet of paper.',
|
|
193
|
+
'<strong>Blink deliberately:</strong> make a conscious effort to blink when your eyes feel heavy.',
|
|
194
|
+
],
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
type: 'tip',
|
|
198
|
+
title: 'Protection for Children',
|
|
199
|
+
html: 'Children have enormous accommodative capacity that lets them see very close objects without apparent effort. However, this is a high risk factor for developing <strong>myopia</strong>. Always ensure they maintain the distance recommended by the calculator.',
|
|
200
|
+
},
|
|
201
|
+
],
|
|
202
|
+
};
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
import type { WithContext, SoftwareApplication, FAQPage, HowToThing } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { ReadingDistanceCalculatorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'distancia-lectura';
|
|
6
|
+
const title = 'Calculadora de Distancia de Lectura Óptima';
|
|
7
|
+
const description =
|
|
8
|
+
'Descubre a cuántos centímetros de la pantalla debes situarte según el tamaño de tu fuente. Evita la fatiga visual y protege tus ojos con ergonomía.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: '¿Por qué importa el tamaño de la fuente para la distancia?',
|
|
13
|
+
answer:
|
|
14
|
+
'Porque el ojo necesita que la letra proyecte un tamaño específico en la retina para reconocerla sin esfuerzo. Si la letra es pequeña, tendemos a acercarnos, lo que obliga al músculo ciliar a contraerse en exceso, causando fatiga visual.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: '¿Cuál es la distancia mínima saludable?',
|
|
18
|
+
answer:
|
|
19
|
+
'Como norma general, nunca deberías estar a menos de 35-40 cm de cualquier pantalla. Para monitores de ordenador, la distancia ideal suele oscilar entre los 50 y 70 cm.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: '¿Afecta la resolución de la pantalla (PPI)?',
|
|
23
|
+
answer:
|
|
24
|
+
'Sí. En pantallas con muchos píxeles por pulgada, el texto puede verse muy nítido pero ser físicamente más pequeño. Por eso es vital ajustar el escalado del sistema operativo para poder mantener una distancia cómoda.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: '¿Qué pasa si uso gafas progresivas?',
|
|
28
|
+
answer:
|
|
29
|
+
'Las personas con presbicia o que usan cristales progresivos tienen un punto dulce de enfoque. La calculadora te ayuda a encontrar la distancia física, pero debes asegurarte de que tu postura corporal sea erguida para no forzar el cuello.',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
question: '¿Cómo afecta la distancia a la miopía infantil?',
|
|
33
|
+
answer:
|
|
34
|
+
'Los niños tienen una capacidad de acomodación enorme, lo que les permite ver objetos muy cerca sin esfuerzo aparente. Sin embargo, esto es un factor de riesgo alto para el desarrollo de miopía. Mantener la distancia recomendada desde la infancia es clave para preservar la visión.',
|
|
35
|
+
},
|
|
36
|
+
];
|
|
37
|
+
|
|
38
|
+
const howToData = [
|
|
39
|
+
{
|
|
40
|
+
name: 'Ajusta el control de zoom',
|
|
41
|
+
text: 'Mueve el deslizador hasta que el texto de previsualización tenga el mismo tamaño que el que usas normalmente en tu pantalla.',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: 'Lee la distancia recomendada',
|
|
45
|
+
text: 'El número en centímetros indica el límite mínimo saludable. Sitúate a esa distancia o más lejos de tu pantalla.',
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: 'Interpreta el indicador de estado',
|
|
49
|
+
text: 'El semáforo te indica si tu tamaño de letra implica riesgo alto, distancia recomendada o zona segura para tus ojos.',
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: 'Aplica el consejo ergonómico',
|
|
53
|
+
text: 'Si la distancia calculada es muy grande, sube el zoom del navegador (Ctrl +) en lugar de acercarte a la pantalla.',
|
|
54
|
+
},
|
|
55
|
+
];
|
|
56
|
+
|
|
57
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
58
|
+
'@context': 'https://schema.org',
|
|
59
|
+
'@type': 'FAQPage',
|
|
60
|
+
mainEntity: faqData.map((item) => ({
|
|
61
|
+
'@type': 'Question',
|
|
62
|
+
name: item.question,
|
|
63
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
64
|
+
})),
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
68
|
+
'@context': 'https://schema.org',
|
|
69
|
+
'@type': 'HowTo',
|
|
70
|
+
name: title,
|
|
71
|
+
description,
|
|
72
|
+
step: howToData.map((step, i) => ({
|
|
73
|
+
'@type': 'HowToStep',
|
|
74
|
+
position: i + 1,
|
|
75
|
+
name: step.name,
|
|
76
|
+
text: step.text,
|
|
77
|
+
})),
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
81
|
+
'@context': 'https://schema.org',
|
|
82
|
+
'@type': 'SoftwareApplication',
|
|
83
|
+
name: title,
|
|
84
|
+
description,
|
|
85
|
+
applicationCategory: 'HealthApplication',
|
|
86
|
+
operatingSystem: 'Web',
|
|
87
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
export const content: ToolLocaleContent<ReadingDistanceCalculatorUI> = {
|
|
91
|
+
slug,
|
|
92
|
+
title,
|
|
93
|
+
description,
|
|
94
|
+
faqTitle: 'Preguntas frecuentes sobre distancia de lectura y fatiga visual',
|
|
95
|
+
faq: faqData,
|
|
96
|
+
bibliographyTitle: 'Referencias científicas',
|
|
97
|
+
bibliography: [
|
|
98
|
+
{
|
|
99
|
+
name: 'American Academy of Ophthalmology — Computers, Digital Devices and Eye Strain',
|
|
100
|
+
url: 'https://www.aao.org/',
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
name: 'ASISPA — Ergonomía en el uso de pantallas de visualización de datos',
|
|
104
|
+
url: 'https://asispa.org/',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
name: 'NIOSH — Ergonomic Guidelines for Computer Workstations',
|
|
108
|
+
url: 'https://www.cdc.gov/niosh/',
|
|
109
|
+
},
|
|
110
|
+
],
|
|
111
|
+
howTo: howToData,
|
|
112
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
113
|
+
ui: {
|
|
114
|
+
bannerText:
|
|
115
|
+
'El problema: si tu letra es pequeña, te obligas a estar cerca. Si estás cerca, tus ojos sufren. Dinos qué tamaño usas y te diremos dónde deberías estar.',
|
|
116
|
+
zoomLabel: 'ZOOM',
|
|
117
|
+
previewText: 'Este texto representa tu pantalla',
|
|
118
|
+
resultLabel: 'Límite de Fatiga Visual',
|
|
119
|
+
resultUnit: 'cm',
|
|
120
|
+
resultFooter: 'A menos de esta distancia te dolerá la cabeza',
|
|
121
|
+
statusWarning: '¡Riesgo Alto!',
|
|
122
|
+
statusWarningDesc: 'Letra minúscula. Estás forzando el enfoque.',
|
|
123
|
+
statusSafe: 'Zona Segura',
|
|
124
|
+
statusSafeDesc: 'Puedes leer desde lejos sin esfuerzo.',
|
|
125
|
+
statusIdeal: 'Distancia Recomendada',
|
|
126
|
+
statusIdealDesc: 'Mantén la pantalla a esta separación.',
|
|
127
|
+
conceptTitle1: 'La relación',
|
|
128
|
+
conceptText1:
|
|
129
|
+
'Si tu letra es pequeña, la pantalla tiene que estar más cerca para que la leas. Si está a menos de 40 cm, tu músculo ocular se contrae al máximo y aparecen los dolores de cabeza.',
|
|
130
|
+
conceptTitle2: 'El truco',
|
|
131
|
+
conceptText2:
|
|
132
|
+
'Si la distancia recomendada es muy alta y no ves bien, no te acerques. Sube el zoom (Ctrl +) de tu pantalla para poder leer desde lejos sin forzar la vista.',
|
|
133
|
+
},
|
|
134
|
+
seo: [
|
|
135
|
+
{
|
|
136
|
+
type: 'summary',
|
|
137
|
+
title: 'Calculadora de Distancia de Lectura Óptima',
|
|
138
|
+
items: [
|
|
139
|
+
'<strong>Basada en ergonomía visual</strong>: calcula el límite mínimo saludable según el tamaño de fuente.',
|
|
140
|
+
'<strong>Previsualización en tiempo real</strong>: ajusta el zoom y ve el texto al tamaño real.',
|
|
141
|
+
'<strong>Semáforo de riesgo</strong>: indica si tu configuración es de riesgo alto, ideal o zona segura.',
|
|
142
|
+
'<strong>Consejo ergonómico</strong>: guía para corregir la distancia aumentando el zoom en lugar de acercarte.',
|
|
143
|
+
],
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'title',
|
|
147
|
+
text: 'Distancia de Lectura Óptima: Protege tu Visión en la Era Digital',
|
|
148
|
+
level: 2,
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
type: 'paragraph',
|
|
152
|
+
html: 'Pasamos una media de entre ocho y diez horas al día frente a pantallas. Ya sea trabajando en un ordenador portátil, revisando redes sociales en el móvil o viendo series en una tablet, nuestros ojos están sometidos a un esfuerzo constante. Uno de los factores más críticos para evitar el síndrome visual informático y la miopía progresiva es la <strong>distancia de lectura</strong>. Pero la cifra exacta depende enteramente del tamaño de la fuente que estás consumiendo.',
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
type: 'title',
|
|
156
|
+
text: 'La Ciencia Detrás de la Distancia Visual',
|
|
157
|
+
level: 2,
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
type: 'paragraph',
|
|
161
|
+
html: 'El ojo humano funciona de forma similar a una cámara fotográfica. Para enfocar objetos cercanos, el músculo ciliar debe contraerse para cambiar la forma del cristalino. A este proceso se le llama <strong>acomodación</strong>. Si pasas horas con el músculo ciliar contraído porque el texto está muy cerca o es muy pequeño, este se fatiga, provocando lo que conocemos como astenopia o fatiga visual.',
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
type: 'tip',
|
|
165
|
+
title: 'Regla del Descanso Visual',
|
|
166
|
+
html: 'Para complementar una buena distancia de lectura, cada 20 minutos mira a un objeto situado a 20 pies (unos 6 metros) durante al menos <strong>20 segundos</strong> para relajar el enfoque.',
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
type: 'title',
|
|
170
|
+
text: 'Factores que Determinan tu Distancia Ideal',
|
|
171
|
+
level: 2,
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
type: 'list',
|
|
175
|
+
items: [
|
|
176
|
+
'<strong>Densidad de píxeles (PPI):</strong> en pantallas de alta resolución, las letras suelen ser más nítidas pero más pequeñas físicamente.',
|
|
177
|
+
'<strong>Contraste:</strong> un texto gris sobre fondo blanco obliga al ojo a acercarse más que un texto negro puro.',
|
|
178
|
+
'<strong>Iluminación ambiental:</strong> la falta de luz hace que la pupila se dilate, disminuyendo la profundidad de campo.',
|
|
179
|
+
'<strong>Presbicia:</strong> con la edad, el cristalino pierde elasticidad y la distancia mínima de enfoque aumenta.',
|
|
180
|
+
],
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
type: 'title',
|
|
184
|
+
text: 'Consecuencias de una Mala Ergonomía Visual',
|
|
185
|
+
level: 2,
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
type: 'paragraph',
|
|
189
|
+
html: '<strong>Síndrome Visual Informático (SVI):</strong> se manifiesta con ojos secos, picor, enrojecimiento y visión doble. Al estar tan concentrados y cerca del texto, parpadeamos hasta 5 veces menos de lo normal, lo que rompe la película lagrimal.',
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
type: 'paragraph',
|
|
193
|
+
html: '<strong>Dolores cervicales:</strong> al intentar leer letras pequeñas de cerca, tendemos a inclinar la cabeza hacia adelante. Esto aumenta el peso que debe soportar la columna cervical, derivando en contracturas y cefaleas tensionales.',
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
type: 'title',
|
|
197
|
+
text: 'Consejos para una Lectura Saludable',
|
|
198
|
+
level: 2,
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
type: 'list',
|
|
202
|
+
items: [
|
|
203
|
+
'<strong>Aumenta el zoom:</strong> no tengas miedo de poner el navegador al 110% o 125%. Si el texto es más grande, podrás alejarte más del monitor.',
|
|
204
|
+
'<strong>Ajusta la altura:</strong> el borde superior del monitor debe estar a la altura de tus ojos o ligeramente por debajo.',
|
|
205
|
+
'<strong>Evita el brillo excesivo:</strong> la pantalla no debe ser una lámpara. Ajusta el brillo para que sea similar al papel blanco.',
|
|
206
|
+
'<strong>Parpadeo voluntario:</strong> esfuérzate por parpadear conscientemente cuando notes pesadez ocular.',
|
|
207
|
+
],
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
type: 'tip',
|
|
211
|
+
title: 'Protección para Niños',
|
|
212
|
+
html: 'Los niños tienen una capacidad de acomodación enorme que les permite ver objetos muy cerca sin esfuerzo aparente. Sin embargo, esto es un factor de riesgo alto para el desarrollo de <strong>miopía</strong>. Vigila siempre que mantengan la distancia recomendada por la calculadora.',
|
|
213
|
+
},
|
|
214
|
+
],
|
|
215
|
+
};
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import type { WithContext, SoftwareApplication, FAQPage, HowToThing } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { ReadingDistanceCalculatorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'calculateur-distance-lecture';
|
|
6
|
+
const title = 'Calculateur de Distance de Lecture Optimale';
|
|
7
|
+
const description =
|
|
8
|
+
'Découvrez à combien de centimètres de l\'écran vous devez vous asseoir selon la taille de votre police. Évitez la fatigue visuelle et protégez vos yeux grâce à l\'ergonomie.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Pourquoi la taille de la police importe-t-elle pour la distance?',
|
|
13
|
+
answer:
|
|
14
|
+
"Parce que l'œil a besoin que la lettre projette une taille spécifique sur la rétine pour la reconnaître sans effort. Si la police est petite, on tend à se rapprocher, ce qui oblige le muscle ciliaire à se contracter excessivement, provoquant une fatigue visuelle.",
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'Quelle est la distance minimale saine?',
|
|
18
|
+
answer:
|
|
19
|
+
"En règle générale, vous ne devriez jamais être à moins de 35-40 cm de tout écran. Pour les moniteurs d'ordinateur, la distance idéale se situe généralement entre 50 et 70 cm.",
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: "La résolution de l'écran (PPI) a-t-elle une incidence?",
|
|
23
|
+
answer:
|
|
24
|
+
"Oui. Sur les écrans à haute densité de pixels, le texte peut paraître très net mais être physiquement plus petit. Il est donc vital d'ajuster la mise à l'échelle du système d'exploitation pour maintenir une distance de visualisation confortable.",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'Que faire si je porte des verres progressifs?',
|
|
28
|
+
answer:
|
|
29
|
+
"Les personnes atteintes de presbytie ou portant des verres progressifs ont un point focal idéal. La calculatrice vous aide à trouver la distance physique, mais vous devez également veiller à adopter une posture droite pour ne pas fatiguer le cou.",
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
question: 'Comment la distance de lecture affecte-t-elle la myopie infantile?',
|
|
33
|
+
answer:
|
|
34
|
+
"Les enfants ont une capacité d'accommodation remarquable qui leur permet de voir des objets très proches sans effort apparent. Cependant, c'est un facteur de risque élevé pour le développement de la myopie. Maintenir la distance recommandée dès le plus jeune âge est essentiel.",
|
|
35
|
+
},
|
|
36
|
+
];
|
|
37
|
+
|
|
38
|
+
const howToData = [
|
|
39
|
+
{
|
|
40
|
+
name: 'Ajustez le contrôle de zoom',
|
|
41
|
+
text: "Déplacez le curseur jusqu'à ce que le texte de prévisualisation corresponde à la taille de police que vous utilisez normalement sur votre écran.",
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: 'Lisez la distance recommandée',
|
|
45
|
+
text: "Le nombre en centimètres indique la limite minimale saine. Positionnez-vous à cette distance ou plus loin de votre écran.",
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: "Interprétez l'indicateur d'état",
|
|
49
|
+
text: "Le feu tricolore vous indique si la taille de votre police représente un risque élevé, une distance recommandée ou une zone sûre pour vos yeux.",
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: "Appliquez le conseil ergonomique",
|
|
53
|
+
text: "Si la distance calculée semble trop grande, augmentez le zoom de votre navigateur (Ctrl +) plutôt que de vous rapprocher de l'écran.",
|
|
54
|
+
},
|
|
55
|
+
];
|
|
56
|
+
|
|
57
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
58
|
+
'@context': 'https://schema.org',
|
|
59
|
+
'@type': 'FAQPage',
|
|
60
|
+
mainEntity: faqData.map((item) => ({
|
|
61
|
+
'@type': 'Question',
|
|
62
|
+
name: item.question,
|
|
63
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
64
|
+
})),
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
68
|
+
'@context': 'https://schema.org',
|
|
69
|
+
'@type': 'HowTo',
|
|
70
|
+
name: title,
|
|
71
|
+
description,
|
|
72
|
+
step: howToData.map((step, i) => ({
|
|
73
|
+
'@type': 'HowToStep',
|
|
74
|
+
position: i + 1,
|
|
75
|
+
name: step.name,
|
|
76
|
+
text: step.text,
|
|
77
|
+
})),
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
81
|
+
'@context': 'https://schema.org',
|
|
82
|
+
'@type': 'SoftwareApplication',
|
|
83
|
+
name: title,
|
|
84
|
+
description,
|
|
85
|
+
applicationCategory: 'HealthApplication',
|
|
86
|
+
operatingSystem: 'Web',
|
|
87
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
export const content: ToolLocaleContent<ReadingDistanceCalculatorUI> = {
|
|
91
|
+
slug,
|
|
92
|
+
title,
|
|
93
|
+
description,
|
|
94
|
+
faqTitle: 'Questions fréquentes sur la distance de lecture et la fatigue visuelle',
|
|
95
|
+
faq: faqData,
|
|
96
|
+
bibliographyTitle: 'Références scientifiques',
|
|
97
|
+
bibliography: [
|
|
98
|
+
{
|
|
99
|
+
name: "American Academy of Ophthalmology — Computers, Digital Devices and Eye Strain",
|
|
100
|
+
url: 'https://www.aao.org/',
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
name: 'NIOSH — Ergonomic Guidelines for Computer Workstations',
|
|
104
|
+
url: 'https://www.cdc.gov/niosh/',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
name: 'Société Française d\'Ophtalmologie — Fatigue visuelle et écrans',
|
|
108
|
+
url: 'https://www.sfo.asso.fr/',
|
|
109
|
+
},
|
|
110
|
+
],
|
|
111
|
+
howTo: howToData,
|
|
112
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
113
|
+
ui: {
|
|
114
|
+
bannerText:
|
|
115
|
+
"Le problème : si votre police est petite, vous êtes obligé de vous rapprocher. Si vous vous rapprochez, vos yeux souffrent. Dites-nous quelle taille vous utilisez et nous vous dirons où vous devriez être.",
|
|
116
|
+
zoomLabel: 'ZOOM',
|
|
117
|
+
previewText: 'Ce texte représente votre écran',
|
|
118
|
+
resultLabel: 'Limite de Fatigue Visuelle',
|
|
119
|
+
resultUnit: 'cm',
|
|
120
|
+
resultFooter: 'En dessous de cette distance vous aurez des maux de tête',
|
|
121
|
+
statusWarning: 'Risque Élevé !',
|
|
122
|
+
statusWarningDesc: 'Police minuscule. Vous forcez la mise au point.',
|
|
123
|
+
statusSafe: 'Zone Sûre',
|
|
124
|
+
statusSafeDesc: 'Vous pouvez lire de loin sans effort.',
|
|
125
|
+
statusIdeal: 'Distance Recommandée',
|
|
126
|
+
statusIdealDesc: 'Gardez l\'écran à cette séparation.',
|
|
127
|
+
conceptTitle1: 'La relation',
|
|
128
|
+
conceptText1:
|
|
129
|
+
"Si votre police est petite, l'écran doit être plus proche pour que vous puissiez le lire. En dessous de 40 cm, votre muscle oculaire se contracte au maximum et les maux de tête apparaissent.",
|
|
130
|
+
conceptTitle2: 'L\'astuce',
|
|
131
|
+
conceptText2:
|
|
132
|
+
"Si la distance recommandée est très grande et que vous ne voyez pas bien, ne vous rapprochez pas. Augmentez le zoom (Ctrl +) de votre écran pour lire de loin sans forcer la vue.",
|
|
133
|
+
},
|
|
134
|
+
seo: [
|
|
135
|
+
{
|
|
136
|
+
type: 'summary',
|
|
137
|
+
title: 'Calculateur de Distance de Lecture Optimale',
|
|
138
|
+
items: [
|
|
139
|
+
"<strong>Basé sur l'ergonomie visuelle</strong> : calcule la limite minimale saine selon la taille de la police.",
|
|
140
|
+
'<strong>Prévisualisation en temps réel</strong> : ajustez le zoom et voyez le texte à sa taille réelle.',
|
|
141
|
+
"<strong>Feu tricolore de risque</strong> : indique si votre configuration est à risque élevé, idéale ou en zone sûre.",
|
|
142
|
+
"<strong>Conseil ergonomique</strong> : guide pour corriger la distance en augmentant le zoom plutôt qu'en se rapprochant.",
|
|
143
|
+
],
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'title',
|
|
147
|
+
text: "Distance de Lecture Optimale : Protégez votre Vision à l'Ère Numérique",
|
|
148
|
+
level: 2,
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
type: 'paragraph',
|
|
152
|
+
html: "Nous passons en moyenne de huit à dix heures par jour devant des écrans. Que ce soit pour travailler sur un ordinateur portable, consulter les réseaux sociaux sur un téléphone ou regarder des séries sur une tablette, nos yeux sont soumis à un effort constant. L'un des facteurs les plus critiques pour éviter le syndrome de vision informatique et la myopie progressive est la <strong>distance de lecture</strong>. La bonne distance dépend entièrement de la taille de la police que vous utilisez.",
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
type: 'tip',
|
|
156
|
+
title: 'La Règle du Repos Visuel',
|
|
157
|
+
html: "Pour compléter une bonne distance de lecture, toutes les 20 minutes regardez un objet situé à 20 pieds (environ 6 mètres) pendant au moins <strong>20 secondes</strong> pour relaxer votre mise au point.",
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
type: 'title',
|
|
161
|
+
text: 'Facteurs qui Déterminent votre Distance Idéale',
|
|
162
|
+
level: 2,
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
type: 'list',
|
|
166
|
+
items: [
|
|
167
|
+
"<strong>Densité de pixels (PPI) :</strong> sur les écrans haute résolution, le texte est plus net mais physiquement plus petit.",
|
|
168
|
+
"<strong>Contraste :</strong> un texte gris sur fond blanc oblige l'œil à se rapprocher davantage qu'un texte noir pur.",
|
|
169
|
+
"<strong>Éclairage ambiant :</strong> un faible éclairage fait dilater la pupille, réduisant la profondeur de champ.",
|
|
170
|
+
"<strong>Presbytie :</strong> avec l'âge, le cristallin perd de son élasticité et la distance minimale de mise au point augmente.",
|
|
171
|
+
],
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
type: 'title',
|
|
175
|
+
text: 'Conseils pour une Lecture Saine',
|
|
176
|
+
level: 2,
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
type: 'list',
|
|
180
|
+
items: [
|
|
181
|
+
"<strong>Augmentez le zoom :</strong> n'ayez pas peur de mettre votre navigateur à 110% ou 125%. Un texte plus grand vous permet de vous éloigner du moniteur.",
|
|
182
|
+
"<strong>Ajustez la hauteur :</strong> le bord supérieur du moniteur doit être au niveau de vos yeux ou légèrement en dessous.",
|
|
183
|
+
"<strong>Évitez la luminosité excessive :</strong> votre écran ne doit pas être une lampe. Ajustez la luminosité pour qu'elle corresponde à une feuille de papier blanc.",
|
|
184
|
+
"<strong>Clignez volontairement :</strong> faites un effort conscient pour cligner des yeux lorsque vous sentez vos yeux lourds.",
|
|
185
|
+
],
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
type: 'tip',
|
|
189
|
+
title: 'Protection pour les Enfants',
|
|
190
|
+
html: "Les enfants ont une capacité d'accommodation remarquable qui leur permet de voir des objets très proches sans effort apparent. Cependant, c'est un facteur de risque élevé pour le développement de la <strong>myopie</strong>. Veillez toujours à ce qu'ils maintiennent la distance recommandée par la calculatrice.",
|
|
191
|
+
},
|
|
192
|
+
],
|
|
193
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { HealthToolEntry, ToolDefinition } from '../../types';
|
|
2
|
+
import ReadingDistanceCalculatorComponent from './component.astro';
|
|
3
|
+
import ReadingDistanceCalculatorSEO from './seo.astro';
|
|
4
|
+
import ReadingDistanceCalculatorBibliography from './bibliography.astro';
|
|
5
|
+
import type { ReadingDistanceCalculatorUI } from './ui';
|
|
6
|
+
|
|
7
|
+
export const readingDistanceCalculator: HealthToolEntry<ReadingDistanceCalculatorUI> = {
|
|
8
|
+
id: 'readingDistanceCalculator',
|
|
9
|
+
icons: {
|
|
10
|
+
bg: 'mdi:monitor-eye',
|
|
11
|
+
fg: 'mdi:eye-outline',
|
|
12
|
+
},
|
|
13
|
+
i18n: {
|
|
14
|
+
es: () => import('./i18n/es').then((m) => m.content),
|
|
15
|
+
en: () => import('./i18n/en').then((m) => m.content),
|
|
16
|
+
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export {
|
|
21
|
+
ReadingDistanceCalculatorComponent,
|
|
22
|
+
ReadingDistanceCalculatorSEO,
|
|
23
|
+
ReadingDistanceCalculatorBibliography,
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export const READING_DISTANCE_CALCULATOR_TOOL: ToolDefinition = {
|
|
27
|
+
entry: readingDistanceCalculator,
|
|
28
|
+
Component: ReadingDistanceCalculatorComponent,
|
|
29
|
+
SEOComponent: ReadingDistanceCalculatorSEO,
|
|
30
|
+
BibliographyComponent: ReadingDistanceCalculatorBibliography,
|
|
31
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
import { SEORenderer } from '@jjlmoya/utils-shared';
|
|
3
|
+
import { readingDistanceCalculator } from './index';
|
|
4
|
+
import type { KnownLocale } from '../../types';
|
|
5
|
+
|
|
6
|
+
interface Props {
|
|
7
|
+
locale?: KnownLocale;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const { locale = 'es' } = Astro.props;
|
|
11
|
+
const content = await readingDistanceCalculator.i18n[locale]?.();
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
{content && <SEORenderer content={{ locale, sections: content.seo }} />}
|