@jjlmoya/utils-babies 1.6.0 → 1.8.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 (103) hide show
  1. package/package.json +67 -66
  2. package/src/category/i18n/de.ts +48 -0
  3. package/src/category/i18n/en.ts +10 -10
  4. package/src/category/i18n/fr.ts +10 -10
  5. package/src/category/i18n/id.ts +48 -0
  6. package/src/category/i18n/it.ts +48 -0
  7. package/src/category/i18n/ja.ts +48 -0
  8. package/src/category/i18n/ko.ts +48 -0
  9. package/src/category/i18n/nl.ts +48 -0
  10. package/src/category/i18n/pl.ts +48 -0
  11. package/src/category/i18n/pt.ts +48 -0
  12. package/src/category/i18n/ru.ts +48 -0
  13. package/src/category/i18n/sv.ts +48 -0
  14. package/src/category/i18n/tr.ts +48 -0
  15. package/src/category/i18n/zh.ts +48 -0
  16. package/src/category/index.ts +13 -1
  17. package/src/tests/faq_count.test.ts +1 -1
  18. package/src/tests/i18n_coverage.test.ts +36 -0
  19. package/src/tests/locale_completeness.test.ts +1 -1
  20. package/src/tests/schemas_fulfillment.test.ts +23 -0
  21. package/src/tests/seo_length.test.ts +1 -2
  22. package/src/tests/slug_uniqueness.test.ts +81 -0
  23. package/src/tests/title_quality.test.ts +55 -0
  24. package/src/tool/baby-feeding-calculator/i18n/de.ts +162 -0
  25. package/src/tool/baby-feeding-calculator/i18n/id.ts +162 -0
  26. package/src/tool/baby-feeding-calculator/i18n/it.ts +162 -0
  27. package/src/tool/baby-feeding-calculator/i18n/ja.ts +162 -0
  28. package/src/tool/baby-feeding-calculator/i18n/ko.ts +162 -0
  29. package/src/tool/baby-feeding-calculator/i18n/nl.ts +162 -0
  30. package/src/tool/baby-feeding-calculator/i18n/pl.ts +162 -0
  31. package/src/tool/baby-feeding-calculator/i18n/pt.ts +162 -0
  32. package/src/tool/baby-feeding-calculator/i18n/ru.ts +162 -0
  33. package/src/tool/baby-feeding-calculator/i18n/sv.ts +162 -0
  34. package/src/tool/baby-feeding-calculator/i18n/tr.ts +162 -0
  35. package/src/tool/baby-feeding-calculator/i18n/zh.ts +162 -0
  36. package/src/tool/baby-feeding-calculator/index.ts +12 -0
  37. package/src/tool/baby-percentile-calculator/i18n/de.ts +245 -0
  38. package/src/tool/baby-percentile-calculator/i18n/id.ts +245 -0
  39. package/src/tool/baby-percentile-calculator/i18n/it.ts +245 -0
  40. package/src/tool/baby-percentile-calculator/i18n/ja.ts +245 -0
  41. package/src/tool/baby-percentile-calculator/i18n/ko.ts +245 -0
  42. package/src/tool/baby-percentile-calculator/i18n/nl.ts +245 -0
  43. package/src/tool/baby-percentile-calculator/i18n/pl.ts +245 -0
  44. package/src/tool/baby-percentile-calculator/i18n/pt.ts +245 -0
  45. package/src/tool/baby-percentile-calculator/i18n/ru.ts +245 -0
  46. package/src/tool/baby-percentile-calculator/i18n/sv.ts +245 -0
  47. package/src/tool/baby-percentile-calculator/i18n/tr.ts +245 -0
  48. package/src/tool/baby-percentile-calculator/i18n/zh.ts +245 -0
  49. package/src/tool/baby-percentile-calculator/index.ts +12 -0
  50. package/src/tool/baby-size-converter/i18n/de.ts +203 -0
  51. package/src/tool/baby-size-converter/i18n/fr.ts +1 -1
  52. package/src/tool/baby-size-converter/i18n/id.ts +203 -0
  53. package/src/tool/baby-size-converter/i18n/it.ts +203 -0
  54. package/src/tool/baby-size-converter/i18n/ja.ts +203 -0
  55. package/src/tool/baby-size-converter/i18n/ko.ts +203 -0
  56. package/src/tool/baby-size-converter/i18n/nl.ts +203 -0
  57. package/src/tool/baby-size-converter/i18n/pl.ts +203 -0
  58. package/src/tool/baby-size-converter/i18n/pt.ts +203 -0
  59. package/src/tool/baby-size-converter/i18n/ru.ts +203 -0
  60. package/src/tool/baby-size-converter/i18n/sv.ts +203 -0
  61. package/src/tool/baby-size-converter/i18n/tr.ts +203 -0
  62. package/src/tool/baby-size-converter/i18n/zh.ts +203 -0
  63. package/src/tool/baby-size-converter/index.ts +12 -0
  64. package/src/tool/fertile-days-estimator/i18n/de.ts +262 -0
  65. package/src/tool/fertile-days-estimator/i18n/id.ts +262 -0
  66. package/src/tool/fertile-days-estimator/i18n/it.ts +262 -0
  67. package/src/tool/fertile-days-estimator/i18n/ja.ts +262 -0
  68. package/src/tool/fertile-days-estimator/i18n/ko.ts +262 -0
  69. package/src/tool/fertile-days-estimator/i18n/nl.ts +262 -0
  70. package/src/tool/fertile-days-estimator/i18n/pl.ts +262 -0
  71. package/src/tool/fertile-days-estimator/i18n/pt.ts +262 -0
  72. package/src/tool/fertile-days-estimator/i18n/ru.ts +262 -0
  73. package/src/tool/fertile-days-estimator/i18n/sv.ts +262 -0
  74. package/src/tool/fertile-days-estimator/i18n/tr.ts +262 -0
  75. package/src/tool/fertile-days-estimator/i18n/zh.ts +262 -0
  76. package/src/tool/fertile-days-estimator/index.ts +12 -0
  77. package/src/tool/pregnancy-calculator/i18n/de.ts +467 -0
  78. package/src/tool/pregnancy-calculator/i18n/id.ts +467 -0
  79. package/src/tool/pregnancy-calculator/i18n/it.ts +467 -0
  80. package/src/tool/pregnancy-calculator/i18n/ja.ts +467 -0
  81. package/src/tool/pregnancy-calculator/i18n/ko.ts +467 -0
  82. package/src/tool/pregnancy-calculator/i18n/nl.ts +467 -0
  83. package/src/tool/pregnancy-calculator/i18n/pl.ts +467 -0
  84. package/src/tool/pregnancy-calculator/i18n/pt.ts +467 -0
  85. package/src/tool/pregnancy-calculator/i18n/ru.ts +467 -0
  86. package/src/tool/pregnancy-calculator/i18n/sv.ts +467 -0
  87. package/src/tool/pregnancy-calculator/i18n/tr.ts +467 -0
  88. package/src/tool/pregnancy-calculator/i18n/zh.ts +467 -0
  89. package/src/tool/pregnancy-calculator/index.ts +13 -1
  90. package/src/tool/vaccination-calendar/i18n/de.ts +194 -0
  91. package/src/tool/vaccination-calendar/i18n/fr.ts +99 -95
  92. package/src/tool/vaccination-calendar/i18n/id.ts +194 -0
  93. package/src/tool/vaccination-calendar/i18n/it.ts +194 -0
  94. package/src/tool/vaccination-calendar/i18n/ja.ts +194 -0
  95. package/src/tool/vaccination-calendar/i18n/ko.ts +194 -0
  96. package/src/tool/vaccination-calendar/i18n/nl.ts +194 -0
  97. package/src/tool/vaccination-calendar/i18n/pl.ts +194 -0
  98. package/src/tool/vaccination-calendar/i18n/pt.ts +194 -0
  99. package/src/tool/vaccination-calendar/i18n/ru.ts +194 -0
  100. package/src/tool/vaccination-calendar/i18n/sv.ts +194 -0
  101. package/src/tool/vaccination-calendar/i18n/tr.ts +194 -0
  102. package/src/tool/vaccination-calendar/i18n/zh.ts +194 -0
  103. package/src/tool/vaccination-calendar/index.ts +13 -1
