@jjlmoya/utils-babies 1.6.0 → 1.7.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 (102) 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/title_quality.test.ts +55 -0
  23. package/src/tool/baby-feeding-calculator/i18n/de.ts +162 -0
  24. package/src/tool/baby-feeding-calculator/i18n/id.ts +162 -0
  25. package/src/tool/baby-feeding-calculator/i18n/it.ts +162 -0
  26. package/src/tool/baby-feeding-calculator/i18n/ja.ts +162 -0
  27. package/src/tool/baby-feeding-calculator/i18n/ko.ts +162 -0
  28. package/src/tool/baby-feeding-calculator/i18n/nl.ts +162 -0
  29. package/src/tool/baby-feeding-calculator/i18n/pl.ts +162 -0
  30. package/src/tool/baby-feeding-calculator/i18n/pt.ts +162 -0
  31. package/src/tool/baby-feeding-calculator/i18n/ru.ts +162 -0
  32. package/src/tool/baby-feeding-calculator/i18n/sv.ts +162 -0
  33. package/src/tool/baby-feeding-calculator/i18n/tr.ts +162 -0
  34. package/src/tool/baby-feeding-calculator/i18n/zh.ts +162 -0
  35. package/src/tool/baby-feeding-calculator/index.ts +12 -0
  36. package/src/tool/baby-percentile-calculator/i18n/de.ts +245 -0
  37. package/src/tool/baby-percentile-calculator/i18n/id.ts +245 -0
  38. package/src/tool/baby-percentile-calculator/i18n/it.ts +245 -0
  39. package/src/tool/baby-percentile-calculator/i18n/ja.ts +245 -0
  40. package/src/tool/baby-percentile-calculator/i18n/ko.ts +245 -0
  41. package/src/tool/baby-percentile-calculator/i18n/nl.ts +245 -0
  42. package/src/tool/baby-percentile-calculator/i18n/pl.ts +245 -0
  43. package/src/tool/baby-percentile-calculator/i18n/pt.ts +245 -0
  44. package/src/tool/baby-percentile-calculator/i18n/ru.ts +245 -0
  45. package/src/tool/baby-percentile-calculator/i18n/sv.ts +245 -0
  46. package/src/tool/baby-percentile-calculator/i18n/tr.ts +245 -0
  47. package/src/tool/baby-percentile-calculator/i18n/zh.ts +245 -0
  48. package/src/tool/baby-percentile-calculator/index.ts +12 -0
  49. package/src/tool/baby-size-converter/i18n/de.ts +203 -0
  50. package/src/tool/baby-size-converter/i18n/fr.ts +1 -1
  51. package/src/tool/baby-size-converter/i18n/id.ts +203 -0
  52. package/src/tool/baby-size-converter/i18n/it.ts +203 -0
  53. package/src/tool/baby-size-converter/i18n/ja.ts +203 -0
  54. package/src/tool/baby-size-converter/i18n/ko.ts +203 -0
  55. package/src/tool/baby-size-converter/i18n/nl.ts +203 -0
  56. package/src/tool/baby-size-converter/i18n/pl.ts +203 -0
  57. package/src/tool/baby-size-converter/i18n/pt.ts +203 -0
  58. package/src/tool/baby-size-converter/i18n/ru.ts +203 -0
  59. package/src/tool/baby-size-converter/i18n/sv.ts +203 -0
  60. package/src/tool/baby-size-converter/i18n/tr.ts +203 -0
  61. package/src/tool/baby-size-converter/i18n/zh.ts +203 -0
  62. package/src/tool/baby-size-converter/index.ts +12 -0
  63. package/src/tool/fertile-days-estimator/i18n/de.ts +262 -0
  64. package/src/tool/fertile-days-estimator/i18n/id.ts +262 -0
  65. package/src/tool/fertile-days-estimator/i18n/it.ts +262 -0
  66. package/src/tool/fertile-days-estimator/i18n/ja.ts +262 -0
  67. package/src/tool/fertile-days-estimator/i18n/ko.ts +262 -0
  68. package/src/tool/fertile-days-estimator/i18n/nl.ts +262 -0
  69. package/src/tool/fertile-days-estimator/i18n/pl.ts +262 -0
  70. package/src/tool/fertile-days-estimator/i18n/pt.ts +262 -0
  71. package/src/tool/fertile-days-estimator/i18n/ru.ts +262 -0
  72. package/src/tool/fertile-days-estimator/i18n/sv.ts +262 -0
  73. package/src/tool/fertile-days-estimator/i18n/tr.ts +262 -0
  74. package/src/tool/fertile-days-estimator/i18n/zh.ts +262 -0
  75. package/src/tool/fertile-days-estimator/index.ts +12 -0
  76. package/src/tool/pregnancy-calculator/i18n/de.ts +467 -0
  77. package/src/tool/pregnancy-calculator/i18n/id.ts +467 -0
  78. package/src/tool/pregnancy-calculator/i18n/it.ts +467 -0
  79. package/src/tool/pregnancy-calculator/i18n/ja.ts +467 -0
  80. package/src/tool/pregnancy-calculator/i18n/ko.ts +467 -0
  81. package/src/tool/pregnancy-calculator/i18n/nl.ts +467 -0
  82. package/src/tool/pregnancy-calculator/i18n/pl.ts +467 -0
  83. package/src/tool/pregnancy-calculator/i18n/pt.ts +467 -0
  84. package/src/tool/pregnancy-calculator/i18n/ru.ts +467 -0
  85. package/src/tool/pregnancy-calculator/i18n/sv.ts +467 -0
  86. package/src/tool/pregnancy-calculator/i18n/tr.ts +467 -0
  87. package/src/tool/pregnancy-calculator/i18n/zh.ts +467 -0
  88. package/src/tool/pregnancy-calculator/index.ts +13 -1
  89. package/src/tool/vaccination-calendar/i18n/de.ts +194 -0
  90. package/src/tool/vaccination-calendar/i18n/fr.ts +99 -95
  91. package/src/tool/vaccination-calendar/i18n/id.ts +194 -0
  92. package/src/tool/vaccination-calendar/i18n/it.ts +194 -0
  93. package/src/tool/vaccination-calendar/i18n/ja.ts +194 -0
  94. package/src/tool/vaccination-calendar/i18n/ko.ts +194 -0
  95. package/src/tool/vaccination-calendar/i18n/nl.ts +194 -0
  96. package/src/tool/vaccination-calendar/i18n/pl.ts +194 -0
  97. package/src/tool/vaccination-calendar/i18n/pt.ts +194 -0
  98. package/src/tool/vaccination-calendar/i18n/ru.ts +194 -0
  99. package/src/tool/vaccination-calendar/i18n/sv.ts +194 -0
  100. package/src/tool/vaccination-calendar/i18n/tr.ts +194 -0
  101. package/src/tool/vaccination-calendar/i18n/zh.ts +194 -0
  102. package/src/tool/vaccination-calendar/index.ts +13 -1
