@jjlmoya/utils-travel 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.
Files changed (58) hide show
  1. package/package.json +60 -0
  2. package/src/category/i18n/en.ts +185 -0
  3. package/src/category/i18n/es.ts +187 -0
  4. package/src/category/i18n/fr.ts +100 -0
  5. package/src/category/index.ts +12 -0
  6. package/src/category/seo.astro +15 -0
  7. package/src/components/PreviewNavSidebar.astro +116 -0
  8. package/src/components/PreviewToolbar.astro +143 -0
  9. package/src/data.ts +15 -0
  10. package/src/env.d.ts +5 -0
  11. package/src/index.ts +22 -0
  12. package/src/layouts/PreviewLayout.astro +117 -0
  13. package/src/pages/[locale]/[slug].astro +146 -0
  14. package/src/pages/[locale].astro +278 -0
  15. package/src/pages/index.astro +4 -0
  16. package/src/tests/faq_count.test.ts +8 -0
  17. package/src/tests/locale_completeness.test.ts +21 -0
  18. package/src/tests/mocks/astro_mock.js +2 -0
  19. package/src/tests/no_h1_in_components.test.ts +8 -0
  20. package/src/tests/seo_length.test.ts +8 -0
  21. package/src/tests/tool_validation.test.ts +17 -0
  22. package/src/tool/luggage-calculator/bibliography.astro +14 -0
  23. package/src/tool/luggage-calculator/component.astro +560 -0
  24. package/src/tool/luggage-calculator/i18n/en.ts +617 -0
  25. package/src/tool/luggage-calculator/i18n/es.ts +617 -0
  26. package/src/tool/luggage-calculator/i18n/fr.ts +549 -0
  27. package/src/tool/luggage-calculator/index.ts +53 -0
  28. package/src/tool/luggage-calculator/seo.astro +14 -0
  29. package/src/tool/mini-adventures/bibliography.astro +14 -0
  30. package/src/tool/mini-adventures/component.astro +665 -0
  31. package/src/tool/mini-adventures/i18n/en.ts +161 -0
  32. package/src/tool/mini-adventures/i18n/es.ts +286 -0
  33. package/src/tool/mini-adventures/i18n/fr.ts +144 -0
  34. package/src/tool/mini-adventures/index.ts +70 -0
  35. package/src/tool/mini-adventures/seo.astro +14 -0
  36. package/src/tool/optimal-routes/bibliography.astro +14 -0
  37. package/src/tool/optimal-routes/component.astro +439 -0
  38. package/src/tool/optimal-routes/i18n/en.ts +42 -0
  39. package/src/tool/optimal-routes/i18n/es.ts +52 -0
  40. package/src/tool/optimal-routes/index.ts +63 -0
  41. package/src/tool/optimal-routes/lib/RouteManager.ts +181 -0
  42. package/src/tool/optimal-routes/seo.astro +14 -0
  43. package/src/tool/suitcase-checklist/bibliography.astro +14 -0
  44. package/src/tool/suitcase-checklist/component.astro +710 -0
  45. package/src/tool/suitcase-checklist/i18n/en.ts +261 -0
  46. package/src/tool/suitcase-checklist/i18n/es.ts +261 -0
  47. package/src/tool/suitcase-checklist/i18n/fr.ts +259 -0
  48. package/src/tool/suitcase-checklist/index.ts +75 -0
  49. package/src/tool/suitcase-checklist/seo.astro +14 -0
  50. package/src/tool/tip-calculator/bibliography.astro +14 -0
  51. package/src/tool/tip-calculator/component.astro +683 -0
  52. package/src/tool/tip-calculator/i18n/en.ts +264 -0
  53. package/src/tool/tip-calculator/i18n/es.ts +264 -0
  54. package/src/tool/tip-calculator/i18n/fr.ts +264 -0
  55. package/src/tool/tip-calculator/index.ts +53 -0
  56. package/src/tool/tip-calculator/seo.astro +14 -0
  57. package/src/tools.ts +13 -0
  58. package/src/types.ts +73 -0