@@ -0,0 +1,194 @@
1
+ import type { VaccinationCalendarLocaleContent } from '../index';
2
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
+
4
+ const slug = 'calendario-vacinacao-espanha-bebes';
5
+ const title = 'Calendário de Vacinação em Espanha';
6
+ const description = 'Calcule as datas exatas de vacinação do seu bebé de acordo com o calendário AEP 2026.';
7
+ const faq = [
8
+ {
9
+ question: 'O que é o calendário de vacinação AEP 2026?',
10
+ answer: 'É o calendário de vacinação recomendado pela Associação Espanhola de Pediatria para o ano de 2026. Inclui todas as vacinas sistemáticas e opcionais para bebés e crianças desde o nascimento até aos 14 anos.',
11
+ },
12
+ {
13
+ question: 'É obrigatório vacinar o meu bebé de acordo com o calendário?',
14
+ answer: 'Em Espanha, a vacinação não é legalmente obrigatória, mas é fortemente recomendada. As vacinas do calendário sistemático são gratuitas e administradas nos centros de saúde públicos.',
15
+ },
16
+ {
17
+ question: 'O que acontece se saltarmos uma dose?',
18
+ answer: 'Se uma dose for atrasada, não é necessário começar do zero. O seu pediatra indicará como retomar o calendário a partir de onde parou. O importante é completar o esquema o mais rápido possível.',
19
+ },
20
+ {
21
+ question: 'Posso administrar várias vacinas no mesmo dia?',
22
+ answer: 'Sim, é comum e seguro administrar várias vacinas na mesma visita. As vacinas combinadas, como a hexavalente, já protegem contra seis doenças numa única injeção.',
23
+ },
24
+ {
25
+ question: 'As vacinas são seguras para bebés prematuros?',
26
+ answer: 'Os bebés prematuros devem ser vacinados de acordo com a sua idade cronológica (desde o nascimento), não a idade corrigida, salvo indicação específica do neonatologista. Têm prioridade por serem mais vulneráveis.',
27
+ },
28
+ ];
29
+ const howTo = [
30
+ {
31
+ name: 'Introduza a data de nascimento',
32
+ text: 'Escreva o dia, mês e ano de nascimento do seu bebé nos campos correspondentes.',
33
+ },
34
+ {
35
+ name: 'Consulte a próxima consulta',
36
+ text: 'A calculadora mostra automaticamente quando é a próxima vacinação e quais as vacinas correspondentes.',
37
+ },
38
+ {
39
+ name: 'Reveja o calendário completo',
40
+ text: 'Abra as secções de consultas passadas e futuras para ver todo o calendário de vacinação.',
41
+ },
42
+ {
43
+ name: 'Exporte os lembretes',
44
+ text: 'Prima o botão para descarregar um ficheiro .ics com todas as consultas futuras e adicioná-las ao calendário do seu telemóvel.',
45
+ },
46
+ ];
47
+
48
+ const faqSchema: WithContext<FAQPage> = {
49
+ '@context': 'https://schema.org',
50
+ '@type': 'FAQPage',
51
+ mainEntity: faq.map((item) => ({
52
+ '@type': 'Question',
53
+ name: item.question,
54
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
55
+ })),
56
+ };
57
+ const howToSchema: WithContext<HowTo> = {
58
+ '@context': 'https://schema.org',
59
+ '@type': 'HowTo',
60
+ name: title,
61
+ description,
62
+ step: howTo.map((step) => ({
63
+ '@type': 'HowToStep',
64
+ name: step.name,
65
+ text: step.text,
66
+ })),
67
+ };
68
+ const appSchema: WithContext<SoftwareApplication> = {
69
+ '@context': 'https://schema.org',
70
+ '@type': 'SoftwareApplication',
71
+ name: title,
72
+ description,
73
+ applicationCategory: 'UtilitiesApplication',
74
+ operatingSystem: 'Web',
75
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
76
+ inLanguage: 'pt',
77
+ };
78
+
79
+ export const content: VaccinationCalendarLocaleContent = {
80
+ slug,
81
+ title,
82
+ description,
83
+ ui: {
84
+ labelBirthDate: 'Data de nascimento do bebé',
85
+ placeholderDD: 'DD',
86
+ placeholderMM: 'MM',
87
+ placeholderAAAA: 'AAAA',
88
+ emptyMsg: 'Introduza o dia, mês e ano de nascimento do seu bebé para ver o calendário de vacinação.',
89
+ invalidMsg: 'A data introduzida não é válida.',
90
+ futureMsg: 'Um bebé não pode ter nascido no futuro.',
91
+ labelNextAppointment: 'Próxima consulta calculada',
92
+ btnAddReminder: 'Adicionar lembrete ao telemóvel',
93
+ btnToday: 'É hoje! Não se esqueça do boletim',
94
+ labelPassed: 'Consultas passadas',
95
+ labelFuture: 'Calendário futuro',
96
+ labelStatusOk: 'OK',
97
+ labelStatusPending: 'PEND.',
98
+ labelSource: 'Fonte: AEP 2026',
99
+ labelShare: 'Partilhar estas datas',
100
+ faqTitle: 'Perguntas frequentes',
101
+ bibliographyTitle: 'Referências',
102
+ labelMonth: 'mês',
103
+ labelMonths: 'meses',
104
+ labelYear: 'ano',
105
+ labelYears: 'anos',
106
+ labelDay: 'dia',
107
+ labelDays: 'dias',
108
+ labelAnd: 'e',
109
+ labelVaccination: 'Vacinação',
110
+ labelAppointment: 'Consulta de vacinação',
111
+ vac_hexavalente: 'Hexavalente',
112
+ vac_neumococo: 'Pneumococo (VCN15/20)',
113
+ vac_meningococo_b: 'Meningococo B (Bexsero)',
114
+ vac_rotavirus: 'Rotavírus',
115
+ vac_meningococo_acwy: 'Meningococo ACWY',
116
+ vac_triple_virica: 'Tríplice Viral (VASPR)',
117
+ vac_varicela: 'Varicela',
118
+ vac_gripe: 'Gripe (Sazonal)',
119
+ vac_vph: 'HPV (Papiloma)',
120
+ vac_tdpa: 'Tdpa (Tétano, Difteria, Tosse convulsa)',
121
+ vac_polio_booster: 'Pólio (Reforço)',
122
+ },
123
+ seo: [
124
+ { type: 'title', text: 'Calculadora de Vacinas: Quando toca a próxima ao meu filho?', level: 2 },
125
+ { type: 'stats', columns: 4, items: [
126
+ { value: '+95%', label: 'Eficácia' },
127
+ { value: '14', label: 'Doses totais' },
128
+ { value: 'Público', label: 'Custo AEP' },
129
+ { value: 'Alta', label: 'Segurança' },
130
+ ]},
131
+ { type: 'tip', html: 'O calendário AEP 2026 inclui novidades importantes como a extensão da vacina contra o meningococo B e a atualização das recomendações para o HPV em ambos os sexos a partir dos 12 anos.' },
132
+ { type: 'title', text: 'Novidades do Calendário AEP 2026', level: 3 },
133
+ { type: 'list', items: [
134
+ 'Meningococo B (Bexsero): esquema 2+1 consolidado com doses aos 2, 4 e 12 meses.',
135
+ 'HPV estendido a todos os adolescentes a partir dos 12 anos, independentemente do sexo.',
136
+ 'Pneumococo: recomendação atualizada com VCN15 ou VCN20 conforme disponibilidade regional.',
137
+ 'Rotavírus: vacina oral incluída no calendário sistemático em todas as comunidades.',
138
+ 'Tdpa: reforço recomendado aos 6 e 12 anos para manter a imunidade contra a tosse convulsa.',
139
+ ]},
140
+ { type: 'title', text: 'Diferenças entre comunidades autónomas', level: 3 },
141
+ { type: 'list', items: [
142
+ 'Algumas comunidades incluem vacinas adicionais não constantes do calendário nacional.',
143
+ 'O financiamento do rotavírus varia conforme a comunidade, embora a tendência seja a cobertura universal.',
144
+ 'O meningococo ACWY pode ser administrado em idades ligeiramente diferentes de acordo com o protocolo autonómico.',
145
+ 'Consulte sempre o seu pediatra ou o centro de saúde da sua comunidade para confirmar o calendário em vigor.',
146
+ ]},
147
+ { type: 'title', text: 'Como exportar o calendário para o seu telemóvel', level: 3 },
148
+ { type: 'list', items: [
149
+ 'Introduza a data de nascimento do seu bebé na calculadora.',
150
+ 'Prima o botão "Adicionar lembrete ao telemóvel" para descarregar o ficheiro .ics.',
151
+ 'Abra o ficheiro com a sua aplicação de calendário (Google Calendar, Apple Calendar, etc.).',
152
+ 'Todos os eventos de vacinação ficarão guardados com a data e as vacinas correspondentes.',
153
+ ]},
154
+ { type: 'title', text: 'Efeitos secundários comuns', level: 3 },
155
+ { type: 'list', items: [
156
+ 'Vermelhidão ou inchaço no local da injeção: desaparece em 1-2 dias.',
157
+ 'Febre ligeira (37.5–38.5 °C): normal nas primeiras 24-48 horas.',
158
+ 'Irritabilidade ou choro: frequente em bebés após as primeiras doses.',
159
+ 'Sonolência ou falta de apetite transitória: não necessita de tratamento.',
160
+ 'Reações graves como anafilaxia são extremamente raras (menos de 1 por milhão de doses).',
161
+ ]},
162
+ { type: 'tip', html: 'Levar o bebé bem alimentado e com roupa confortável facilita a visita. Após a vacina, o contacto pele com pele ou a amamentação ajudam a acalmar a dor e a inflamação de forma natural.' },
163
+ { type: 'summary', title: 'O que deve recordar', items: [
164
+ 'O calendário AEP 2026 inclui 14 doses até aos 12 anos para uma proteção completa.',
165
+ 'As vacinas do primeiro ano protegem simultaneamente contra até 9 doenças graves.',
166
+ 'Os efeitos secundários ligeiros são normais e desaparecem em 1-2 dias.',
167
+ 'Pode exportar todas as consultas de vacinação para o calendário do seu telemóvel com um único clique.',
168
+ 'Consulte sempre o seu pediatra em caso de dúvidas sobre o calendário da sua comunidade.',
169
+ ]},
170
+ ],
171
+ faqTitle: "Perguntas frequentes",
172
+ faq,
173
+ bibliographyTitle: "Referências",
174
+ bibliography: [
175
+ {
176
+ name: 'Asociación Española de Pediatría - Calendario de Vacunaciones 2026',
177
+ url: 'https://www.aeped.es/comite-vacunas/calendario-vacunaciones',
178
+ },
179
+ {
180
+ name: 'Ministério da Saúde (Espanha) - Calendário de Vacinação',
181
+ url: 'https://www.sanidad.gob.es/areas/promocionPrevencion/vacunaciones/calendario/home.htm',
182
+ },
183
+ {
184
+ name: 'OMS - Imunização',
185
+ url: 'https://www.who.int/pt/health-topics/vaccines-and-immunization',
186
+ },
187
+ {
188
+ name: 'CDC - Plano de imunização recomendado para crianças e adolescentes',
189
+ url: 'https://www.cdc.gov/vaccines/schedules/hcp/imz/child-adolescent.html',
190
+ },
191
+ ],
192
+ howTo,
193
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
194
+ };
@@ -0,0 +1,194 @@
1
+ import type { VaccinationCalendarLocaleContent } from '../index';
2
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
+
4
+ const slug = 'kalendar-vakcinacii-v-ispanii-dlya-detej';
5
+ const title = 'Календарь вакцинации в Испании';
6
+ const description = 'Рассчитайте точные даты вакцинации вашего ребенка в соответствии с календарем AEP 2026.';
7
+ const faq = [
8
+ {
9
+ question: 'Что такое календарь вакцинации AEP 2026?',
10
+ answer: 'Это график вакцинации, рекомендованный Испанской ассоциацией педиатрии на 2026 год. Он включает все плановые и дополнительные прививки для младенцев и детей с рождения до 14 лет.',
11
+ },
12
+ {
13
+ question: 'Обязательно ли вакцинировать ребенка по этому календарю?',
14
+ answer: 'В Испании вакцинация не является юридически обязательной, но настоятельно рекомендуется. Прививки из национального календаря бесплатны и проводятся в государственных медицинских центрах.',
15
+ },
16
+ {
17
+ question: 'Что делать, если мы пропустили дозу?',
18
+ answer: 'Если доза введена с опозданием, нет необходимости начинать заново. Ваш педиатр подскажет, как возобновить график с того места, на котором вы остановились. Важно завершить схему как можно скорее.',
19
+ },
20
+ {
21
+ question: 'Можно ли вводить несколько вакцин в один день?',
22
+ answer: 'Да, вводить несколько вакцин во время одного визита — обычная и безопасная практика. Комбинированные вакцины, такие как шестивалентная, защищают сразу от шести заболеваний за один укол.',
23
+ },
24
+ {
25
+ question: 'Безопасны ли вакцины для недоношенных детей?',
26
+ answer: 'Недоношенным детям следует делать прививки в соответствии с их хронологическим возрастом (от рождения), а не скорректированным, если нет специальных указаний неонатолога. Они являются приоритетными, так как более уязвимы.',
27
+ },
28
+ ];
29
+ const howTo = [
30
+ {
31
+ name: 'Введите дату рождения',
32
+ text: 'Введите день, месяц и год рождения вашего ребенка в соответствующие поля.',
33
+ },
34
+ {
35
+ name: 'Проверьте следующий прием',
36
+ text: 'Калькулятор автоматически покажет вам, когда назначена следующая вакцинация и какие прививки предстоят.',
37
+ },
38
+ {
39
+ name: 'Просмотрите весь календарь',
40
+ text: 'Разверните разделы прошлых и будущих приемов, чтобы увидеть весь график вакцинации.',
41
+ },
42
+ {
43
+ name: 'Экспортируйте напоминания',
44
+ text: 'Нажмите кнопку, чтобы загрузить файл .ics со всеми будущими приемами и добавить их в календарь вашего мобильного телефона.',
45
+ },
46
+ ];
47
+
48
+ const faqSchema: WithContext<FAQPage> = {
49
+ '@context': 'https://schema.org',
50
+ '@type': 'FAQPage',
51
+ mainEntity: faq.map((item) => ({
52
+ '@type': 'Question',
53
+ name: item.question,
54
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
55
+ })),
56
+ };
57
+ const howToSchema: WithContext<HowTo> = {
58
+ '@context': 'https://schema.org',
59
+ '@type': 'HowTo',
60
+ name: title,
61
+ description,
62
+ step: howTo.map((step) => ({
63
+ '@type': 'HowToStep',
64
+ name: step.name,
65
+ text: step.text,
66
+ })),
67
+ };
68
+ const appSchema: WithContext<SoftwareApplication> = {
69
+ '@context': 'https://schema.org',
70
+ '@type': 'SoftwareApplication',
71
+ name: title,
72
+ description,
73
+ applicationCategory: 'UtilitiesApplication',
74
+ operatingSystem: 'Web',
75
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
76
+ inLanguage: 'ru',
77
+ };
78
+
79
+ export const content: VaccinationCalendarLocaleContent = {
80
+ slug,
81
+ title,
82
+ description,
83
+ ui: {
84
+ labelBirthDate: 'Дата рождения ребенка',
85
+ placeholderDD: 'ДД',
86
+ placeholderMM: 'ММ',
87
+ placeholderAAAA: 'ГГГГ',
88
+ emptyMsg: 'Введите день, месяц и год рождения вашего ребенка, чтобы увидеть календарь вакцинации.',
89
+ invalidMsg: 'Введенная дата невалидна.',
90
+ futureMsg: 'Ребенок не мог родиться в будущем.',
91
+ labelNextAppointment: 'Следующий рассчитанный прием',
92
+ btnAddReminder: 'Добавить в календарь телефона',
93
+ btnToday: 'Сегодня день прививки! Не забудьте карту',
94
+ labelPassed: 'Прошедшие приемы',
95
+ labelFuture: 'Будущие прививки',
96
+ labelStatusOk: 'OK',
97
+ labelStatusPending: 'ОЖИД.',
98
+ labelSource: 'Источник: AEP 2026',
99
+ labelShare: 'Поделиться датами',
100
+ faqTitle: 'Часто задаваемые вопросы',
101
+ bibliographyTitle: 'Источники',
102
+ labelMonth: 'мес.',
103
+ labelMonths: 'мес.',
104
+ labelYear: 'год',
105
+ labelYears: 'лет',
106
+ labelDay: 'день',
107
+ labelDays: 'дней',
108
+ labelAnd: 'и',
109
+ labelVaccination: 'Вакцинация',
110
+ labelAppointment: 'Прием для вакцинации',
111
+ vac_hexavalente: 'Шестивалентная',
112
+ vac_neumococo: 'Пневмококк (VCN15/20)',
113
+ vac_meningococo_b: 'Менингококк B (Bexsero)',
114
+ vac_rotavirus: 'Ротавирус',
115
+ vac_meningococo_acwy: 'Менингококк ACWY',
116
+ vac_triple_virica: 'КПК (Корь, Паротит, Краснуха)',
117
+ vac_varicela: 'Ветряная оспа',
118
+ vac_gripe: 'Грипп (Сезонный)',
119
+ vac_vph: 'ВЧП (Папилломавирус)',
120
+ vac_tdpa: 'АДСМ (Столбняк, Дифтерия, Коклюш)',
121
+ vac_polio_booster: 'Полиомиелит (Ревакцинация)',
122
+ },
123
+ seo: [
124
+ { type: 'title', text: 'Калькулятор прививок: когда следующая вакцинация у моего ребенка?', level: 2 },
125
+ { type: 'stats', columns: 4, items: [
126
+ { value: '+95%', label: 'Эффективность' },
127
+ { value: '14', label: 'Всего доз' },
128
+ { value: 'Бесплатно', label: 'Стоимость (Испания)' },
129
+ { value: 'Высокая', label: 'Безопасность' },
130
+ ]},
131
+ { type: 'tip', html: 'Календарь AEP 2026 включает важные изменения, такие как расширение вакцинации против менингококка B и обновление рекомендаций по ВПЧ для детей обоих полов с 12 лет.' },
132
+ { type: 'title', text: 'Новое в календаре AEP 2026', level: 3 },
133
+ { type: 'list', items: [
134
+ 'Менингококк B (Bexsero): закрепленная схема 2+1 с дозами в 2, 4 и 12 месяцев.',
135
+ 'ВПЧ расширена на всех подростков с 12 лет, независимо от пола.',
136
+ 'Пневмококк: обновленная рекомендация с использованием VCN15 или VCN20 в зависимости от региона.',
137
+ 'Ротавирус: пероральная вакцина включена в плановый календарь во всех регионах Испании.',
138
+ 'АДСМ: ревакцинация рекомендуется в 6 и 12 лет для поддержания иммунитета против коклюша.',
139
+ ]},
140
+ { type: 'title', text: 'Различия между автономными сообществами Испании', level: 3 },
141
+ { type: 'list', items: [
142
+ 'Некоторые регионы включают дополнительные вакцины, не входящие в национальный календарь.',
143
+ 'Финансирование вакцины от ротавируса зависит от региона, хотя наметилась тенденция к повсеместному покрытию.',
144
+ 'Менингококк ACWY может вводиться в разном возрасте в зависимости от регионального протокола.',
145
+ 'Всегда консультируйтесь со своим педиатром или в медицинском центре вашего региона, чтобы подтвердить текущий график.',
146
+ ]},
147
+ { type: 'title', text: 'Как экспортировать календарь в телефон', level: 3 },
148
+ { type: 'list', items: [
149
+ 'Введите дату рождения вашего ребенка в калькулятор.',
150
+ 'Нажмите кнопку «Добавить в календарь телефона», чтобы загрузить файл .ics.',
151
+ 'Откройте файл с помощью приложения календаря (Google Calendar, Apple Calendar и т. д.).',
152
+ 'Все события вакцинации будут сохранены с соответствующей датой и типом прививки.',
153
+ ]},
154
+ { type: 'title', text: 'Типичные побочные эффекты', level: 3 },
155
+ { type: 'list', items: [
156
+ 'Покраснение или отек в месте инъекции: исчезает через 1-2 дня.',
157
+ 'Небольшая температура (37,5–38,5 °C): норма в первые 24-48 часов.',
158
+ 'Раздражительность или плач: часто встречается у младенцев после первых доз.',
159
+ 'Сонливость или временная потеря аппетита: не требует лечения.',
160
+ 'Серьезные реакции, такие как анафилаксия, крайне редки (менее 1 на миллион доз).',
161
+ ]},
162
+ { type: 'tip', html: 'Покормите ребенка перед визитом и наденьте удобную одежду. После вакцинации контакт «кожа к коже» или грудное вскармливание помогают успокоить боль естественным путем.' },
163
+ { type: 'summary', title: 'Что важно помнить', items: [
164
+ 'Календарь AEP 2026 включает 14 доз до 12 лет для полной защиты.',
165
+ 'Вакцины первого года жизни защищают одновременно от 9 опасных заболеваний.',
166
+ 'Легкие побочные эффекты нормальны и проходят за 1-2 дня.',
167
+ 'Вы можете экспортировать все даты прививок в календарь телефона одним нажатием.',
168
+ 'По всем вопросам о региональном календаре всегда обращайтесь к своему педиатру.',
169
+ ]},
170
+ ],
171
+ faqTitle: "Часто задаваемые вопросы",
172
+ faq,
173
+ bibliographyTitle: "Источники",
174
+ bibliography: [
175
+ {
176
+ name: 'Asociación Española de Pediatría - Календарь вакцинации 2026',
177
+ url: 'https://www.aeped.es/comite-vacunas/calendario-vacunaciones',
178
+ },
179
+ {
180
+ name: 'Министерство здравоохранения Испании - Календарь прививок',
181
+ url: 'https://www.sanidad.gob.es/areas/promocionPrevencion/vacunaciones/calendario/home.htm',
182
+ },
183
+ {
184
+ name: 'ВОЗ - Иммунизация',
185
+ url: 'https://www.who.int/ru/health-topics/vaccines-and-immunization',
186
+ },
187
+ {
188
+ name: 'CDC - Рекомендуемый график иммунизации детей и подростков',
189
+ url: 'https://www.cdc.gov/vaccines/schedules/hcp/imz/child-adolescent.html',
190
+ },
191
+ ],
192
+ howTo,
193
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
194
+ };
@@ -0,0 +1,194 @@
1
+ import type { VaccinationCalendarLocaleContent } from '../index';
2
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
+
4
+ const slug = 'vaccinationsprogram-spanien-bebisar';
5
+ const title = 'Vaccinationsprogram i Spanien';
6
+ const description = 'Beräkna de exakta datumen för ditt barns vaccinationer enligt AEP 2026-kalendern.';
7
+ const faq = [
8
+ {
9
+ question: 'Vad är vaccinationsprogrammet AEP 2026?',
10
+ answer: 'Det är det vaccinationsschema som rekommenderas av den spanska barnläkarföreningen (Asociación Española de Pediatría) för år 2026. Det inkluderar alla systematiska och valfria vaccinationer för spädbarn och barn från födseln upp till 14 år.',
11
+ },
12
+ {
13
+ question: 'Är det obligatoriskt att vaccinera mitt barn enligt programmet?',
14
+ answer: 'I Spanien är vaccination inte lagligt obligatorisk, men rekommenderas starkt. Vaccinationerna i det systematiska programmet är kostnadsfria och administreras på offentliga vårdcentraler.',
15
+ },
16
+ {
17
+ question: 'Vad händer om vi missar en dos?',
18
+ answer: 'Om en dos blir försenad behöver man inte börja om från början. Din barnläkare kommer att ange hur ni återupptar schemat där det avbröts. Det viktiga är att färdigställa programmet så snart som möjligt.',
19
+ },
20
+ {
21
+ question: 'Kan man ge flera vaccinationer samma dag?',
22
+ answer: 'Ja, det är vanligt och säkert att ge flera vaccinationer vid samma besök. Kombinationsvacciner skyddar mot sex sjukdomar i en enda spruta.',
23
+ },
24
+ {
25
+ question: 'Är vaccinationer säkra för prematura barn?',
26
+ answer: 'Prematura barn bör vaccineras enligt sin kronologiska ålder (från födseln), inte korrigerad ålder, om inte neonatologen anger något annat. De prioriteras då de är mer sårbara.',
27
+ },
28
+ ];
29
+ const howTo = [
30
+ {
31
+ name: 'Ange födelsedatum',
32
+ text: 'Fyll i dag, månad och år för ditt barns födelse i motsvarande fält.',
33
+ },
34
+ {
35
+ name: 'Se nästa besök',
36
+ text: 'Kalkylatorn visar automatiskt när nästa vaccination infaller och vilka vacciner som är aktuella.',
37
+ },
38
+ {
39
+ name: 'Kontrollera hela programmet',
40
+ text: 'Öppna sektionerna för tidigare och framtida besök för att se hela vaccinationsprogrammet.',
41
+ },
42
+ {
43
+ name: 'Exportera påminnelser',
44
+ text: 'Tryck på knappen för att ladda ner en .ics-fil med alla framtida besök och lägg till dem i din mobilkalender.',
45
+ },
46
+ ];
47
+
48
+ const faqSchema: WithContext<FAQPage> = {
49
+ '@context': 'https://schema.org',
50
+ '@type': 'FAQPage',
51
+ mainEntity: faq.map((item) => ({
52
+ '@type': 'Question',
53
+ name: item.question,
54
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
55
+ })),
56
+ };
57
+ const howToSchema: WithContext<HowTo> = {
58
+ '@context': 'https://schema.org',
59
+ '@type': 'HowTo',
60
+ name: title,
61
+ description,
62
+ step: howTo.map((step) => ({
63
+ '@type': 'HowToStep',
64
+ name: step.name,
65
+ text: step.text,
66
+ })),
67
+ };
68
+ const appSchema: WithContext<SoftwareApplication> = {
69
+ '@context': 'https://schema.org',
70
+ '@type': 'SoftwareApplication',
71
+ name: title,
72
+ description,
73
+ applicationCategory: 'UtilitiesApplication',
74
+ operatingSystem: 'Web',
75
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
76
+ inLanguage: 'sv',
77
+ };
78
+
79
+ export const content: VaccinationCalendarLocaleContent = {
80
+ slug,
81
+ title,
82
+ description,
83
+ ui: {
84
+ labelBirthDate: 'Barnets födelsedatum',
85
+ placeholderDD: 'DD',
86
+ placeholderMM: 'MM',
87
+ placeholderAAAA: 'ÅÅÅÅ',
88
+ emptyMsg: 'Ange dag, månad och år för barnets födelse för att se vaccinationsprogrammet.',
89
+ invalidMsg: 'Det angivna datumet är ogiltigt.',
90
+ futureMsg: 'Ett barn kan inte vara fött i framtiden.',
91
+ labelNextAppointment: 'Nästa beräknade besök',
92
+ btnAddReminder: 'Lägg till påminnelse i mobilen',
93
+ btnToday: 'Det är idag! Glöm inte hälsoboken',
94
+ labelPassed: 'Tidigare besök',
95
+ labelFuture: 'Framtida schema',
96
+ labelStatusOk: 'OK',
97
+ labelStatusPending: 'VÄNTAR',
98
+ labelSource: 'Källa: AEP 2026',
99
+ labelShare: 'Dela dessa datum',
100
+ faqTitle: 'Vanliga frågor',
101
+ bibliographyTitle: 'Referenser',
102
+ labelMonth: 'månad',
103
+ labelMonths: 'månader',
104
+ labelYear: 'år',
105
+ labelYears: 'år',
106
+ labelDay: 'dag',
107
+ labelDays: 'dagar',
108
+ labelAnd: 'och',
109
+ labelVaccination: 'Vaccination',
110
+ labelAppointment: 'Vaccinationstid',
111
+ vac_hexavalente: 'Hexavalent',
112
+ vac_neumococo: 'Pneumokocker (VCN15/20)',
113
+ vac_meningococo_b: 'Meningokocker B (Bexsero)',
114
+ vac_rotavirus: 'Rotavirus',
115
+ vac_meningococo_acwy: 'Meningokocker ACWY',
116
+ vac_triple_virica: 'MPR (Mässling, Påssjuka, Röda hund)',
117
+ vac_varicela: 'Vattkoppor',
118
+ vac_gripe: 'Influensa (Säsongsbunden)',
119
+ vac_vph: 'HPV (Papillomvirus)',
120
+ vac_tdpa: 'Tdap (Stelkramp, Difteri, Kikhosta)',
121
+ vac_polio_booster: 'Polio (Booster)',
122
+ },
123
+ seo: [
124
+ { type: 'title', text: 'Vaccinationskalkylator: När är det dags för mitt barns nästa vaccination?', level: 2 },
125
+ { type: 'stats', columns: 4, items: [
126
+ { value: '+95%', label: 'Effektivitet' },
127
+ { value: '14', label: 'Totala doser' },
128
+ { value: 'Offentlig', label: 'Kostnad AEP' },
129
+ { value: 'Hög', label: 'Säkerhet' },
130
+ ]},
131
+ { type: 'tip', html: 'AEP 2026-kalendern innehåller viktiga nyheter som utökningen av vaccinationen mot meningokock B och uppdaterade rekommendationer för HPV-vaccin för båda könen från 12 års ålder.' },
132
+ { type: 'title', text: 'Nyheter i AEP 2026-kalendern', level: 3 },
133
+ { type: 'list', items: [
134
+ 'Meningokock B (Bexsero): 2+1-schema konsoliderat med doser vid 2, 4 och 12 månaders ålder.',
135
+ 'HPV-vaccin utökat till alla ungdomar från 12 års ålder, oavsett kön.',
136
+ 'Pneumokocker: uppdaterad rekommendation med VCN15 eller VCN20 beroende på regional tillgänglighet.',
137
+ 'Rotavirus: oralt vaccin inkluderat i det systematiska programmet i alla regioner.',
138
+ 'Tdap: booster rekommenderas vid 6 och 12 års ålder för att bibehålla immunitet mot kikhosta.',
139
+ ]},
140
+ { type: 'title', text: 'Skillnader mellan autonoma regioner', level: 3 },
141
+ { type: 'list', items: [
142
+ 'Vissa regioner inkluderar ytterligare vacciner som inte finns i den nationella kalendern.',
143
+ 'Finansieringen av rotavirus-vaccinet varierar beroende på region, även om trenden går mot universell täckning.',
144
+ 'Meningokock ACWY kan ges vid något olika åldrar beroende på regionalt protokoll.',
145
+ 'Konsultera alltid din barnläkare eller vårdcentral för att bekräfta det gällande programmet i din region.',
146
+ ]},
147
+ { type: 'title', text: 'Hur du exporterar programmet till din mobil', level: 3 },
148
+ { type: 'list', items: [
149
+ 'Ange barnets födelsedatum i kalkylatorn.',
150
+ 'Tryck på knappen "Lägg till påminnelse i mobilen" för att ladda ner .ics-filen.',
151
+ 'Öppna filen med din kalenderapp (Google Calendar, Apple Calendar, etc.).',
152
+ 'Alla vaccinationstillfällen sparas med datum och aktuella vacciner.',
153
+ ]},
154
+ { type: 'title', text: 'Vanliga biverkningar', level: 3 },
155
+ { type: 'list', items: [
156
+ 'Rodnad eller svullnad vid injektionsstället: försvinner oftast efter 1-2 dagar.',
157
+ 'Lätt feber (37,5–38,5 °C): normalt under de första 24-48 timmarna.',
158
+ 'Irritabilitet eller gråt: vanligt hos spädbarn efter de första doserna.',
159
+ 'Dåsighet eller tillfällig aptitlöshet: kräver oftast ingen behandling.',
160
+ 'Allvarliga reaktioner som anafylaxi är extremt sällsynta (färre än 1 på en miljon doser).',
161
+ ]},
162
+ { type: 'tip', html: 'Ett mätt barn i bekväma kläder underlättar besöket. Efter vaccinationen kan hud mot hud-kontakt eller amning hjälpa till att lindra smärta och inflammation naturligt.' },
163
+ { type: 'summary', title: 'Att komma ihåg', items: [
164
+ 'AEP 2026-kalendern inkluderar 14 doser upp till 12 års ålder för fullgott skydd.',
165
+ 'Vaccinationerna under det första året skyddar mot upp till 9 allvarliga sjukdomar samtidigt.',
166
+ 'Milda biverkningar är normala och försvinner efter 1-2 dagar.',
167
+ 'Du kan exportera alla vaccinationstillfällen till din mobilkalender med ett klick.',
168
+ 'Fråga alltid din barnläkare om du har frågor om programmet i din region.',
169
+ ]},
170
+ ],
171
+ faqTitle: "Vanliga frågor",
172
+ faq,
173
+ bibliographyTitle: "Referenser",
174
+ bibliography: [
175
+ {
176
+ name: 'Asociación Española de Pediatría - Calendario de Vacunaciones 2026',
177
+ url: 'https://www.aeped.es/comite-vacunas/calendario-vacunaciones',
178
+ },
179
+ {
180
+ name: 'Spanska hälsoministeriet (Ministerio de Sanidad) - Vaccinationsschema',
181
+ url: 'https://www.sanidad.gob.es/areas/promocionPrevencion/vacunaciones/calendario/home.htm',
182
+ },
183
+ {
184
+ name: 'WHO - Immunisering',
185
+ url: 'https://www.who.int/news-room/fact-sheets/detail/vaccines-and-immunization',
186
+ },
187
+ {
188
+ name: 'CDC - Rekommenderat vaccinationsschema för barn och ungdomar',
189
+ url: 'https://www.cdc.gov/vaccines/schedules/hcp/imz/child-adolescent.html',
190
+ },
191
+ ],
192
+ howTo,
193
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
194
+ };