@@ -0,0 +1,467 @@
1
+ import type { PregnancyCalculatorLocaleContent } from '../index';
2
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
+
4
+ const slug = 'kalkulator-minggu-kehamilan';
5
+ const title = 'Kalkulator Minggu Kehamilan';
6
+ const description = 'Hitung tepatnya di minggu keberapa kehamilan Anda, trimester, dan perkiraan tanggal lahir bayi Anda.';
7
+ const faq = [
8
+ {
9
+ question: 'Bagaimana cara menghitung minggu kehamilan?',
10
+ answer: 'Dihitung dari hari pertama menstruasi terakhir Anda. 280 hari ditambahkan ke tanggal tersebut untuk mendapatkan perkiraan tanggal lahir. Jika siklus Anda bukan 28 hari, perhitungan akan disesuaikan secara otomatis.',
11
+ },
12
+ {
13
+ question: 'Apa perbedaan antara menggunakan HPHT dan tanggal pembuahan?',
14
+ answer: 'HPHT (Hari Pertama Haid Terakhir) adalah metode standar yang digunakan oleh petugas medis. Tanggal pembuahan lebih tepat jika Anda mengetahuinya, karena menghindari estimasi 14 hari ovulasi. Kedua metode memberikan hasil yang sangat mirip pada siklus teratur.',
15
+ },
16
+ {
17
+ question: 'Mengapa tanggal lahir dari dokter saya berbeda?',
18
+ answer: 'Dokter Anda mungkin telah mengoreksi tanggal berdasarkan USG trimester pertama, yang merupakan metode paling akurat. Siklus tidak teratur juga dapat membenarkan perbedaan.',
19
+ },
20
+ {
21
+ question: 'Kapan trimester kedua dimulai?',
22
+ answer: 'Trimester kedua dimulai pada minggu ke-13 dan berakhir pada akhir minggu ke-26. Ini adalah periode di mana sebagian besar ibu merasa lebih energik dan perut mulai terlihat.',
23
+ },
24
+ {
25
+ question: 'Apa itu HPL dan seberapa akurat?',
26
+ answer: 'Hari Perkiraan Lahir (HPL) adalah estimasi statistik. Hanya 3–5% bayi yang lahir tepat pada hari itu. Kebanyakan lahir antara minggu ke-38 dan ke-42.',
27
+ },
28
+ ];
29
+ const howTo = [
30
+ {
31
+ name: 'Pilih metode perhitungan',
32
+ text: 'Pilih apakah Anda ingin menghitung dari tanggal haid terakhir atau dari tanggal pembuahan.',
33
+ },
34
+ {
35
+ name: 'Masukkan tanggal',
36
+ text: 'Pilih hari, bulan, dan tahun menggunakan menu drop-down.',
37
+ },
38
+ {
39
+ name: 'Sesuaikan panjang siklus',
40
+ text: 'Jika siklus Anda bukan 28 hari, pindahkan slider untuk estimasi yang lebih tepat.',
41
+ },
42
+ {
43
+ name: 'Periksa minggu dan trimester',
44
+ text: 'Hasilnya menunjukkan minggu yang tepat, trimester, dan hari perkiraan lahir.',
45
+ },
46
+ {
47
+ name: 'Jelajahi tonggak mingguan',
48
+ text: 'Cari tahu ukuran bayi, perubahan biologis, dan tips pribadi untuk setiap minggu.',
49
+ },
50
+ ];
51
+
52
+ const faqSchema: WithContext<FAQPage> = {
53
+ '@context': 'https://schema.org',
54
+ '@type': 'FAQPage',
55
+ mainEntity: faq.map((item) => ({
56
+ '@type': 'Question',
57
+ name: item.question,
58
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
59
+ })),
60
+ };
61
+ const howToSchema: WithContext<HowTo> = {
62
+ '@context': 'https://schema.org',
63
+ '@type': 'HowTo',
64
+ name: title,
65
+ description,
66
+ step: howTo.map((step) => ({
67
+ '@type': 'HowToStep',
68
+ name: step.name,
69
+ text: step.text,
70
+ })),
71
+ };
72
+ const appSchema: WithContext<SoftwareApplication> = {
73
+ '@context': 'https://schema.org',
74
+ '@type': 'SoftwareApplication',
75
+ name: title,
76
+ description,
77
+ applicationCategory: 'UtilitiesApplication',
78
+ operatingSystem: 'Web',
79
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
80
+ inLanguage: 'id',
81
+ };
82
+
83
+ export const content: PregnancyCalculatorLocaleContent = {
84
+ slug,
85
+ title,
86
+ description,
87
+ ui: {
88
+ btnFUR: 'Haid Terakhir',
89
+ btnConception: 'Tanggal Pembuahan',
90
+ labelPartnerMode: 'Mode pasangan',
91
+ labelFUR: 'Tanggal haid terakhir',
92
+ labelConception: 'Tanggal pembuahan',
93
+ labelCycleLength: 'Panjang siklus',
94
+ unitDays: 'hari',
95
+ labelWeeks: 'Minggu',
96
+ labelTrimester: 'Trimester',
97
+ labelEDD: 'Hari Perkiraan Lahir',
98
+ eddPlaceholder: 'Masukkan tanggal',
99
+ eddNote: 'Hanya 3–5% bayi yang lahir tepat pada hari itu',
100
+ btnCalendar: 'Simpan di Kalender',
101
+ labelFruits: 'Buah',
102
+ labelGeek: 'Geek',
103
+ labelSweets: 'Manisan',
104
+ labelBioLabel: 'Pembentukan biologis',
105
+ labelMomKey: 'Tubuh Anda hari ini',
106
+ labelPartnerKey: 'Cara mendukungnya hari ini',
107
+ labelNormalMolestias: 'Keluhan normal',
108
+ labelAlert: 'Konsultasikan jika ada...',
109
+ labelTimeline: 'Garis waktu',
110
+ labelStartHere: 'Mulai di sini',
111
+ labelStartBody: 'Pilih tanggal haid terakhir Anda dan cari tahu di minggu berapa Anda berada.',
112
+ labelSem: 'Mig',
113
+ labelWeekBadge: 'Minggu',
114
+ weeksFormat: '{w}m {d}h',
115
+ trimesterSuffix: '',
116
+ eggFutureTitle: 'Penjelajah waktu terdeteksi',
117
+ eggFutureBody: 'Tanggal itu belum tiba. Kembali lagi saat realitas menyusul Anda.',
118
+ eggTooOldTitle: 'Tanggal kedaluwarsa',
119
+ eggTooOldBody: 'Sudah lebih dari 40 minggu berlalu sejak tanggal tersebut. Jika semuanya berjalan lancar, bayi sudah lahir.',
120
+ faqTitle: 'Pertanyaan yang Sering Diajukan',
121
+ bibliographyTitle: 'Referensi',
122
+ dayLabel: 'Hari',
123
+ monthLabel: 'Bulan',
124
+ yearLabel: 'Tahun',
125
+ icsSummary: 'Hari Perkiraan Lahir',
126
+ icsDescription: 'Tanggal perkiraan kelahiran yang dihitung oleh jjlmoya',
127
+ icsFilename: 'tanggal-lahir.ics',
128
+ monthsData: JSON.stringify(['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Agu', 'Sep', 'Okt', 'Nov', 'Des']),
129
+ timelineLabelsData: JSON.stringify({
130
+ 4: 'Implantasi', 5: 'Detak Jantung', 6: 'Jantung berdetak', 7: 'Mata & telinga',
131
+ 8: 'Jari', 9: 'Kuku', 10: 'Sudah janin', 11: 'Gerakan',
132
+ 12: 'Skrining trimester 1', 13: 'Trimester 2', 14: 'Leher rahim', 15: 'Tendangan',
133
+ 16: 'Mendengar suara', 17: 'Lemak tubuh', 18: 'Kelamin terlihat', 19: 'Vernix',
134
+ 20: 'USG anatomi', 21: 'Sidik jari', 22: 'Bibir terbentuk', 23: 'Kelopak mata',
135
+ 24: 'Mata terbuka', 25: 'Kapiler', 26: 'Refleks', 27: 'Otak aktif',
136
+ 28: 'Trimester 3', 29: 'Tulang kuat', 30: 'Sumsum tulang', 31: 'Surfaktan',
137
+ 32: 'Latihan napas', 33: 'Imunitas', 34: 'Sistem saraf', 35: 'Masuk panggul',
138
+ 36: 'Paru-paru matang', 37: 'Cukup bulan', 38: 'Siap', 39: 'Menunggu', 40: 'Harinya tiba',
139
+ }),
140
+ milestonesData: JSON.stringify({
141
+ 4: {
142
+ analogies: { fruits: 'Biji poppy', geek: 'Satu piksel', sweets: 'Butiran gula' },
143
+ size: '~1 mm',
144
+ biolook: 'Blastokista menempel di endometrium. Tiga lapisan embrio muncul yang akan membentuk semua organ tubuh.',
145
+ mom: 'Tubuh Anda belum tahu bahwa Anda hamil, tetapi sudah memproduksi hCG. Mungkin Anda merasakan flek implantasi ringan.',
146
+ partner: 'Mungkin dia lebih lelah dari biasanya tanpa tahu sebabnya. Waktu yang tepat untuk memasak makan malam kesukaannya.',
147
+ symptoms: ['Kelelahan dini', 'Ketegangan pada payudara', 'Flek implantasi ringan'],
148
+ alerts: ['Pendarahan merah banyak', 'Nyeri panggul akut', 'Demam di atas 38 derajat'],
149
+ wonder: 'Pada saat ini diputuskan apakah akan ada satu bayi atau kembar.',
150
+ },
151
+ 6: {
152
+ analogies: { fruits: 'Lentil', geek: 'LED berkedip', sweets: 'Lacasito' },
153
+ size: '~6 mm',
154
+ biolook: 'Jantung mulai berdetak tidak teratur tetapi terlihat pada USG. Tabung saraf menutup.',
155
+ mom: 'Mual di pagi hari bisa dimulai sekarang.',
156
+ partner: 'Indra penciumannya menjadi sangat tajam. Hindari parfum menyengat dan jangan memasak ikan di rumah.',
157
+ symptoms: ['Mual', 'Hipersensitivitas terhadap bau', 'Kantuk ekstrem'],
158
+ alerts: ['Tidak ada detak jantung pada USG transvaginal', 'Bercak gelap terus-menerus', 'Muntah tanpa bisa menahan cairan'],
159
+ wonder: 'Sudah memiliki struktur otak dasar yang sama dengan orang dewasa.',
160
+ },
161
+ 8: {
162
+ analogies: { fruits: 'Raspberry', geek: 'Flashdisk nano', sweets: 'Permen beruang' },
163
+ size: '~18 mm',
164
+ biolook: 'Jari tangan dan kaki terpisah. Kelopak mata menutupi mata. Jantung berdetak 150-170 kali per menit.',
165
+ mom: 'Rahim Anda seukuran jeruk bali. Mual berada pada puncaknya.',
166
+ partner: 'Dia mungkin perlu tidur 10-12 jam. Ambil alih pekerjaan rumah tangga.',
167
+ symptoms: ['Mual intens', 'Peningkatan air liur', 'Sangat sering buang air kecil'],
168
+ alerts: ['Muntah tak terkendali', 'Bercak gelap', 'Nyeri pinggang yang intens'],
169
+ wonder: 'Jika Anda menyentuh perutnya, bayi sudah bereaksi dan bergerak.',
170
+ },
171
+ 10: {
172
+ analogies: { fruits: 'Kumquat', geek: 'AirPod', sweets: 'Macaron' },
173
+ size: '~31 mm',
174
+ biolook: 'Secara teknis sudah menjadi janin. Semua organ ada dalam bentuk dasar. Kuku mulai tumbuh.',
175
+ mom: 'Pinggang Anda mulai melebar.',
176
+ partner: 'Temani dia pada pemeriksaan pertama trimester pertama.',
177
+ symptoms: ['Perut kembung', 'Perubahan suasana hati mendadak', 'Kulit lebih sensitif terhadap matahari'],
178
+ alerts: ['Keluar cairan bening', 'Kram rahim yang intens', 'Demam tanpa sebab yang jelas'],
179
+ wonder: 'Sudah memiliki golongan darah sendiri, berbeda dari golongan darah ibunya.',
180
+ },
181
+ 12: {
182
+ analogies: { fruits: 'Plum', geek: 'Mouse nirkabel', sweets: 'Mochi stroberi' },
183
+ size: '~55 mm',
184
+ biolook: 'Organ-organ utama sudah terbentuk. Bayi mulai berlatih gerakan menelan.',
185
+ mom: 'Risiko keguguran turun drastis.',
186
+ partner: 'Trimester kedua mendekat. Kelelahannya akan segera membaik.',
187
+ symptoms: ['Mual berkurang', 'Kulit lebih cerah atau出现flek ketiak hitam', 'Sakit kepala'],
188
+ alerts: ['Kehilangan cairan', 'Kram kuat', 'Demam terus menerus'],
189
+ wonder: 'Refleksnya sudah bekerja: jika Anda menyentuh telapak tangannya, dia akan mengepalkan tangan.',
190
+ },
191
+ 16: {
192
+ analogies: { fruits: 'Alpukat', geek: 'Stik PS5', sweets: 'Donat cokelat' },
193
+ size: '~12 cm',
194
+ biolook: 'Telinga sudah pada posisi akhirnya. Kerangka tulang rawan menjadi tulang.',
195
+ mom: 'Banyak ibu merasakan gerakan pertama. Energi kembali.',
196
+ partner: 'Mungkin mulai merasakan gerakan kecil.',
197
+ symptoms: ['Nyeri ulu hati ringan', 'Hidung tersumbat', 'Mimpi yang sangat hidup'],
198
+ alerts: ['Sama sekali tidak ada gerakan janin', 'Tekanan darah tinggi', 'Pendarahan vagina'],
199
+ wonder: 'Jika bayi perempuan, dia sudah memiliki 6 juta sel telur di ovariumnya.',
200
+ },
201
+ 20: {
202
+ analogies: { fruits: 'Pisang', geek: 'Konsol game portabel', sweets: 'Seluruh kue keju' },
203
+ size: '~25 cm',
204
+ biolook: 'Bayi sudah mendengar suara Anda dengan jelas. Mengisap jempol.',
205
+ mom: 'Minggu ke-20, setengah jalan. Waktunya USG anatomi.',
206
+ partner: 'Bicaralah dengan bayi. Dia sudah bisa mendengar Anda.',
207
+ symptoms: ['Sering nyeri ulu hati', 'Kaki bengkak di sore hari', 'Kulit perut gatal'],
208
+ alerts: ['Kurangnya gerakan janin', 'Tekanan darah tinggi yang berkelanjutan', 'Pandangan kabur atau ada kilatan cahaya'],
209
+ wonder: 'Sidik jarinya sudah lengkap dan unik di seluruh alam semesta.',
210
+ },
211
+ 24: {
212
+ analogies: { fruits: 'Jagung', geek: 'Keyboard mekanik', sweets: 'Donat raksasa' },
213
+ size: '~30 cm',
214
+ biolook: 'Paru-paru memproduksi surfaktan. Mata mulai terbuka.',
215
+ mom: 'Rahim Anda mencapai pusar. Punggung mungkin mulai terasa sakit.',
216
+ partner: 'Pelajari tanda-tanda persalinan prematur.',
217
+ symptoms: ['Nyeri punggung bawah', 'Kram kaki di malam hari', 'Linea nigra pada perut'],
218
+ alerts: ['Kontraksi teratur sebelum minggu ke-37', 'Keluar air ketuban', 'Pendarahan vagina'],
219
+ wonder: 'Jika lahir sekarang, dengan perawatan intensif, dia punya peluang untuk bertahan hidup.',
220
+ },
221
+ 28: {
222
+ analogies: { fruits: 'Terong', geek: 'Tablet grafis', sweets: 'Kue tiga tingkat' },
223
+ size: '~37 cm',
224
+ biolook: 'Bayi membuka dan menutup mata. Memiliki siklus tidur dan bangun.',
225
+ mom: 'Trimester ketiga dimulai. Tes glukosa dilakukan sekarang.',
226
+ partner: 'Insomnia bisa membuatnya lelah. Dampingi dia.',
227
+ symptoms: ['Insomnia dan sulit menemukan posisi tidur', 'Tangan dan kaki bengkak', 'Kontraksi Braxton Hicks sesekali'],
228
+ alerts: ['Penurunan gerakan janin yang nyata', 'Sakit kepala hebat yang tidak kunjung hilang', 'Melihat kilatan cahaya atau bintik-bintik'],
229
+ wonder: 'Sudah punya rasa kesukaan.',
230
+ },
231
+ 32: {
232
+ analogies: { fruits: 'Labu sedang', geek: 'Keyboard 60%', sweets: 'Satu kotak cokelat' },
233
+ size: '~42 cm',
234
+ biolook: 'Berlatih bernapas. Paru-parunya hampir siap untuk dunia luar.',
235
+ mom: 'Menarik napas dalam terasa sulit. Bayi menekan diafragma.',
236
+ partner: 'Siapkan tas rumah sakit.',
237
+ symptoms: ['Sesak napas saat sedikit beraktivitas', 'Wasir', 'Keluar urin saat tertawa atau batuk'],
238
+ alerts: ['Gatal hebat pada telapak tangan dan sol kaki', 'Kontraksi teratur', 'Nyeri ulu hati disertai mual'],
239
+ wonder: 'Sudah memutar kepala ke arah cahaya yang menembus perut ibu.',
240
+ },
241
+ 36: {
242
+ analogies: { fruits: 'Melon madu', geek: 'Laptop 15 inci', sweets: 'Kue ulang tahun' },
243
+ size: '~47 cm',
244
+ biolook: 'Bayi biasanya sudah dalam posisi kepala di bawah. Paru-parunya hampir matang.',
245
+ mom: 'Anda merasakan tekanan di panggul saat bayi masuk panggul.',
246
+ partner: 'Rencana persalinan harus sudah siap.',
247
+ symptoms: ['Tekanan panggul yang intens', 'Nyeri ulu hati kembali', 'Kecemasan antisipatif'],
248
+ alerts: ['Pecah air ketuban', 'Pendarahan vagina merah', 'Tidak ada gerakan janin'],
249
+ wonder: 'Kukunya sudah cukup panjang sehingga dia bisa mencakar dirinya sendiri saat lahir.',
250
+ },
251
+ 40: {
252
+ analogies: { fruits: 'Semangka', geek: 'PC desktop lengkap', sweets: 'Kue pernikahan 3 tingkat' },
253
+ size: '~50 cm',
254
+ biolook: 'Semuanya sudah siap. Refleksnya terkoordinasi, paru-paru matang, otak aktif.',
255
+ mom: 'Kelelahan pada titik maksimal. Anda luar biasa.',
256
+ partner: 'Hari ini mungkin harinya. Jaga ponsel tetap terisi daya dan tetap tenang untuknya.',
257
+ symptoms: ['Tekanan panggul yang sangat intens', 'Keluar penyumbat mukosa', 'Kontraksi tidak teratur'],
258
+ alerts: ['Kontraksi teratur setiap 5 menit selama 1 jam', 'Pecah air ketuban', 'Tidak ada gerakan'],
259
+ wonder: 'Otaknya telah menciptakan 100 miliar neuron selama 9 bulan ini.',
260
+ },
261
+ }),
262
+ },
263
+ seo: [
264
+ {
265
+ type: 'summary',
266
+ title: 'Yang harus Anda ingat',
267
+ items: [
268
+ 'Hitung minggu kehamilan Anda dari HPHT atau tanggal pembuahan.',
269
+ 'HPL adalah estimasi: hanya 3–5% bayi yang lahir tepat di hari itu.',
270
+ 'Setiap trimester memiliki tonggak biologis dan keluhan khasnya sendiri.',
271
+ 'Jika ada tanda bahaya, segera konsultasikan dengan dokter atau bidan Anda.',
272
+ 'Mode pasangan menunjukkan cara mendukung pasangan Anda minggu demi minggu.',
273
+ ],
274
+ },
275
+ {
276
+ type: 'title',
277
+ text: 'Kalkulator Minggu Kehamilan: Lebih dari sekadar tanggal lahir',
278
+ level: 2,
279
+ },
280
+ {
281
+ type: 'stats',
282
+ columns: 3,
283
+ items: [
284
+ { value: '40 minggu', label: 'Lama kehamilan rata-rata' },
285
+ { value: '280 hari', label: 'Hari kehamilan' },
286
+ { value: '±14 hari', label: 'Margin kesalahan HPL' },
287
+ ],
288
+ },
289
+ {
290
+ type: 'title',
291
+ text: 'Bagaimana cara menghitung minggu kehamilan',
292
+ level: 3,
293
+ },
294
+ {
295
+ type: 'list',
296
+ items: [
297
+ 'Metode yang paling umum menggunakan hari pertama haid terakhir (HPHT) sebagai titik awal.',
298
+ '280 hari ditambahkan ke HPHT untuk menentukan hari perkiraan lahir (HPL).',
299
+ 'Jika siklus Anda bukan 28 hari, HPL akan disesuaikan secara otomatis.',
300
+ 'Metode pembuahan mengurangi 14 hari dari hitungan untuk mendekati HPL dari sejak pembuahan.',
301
+ 'USG trimester pertama dapat mengoreksi usia kehamilan dengan presisi lebih tinggi.',
302
+ ],
303
+ },
304
+ {
305
+ type: 'tip',
306
+ html: 'Jika dokter Anda memberikan tanggal yang berbeda dari yang dihitung di sini, kemungkinan besar karena siklus tidak teratur atau koreksi USG trimester pertama. Kedua tanggal tersebut valid.',
307
+ },
308
+ {
309
+ type: 'title',
310
+ text: 'Tiga trimester kehamilan',
311
+ level: 3,
312
+ },
313
+ {
314
+ type: 'table',
315
+ headers: ['Trimester', 'Minggu', 'Tonggak utama', 'Tubuh ibu'],
316
+ rows: [
317
+ ['1', '1 – 12', 'Pembentukan organ', 'Mual, lelah, implantasi'],
318
+ ['2', '13 – 26', 'Gerakan janin, USG anatomi', 'Energi kembali, perut terlihat'],
319
+ ['3', '27 – 40', 'Pematangan paru, masuk panggul', 'Tekanan panggul, persiapan lahir'],
320
+ ],
321
+ },
322
+ {
323
+ type: 'title',
324
+ text: 'Tonggak biologis minggu ke minggu',
325
+ level: 3,
326
+ },
327
+ {
328
+ type: 'table',
329
+ headers: ['Minggu', 'Ukuran kira-kira', 'Tonggak biologis', 'Yang dirasakan ibu'],
330
+ rows: [
331
+ ['4', '~1 mm', 'Implantasi di endometrium', 'Mungkin flek sedikit'],
332
+ ['8', '~18 mm', 'Jantung berdetak 150–170 x/mnt', 'Mual di titik puncak'],
333
+ ['12', '~55 mm', 'Organ utama terbentuk', 'Risiko keguguran turun drastis'],
334
+ ['20', '~25 cm', 'Mendengar suara dengan jelas', 'USG anatomi'],
335
+ ['28', '~37 cm', 'Siklus tidur dan bangun', 'Awal trimester ketiga'],
336
+ ['36', '~47 cm', 'Paru-paru hampir matang', 'Masuk ke panggul'],
337
+ ['40', '~50 cm', 'Siap untuk lahir', 'HPL: hari perkiraan lahir'],
338
+ ],
339
+ },
340
+ {
341
+ type: 'title',
342
+ text: 'Gejala umum per trimester',
343
+ level: 3,
344
+ },
345
+ {
346
+ type: 'comparative',
347
+ columns: 2,
348
+ items: [
349
+ {
350
+ title: 'Trimester Pertama (mgg. 1–12)',
351
+ description: 'Fase perubahan hormonal terbesar.',
352
+ points: [
353
+ 'Mual dan muntah, terutama di pagi hari',
354
+ 'Kelelahan ekstrem dan kantuk',
355
+ 'Payudara sensitif',
356
+ 'Sering buang air kecil',
357
+ 'Perubahan suasana hati',
358
+ ],
359
+ },
360
+ {
361
+ title: 'Trimester Kedua (mgg. 13–26)',
362
+ description: 'Trimester yang paling nyaman bagi kebanyakan orang.',
363
+ points: [
364
+ 'Mual menghilang',
365
+ 'Energi kembali',
366
+ 'Perut terlihat dari minggu ke-18–20',
367
+ 'Gerakan janin pertama (mgg. 18–22)',
368
+ 'Nyeri ulu hati meningkat',
369
+ ],
370
+ },
371
+ {
372
+ title: 'Trimester Ketiga (mgg. 27–40)',
373
+ description: 'Persiapan persalinan.',
374
+ points: [
375
+ 'Tekanan panggul dan nyeri punggung',
376
+ 'Kontraksi Braxton Hicks',
377
+ 'Kaki dan pergelangan kaki bengkak',
378
+ 'Sulit tidur',
379
+ 'Bayi masuk panggul (mgg. 36–38)',
380
+ ],
381
+ },
382
+ ],
383
+ },
384
+ {
385
+ type: 'title',
386
+ text: 'Tanda bahaya yang memerlukan konsultasi segera',
387
+ level: 3,
388
+ },
389
+ {
390
+ type: 'list',
391
+ items: [
392
+ 'Pendarahan vagina banyak di minggu mana pun: segera konsultasikan.',
393
+ 'Kontraksi teratur sebelum minggu ke-37: risiko lahir prematur.',
394
+ 'Pecah ketuban: pecahnya kantung ketuban, segera ke UGD.',
395
+ 'Sakit kepala hebat dengan pandangan kabur: kemungkinan preeklampsia.',
396
+ 'Kurangnya gerakan janin setelah minggu ke-20: tanda bahaya.',
397
+ ],
398
+ },
399
+ {
400
+ type: 'title',
401
+ text: 'Konsultasi medis yang sangat penting',
402
+ level: 3,
403
+ },
404
+ {
405
+ type: 'list',
406
+ items: [
407
+ 'Minggu 8–12: USG pertama dan cek darah trimester pertama.',
408
+ 'Minggu 12: skrining kombinasi (nuchal translucency + lab).',
409
+ 'Minggu 18–22: USG anatomi (minggu ke-20).',
410
+ 'Minggu 24–28: tes toleransi glukosa (O\'Sullivan).',
411
+ 'Minggu 36: USG kontrol, swab streptokokus grup B.',
412
+ ],
413
+ },
414
+ {
415
+ type: 'glossary',
416
+ items: [
417
+ {
418
+ term: 'HPHT',
419
+ definition: 'Hari Pertama Haid Terakhir. Titik referensi untuk menghitung usia kehamilan.',
420
+ },
421
+ {
422
+ term: 'HPL',
423
+ definition: 'Hari Perkiraan Lahir. Dihitung dengan menambahkan 280 hari ke HPHT.',
424
+ },
425
+ {
426
+ term: 'Air Ketuban',
427
+ definition: 'Cairan yang mengelilingi bayi di rahim. Melindungi janin, mengatur suhu, dan memungkinkan gerakan.',
428
+ },
429
+ {
430
+ term: 'Penyumbat Mukosa (Bloody Show)',
431
+ definition: 'Sekresi kental yang menutup leher rahim selama hamil. Keluarnya ini menandakan persalinan sudah dekat.',
432
+ },
433
+ {
434
+ term: 'Preeklampsia',
435
+ definition: 'Komplikasi kehamilan yang ditandai dengan tekanan darah tinggi dan kerusakan organ. Perlu kontrol medis segera.',
436
+ },
437
+ ],
438
+ },
439
+ ],
440
+ faqTitle: 'Pertanyaan yang Sering Diajukan',
441
+ faq,
442
+ bibliographyTitle: 'Referensi',
443
+ bibliography: [
444
+ {
445
+ name: 'WHO – Perawatan selama hamil',
446
+ url: 'https://www.who.int/news-room/fact-sheets/detail/maternal-mortality',
447
+ },
448
+ {
449
+ name: 'ACOG – Gestational Age and Due Date Calculation',
450
+ url: 'https://www.acog.org/clinical/clinical-guidance/committee-opinion/articles/2017/05/methods-for-estimating-the-due-date',
451
+ },
452
+ {
453
+ name: 'Ikatan Dokter Indonesia (IDI)',
454
+ url: 'https://www.idionline.org',
455
+ },
456
+ {
457
+ name: 'Naegele\'s rule – Dugoff L. et al., Obstetrics & Gynecology',
458
+ url: 'https://journals.lww.com/greenjournal/fulltext/2017/05000/methods_for_estimating_the_due_date.43.aspx',
459
+ },
460
+ {
461
+ name: 'UpToDate – Prenatal care: Initial assessment',
462
+ url: 'https://www.uptodate.com/contents/prenatal-care-initial-assessment',
463
+ },
464
+ ],
465
+ howTo,
466
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
467
+ };