package/package.json ADDED
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "@jjlmoya/utils-travel",
3
+ "version": "1.1.0",
4
+ "type": "module",
5
+ "main": "./src/index.ts",
6
+ "types": "./src/index.ts",
7
+ "exports": {
8
+ ".": "./src/index.ts",
9
+ "./data": "./src/data.ts"
10
+ },
11
+ "files": [
12
+ "src"
13
+ ],
14
+ "publishConfig": {
15
+ "access": "public"
16
+ },
17
+ "scripts": {
18
+ "dev": "astro dev",
19
+ "start": "astro dev",
20
+ "build": "astro build",
21
+ "preview": "astro preview",
22
+ "astro": "astro",
23
+ "lint": "eslint src/ --max-warnings 0 && stylelint \"src/**/*.{css,astro}\"",
24
+ "check": "astro check",
25
+ "type-check": "astro check",
26
+ "test": "vitest run",
27
+ "preversion": "npm run lint && npm run test",
28
+ "postversion": "git push && git push --tags",
29
+ "patch": "npm version patch",
30
+ "minor": "npm version minor",
31
+ "major": "npm version major"
32
+ },
33
+ "lint-staged": {
34
+ "*.{ts,tsx,astro}": [
35
+ "eslint --fix"
36
+ ]
37
+ },
38
+ "dependencies": {
39
+ "@iconify-json/mdi": "^1.2.3",
40
+ "@jjlmoya/utils-shared": "^1.1.0",
41
+ "astro": "^6.1.2",
42
+ "astro-icon": "^1.1.0"
43
+ },
44
+ "devDependencies": {
45
+ "@astrojs/check": "^0.9.8",
46
+ "eslint": "^9.39.4",
47
+ "eslint-plugin-astro": "^1.6.0",
48
+ "eslint-plugin-no-comments": "^1.1.10",
49
+ "husky": "^9.1.7",
50
+ "lint-staged": "^16.4.0",
51
+ "postcss-html": "^1.8.1",
52
+ "schema-dts": "^1.1.2",
53
+ "stylelint": "^17.6.0",
54
+ "stylelint-config-standard": "^40.0.0",
55
+ "stylelint-declaration-strict-value": "^1.11.1",
56
+ "typescript": "^5.4.0",
57
+ "typescript-eslint": "^8.58.0",
58
+ "vitest": "^4.1.2"
59
+ }
60
+ }
@@ -0,0 +1,185 @@
1
+ import type { CategoryLocaleContent } from '../../types';
2
+
3
+ export const content: CategoryLocaleContent = {
4
+ slug: 'travel',
5
+ title: 'Tools and Calculators for Travelers and Adventurers',
6
+ description: 'Plan your next trip with free online tools. Airline luggage calculators, international tipping guides, suitcase checklists, and daily challenge generators.',
7
+ seo: [
8
+ {
9
+ type: 'title',
10
+ text: 'Travel Logistics and Local Exploration: Plan Smartly',
11
+ level: 2,
12
+ },
13
+ {
14
+ type: 'paragraph',
15
+ html: 'Traveling in 2026 is a blend of discovery and technical management. In this section, we offer a suite of <strong>free online tools</strong> designed for digital nomads, frequent travelers, and urban adventurers looking to reduce planning stress. Trip logistics shouldn\'t be an obstacle to adventure, but the map that makes it possible.',
16
+ },
17
+ {
18
+ type: 'paragraph',
19
+ html: 'From complying with airline regulations to international cultural etiquette and gamifying your local environment, our utilities help you be a more conscious, efficient, and curious traveler.',
20
+ },
21
+ {
22
+ type: 'title',
23
+ text: 'Air Logistics: Luggage Calculator and Measurements',
24
+ level: 2,
25
+ },
26
+ {
27
+ type: 'paragraph',
28
+ html: 'Avoiding surprises and extra charges at the check-in counter is vital. Our <strong>luggage calculator</strong> integrates the measurements and weights allowed by more than 20 leading airlines (including low-cost ones like Ryanair, EasyJet, or Vueling). Instantly verify if your carry-on meets the specific requirements of your next flight.',
29
+ },
30
+ {
31
+ type: 'title',
32
+ text: 'International Etiquette: Tipping Guide and Calculator',
33
+ level: 2,
34
+ },
35
+ {
36
+ type: 'paragraph',
37
+ html: 'Tipping is not just a transaction; it\'s a cultural norm that varies drastically. Our <strong>international tipping calculator</strong> offers recommended percentages and tipping etiquette for over 50 countries, helping you be a traveler respectful of local customs from Japan to the United States.',
38
+ },
39
+ {
40
+ type: 'title',
41
+ text: 'Efficient Organization: Suitcase Checklist Generator',
42
+ level: 2,
43
+ },
44
+ {
45
+ type: 'paragraph',
46
+ html: 'Have you ever arrived at your destination and realized you forgot the most important thing? Based on the duration of your stay, the climate of your destination, and the reason for your trip, our <strong>interactive checklist</strong> generates a personalized luggage list so you don\'t leave anything to chance.',
47
+ },
48
+ {
49
+ type: 'title',
50
+ text: 'Environment Exploration: Mini Adventures Generator',
51
+ level: 2,
52
+ },
53
+ {
54
+ type: 'paragraph',
55
+ html: 'Adventure is not only on the other side of the world; it is often just around the corner. Our <strong>Mini Adventures</strong> generator uses random algorithms to propose daily challenges that force you to interact with your local environment in a creative and different way. Break the routine and rediscover your own city.',
56
+ },
57
+ {
58
+ type: 'list',
59
+ items: [
60
+ '<strong>Flight Savings:</strong> Avoid extra charges for excess baggage or over-sized suitcases through technical planning.',
61
+ '<strong>Cultural Awareness:</strong> Navigate international environments with the confidence of knowing local etiquette norms.',
62
+ '<strong>Safe Travels:</strong> Checklists that ensure you carry all your necessary documentation and medication.',
63
+ '<strong>Exploration Gamification:</strong> Transform your daily commutes into small discovery expeditions.',
64
+ ],
65
+ },
66
+ {
67
+ type: 'tip',
68
+ title: 'Expert Traveler Tip',
69
+ html: '<p><strong>Documentation Care:</strong> Always carry an encrypted digital copy of your documents (passport, insurance) in the cloud and a hidden physical copy in your luggage. Our checklist tool will remind you to include this vital step before leaving home.</p>',
70
+ },
71
+ {
72
+ type: 'title',
73
+ text: 'Financial Planning: Budgeting and Expense Control',
74
+ level: 2,
75
+ },
76
+ {
77
+ type: 'paragraph',
78
+ html: 'A trip without a budget is a trip that controls itself instead of the other way around. Before leaving, establish a realistic budget broken down by categories: accommodation (40%), food (25%), activities (20%), local transport (10%), emergencies (5%). This structure prevents unpleasant surprises and maximizes the value of every euro invested.',
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'Expense control tools such as local currency converters and daily budget calculators help you adjust your spending speed according to the cost of living in the area. A smart traveler knows how much a coffee costs in Bangkok versus a coffee in Paris, and adjusts their activities accordingly.',
83
+ },
84
+ {
85
+ type: 'title',
86
+ text: 'Health and Medical Documentation on International Trips',
87
+ level: 2,
88
+ },
89
+ {
90
+ type: 'paragraph',
91
+ html: 'Medicine travels with you. Before departing to any international destination, check which vaccines are recommended (yellow fever, hepatitis, tetanus). Carry your digitized medical records, medication prescriptions in English (do not rely on local prescriptions without verification), and travel insurance that covers medical evacuation if necessary. Some countries require specific proof of vaccination; ignoring this can cost you entry to a country or, worse, hospitalization without coverage.',
92
+ },
93
+ {
94
+ type: 'title',
95
+ text: 'Authentic Experiences: Responsible Tourism versus Exploitation',
96
+ level: 2,
97
+ },
98
+ {
99
+ type: 'paragraph',
100
+ html: 'Not all tours are equal. An "exotic" tour promoting "meetings with local tribes" is often tourist exploitation. The difference is: Do the locals voluntarily consent? Do they receive fair compensation? Are their privacy and culture respected? Responsible travel means prior research, respect for local boundaries, and direct economic support to communities, not intermediaries. This broadens your experience and creates real positive impact.',
101
+ },
102
+ {
103
+ type: 'title',
104
+ text: 'Accommodation Logistics and Smart Bookings',
105
+ level: 2,
106
+ },
107
+ {
108
+ type: 'paragraph',
109
+ html: 'Finding accommodation is one of the most important decisions of the trip. Our <strong>accommodation comparator</strong> aggregates prices from multiple platforms (Airbnb, Booking, local hostels) in real time, allowing you to evaluate not just price but also verified reviews, strategic location (distance to public transport, neighborhood safety), and critical amenities. A smart traveler doesn\'t just look for the cheapest; they look for the best value per euro spent.',
110
+ },
111
+ {
112
+ type: 'title',
113
+ text: 'Currency Conversion and Historical Exchange Rate Analysis',
114
+ level: 2,
115
+ },
116
+ {
117
+ type: 'paragraph',
118
+ html: 'The exchange rate is not constant. You change money at a worse rate at the airport than at home. Our <strong>currency exchange tracker</strong> shows you historical rates so you can plan when to change money optimally. Some travelers wait until they reach their destination to change (sometimes it\'s better, sometimes it\'s worse). Historical analysis shows patterns: the euro tends to weaken in winter, the dollar strengthens in crises. Being a smart traveler means understanding currency markets like a small trader.',
119
+ },
120
+ {
121
+ type: 'title',
122
+ text: 'Jet Lag Management and Scientific Time Adaptation',
123
+ level: 2,
124
+ },
125
+ {
126
+ type: 'paragraph',
127
+ html: 'Changing time zones deeply affects your circadian rhythm. Our <strong>jet lag planner</strong> based on the "bright light therapy" principle suggests when to expose yourself to sunlight based on your destination and travel time. Traveling East is more difficult (you shorten the day) than traveling West. Changing 3 hours needs 1-2 days; changing 9 hours can need a week. Simple strategies like adjusting your sleep 2-3 days before the trip can dramatically reduce jet lag.',
128
+ },
129
+ {
130
+ type: 'title',
131
+ text: 'Optimized Routes: Traveling Salesman Algorithm Applied to Tourism',
132
+ level: 2,
133
+ },
134
+ {
135
+ type: 'paragraph',
136
+ html: 'If you visit 10 tourist attractions, there are 3.6 million possible routes. The <strong>tourist route optimizer</strong> applies the Traveling Salesman Problem (TSP) algorithm to find the most efficient sequence. It\'s not just about distance; it\'s about dwell time, opening hours, and available public transport. A smart traveler spends more time at points of interest and less on travel. Tools like this multiply your experience in the same amount of hours.',
137
+ },
138
+ {
139
+ type: 'title',
140
+ text: 'Travel Regulations: Visas, Vaccines, and Required Documentation',
141
+ level: 2,
142
+ },
143
+ {
144
+ type: 'paragraph',
145
+ html: 'Each country has its own unique requirements. The <strong>travel requirements auditor</strong> checks your nationality, destination, and travel dates to inform you exactly what documents you need: prior visa? Mandatory vaccines? Health certificates? Currency limits for importing? Ignoring this can mean being deported at the border or fined. Our tool centralizes scattered information from 50+ different official portals.',
146
+ },
147
+ {
148
+ type: 'title',
149
+ text: 'Local Transport: Metro Maps and Global Transport Systems',
150
+ level: 2,
151
+ },
152
+ {
153
+ type: 'paragraph',
154
+ html: 'Getting there is more than half the journey. Our <strong>public transport navigator</strong> integrates metro, bus, and tram systems for 100+ global cities. Plan exact routes, real waiting times, ticket prices. In some cities, taxis are predatory; in others, they are cheap. Knowledge of public transport transforms your experience from "lost tourist" to "local traveler." A well-planned route through the Tokyo metro is different from New York\'s, but both require the same technical rigor.',
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Travel Insurance and Medical Emergency Coverage',
159
+ level: 2,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'An accident requiring hospitalization in a foreign country can cost €50,000. The <strong>travel insurance comparator</strong> allows you to evaluate coverage for medical evacuation, dental care, luggage reimbursement. Some insurances cover risky sports; others don\'t. Some cover business trips; others only recreational ones. Reading fine print is tedious but critical. A smart traveler invests €15 in insurance to protect a €1,500 trip.',
164
+ },
165
+ {
166
+ type: 'title',
167
+ text: 'The Future of Conscious Tourism 2026',
168
+ level: 2,
169
+ },
170
+ {
171
+ type: 'paragraph',
172
+ html: 'In 2026, <strong>Slow Travel</strong> and regenerative tourism are fundamental. It\'s about traveling less, but better. These tools empower you to manage your autonomy as a traveler, reducing logistical noise so you can focus on what really matters: the experience and the connection with the place. A well-planned trip is not boring—it\'s liberating.',
173
+ },
174
+ {
175
+ type: 'stats',
176
+ columns: 2,
177
+ items: [
178
+ { label: 'Luggage', value: '20+ Airlines', icon: 'mdi:airplane' },
179
+ { label: 'Checklist', value: 'Smart-Adapt', icon: 'mdi:clipboard-check' },
180
+ { label: 'Tips', value: '50+ Countries', icon: 'mdi:cash-multiple' },
181
+ { label: 'Adventure', value: 'Bio-Daily', icon: 'mdi:compass' },
182
+ ],
183
+ },
184
+ ],
185
+ };
@@ -0,0 +1,187 @@
1
+ import type { CategoryLocaleContent } from '../../types';
2
+
3
+ export const content: CategoryLocaleContent = {
4
+ slug: 'viajes',
5
+ title: 'Herramientas y Calculadoras para Viajeros y Aventureros',
6
+ description: 'Planifica tu próximo viaje con herramientas gratuitas online. Calculadoras de equipaje de aerolíneas, guías de propinas internacionales, checklists de maleta y generadores de retos diarios.',
7
+ seo: [
8
+ {
9
+ type: 'title',
10
+ text: 'Logística de Viaje y Exploración Local: Planifica con Inteligencia',
11
+ level: 2,
12
+ },
13
+ {
14
+ type: 'paragraph',
15
+ html: 'Viajar en 2026 es una mezcla de descubrimiento y gestión técnica. En esta sección, ofrecemos una suite de <strong>herramientas gratuitas online</strong> diseñadas para nómadas digitales, viajeros frecuentes y aventureros urbanos que buscan reducir el estrés de la planificación. La logística de un viaje no debería ser un obstáculo para la aventura, sino el mapa que la hace posible.',
16
+ },
17
+ {
18
+ type: 'paragraph',
19
+ html: 'Desde el cumplimiento de las normativas de las aerolíneas hasta la etiqueta cultural internacional y la gamificación de tu entorno cercano, nuestras utilidades te ayudan a ser un viajero más consciente, eficiente y curioso.',
20
+ },
21
+ {
22
+ type: 'title',
23
+ text: 'Logística Aérea: Calculadora de Equipaje y Medidas',
24
+ level: 2,
25
+ },
26
+ {
27
+ type: 'paragraph',
28
+ html: 'Evitar las sorpresas y cargos extra en el mostrador de facturación es vital. Nuestra <strong>calculadora de equipaje</strong> integra las medidas y pesos permitidos de más de 20 aerolíneas líderes (incluyendo low-cost como Ryanair, EasyJet o Vueling). Verifica al instante si tu maleta de mano cumple con los requisitos específicos de tu próximo vuelo.',
29
+ },
30
+ {
31
+ type: 'title',
32
+ text: 'Etiqueta Internacional: Guía y Calculadora de Propinas',
33
+ level: 2,
34
+ },
35
+ {
36
+ type: 'paragraph',
37
+ html: 'La propina no es solo una transacción; es una norma cultural que varía drásticamente. Nuestra calculatora de <strong>propinas internacional</strong> te ofrece porcentajes recomendados y etiqueta de propina para más de 50 países, ayudándote a ser un viajero respetuoso con las costumbres locales desde Japón hasta Estados Unidos.',
38
+ },
39
+ {
40
+ type: 'title',
41
+ text: 'Organización Eficiente: Generador de Checklist de Maleta',
42
+ level: 2,
43
+ },
44
+ {
45
+ type: 'paragraph',
46
+ html: '¿Alguna vez has llegado a tu destino y te has dado cuenta de que olvidaste lo más importante? Basándonos en la duración de tu estancia, el clima de tu destino y el motivo de tu viaje, nuestro <strong>checklist interactivo</strong> genera una lista personalizada de equipaje para que no dejes nada al azar.',
47
+ },
48
+ {
49
+ type: 'title',
50
+ text: 'Exploración de Entorno: Generador de Mini Aventuras',
51
+ level: 2,
52
+ },
53
+ {
54
+ type: 'paragraph',
55
+ html: 'La aventura no solo está en el otro lado del mundo; a menudo está a la vuelta de la esquina. Nuestro generador de <strong>Mini Aventuras</strong> utiliza algoritmos de azar para proponerte retos diarios que te obligan a interactuar con tu entorno cercano de forma creativa y diferente. Rompe la rutina y redescubre tu propia ciudad.',
56
+ },
57
+ {
58
+ type: 'list',
59
+ items: [
60
+ '<strong>Ahorro en Vuelo:</strong> Evita cargos extra por exceso de equipaje o maletas fuera de medidas mediante una planificación técnica.',
61
+ '<strong>Consciencia Cultural:</strong> Navega entornos internacionales con la confianza de conocer las normas de etiqueta locales.',
62
+ '<strong>Viajes Seguros:</strong> Checklists que aseguran que llevas toda tu documentación y medicación necesaria.',
63
+ '<strong>Gamificación de la Exploración:</strong> Transforma tus desplazamientos diarios en pequeñas expediciones de descubrimiento.',
64
+ ],
65
+ },
66
+ {
67
+ type: 'tip',
68
+ title: 'Tip de Viajero Experto',
69
+ html: '<p><strong>Cuidado de Documentación:</strong> Siempre lleva una copia digital cifrada de tus documentos (pasaporte, seguros) en la nube y una copia física oculta en tu equipaje. Nuestra herramienta de checklist te recordará incluir este paso vital antes de salir de casa.</p>',
70
+ },
71
+ {
72
+ type: 'title',
73
+ text: 'Planificación Financiera: Presupuesto y Control de Gastos',
74
+ level: 2,
75
+ },
76
+ {
77
+ type: 'paragraph',
78
+ html: 'Un viaje sin presupuesto es un viaje que se controla a sí mismo en lugar del revés. Antes de partir, establece un presupuesto realista desglosado por categorías: alojamiento (40%), alimentación (25%), actividades (20%), transporte local (10%), emergencias (5%). Esta estructura te evita sorpresas desagradables y maximiza el valor de cada euro invertido.',
79
+ },
80
+ {
81
+ type: 'paragraph',
82
+ html: 'Herramientas de control de gastos como conversores de moneda locales y calculadoras de presupuesto diario te ayudan a ajustar tu velocidad de gasto según el costo de vida del lugar. Un viajero inteligente sabe cuánto cuesta un café en Bangkok versus un café en París, y ajusta sus actividades en consecuencia.',
83
+ },
84
+ {
85
+ type: 'title',
86
+ text: 'Salud y Documentación Médica en Viajes Internacionales',
87
+ level: 2,
88
+ },
89
+ {
90
+ type: 'paragraph',
91
+ html: 'La medicina viaja contigo. Antes de partir a cualquier destino internacional, verifica qué vacunas se recomiendan (fiebre amarilla, hepatitis, tétanos). Lleva tu historial médico digitalizado, recetas de medicamentos en inglés (no confíes en prescripciones locales sin verificación) y un seguro de viaje que cubra evacuación médica si es necesario. Algunos países exigen pruebas de vacunación específicas; ignorar esto puede costarte la entrada a un país o, peor, una hospitalización sin cobertura.',
92
+ },
93
+ {
94
+ type: 'title',
95
+ text: 'Experiencias Auténticas: Turismo Responsable versus Explotación',
96
+ level: 2,
97
+ },
98
+ {
99
+ type: 'paragraph',
100
+ html: 'No todos los tours son iguales. Un tour "exótico" que promociona "encuentro con tribus locales" a menudo es explotación turística. La diferencia está en: ¿Los lugareños consienten voluntariamente? ¿Reciben compensación justa? ¿Se respeta su privacidad y cultura? Viajes responsables significan investigación previa, respeto por los límites locales, y apoyo económico directo a comunidades, no a intermediarios. Esto amplía tu experiencia y crea impacto positivo real.',
101
+ },
102
+ {
103
+ type: 'title',
104
+ text: 'Logística de Alojamiento y Reservas Inteligentes',
105
+ level: 2,
106
+ },
107
+ {
108
+ type: 'paragraph',
109
+ html: 'Encontrar alojamiento es una de las decisiones más importantes del viaje. Nuestro <strong>comparador de alojamiento</strong> agrega precios de múltiples plataformas (Airbnb, Booking, hostales locales) en tiempo real, permitiéndote evaluar no solo precio sino también reviews verificados, ubicación estratégica (distancia a transporte público, seguridad del barrio) y amenidades críticas. Un viajero inteligente no solo busca el más barato; busca el mejor valor por euro gastado.',
110
+ },
111
+ {
112
+ type: 'title',
113
+ text: 'Conversión de Monedas y Análisis de Tasa de Cambio Histórica',
114
+ level: 2,
115
+ },
116
+ {
117
+ type: 'paragraph',
118
+ html: 'El tipo de cambio no es constante. Cambias dinero a una tasa peor en el aeropuerto que en casa. Nuestro <strong>rastreador de cambio de monedas</strong> te muestra tasas históricas para que puedas planificar cuándo cambiar dinero de forma óptima. Algunos viajeros esperan a llegar al destino para cambiar (a veces es mejor, a veces peor). El análisis histórico muestra patrones: el euro tiende a debilitarse en invierno, el dólar se fortalece en crisis. Ser un viajero inteligente significa entender mercados de divisas como un pequeño trader.',
119
+ },
120
+ {
121
+ type: 'title',
122
+ text: 'Gestión de Jet Lag y Adaptación Horaria Científica',
123
+ level: 2,
124
+ },
125
+ {
126
+ type: 'paragraph',
127
+ html: 'El cambio de zona horaria afecta profundamente tu ritmo circadiano. Nuestro <strong>planificador de jet lag</strong> basado en el principio de "bright light therapy" sugiere cuándo exponerte a luz solar según tu destino y hora de viaje. Viajar hacia el este es más difícil (acortas el día) que hacia el oeste. Cambiar 3 horas necesita 1-2 días; cambiar 9 horas puede necesitar una semana. Estrategias simples como ajustar tu sueño 2-3 días antes del viaje pueden reducir dramáticamente el jet lag.',
128
+ },
129
+ {
130
+ type: 'title',
131
+ text: 'Rutas Optimizadas: Algoritmo del Viajante de Comercio Aplicado a Turismo',
132
+ level: 2,
133
+ },
134
+ {
135
+ type: 'paragraph',
136
+ html: 'Si visitas 10 atracciones turísticas, hay 3.6 millones de rutas posibles. El <strong>optimizador de ruta turística</strong> aplica el algoritmo del viajante de comercio (TSP) para encontrar la secuencia más eficiente. No es solo sobre distancia; es sobre tiempo de permanencia, horarios de apertura y transporte público disponible. Un viajero inteligente gasta más tiempo en lugares de interés y menos en desplazamientos. Herramientas así multiplican tu experiencia en la misma cantidad de horas.',
137
+ },
138
+ {
139
+ type: 'title',
140
+ text: 'Regulaciones de Viaje: Visas, Vacunas y Documentación Requerida',
141
+ level: 2,
142
+ },
143
+ {
144
+ type: 'paragraph',
145
+ html: 'Cada país tiene sus requisitos únicos. El <strong>auditor de requisitos de viaje</strong> verifica tu nacionalidad, destino y fechas de viaje para informarte exactamente qué documentos necesitas: ¿visa previa? ¿Vacunas obligatorias? ¿Certificados de salud? ¿Límites de moneda para importar? Ignorar esto puede significar ser deportado en la frontera o multado. Nuestra herramienta centraliza información dispersa en 50+ portales oficiales diferentes.',
146
+ },
147
+ {
148
+ type: 'title',
149
+ text: 'Transportes Locales: Mapas de Metro y Sistemas de Transporte Global',
150
+ level: 2,
151
+ },
152
+ {
153
+ type: 'paragraph',
154
+ html: 'Llegar es más de la mitad del viaje. Nuestro <strong>navegador de transporte público</strong> integra sistemas de metro, autobús y tranvía para 100+ ciudades globales. Planifica rutas exactas, tiempos de espera reales, precios de billetes. En algunas ciudades, los taxis son predatorios; en otras, son baratos. El conocimiento de transporte público transforma tu experiencia de "turista perdido" a "viajero local". Una ruta bien planificada a través de metro de Tokio es diferente a la de Nueva York, pero ambas requieren el mismo rigor técnico.',
155
+ },
156
+ {
157
+ type: 'title',
158
+ text: 'Seguros de Viaje y Cobertura de Emergencias Médicas',
159
+ level: 2,
160
+ },
161
+ {
162
+ type: 'paragraph',
163
+ html: 'Un accidente requiere hospitalización en un país extranjero puede costar €50,000. El <strong>comparador de seguros de viaje</strong> te permite evaluar cobertura de evacuación médica, cuidado dental, reembolso de equipaje. Algunos seguros cubren deportes de riesgo; otros no. Algunos cubren viajes de negocios; otros solo recreativos. Leer letra pequeña es tedioso pero crítico. Un viajero inteligente invierte €15 en seguro para proteger un viaje de €1,500.',
164
+ },
165
+ {
166
+ type: 'title',
167
+ text: 'El futuro del turismo consciente 2026',
168
+ level: 2,
169
+ },
170
+ {
171
+ type: 'paragraph',
172
+ html: 'En 2026, el <strong>Slow Travel</strong> y el turismo regenerativo son fundamentales. Se trata de viajar menos, pero mejor. Estas herramientas te empoderan para gestionar tu autonomía como viajero, reduciendo el ruido logístico para que puedas centrarte en lo que realmente importa: la experiencia y la conexión con el lugar. Un viaje bien planificado no es aburrido—es liberador.',
173
+ },
174
+ {
175
+ type: 'stats',
176
+ columns: 2,
177
+ items: [
178
+ { label: 'Equipaje', value: '20+ Aerolíneas', icon: 'mdi:airplane' },
179
+ { label: 'Checklist', value: 'Smart-Adapt', icon: 'mdi:clipboard-check' },
180
+ { label: 'Propinas', value: '50+ Países', icon: 'mdi:cash-multiple' },
181
+ { label: 'Aventura', value: 'Bio-Daily', icon: 'mdi:compass' },
182
+ ],
183
+ },
184
+ ],
185
+ };
186
+
187
+
@@ -0,0 +1,100 @@
1
+ import type { CategoryLocaleContent } from '../../types';
2
+
3
+ export const content: CategoryLocaleContent = {
4
+ slug: 'voyages',
5
+ title: 'Outils et Calculateurs pour Voyageurs et Aventuriers',
6
+ description: 'Planifiez votre prochain voyage avec des outils gratuits en ligne. Calculateurs de bagages, guides de pourboires internationaux, checklists de valise et générateurs de défis quotidiens.',
7
+ seo: [
8
+ {
9
+ type: 'title',
10
+ text: 'Logistique de Voyage et Exploration Locale : Planifiez intelligemment',
11
+ level: 2,
12
+ },
13
+ {
14
+ type: 'paragraph',
15
+ html: 'Voyager en 2026 est un mélange de découverte et de gestion technique. Dans cette section, nous proposons une suite d\'<strong>outils gratuits en ligne</strong> conçus pour les nomades numériques, les voyageurs fréquents et les aventuriers urbains qui cherchent à réduire le stress de la planification. La logistique d\'un voyage ne doit pas être un obstacle à l\'aventure, mais la carte qui la rend possible.',
16
+ },
17
+ {
18
+ type: 'paragraph',
19
+ html: 'Du respect des réglementations des compagnies aériennes à l\'étiquette culturelle internationale et à la gamification de votre environnement proche, nos utilitaires vous aident à être un voyageur plus conscient, efficace et curieux.',
20
+ },
21
+ {
22
+ type: 'title',
23
+ text: 'Logistique Aérienne : Calculateur de Bagages et Mesures',
24
+ level: 2,
25
+ },
26
+ {
27
+ type: 'paragraph',
28
+ html: 'Éviter les surprises et les frais supplémentaires au comptoir d\'enregistrement est vital. Notre <strong>calculateur de bagages</strong> intègre les dimensions et poids autorisés de plus de 20 compagnies aériennes leaders (y compris les low-cost comme Ryanair, EasyJet ou Vueling). Vérifiez instantanément si votre valise cabine respecte les exigences spécifiques de votre prochain vol.',
29
+ },
30
+ {
31
+ type: 'title',
32
+ text: 'Étiquette Internationale : Guide et Calculateur de Pourboires',
33
+ level: 2,
34
+ },
35
+ {
36
+ type: 'paragraph',
37
+ html: 'Le pourboire n\'est pas seulement une transaction ; c\'est une norme culturelle qui varie considérablement. Notre calculateur de <strong>pourboires internationaux</strong> vous propose des pourcentages recommandés et l\'étiquette du pourboire pour plus de 50 pays, vous aidant à être un voyageur respectueux des coutumes locales, du Japon aux États-Unis.',
38
+ },
39
+ {
40
+ type: 'title',
41
+ text: 'Organisation Efficace : Générateur de Checklist de Valise',
42
+ level: 2,
43
+ },
44
+ {
45
+ type: 'paragraph',
46
+ html: 'Êtes-vous déjà arrivé à destination pour vous rendre compte que vous aviez oublié l\'essentiel ? En fonction de la durée de votre séjour, du climat de votre destination et de la raison de votre voyage, notre <strong>checklist interactive</strong> génère une liste personnalisée de bagages pour ne rien laisser au hasard.',
47
+ },
48
+ {
49
+ type: 'title',
50
+ text: 'Exploration de l\'Environnement : Générateur de Mini Aventures',
51
+ level: 2,
52
+ },
53
+ {
54
+ type: 'paragraph',
55
+ html: 'L\'aventure n\'est pas seulement à l\'autre bout du monde ; elle est souvent juste au coin de la rue. Notre générateur de <strong>Mini Aventures</strong> utilise des algorithmes de hasard pour vous proposer des défis quotidiens qui vous obligent à interagir avec votre environnement proche de manière créative et différente. Brisez la routine et redécouvrez votre propre ville.',
56
+ },
57
+ {
58
+ type: 'list',
59
+ items: [
60
+ '<strong>Économie sur le Vol :</strong> Évitez les frais supplémentaires pour excès de bagages grâce à une planification technique.',
61
+ '<strong>Conscience Culturelle :</strong> Naviguez dans des environnements internationaux avec la confiance de connaître les normes locales.',
62
+ '<strong>Voyages Sûrs :</strong> Des checklists qui garantissent que vous emportez tous vos documents et médicaments nécessaires.',
63
+ '<strong>Gamification de l\'Exploration :</strong> Transformez vos trajets quotidiens en petites expéditions de découverte.',
64
+ ],
65
+ },
66
+ {
67
+ type: 'tip',
68
+ title: 'Conseil de Voyageur Expert',
69
+ html: '<p><strong>Gestion des Documents :</strong> Emportez toujours une copie numérique cryptée de vos documents (passeport, assurances) dans le cloud et une copie physique cachée dans vos bagages. Notre outil de checklist vous rappellera cette étape cruciale avant de quitter la maison.</p>',
70
+ },
71
+ {
72
+ type: 'title',
73
+ text: 'Planification Financière : Budget et Contrôle des Dépenses',
74
+ level: 2,
75
+ },
76
+ {
77
+ type: 'paragraph',
78
+ html: 'Un voyage sans budget est un voyage qui se contrôle lui-même plutôt que l\'inverse. Avant de partir, établissez un budget réaliste réparti par catégories : hébergement (40%), alimentation (25%), activités (20%), transport local (10%), urgences (5%). Cette structure vous évite les mauvaises surprises et maximise la valeur de chaque euro investi.',
79
+ },
80
+ {
81
+ type: 'title',
82
+ text: 'Le futur du tourisme conscient 2026',
83
+ level: 2,
84
+ },
85
+ {
86
+ type: 'paragraph',
87
+ html: 'En 2026, le <strong>Slow Travel</strong> et le tourisme régénératif sont fondamentaux. Il s\'agit de voyager moins, mais mieux. Ces outils vous permettent de gérer votre autonomie en tant que voyageur, réduisant le bruit logistique pour que vous puissiez vous concentrer sur ce qui compte vraiment : l\'expérience et la connexion avec le lieu.',
88
+ },
89
+ {
90
+ type: 'stats',
91
+ columns: 2,
92
+ items: [
93
+ { label: 'Bagages', value: '20+ Compagnies', icon: 'mdi:airplane' },
94
+ { label: 'Checklist', value: 'Smart-Adapt', icon: 'mdi:clipboard-check' },
95
+ { label: 'Pourboires', value: '50+ Pays', icon: 'mdi:cash-multiple' },
96
+ { label: 'Aventure', value: 'Bio-Daily', icon: 'mdi:compass' },
97
+ ],
98
+ },
99
+ ],
100
+ };
@@ -0,0 +1,12 @@
1
+ import type { TravelCategoryEntry } from '../types';
2
+
3
+ export const travelCategory: TravelCategoryEntry = {
4
+ icon: 'mdi:map-marker-path',
5
+ tools: [],
6
+ i18n: {
7
+ es: () => import('./i18n/es').then((m) => m.content),
8
+ en: () => import('./i18n/en').then((m) => m.content),
9
+ fr: () => import('./i18n/fr').then((m) => m.content),
10
+ },
11
+ };
12
+
@@ -0,0 +1,15 @@
1
+ ---
2
+ import { SEORenderer } from '@jjlmoya/utils-shared';
3
+ import { travelCategory } 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 travelCategory.i18n[locale]?.();
12
+ ---
13
+
14
+ {content && <SEORenderer content={{ locale, sections: content.seo }} />}
15
+