@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.
- package/package.json +60 -0
- package/src/category/i18n/en.ts +185 -0
- package/src/category/i18n/es.ts +187 -0
- package/src/category/i18n/fr.ts +100 -0
- package/src/category/index.ts +12 -0
- package/src/category/seo.astro +15 -0
- package/src/components/PreviewNavSidebar.astro +116 -0
- package/src/components/PreviewToolbar.astro +143 -0
- package/src/data.ts +15 -0
- package/src/env.d.ts +5 -0
- package/src/index.ts +22 -0
- package/src/layouts/PreviewLayout.astro +117 -0
- package/src/pages/[locale]/[slug].astro +146 -0
- package/src/pages/[locale].astro +278 -0
- package/src/pages/index.astro +4 -0
- package/src/tests/faq_count.test.ts +8 -0
- package/src/tests/locale_completeness.test.ts +21 -0
- package/src/tests/mocks/astro_mock.js +2 -0
- package/src/tests/no_h1_in_components.test.ts +8 -0
- package/src/tests/seo_length.test.ts +8 -0
- package/src/tests/tool_validation.test.ts +17 -0
- package/src/tool/luggage-calculator/bibliography.astro +14 -0
- package/src/tool/luggage-calculator/component.astro +560 -0
- package/src/tool/luggage-calculator/i18n/en.ts +617 -0
- package/src/tool/luggage-calculator/i18n/es.ts +617 -0
- package/src/tool/luggage-calculator/i18n/fr.ts +549 -0
- package/src/tool/luggage-calculator/index.ts +53 -0
- package/src/tool/luggage-calculator/seo.astro +14 -0
- package/src/tool/mini-adventures/bibliography.astro +14 -0
- package/src/tool/mini-adventures/component.astro +665 -0
- package/src/tool/mini-adventures/i18n/en.ts +161 -0
- package/src/tool/mini-adventures/i18n/es.ts +286 -0
- package/src/tool/mini-adventures/i18n/fr.ts +144 -0
- package/src/tool/mini-adventures/index.ts +70 -0
- package/src/tool/mini-adventures/seo.astro +14 -0
- package/src/tool/optimal-routes/bibliography.astro +14 -0
- package/src/tool/optimal-routes/component.astro +439 -0
- package/src/tool/optimal-routes/i18n/en.ts +42 -0
- package/src/tool/optimal-routes/i18n/es.ts +52 -0
- package/src/tool/optimal-routes/index.ts +63 -0
- package/src/tool/optimal-routes/lib/RouteManager.ts +181 -0
- package/src/tool/optimal-routes/seo.astro +14 -0
- package/src/tool/suitcase-checklist/bibliography.astro +14 -0
- package/src/tool/suitcase-checklist/component.astro +710 -0
- package/src/tool/suitcase-checklist/i18n/en.ts +261 -0
- package/src/tool/suitcase-checklist/i18n/es.ts +261 -0
- package/src/tool/suitcase-checklist/i18n/fr.ts +259 -0
- package/src/tool/suitcase-checklist/index.ts +75 -0
- package/src/tool/suitcase-checklist/seo.astro +14 -0
- package/src/tool/tip-calculator/bibliography.astro +14 -0
- package/src/tool/tip-calculator/component.astro +683 -0
- package/src/tool/tip-calculator/i18n/en.ts +264 -0
- package/src/tool/tip-calculator/i18n/es.ts +264 -0
- package/src/tool/tip-calculator/i18n/fr.ts +264 -0
- package/src/tool/tip-calculator/index.ts +53 -0
- package/src/tool/tip-calculator/seo.astro +14 -0
- package/src/tools.ts +13 -0
- package/src/types.ts +73 -0
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { MiniAdventuresUI } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'mini-adventure-forecast';
|
|
6
|
+
const title = 'Mini Adventure Forecast - Get Out of the Rut';
|
|
7
|
+
const description = 'Random daily challenge generator to break monotony and explore your surroundings.';
|
|
8
|
+
|
|
9
|
+
const ui: MiniAdventuresUI = {
|
|
10
|
+
title: "Mini Adventures",
|
|
11
|
+
homeTitle: "Mini Adventures",
|
|
12
|
+
homeDesc: "Make today a little different. Are you ready to explore?",
|
|
13
|
+
generateBtn: "GENERATE ADVENTURE",
|
|
14
|
+
anotherBtn: "ANOTHER",
|
|
15
|
+
doneBtn: "DONE",
|
|
16
|
+
shareBtn: "SHARE",
|
|
17
|
+
categories: {
|
|
18
|
+
exploration: { id: "exploration", label: "Exploration", icon: "mdi:map-marker-path", color: "#10b981", styling: "border-emerald-500/30 text-emerald-400 bg-emerald-500/5" },
|
|
19
|
+
food: { id: "food", label: "Gastronomy", icon: "mdi:food-variant", color: "#f59e0b", styling: "border-amber-500/30 text-amber-400 bg-amber-500/5" },
|
|
20
|
+
learning: { id: "learning", label: "Learning", icon: "mdi:school", color: "#6366f1", styling: "border-indigo-500/30 text-indigo-400 bg-indigo-500/5" },
|
|
21
|
+
creativity: { id: "creativity", label: "Creativity", icon: "mdi:palette", color: "#ec4899", styling: "border-pink-500/30 text-pink-400 bg-pink-500/5" },
|
|
22
|
+
social: { id: "social", label: "Social", icon: "mdi:account-group", color: "#0ea5e9", styling: "border-sky-500/30 text-sky-400 bg-sky-500/5" },
|
|
23
|
+
observation: { id: "observation", label: "Observation", icon: "mdi:eye", color: "#8b5cf6", styling: "border-violet-500/30 text-violet-400 bg-violet-500/5" },
|
|
24
|
+
wellness: { id: "wellness", label: "Wellness", icon: "mdi:heart-pulse", color: "#f43f5e", styling: "border-rose-500/30 text-rose-400 bg-rose-500/5" }
|
|
25
|
+
},
|
|
26
|
+
adventures: [
|
|
27
|
+
{ id: 1, text: "Try a coffee or drink in a place you've never entered before.", categoryId: "food" },
|
|
28
|
+
{ id: 2, text: "Walk for 10 minutes in a direction you don't normally take when leaving home.", categoryId: "exploration" },
|
|
29
|
+
{ id: 3, text: "Learn how to say 'Thank you' in three different languages you don't know.", categoryId: "learning" },
|
|
30
|
+
{ id: 4, text: "Take a photo of an architectural detail that catches your eye in your street.", categoryId: "creativity" },
|
|
31
|
+
{ id: 5, text: "Buy a fruit you've never tried and discover its flavor.", categoryId: "food" },
|
|
32
|
+
{ id: 6, text: "Look for a commemorative plaque in your neighborhood and read the story it tells.", categoryId: "exploration" },
|
|
33
|
+
{ id: 7, text: "Draw something you have in front of you in less than 60 seconds.", categoryId: "creativity" },
|
|
34
|
+
{ id: 8, text: "Greet a neighbor you don't normally talk to.", categoryId: "social" },
|
|
35
|
+
{ id: 9, text: "Listen to a musical genre you don't normally enjoy for 5 minutes.", categoryId: "learning" },
|
|
36
|
+
{ id: 10, text: "Visit an antique or second-hand store and find the weirdest object.", categoryId: "exploration" },
|
|
37
|
+
{ id: 11, text: "Sit in a park and count how many different types of birds you see.", categoryId: "observation" },
|
|
38
|
+
{ id: 12, text: "Write a positive note and leave it inside a book in a public library.", categoryId: "social" },
|
|
39
|
+
{ id: 13, text: "Make a list of 5 things you're grateful for today.", categoryId: "wellness" },
|
|
40
|
+
{ id: 14, text: "Try cooking a new recipe using only what you have in the pantry.", categoryId: "food" },
|
|
41
|
+
{ id: 15, text: "Spend 20 minutes without looking at any screen (mobile, TV, PC).", categoryId: "wellness" },
|
|
42
|
+
{ id: 16, text: "Find a tree near your house and try to identify its species.", categoryId: "learning" },
|
|
43
|
+
{ id: 300, text: "Make a plan to visit a nearby town this weekend.", categoryId: "exploration" },
|
|
44
|
+
{ id: 301, text: "Learn what the fingers of the hand are called in Latin.", categoryId: "learning" },
|
|
45
|
+
{ id: 302, text: "Find a rhyme for each word in this sentence.", categoryId: "creativity" },
|
|
46
|
+
{ id: 303, text: "Thank a friend for something that happened a long time ago.", categoryId: "social" }
|
|
47
|
+
],
|
|
48
|
+
achievements: [
|
|
49
|
+
{ id: "g1", milestone: 1, label: "The Awakening", categoryId: "global", icon: "mdi:footprint", description: "Your first mini adventure completed." },
|
|
50
|
+
{ id: "g10", milestone: 10, label: "Wonder Habit", categoryId: "global", icon: "mdi:sparkles", description: "You've broken the rut 10 times." },
|
|
51
|
+
{ id: "g50", milestone: 50, label: "Day Collector", categoryId: "global", icon: "mdi:calendar-star", description: "50 days making the ordinary extraordinary." },
|
|
52
|
+
{ id: "g150", milestone: 150, label: "Master of Chance", categoryId: "global", icon: "mdi:trophy-variant", description: "You've completed half of the adventure catalog." },
|
|
53
|
+
{ id: "g300", milestone: 300, label: "Free Spirit", categoryId: "global", icon: "mdi:ghost", description: "You've mastered the art of daily adventure." },
|
|
54
|
+
{ id: "e3", milestone: 3, label: "Tourist at Home", categoryId: "exploration", icon: "mdi:map-marker-outline", description: "3 new corners discovered." },
|
|
55
|
+
{ id: "e15", milestone: 15, label: "Urban Cartographer", categoryId: "exploration", icon: "mdi:map-check", description: "You know your zip code better than anyone." },
|
|
56
|
+
{ id: "f3", milestone: 3, label: "Restless Palate", categoryId: "food", icon: "mdi:silverware-clean", description: "You've tried 3 flavors you didn't know." },
|
|
57
|
+
{ id: "f15", milestone: 15, label: "Gourmet Alchemist", categoryId: "food", icon: "mdi:silverware-variant", description: "Your pantry is a passport to the world." },
|
|
58
|
+
{ id: "l3", milestone: 3, label: "Apprentice of Everything", categoryId: "learning", icon: "mdi:book-open-page-variant", description: "You've learned 3 world curiosities." },
|
|
59
|
+
{ id: "l15", milestone: 15, label: "Walking Library", categoryId: "learning", icon: "mdi:head-cog", description: "Your curiosity knows no bounds." },
|
|
60
|
+
{ id: "c3", milestone: 3, label: "Drawing Hand", categoryId: "creativity", icon: "mdi:palette-outline", description: "You've left your mark on 3 small challenges." },
|
|
61
|
+
{ id: "c15", milestone: 15, label: "Local Avant-Garde", categoryId: "creativity", icon: "mdi:palette-swatch", description: "You see art where others only see street." },
|
|
62
|
+
{ id: "s3", milestone: 3, label: "Human Bridge", categoryId: "social", icon: "mdi:account-voice", description: "You've connected with 3 people today." },
|
|
63
|
+
{ id: "s15", milestone: 15, label: "Soul of the Street", categoryId: "social", icon: "mdi:account-group", description: "You've turned strangers into stories." },
|
|
64
|
+
{ id: "o3", milestone: 3, label: "Detail Oriented", categoryId: "observation", icon: "mdi:magnify", description: "You've seen 3 things no one else notices." },
|
|
65
|
+
{ id: "o15", milestone: 15, label: "Filmmaker's Eye", categoryId: "observation", icon: "mdi:telescope", description: "Your gaze is the lens of a great movie." },
|
|
66
|
+
{ id: "w3", milestone: 3, label: "Mindful Pause", categoryId: "wellness", icon: "mdi:leaf", description: "You've dedicated 3 moments to your mental peace." },
|
|
67
|
+
{ id: "w15", milestone: 15, label: "Total Balance", categoryId: "wellness", icon: "mdi:spa", description: "Your body and mind thank you." }
|
|
68
|
+
],
|
|
69
|
+
stats: {
|
|
70
|
+
adventures: "Adventures",
|
|
71
|
+
badges: "Badges",
|
|
72
|
+
progress: "Your Progress",
|
|
73
|
+
trophies: "Trophy Collection"
|
|
74
|
+
},
|
|
75
|
+
shareTemplate: "I just got a Mini Adventure!\n\n\"{text}\"\n\nDo you dare? Generate yours here: {url}"
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
const seo: ToolLocaleContent<MiniAdventuresUI>['seo'] = [
|
|
79
|
+
{ type: "title", text: "Mini Adventures: The Art of the Everyday", level: 2 },
|
|
80
|
+
{ type: "paragraph", html: "Discover how micro-adventures can rewire your brain, combat routine, and awaken your innate curiosity. Routine is the enemy of creativity. By introducing small variations into our daily lives, we force our brain to forge new neural connections." },
|
|
81
|
+
{ type: "title", text: "Neuroplasticity in Action", level: 3 },
|
|
82
|
+
{ type: "paragraph", html: "Routine is the enemy of creativity. By introducing small variations into our daily lives —like trying a new flavor or walking down an unknown street— we force our brain to forge new neural connections. These micro-adventures act as a mental gym that keeps the mind agile and open to new possibilities." },
|
|
83
|
+
{ type: "title", text: "Emotional Well-being", level: 3 },
|
|
84
|
+
{ type: "paragraph", html: "The feeling of stagnation often comes from absolute predictability. The controlled randomness of an adventure generator introduces the element of 'positive surprise', releasing dopamine and improving mood naturally. You don't need a transoceanic trip to feel the thrill of discovery." },
|
|
85
|
+
{ type: "title", text: "Explore what you already know: Local Philosophy", level: 2 },
|
|
86
|
+
{ type: "paragraph", html: "We live surrounded by stories and details that go unnoticed. The goal of this forecast is to train your eye to see the extraordinary in the ordinary. Don't look for the perfect moment; look for the possible moment." },
|
|
87
|
+
{
|
|
88
|
+
type: "grid",
|
|
89
|
+
columns: 2
|
|
90
|
+
},
|
|
91
|
+
{ type: "card", icon: "mdi:clock-fast", title: "No Excuses", html: "Adventures that require less than 15 minutes and zero euros. Time is not a barrier to curiosity." },
|
|
92
|
+
{ type: "card", icon: "mdi:lock-outline", title: "Total Privacy", html: "You don't need to register or share your data. Your progress and completed adventures are saved only on your device." },
|
|
93
|
+
{ type: "card", icon: "mdi:share-variant", title: "Healthy Virality", html: "Share challenges that inspire others to step out of their bubble, instead of fueling constant social media comparison." },
|
|
94
|
+
{ type: "card", icon: "mdi:trophy-outline", title: "Gamification", html: "Collect exclusive badges for each completed challenge category." }
|
|
95
|
+
];
|
|
96
|
+
|
|
97
|
+
const faq: ToolLocaleContent<MiniAdventuresUI>['faq'] = [
|
|
98
|
+
{ question: "What is a micro-adventure?", answer: "It's a short, local, cheap, and simple adventure. The term (popularized by Alastair Humphreys) seeks to show that you don't need to go to the other side of the world to live exciting experiences." },
|
|
99
|
+
{ question: "What is this generator for?", answer: "It serves to combat analysis paralysis. Sometimes we want to do something different but don't know what. This simulator chooses a random challenge for you, taking away the mental burden of deciding." },
|
|
100
|
+
{ question: "Do I have to register my adventures?", answer: "No. This is a total privacy tool. Challenges are generated randomly in your browser and we don't save any kind of record of what you do or where you go." },
|
|
101
|
+
{ question: "Can I propose new adventures?", answer: "Of course! The code for this tool is open. If you have ideas for fun challenges that don't require much budget or time, you can suggest them through the repository on GitHub." }
|
|
102
|
+
];
|
|
103
|
+
|
|
104
|
+
const bibliography: ToolLocaleContent<MiniAdventuresUI>['bibliography'] = [
|
|
105
|
+
{ name: "Alastair Humphreys: Microadventures", url: "https://alastairhumphreys.com/blog/microadventures-3/" },
|
|
106
|
+
{ name: "Rob Walker: The Art of Noticing", url: "https://www.goodreads.com/es/book/show/41552704-the-art-of-noticing" }
|
|
107
|
+
];
|
|
108
|
+
|
|
109
|
+
const howTo: ToolLocaleContent<MiniAdventuresUI>['howTo'] = [
|
|
110
|
+
{ name: "Generate", text: "Press the generate button to receive a random challenge." },
|
|
111
|
+
{ name: "Do it", text: "Try to complete the challenge before the end of the day." },
|
|
112
|
+
{ name: "Complete", text: "Mark the challenge as done to earn badges and progress." }
|
|
113
|
+
];
|
|
114
|
+
|
|
115
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
116
|
+
'@context': 'https://schema.org',
|
|
117
|
+
'@type': 'FAQPage',
|
|
118
|
+
mainEntity: faq.map((item) => ({
|
|
119
|
+
'@type': 'Question',
|
|
120
|
+
name: item.question,
|
|
121
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
122
|
+
})),
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
const howToSchema: WithContext<HowTo> = {
|
|
126
|
+
'@context': 'https://schema.org',
|
|
127
|
+
'@type': 'HowTo',
|
|
128
|
+
name: title,
|
|
129
|
+
description: description,
|
|
130
|
+
step: howTo.map((step) => ({
|
|
131
|
+
'@type': 'HowToStep',
|
|
132
|
+
name: step.name,
|
|
133
|
+
text: step.text,
|
|
134
|
+
})),
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
138
|
+
'@context': 'https://schema.org',
|
|
139
|
+
'@type': 'SoftwareApplication',
|
|
140
|
+
name: title,
|
|
141
|
+
description: description,
|
|
142
|
+
applicationCategory: 'TravelApplication',
|
|
143
|
+
operatingSystem: 'All',
|
|
144
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
145
|
+
inLanguage: 'en',
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
export const content: ToolLocaleContent<MiniAdventuresUI> = {
|
|
149
|
+
slug,
|
|
150
|
+
title,
|
|
151
|
+
description,
|
|
152
|
+
ui,
|
|
153
|
+
seo,
|
|
154
|
+
faq,
|
|
155
|
+
faqTitle: "Frequently Asked Questions",
|
|
156
|
+
bibliography,
|
|
157
|
+
bibliographyTitle: "Sources and References",
|
|
158
|
+
howTo,
|
|
159
|
+
howToTitle: "How it works",
|
|
160
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
161
|
+
};
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { MiniAdventuresUI } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'pronostico-mini-aventuras';
|
|
6
|
+
const title = 'Pronóstico de Mini Aventuras - Sal de la Rutina';
|
|
7
|
+
const description = 'Generador aleatorio de retos diarios para romper la monotonía y explorar tu entorno.';
|
|
8
|
+
|
|
9
|
+
const ui: MiniAdventuresUI = {
|
|
10
|
+
title: "Mini Aventuras",
|
|
11
|
+
homeTitle: "Mini Aventuras",
|
|
12
|
+
homeDesc: "Haz que hoy sea un poco diferente. ¿Estás listo para explorar?",
|
|
13
|
+
generateBtn: "GENERAR AVENTURA",
|
|
14
|
+
anotherBtn: "OTRA",
|
|
15
|
+
doneBtn: "HECHO",
|
|
16
|
+
shareBtn: "COMPARTIR",
|
|
17
|
+
categories: {
|
|
18
|
+
exploration: { id: "exploration", label: "Exploración", icon: "mdi:map-marker-path", color: "#10b981", styling: "border-emerald-500/30 text-emerald-400 bg-emerald-500/5" },
|
|
19
|
+
food: { id: "food", label: "Gastronomía", icon: "mdi:food-variant", color: "#f59e0b", styling: "border-amber-500/30 text-amber-400 bg-amber-500/5" },
|
|
20
|
+
learning: { id: "learning", label: "Aprendizaje", icon: "mdi:school", color: "#6366f1", styling: "border-indigo-500/30 text-indigo-400 bg-indigo-500/5" },
|
|
21
|
+
creativity: { id: "creativity", label: "Creatividad", icon: "mdi:palette", color: "#ec4899", styling: "border-pink-500/30 text-pink-400 bg-pink-500/5" },
|
|
22
|
+
social: { id: "social", label: "Social", icon: "mdi:account-group", color: "#0ea5e9", styling: "border-sky-500/30 text-sky-400 bg-sky-500/5" },
|
|
23
|
+
observation: { id: "observation", label: "Observación", icon: "mdi:eye", color: "#8b5cf6", styling: "border-violet-500/30 text-violet-400 bg-violet-500/5" },
|
|
24
|
+
wellness: { id: "wellness", label: "Bienestar", icon: "mdi:heart-pulse", color: "#f43f5e", styling: "border-rose-500/30 text-rose-400 bg-rose-500/5" }
|
|
25
|
+
},
|
|
26
|
+
adventures: [
|
|
27
|
+
{ id: 1, text: "Prueba un café o bebida en un sitio donde nunca hayas entrado antes.", categoryId: "food" },
|
|
28
|
+
{ id: 2, text: "Camina 10 minutos en una dirección que normalmente no tomas al salir de casa.", categoryId: "exploration" },
|
|
29
|
+
{ id: 3, text: "Aprende cómo se dice 'Gracias' en tres idiomas diferentes que no conozcas.", categoryId: "learning" },
|
|
30
|
+
{ id: 4, text: "Haz una foto a un detalle arquitectónico que te llame la atención en tu calle.", categoryId: "creativity" },
|
|
31
|
+
{ id: 5, text: "Compra una fruta que nunca hayas probado y descubre su sabor.", categoryId: "food" },
|
|
32
|
+
{ id: 6, text: "Busca una placa conmemorativa en tu barrio y lee la historia que cuenta.", categoryId: "exploration" },
|
|
33
|
+
{ id: 7, text: "Dibuja algo que tengas frente a ti en menos de 60 segundos.", categoryId: "creativity" },
|
|
34
|
+
{ id: 8, text: "Saluda a un vecino con el que normalmente no hablas.", categoryId: "social" },
|
|
35
|
+
{ id: 9, text: "Escucha un género musical que no sea de tu agrado habitual durante 5 minutos.", categoryId: "learning" },
|
|
36
|
+
{ id: 10, text: "Visita una tienda de antigüedades o de segunda mano y encuentra el objeto más raro.", categoryId: "exploration" },
|
|
37
|
+
{ id: 11, text: "Siéntate en un parque y cuenta cuántos tipos diferentes de pájaros ves.", categoryId: "observation" },
|
|
38
|
+
{ id: 12, text: "Escribe una nota positiva y déjala dentro de un libro en una biblioteca pública.", categoryId: "social" },
|
|
39
|
+
{ id: 13, text: "Haz una lista de 5 cosas por las que estás agradecido hoy.", categoryId: "wellness" },
|
|
40
|
+
{ id: 14, text: "Intenta cocinar una receta nueva usando solo lo que tienes en la despensa.", categoryId: "food" },
|
|
41
|
+
{ id: 15, text: "Pasa 20 minutos sin mirar ninguna pantalla (móvil, TV, PC).", categoryId: "wellness" },
|
|
42
|
+
{ id: 16, text: "Encuentra un árbol cerca de tu casa y trata de identificar de qué especie es.", categoryId: "learning" },
|
|
43
|
+
{ id: 17, text: "Llama a alguien a quien no hayas hablado en más de un mes.", categoryId: "social" },
|
|
44
|
+
{ id: 18, text: "Reordena un rincón de tu casa que siempre dejes para después.", categoryId: "wellness" },
|
|
45
|
+
{ id: 19, text: "Lee el primer capítulo de un libro que no sea de tu género favorito.", categoryId: "learning" },
|
|
46
|
+
{ id: 20, text: "Intenta hacer un origami básico siguiendo un tutorial rápido.", categoryId: "creativity" },
|
|
47
|
+
{ id: 21, text: "Fíjate en el color de los ojos de todas las personas con las que hables hoy.", categoryId: "observation" },
|
|
48
|
+
{ id: 22, text: "Busca una constelación en el cielo si es de noche y el cielo está despejado.", categoryId: "observation" },
|
|
49
|
+
{ id: 23, text: "Haz un cumplido sincero a un desconocido o a un dependiente.", categoryId: "social" },
|
|
50
|
+
{ id: 24, text: "Lleva una bolsa y recoge 5 piezas de basura que encuentres por la calle.", categoryId: "wellness" },
|
|
51
|
+
{ id: 25, text: "Prueba a escribir una frase con tu mano no dominante.", categoryId: "learning" },
|
|
52
|
+
{ id: 26, text: "Busca un mercado local y compra algo que haya sido cultivado cerca.", categoryId: "food" },
|
|
53
|
+
{ id: 27, text: "Detente y escucha los sonidos del ambiente durante 2 minutos sin moverte.", categoryId: "observation" },
|
|
54
|
+
{ id: 28, text: "Mira el amanecer o el atardecer sin hacer nada más al mismo tiempo.", categoryId: "wellness" },
|
|
55
|
+
{ id: 29, text: "Encuentra una tipografía interesante en un cartel de la calle y trata de copiarla.", categoryId: "creativity" },
|
|
56
|
+
{ id: 30, text: "Propón un plan pequeño a un amigo que no esperes ver hoy.", categoryId: "social" },
|
|
57
|
+
{ id: 31, text: "Encuentra un callejón o una plaza por la que nunca hayas pasado.", categoryId: "exploration" },
|
|
58
|
+
{ id: 32, text: "Compra una revista sobre un tema del que no sepas absolutamente nada.", categoryId: "learning" },
|
|
59
|
+
{ id: 33, text: "Elige una especia que nunca uses y añádela a tu próxima comida.", categoryId: "food" },
|
|
60
|
+
{ id: 34, text: "Haz una lista de 3 lugares a los que te gustaría viajar en tu ciudad.", categoryId: "exploration" },
|
|
61
|
+
{ id: 35, text: "Escribe un poema corto de solo 4 versos sobre algo que veas ahora.", categoryId: "creativity" },
|
|
62
|
+
{ id: 36, text: "Visita un museo o galería gratuita de tu zona.", categoryId: "learning" },
|
|
63
|
+
{ id: 37, text: "Bebe un vaso grande de agua ahora mismo.", categoryId: "wellness" },
|
|
64
|
+
{ id: 38, text: "Fíjate en qué flores están floreciendo en los jardines de tu barrio.", categoryId: "observation" },
|
|
65
|
+
{ id: 39, text: "Escucha un podcast sobre historia antigua.", categoryId: "learning" },
|
|
66
|
+
{ id: 40, text: "Haz una caminata consciente, prestando atención a tus pies tocando el suelo.", categoryId: "wellness" },
|
|
67
|
+
{ id: 41, text: "Baila tu canción favorita solo en tu habitación.", categoryId: "creativity" },
|
|
68
|
+
{ id: 42, text: "Deja una reseña positiva en un pequeño negocio que te guste.", categoryId: "social" },
|
|
69
|
+
{ id: 43, text: "Prueba un postre tradicional de otro país.", categoryId: "food" },
|
|
70
|
+
{ id: 44, text: "Encuentra un objeto de color rojo cada 50 pasos hasta llegar a 10.", categoryId: "observation" },
|
|
71
|
+
{ id: 45, text: "Aprende a hacer un nudo marinero básico.", categoryId: "learning" },
|
|
72
|
+
{ id: 46, text: "Si ves un animal en la calle (perro, gato), fíjate en su comportamiento un minuto.", categoryId: "observation" },
|
|
73
|
+
{ id: 47, text: "Toma una ruta de autobús o metro que no frecuentas y bájate en una parada al azar.", categoryId: "exploration" },
|
|
74
|
+
{ id: 48, text: "Escribe 3 frases motivadoras en un post-it y pégalo en tu espejo.", categoryId: "wellness" },
|
|
75
|
+
{ id: 49, text: "Visita una biblioteca y elige un libro solo por su portada.", categoryId: "exploration" },
|
|
76
|
+
{ id: 50, text: "Pregunta a alguien mayor que tú cuál era su juego favorito de la infancia.", categoryId: "social" },
|
|
77
|
+
{ id: 51, text: "Intenta equilibrar un objeto sobre tu dedo durante 10 segundos.", categoryId: "creativity" },
|
|
78
|
+
{ id: 52, text: "Busca en el diccionario una palabra que no conozcas y úsala hoy.", categoryId: "learning" },
|
|
79
|
+
{ id: 53, text: "Observa las nubes y encuentra 3 formas reconocibles.", categoryId: "observation" },
|
|
80
|
+
{ id: 54, text: "Haz 10 sentadillas o estira durante 5 minutos.", categoryId: "wellness" },
|
|
81
|
+
{ id: 55, text: "Cocina algo que requiera amasar con las manos.", categoryId: "creativity" },
|
|
82
|
+
{ id: 56, text: "Busca un grafiti cercano y trata de entender qué mensaje transmite.", categoryId: "observation" },
|
|
83
|
+
{ id: 57, text: "Sal a caminar sin destino fijo durante 15 minutos.", categoryId: "exploration" },
|
|
84
|
+
{ id: 58, text: "Haz una lista de 3 canciones que te traigan buenos recuerdos.", categoryId: "wellness" },
|
|
85
|
+
{ id: 59, text: "Pregunta al panadero cuál es su pan favorito y llévate una pieza.", categoryId: "food" },
|
|
86
|
+
{ id: 60, text: "Escribe a un profesor o mentor que te influyera para darle las gracias.", categoryId: "social" },
|
|
87
|
+
{ id: 61, text: "Encuentra una calle con el nombre de una persona y busca quién fue.", categoryId: "learning" },
|
|
88
|
+
{ id: 62, text: "Cierra los ojos y trata de adivinar qué hay en tu nevera solo por el tacto.", categoryId: "observation" },
|
|
89
|
+
{ id: 63, text: "Planta una semilla o cuida de una planta que tengas abandonada.", categoryId: "wellness" },
|
|
90
|
+
{ id: 64, text: "Envía un artículo interesante a un amigo sin explicar por qué, solo para compartir.", categoryId: "social" },
|
|
91
|
+
{ id: 65, text: "Haz una lista de 5 cosas que te gustaría aprender este año.", categoryId: "learning" },
|
|
92
|
+
{ id: 66, text: "Mira una película en versión original con subtítulos en ese mismo idioma.", categoryId: "learning" },
|
|
93
|
+
{ id: 67, text: "Intenta hacer malabares con dos o tres objetos pequeños.", categoryId: "creativity" },
|
|
94
|
+
{ id: 68, text: "Compra un ingrediente en una tienda de alimentación exótica.", categoryId: "food" },
|
|
95
|
+
{ id: 69, text: "Fíjate en las sombras que proyectan los edificios a distintas horas.", categoryId: "observation" },
|
|
96
|
+
{ id: 70, text: "Escribe una lista de 10 cosas que te hacen sonreír.", categoryId: "wellness" },
|
|
97
|
+
{ id: 71, text: "Busca un banco con vistas y quédate sentado 5 minutos mirando hacia adelante.", categoryId: "exploration" },
|
|
98
|
+
{ id: 72, text: "Pregunta a tus padres una historia sobre tus abuelos que no conozcas.", categoryId: "social" },
|
|
99
|
+
{ id: 73, text: "Toma una foto de algo feo y trata de que parezca artístico.", categoryId: "creativity" },
|
|
100
|
+
{ id: 74, text: "Aprende 3 palabras nuevas en lengua de signos.", categoryId: "learning" },
|
|
101
|
+
{ id: 75, text: "Huele tres flores diferentes y nota sus matices.", categoryId: "observation" },
|
|
102
|
+
{ id: 76, text: "Escribe un diario de lo que has hecho hoy antes de dormir.", categoryId: "wellness" },
|
|
103
|
+
{ id: 100, text: "Regala una flor (puede ser recogida) a alguien cercano.", categoryId: "social" },
|
|
104
|
+
{ id: 101, text: "Mira hacia arriba y fíjate en los tejados y cornisas de tu calle.", categoryId: "observation" },
|
|
105
|
+
{ id: 102, text: "Busca un pasillo en el supermercado por el que nunca pases y mira qué venden.", categoryId: "exploration" },
|
|
106
|
+
{ id: 103, text: "Prueba una infusión que tenga una mezcla de hierbas que no conozcas.", categoryId: "food" },
|
|
107
|
+
{ id: 104, text: "Aprende a reciclar un objeto viejo en algo útil hoy.", categoryId: "creativity" },
|
|
108
|
+
{ id: 105, text: "Haz un minuto de respiración profunda consciente.", categoryId: "wellness" },
|
|
109
|
+
{ id: 106, text: "Busca el origen del nombre de tu país o región.", categoryId: "learning" },
|
|
110
|
+
{ id: 107, text: "Di 'buenos días' animadamente a la primera persona que veas fuera de casa.", categoryId: "social" },
|
|
111
|
+
{ id: 108, text: "Toma una foto de una sombra interesante.", categoryId: "creativity" },
|
|
112
|
+
{ id: 109, text: "Encuentra una piedra bonita y guárdala por hoy.", categoryId: "observation" },
|
|
113
|
+
{ id: 110, text: "Haz una lista de 3 personas que te inspiran y por qué.", categoryId: "wellness" },
|
|
114
|
+
{ id: 111, text: "Come algo sin usar cubiertos (que normalmente los requiera).", categoryId: "food" },
|
|
115
|
+
{ id: 112, text: "Busca una canción que fuera número uno el año que naciste.", categoryId: "learning" },
|
|
116
|
+
{ id: 113, text: "Intenta identificar 5 sonidos diferentes con los ojos cerrados.", categoryId: "observation" },
|
|
117
|
+
{ id: 114, text: "Aprende qué significa tu nombre.", categoryId: "learning" },
|
|
118
|
+
{ id: 115, text: "Busca un refugio de animales cercano y mira si necesitan voluntarios.", categoryId: "social" },
|
|
119
|
+
{ id: 116, text: "Dibuja un patrón geométrico repetitivo en un papel.", categoryId: "creativity" },
|
|
120
|
+
{ id: 117, text: "Frecuenta una cafetería de barrio y lee el periódico local.", categoryId: "exploration" },
|
|
121
|
+
{ id: 118, text: "Recuerda un sueño que hayas tenido y escríbelo.", categoryId: "wellness" },
|
|
122
|
+
{ id: 119, text: "Fíjate en los colores de las puertas de las casas por las que pases.", categoryId: "observation" },
|
|
123
|
+
{ id: 120, text: "Cocina algo inspirándote en un libro o película.", categoryId: "creativity" },
|
|
124
|
+
{ id: 121, text: "Encuentra 3 objetos que no uses en absoluto y deshazte de ellos.", categoryId: "wellness" },
|
|
125
|
+
{ id: 122, text: "Aprende a hacer un avión de papel perfecto.", categoryId: "creativity" },
|
|
126
|
+
{ id: 123, text: "Busca una zona con árboles y quédate quieto escuchando el viento.", categoryId: "exploration" },
|
|
127
|
+
{ id: 124, text: "Pregunta a alguien joven qué aplicación de móvil es la que más usa.", categoryId: "social" },
|
|
128
|
+
{ id: 125, text: "Observa el cielo a mediodía y a media tarde; nota el cambio de azul.", categoryId: "observation" },
|
|
129
|
+
{ id: 126, text: "Busca una palabra en otro idioma que no tenga traducción directa al tuyo.", categoryId: "learning" },
|
|
130
|
+
{ id: 127, text: "Prepara una ensalada con al menos 5 colores diferentes.", categoryId: "food" },
|
|
131
|
+
{ id: 128, text: "Intenta aguantar la risa mirando a alguien a los ojos durante un minuto.", categoryId: "social" },
|
|
132
|
+
{ id: 129, text: "Nota cómo cambia el sonido de tus pasos en diferentes superficies.", categoryId: "observation" },
|
|
133
|
+
{ id: 130, text: "Haz un masaje rápido en tus manos con un poco de crema.", categoryId: "wellness" },
|
|
134
|
+
{ id: 131, text: "Ve a un mirador o a un punto alto de tu ciudad.", categoryId: "exploration" },
|
|
135
|
+
{ id: 132, text: "Busca un tutorial sobre cómo silbar con los dedos.", categoryId: "learning" },
|
|
136
|
+
{ id: 133, text: "Haz una lista de 5 cosas que te gustaba hacer cuando tenías 10 años.", categoryId: "wellness" },
|
|
137
|
+
{ id: 134, text: "Busca una noticia de ciencia positiva que haya ocurrido esta semana.", categoryId: "learning" },
|
|
138
|
+
{ id: 135, text: "Fíjate en el diseño de las alcantarillas de tu calle.", categoryId: "observation" },
|
|
139
|
+
{ id: 136, text: "Prueba una fruta exótica de la que nunca hayas oído hablar.", categoryId: "food" },
|
|
140
|
+
{ id: 137, text: "Recorta una noticia de un periódico físico y guárdala.", categoryId: "exploration" },
|
|
141
|
+
{ id: 138, text: "Escribe una frase amable en el vaho de una ventana.", categoryId: "creativity" },
|
|
142
|
+
{ id: 139, text: "Intenta decir un trabalenguas difícil 3 veces rápido.", categoryId: "creativity" },
|
|
143
|
+
{ id: 140, text: "Escucha el álbum completo de un artista que respetes pero no escuches.", categoryId: "learning" },
|
|
144
|
+
{ id: 141, text: "Nota la dirección de la que viene el viento hoy.", categoryId: "observation" },
|
|
145
|
+
{ id: 142, text: "Haz una visualización de 2 minutos sobre tu lugar ideal para estar.", categoryId: "wellness" },
|
|
146
|
+
{ id: 143, text: "Pregunta a alguien por una recomendación de libro y léelo.", categoryId: "social" },
|
|
147
|
+
{ id: 144, text: "Encuentra una flor que crezca entre los ladrillos o el asfalto.", categoryId: "observation" },
|
|
148
|
+
{ id: 145, text: "Ve a la parte más antigua de tu población y pasea.", categoryId: "exploration" },
|
|
149
|
+
{ id: 146, text: "Prueba a beber agua tibia con limón por la mañana.", categoryId: "wellness" },
|
|
150
|
+
{ id: 147, text: "Haz un collage con recortes de folletos publicitarios.", categoryId: "creativity" },
|
|
151
|
+
{ id: 148, text: "Aprende por qué el cielo es azul.", categoryId: "learning" },
|
|
152
|
+
{ id: 149, text: "Come sin distracciones: sin móvil, sin música, sin lectura.", categoryId: "wellness" },
|
|
153
|
+
{ id: 150, text: "Fíjate en las texturas de las cortezas de diferentes árboles.", categoryId: "observation" },
|
|
154
|
+
{ id: 151, text: "Busca una tienda local de especias y entra solo por el aroma.", categoryId: "exploration" },
|
|
155
|
+
{ id: 152, text: "Lleva una prenda de color que no suelas usar.", categoryId: "wellness" },
|
|
156
|
+
{ id: 153, text: "Prueba un tipo de miel diferente (romero, azahar, castaño...).", categoryId: "food" },
|
|
157
|
+
{ id: 154, text: "Intenta chasquear los dedos con ambas manos al mismo tiempo.", categoryId: "creativity" },
|
|
158
|
+
{ id: 155, text: "Abre la ventana y ventila toda tu casa durante 10 minutos.", categoryId: "wellness" },
|
|
159
|
+
{ id: 156, text: "Busca un refrán antiguo y piensa si todavía se aplica.", categoryId: "learning" },
|
|
160
|
+
{ id: 157, text: "Mira a los ojos a un animal doméstico hasta que desvíe la mirada.", categoryId: "observation" },
|
|
161
|
+
{ id: 158, text: "Deja una moneda en un lugar donde alguien la encuentre con una nota.", categoryId: "social" },
|
|
162
|
+
{ id: 159, text: "Busca una planta que tenga las hojas de dos colores.", categoryId: "observation" },
|
|
163
|
+
{ id: 160, text: "Aprende el nombre de 3 herramientas de carpintería.", categoryId: "learning" },
|
|
164
|
+
{ id: 161, text: "Nota el olor del aire justo antes o justo después de llover.", categoryId: "observation" },
|
|
165
|
+
{ id: 162, text: "Pon una canción que te haga sentir poderoso nada más levantarte.", categoryId: "wellness" },
|
|
166
|
+
{ id: 163, text: "Escribe 10 palabras que rimen con 'aventura'.", categoryId: "creativity" },
|
|
167
|
+
{ id: 300, text: "Haz un plan para visitar un pueblo cercano el fin de semana.", categoryId: "exploration" },
|
|
168
|
+
{ id: 301, text: "Aprende cómo se llaman los dedos de la mano en latín.", categoryId: "learning" },
|
|
169
|
+
{ id: 302, text: "Encuentra una rima para cada palabra de esta frase.", categoryId: "creativity" },
|
|
170
|
+
{ id: 303, text: "Agradece a un amigo algo que ocurrió hace tiempo.", categoryId: "social" }
|
|
171
|
+
],
|
|
172
|
+
achievements: [
|
|
173
|
+
{ id: "g1", milestone: 1, label: "El Despertar", categoryId: "global", icon: "mdi:footprint", description: "Tu primera mini aventura completada." },
|
|
174
|
+
{ id: "g10", milestone: 10, label: "Hábito de Asombro", categoryId: "global", icon: "mdi:sparkles", description: "Has roto la rutina 10 veces." },
|
|
175
|
+
{ id: "g50", milestone: 50, label: "Coleccionista de Días", categoryId: "global", icon: "mdi:calendar-star", description: "50 days haciendo que lo ordinario sea extraordinario." },
|
|
176
|
+
{ id: "g150", milestone: 150, label: "Maestro del Azar", categoryId: "global", icon: "mdi:trophy-variant", description: "Has completado la mitad del catálogo de aventuras." },
|
|
177
|
+
{ id: "g300", milestone: 300, label: "Espíritu Libre", categoryId: "global", icon: "mdi:ghost", description: "Has dominado el arte de la aventura cotidiana." },
|
|
178
|
+
{ id: "e3", milestone: 3, label: "Turista en Casa", categoryId: "exploration", icon: "mdi:map-marker-outline", description: "3 rincones nuevos descubiertos." },
|
|
179
|
+
{ id: "e15", milestone: 15, label: "Cartógrafo Urbano", categoryId: "exploration", icon: "mdi:map-check", description: "Conoces tu código postal mejor que nadie." },
|
|
180
|
+
{ id: "f3", milestone: 3, label: "Paladar Inquieto", categoryId: "food", icon: "mdi:silverware-clean", description: "Has probado 3 sabores que no conocías." },
|
|
181
|
+
{ id: "f15", milestone: 15, label: "Alquimista Gourmet", categoryId: "food", icon: "mdi:silverware-variant", description: "Tu despensa es un pasaporte al mundo." },
|
|
182
|
+
{ id: "l3", milestone: 3, label: "Aprendiz de Todo", categoryId: "learning", icon: "mdi:book-open-page-variant", description: "Has aprendido 3 curiosidades del mundo." },
|
|
183
|
+
{ id: "l15", milestone: 15, label: "Biblioteca Andante", categoryId: "learning", icon: "mdi:head-cog", description: "Tu curiosidad no conoce límites." },
|
|
184
|
+
{ id: "c3", milestone: 3, label: "Mano que Dibuja", categoryId: "creativity", icon: "mdi:palette-outline", description: "Has dejado tu huella en 3 pequeños retos." },
|
|
185
|
+
{ id: "c15", milestone: 15, label: "Vanguardista Local", categoryId: "creativity", icon: "mdi:palette-swatch", description: "Ves arte donde otros solo ven calle." },
|
|
186
|
+
{ id: "s3", milestone: 3, label: "Puente Humano", categoryId: "social", icon: "mdi:account-voice", description: "Has conectado con 3 personas hoy." },
|
|
187
|
+
{ id: "s15", milestone: 15, label: "Alma de la Calle", categoryId: "social", icon: "mdi:account-group", description: "Has convertido a desconocidos en historias." },
|
|
188
|
+
{ id: "o3", milestone: 3, label: "Detallista", categoryId: "observation", icon: "mdi:magnify", description: "Has visto 3 cosas que nadie más nota." },
|
|
189
|
+
{ id: "o15", milestone: 15, label: "Ojo de Cineasta", categoryId: "observation", icon: "mdi:telescope", description: "Tu mirada es el objetivo de una gran película." },
|
|
190
|
+
{ id: "w3", milestone: 3, label: "Pausa Consciente", categoryId: "wellness", icon: "mdi:leaf", description: "Has dedicado 3 momentos a tu paz mental." },
|
|
191
|
+
{ id: "w15", milestone: 15, label: "Equilibrio Total", categoryId: "wellness", icon: "mdi:spa", description: "Tu cuerpo y mente te lo agradecen." }
|
|
192
|
+
],
|
|
193
|
+
stats: {
|
|
194
|
+
adventures: "Aventuras",
|
|
195
|
+
badges: "Insignias",
|
|
196
|
+
progress: "Tu Progreso",
|
|
197
|
+
trophies: "Colección de Trofeos"
|
|
198
|
+
},
|
|
199
|
+
shareTemplate: "¡Acabo de recibir una Mini Aventura!\n\n\"{text}\"\n\n¿Te atreves? Genera la tuya aquí: {url}"
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
const seo: ToolLocaleContent<MiniAdventuresUI>['seo'] = [
|
|
203
|
+
{ type: "title", text: "Mini Aventuras: El Arte de lo Cotidiano", level: 2 },
|
|
204
|
+
{ type: "paragraph", html: "Descubre cómo las microaventuras pueden reprogramar tu cerebro, combatir la rutina y despertar tu curiosidad innata. La rutina es el enemigo de la creatividad. Al introducir pequeñas variaciones en nuestro día a día obligamos a nuestro cerebro a forjar nuevas conexiones neuronales." },
|
|
205
|
+
{ type: "title", text: "Neuroplasticidad en Acción", level: 3 },
|
|
206
|
+
{ type: "paragraph", html: "La rutina es el enemigo de la creatividad. Al introducir pequeñas variaciones en nuestro día a día —como probar un sabor nuevo o caminar por una calle desconocida— obligamos a nuestro cerebro a forjar nuevas conexiones neuronales. Estas microaventuras actúan como un gimnasio mental que mantiene la mente ágil y abierta a nuevas posibilidades." },
|
|
207
|
+
{ type: "title", text: "Bienestar Emocional", level: 3 },
|
|
208
|
+
{ type: "paragraph", html: "La sensación de estancamiento suele provenir de la previsibilidad absoluta. El azar controlado de un generador de aventuras introduce el elemento de 'sorpresa positiva', liberando dopamina y mejorando el estado de ánimo de forma natural. No necesitas un viaje transoceánico para sentir la emoción del descubrimiento." },
|
|
209
|
+
{ type: "title", text: "Explora lo que ya conoces: Filosofía Local", level: 2 },
|
|
210
|
+
{ type: "paragraph", html: "Vivimos rodeados de historias y detalles que pasan desapercibidos. El objetivo de este pronóstico es entrenar tu ojo para ver lo extraordinario en lo ordinario. No busques el momento perfecto; busca el momento posible." },
|
|
211
|
+
{
|
|
212
|
+
type: "grid",
|
|
213
|
+
columns: 2
|
|
214
|
+
},
|
|
215
|
+
{ type: "card", icon: "mdi:clock-fast", title: "Sin Excusas", html: "Aventuras que requieren menos de 15 minutos y cero euros. El tiempo no es una barrera para la curiosidad." },
|
|
216
|
+
{ type: "card", icon: "mdi:lock-outline", title: "Privacidad Total", html: "No necesitas registrarte ni compartir tus datos. Tu progreso y aventuras completadas se guardan solo en tu dispositivo." },
|
|
217
|
+
{ type: "card", icon: "mdi:share-variant", title: "Viralidad Sana", html: "Comparte retos que inspiren a otros a salir de su burbuja, en lugar de alimentar la comparación constante de las redes." },
|
|
218
|
+
{ type: "card", icon: "mdi:trophy-outline", title: "Gamificación", html: "Colecciona insignias exclusivas por cada categoría de reto completada." }
|
|
219
|
+
];
|
|
220
|
+
|
|
221
|
+
const faq: ToolLocaleContent<MiniAdventuresUI>['faq'] = [
|
|
222
|
+
{ question: "¿Qué es una microaventura?", answer: "Es una aventura corta, cercana a casa, barata y sencilla. El término (popularizado por Alastair Humphreys) busca demostrar que no hace falta irse al otro lado del mundo para vivir experiencias emocionantes." },
|
|
223
|
+
{ question: "¿Para qué sirve este generador?", answer: "Sirve para combatir la parálisis por análisis. A veces queremos hacer algo diferente pero no sabemos qué. Este simulador elige un reto aleatorio por ti, quitándote la carga mental de decidir." },
|
|
224
|
+
{ question: "¿Tengo que registrar mis aventuras?", answer: "No. Esta es una herramienta de privacidad total. Los retos se generan aleatoriamente en tu navegador y no guardamos ningún tipo de registro sobre lo que haces o dónde vas." },
|
|
225
|
+
{ question: "¿Puedo proponer nuevas aventuras?", answer: "¡Claro! El código de esta herramienta es abierto. Si tienes ideas de retos divertidos que no requieren mucho presupuesto ni tiempo, puedes sugerirlos a través del repositorio en GitHub." }
|
|
226
|
+
];
|
|
227
|
+
|
|
228
|
+
const bibliography: ToolLocaleContent<MiniAdventuresUI>['bibliography'] = [
|
|
229
|
+
{ name: "Alastair Humphreys: Microadventures", url: "https://alastairhumphreys.com/blog/microadventures-3/" },
|
|
230
|
+
{ name: "Rob Walker: The Art of Noticing", url: "https://www.goodreads.com/es/book/show/41552704-the-art-of-noticing" }
|
|
231
|
+
];
|
|
232
|
+
|
|
233
|
+
const howTo: ToolLocaleContent<MiniAdventuresUI>['howTo'] = [
|
|
234
|
+
{ name: "Generar", text: "Pulsa el botón de generación para que el algoritmo seleccione una categoría y un reto aleatorio." },
|
|
235
|
+
{ name: "Leer", text: "El sistema te dará una instrucción clara sobre qué hacer hoy (ej. ir a un lugar nuevo, probar un sabor diferente)." },
|
|
236
|
+
{ name: "Realizar", text: "Lo divertido es la espontaneidad. Intenta realizar el reto antes de que termine el día." },
|
|
237
|
+
{ name: "Completar", text: "Marca el reto como hecho para ganar insignias exclusivas y progresar." }
|
|
238
|
+
];
|
|
239
|
+
|
|
240
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
241
|
+
'@context': 'https://schema.org',
|
|
242
|
+
'@type': 'FAQPage',
|
|
243
|
+
mainEntity: faq.map((item) => ({
|
|
244
|
+
'@type': 'Question',
|
|
245
|
+
name: item.question,
|
|
246
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
247
|
+
})),
|
|
248
|
+
};
|
|
249
|
+
|
|
250
|
+
const howToSchema: WithContext<HowTo> = {
|
|
251
|
+
'@context': 'https://schema.org',
|
|
252
|
+
'@type': 'HowTo',
|
|
253
|
+
name: title,
|
|
254
|
+
description: description,
|
|
255
|
+
step: howTo.map((step) => ({
|
|
256
|
+
'@type': 'HowToStep',
|
|
257
|
+
name: step.name,
|
|
258
|
+
text: step.text,
|
|
259
|
+
})),
|
|
260
|
+
};
|
|
261
|
+
|
|
262
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
263
|
+
'@context': 'https://schema.org',
|
|
264
|
+
'@type': 'SoftwareApplication',
|
|
265
|
+
name: title,
|
|
266
|
+
description: description,
|
|
267
|
+
applicationCategory: 'TravelApplication',
|
|
268
|
+
operatingSystem: 'All',
|
|
269
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
270
|
+
inLanguage: 'es',
|
|
271
|
+
};
|
|
272
|
+
|
|
273
|
+
export const content: ToolLocaleContent<MiniAdventuresUI> = {
|
|
274
|
+
slug,
|
|
275
|
+
title,
|
|
276
|
+
description,
|
|
277
|
+
ui,
|
|
278
|
+
seo,
|
|
279
|
+
faq,
|
|
280
|
+
faqTitle: "Preguntas Frecuentes",
|
|
281
|
+
bibliography,
|
|
282
|
+
bibliographyTitle: "Fuentes y Referencias",
|
|
283
|
+
howTo,
|
|
284
|
+
howToTitle: "Cómo funciona",
|
|
285
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
286
|
+
};
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { MiniAdventuresUI } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'mini-aventures-quotidiennes';
|
|
6
|
+
const title = 'Prévision de Mini Aventures Quotidiennes';
|
|
7
|
+
const description = 'Échappez à la routine avec des micro-défis quotidiens qui transformeront votre quotidien en aventure.';
|
|
8
|
+
|
|
9
|
+
const ui: MiniAdventuresUI = {
|
|
10
|
+
title: "Mini Aventures",
|
|
11
|
+
homeTitle: "Prêt pour l'aventure ?",
|
|
12
|
+
homeDesc: "Découvrez votre défi du jour et transformez l'ordinaire en extraordinaire.",
|
|
13
|
+
generateBtn: "Générer mon défi",
|
|
14
|
+
anotherBtn: "Un autre défi",
|
|
15
|
+
doneBtn: "J'ai réussi !",
|
|
16
|
+
shareBtn: "Partager l'aventure",
|
|
17
|
+
categories: {
|
|
18
|
+
exploration: { id: "exploration", label: "Exploration", icon: "mdi:map-marker-path", color: "#10b981", styling: "border-emerald-500/30 text-emerald-400 bg-emerald-500/5" },
|
|
19
|
+
food: { id: "food", label: "Gastronomie", icon: "mdi:food-variant", color: "#f59e0b", styling: "border-amber-500/30 text-amber-400 bg-amber-500/5" },
|
|
20
|
+
learning: { id: "learning", label: "Apprentissage", icon: "mdi:school", color: "#6366f1", styling: "border-indigo-500/30 text-indigo-400 bg-indigo-500/5" },
|
|
21
|
+
creativity: { id: "creativity", label: "Créativité", icon: "mdi:palette", color: "#ec4899", styling: "border-pink-500/30 text-pink-400 bg-pink-500/5" },
|
|
22
|
+
social: { id: "social", label: "Social", icon: "mdi:account-group", color: "#0ea5e9", styling: "border-sky-500/30 text-sky-400 bg-sky-500/5" },
|
|
23
|
+
observation: { id: "observation", label: "Observation", icon: "mdi:eye", color: "#8b5cf6", styling: "border-violet-500/30 text-violet-400 bg-violet-500/5" },
|
|
24
|
+
wellness: { id: "wellness", label: "Bien-être", icon: "mdi:heart-pulse", color: "#f43f5e", styling: "border-rose-500/30 text-rose-400 bg-rose-500/5" }
|
|
25
|
+
},
|
|
26
|
+
adventures: [
|
|
27
|
+
{ id: 1, text: "Essayez un café ou une boisson dans un endroit où vous n'êtes jamais entré auparavant.", categoryId: "food" },
|
|
28
|
+
{ id: 2, text: "Marchez 10 minutes dans une direction que vous ne prenez pas habituellement en sortant de chez vous.", categoryId: "exploration" },
|
|
29
|
+
{ id: 3, text: "Apprenez à dire 'Merci' dans trois langues différentes que vous ne connaissez pas.", categoryId: "learning" },
|
|
30
|
+
{ id: 4, text: "Prenez une photo d'un détail architectural qui attire votre attention dans votre rue.", categoryId: "creativity" },
|
|
31
|
+
{ id: 5, text: "Achetez un fruit que vous n'avez jamais goûté et découvrez sa saveur.", categoryId: "food" },
|
|
32
|
+
{ id: 6, text: "Cherchez une plaque commémorative dans votre quartier et lisez l'histoire qu'elle raconte.", categoryId: "exploration" },
|
|
33
|
+
{ id: 300, text: "Faites un plan pour visiter un village voisin le week-end.", categoryId: "exploration" },
|
|
34
|
+
{ id: 301, text: "Apprenez comment s'appellent les doigts de la main en latin.", categoryId: "learning" },
|
|
35
|
+
{ id: 302, text: "Trouvez une rime pour chaque mot de cette phrase.", categoryId: "creativity" },
|
|
36
|
+
{ id: 303, text: "Remerciez un ami pour quelque chose qui est arrivé il y a longtemps.", categoryId: "social" }
|
|
37
|
+
],
|
|
38
|
+
achievements: [
|
|
39
|
+
{ id: "g1", milestone: 1, label: "L'Éveil", categoryId: "global", icon: "mdi:footprint", description: "Votre première mini aventure réussie." },
|
|
40
|
+
{ id: "g10", milestone: 10, label: "Habitude d'Émerveillement", categoryId: "global", icon: "mdi:sparkles", description: "Vous avez brisé la routine 10 fois." },
|
|
41
|
+
{ id: "g50", milestone: 50, label: "Collectionneur de Jours", categoryId: "global", icon: "mdi:calendar-star", description: "50 jours à rendre l'ordinaire extraordinaire." },
|
|
42
|
+
{ id: "g150", milestone: 150, label: "Maître du Hasard", categoryId: "global", icon: "mdi:trophy-variant", description: "Vous avez complété la moitié du catalogue d'aventures." },
|
|
43
|
+
{ id: "g300", milestone: 300, label: "Esprit Libre", categoryId: "global", icon: "mdi:ghost", description: "Vous avez maîtrisé l'art de l'aventure quotidienne." },
|
|
44
|
+
{ id: "e3", milestone: 3, label: "Touriste chez Soi", categoryId: "exploration", icon: "mdi:map-marker-outline", description: "3 nouveaux coins découverts." },
|
|
45
|
+
{ id: "e15", milestone: 15, label: "Cartographe Urbain", categoryId: "exploration", icon: "mdi:map-check", description: "Vous connaissez votre code postal mieux que personne." },
|
|
46
|
+
{ id: "f3", milestone: 3, label: "Palais Inquiet", categoryId: "food", icon: "mdi:silverware-clean", description: "Vous avez goûté 3 saveurs que vous ne connaissiez pas." },
|
|
47
|
+
{ id: "f15", milestone: 15, label: "Alchimiste Gourmet", categoryId: "food", icon: "mdi:silverware-variant", description: "Votre garde-manger est un passeport pour le monde." },
|
|
48
|
+
{ id: "l3", milestone: 3, label: "Apprenti de Tout", categoryId: "learning", icon: "mdi:book-open-page-variant", description: "Vous avez appris 3 curiosités du monde." },
|
|
49
|
+
{ id: "l15", milestone: 15, label: "Bibliothèque Ambulante", categoryId: "learning", icon: "mdi:head-cog", description: "Votre curiosité ne connaît pas de limites." },
|
|
50
|
+
{ id: "c3", milestone: 3, label: "Main qui Dessine", categoryId: "creativity", icon: "mdi:palette-outline", description: "Vous avez laissé votre empreinte dans 3 petits défis." },
|
|
51
|
+
{ id: "c15", milestone: 15, label: "Avant-gardiste Local", categoryId: "creativity", icon: "mdi:palette-swatch", description: "Vous voyez l'art là où d'autres ne voient que la rue." },
|
|
52
|
+
{ id: "s3", milestone: 3, label: "Pont Humain", categoryId: "social", icon: "mdi:account-voice", description: "Vous vous êtes connecté avec 3 personnes aujourd'hui." },
|
|
53
|
+
{ id: "s15", milestone: 15, label: "Âme de la Rue", categoryId: "social", icon: "mdi:account-group", description: "Vous avez transformé des inconnus en histoires." },
|
|
54
|
+
{ id: "o3", milestone: 3, label: "Détailliste", categoryId: "observation", icon: "mdi:magnify", description: "Vous avez vu 3 choses que personne d'autre ne remarque." },
|
|
55
|
+
{ id: "o15", milestone: 15, label: "Œil de Cineaste", categoryId: "observation", icon: "mdi:telescope", description: "Votre regard est l'objectif d'un grand film." },
|
|
56
|
+
{ id: "w3", milestone: 3, label: "Pause Consciente", categoryId: "wellness", icon: "mdi:leaf", description: "Vous avez dédié 3 moments à votre paix mentale." },
|
|
57
|
+
{ id: "w15", milestone: 15, label: "Équilibre Total", categoryId: "wellness", icon: "mdi:spa", description: "Votre corps et votre esprit vous remercient." }
|
|
58
|
+
],
|
|
59
|
+
stats: {
|
|
60
|
+
adventures: "Aventures",
|
|
61
|
+
badges: "Badges",
|
|
62
|
+
progress: "Votre Progrès",
|
|
63
|
+
trophies: "Collection de Trophées"
|
|
64
|
+
},
|
|
65
|
+
shareTemplate: "Je viens de relever un défi !\n\n\"{text}\"\n\nOserez-vous ? Générez le vôtre ici : {url}"
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
const seo: ToolLocaleContent<MiniAdventuresUI>['seo'] = [
|
|
69
|
+
{ type: "title", text: "Mini Aventures : L'Art du Quotidien", level: 2 },
|
|
70
|
+
{ type: "paragraph", html: "Découvrez comment les micro-aventures peuvent reprogrammer votre cerveau, combattre la routine et éveiller votre curiosité innée. La routine est l'ennemie de la créativité. En introduisant de petites variations dans notre vie quotidienne, nous forçons notre cerveau à forger de nouvelles connexions neuronales." },
|
|
71
|
+
{ type: "title", text: "Neuroplasticité en Action", level: 3 },
|
|
72
|
+
{ type: "paragraph", html: "En essayant une nouvelle saveur ou en marchant dans une rue inconnue, vous forcez votre cerveau à s'adapter. Ces micro-aventures agissent comme un gymnase mental." },
|
|
73
|
+
{
|
|
74
|
+
type: "grid",
|
|
75
|
+
columns: 2
|
|
76
|
+
},
|
|
77
|
+
{ type: "card", icon: "mdi:clock-fast", title: "Pas d'excuses", html: "Des aventures qui demandent moins de 15 minutes et zéro euro. Le temps n'est pas une barrière à la curiosité." },
|
|
78
|
+
{ type: "card", icon: "mdi:lock-outline", title: "Confidentialité Totale", html: "Vos progrès sont sauvegardés uniquement sur votre appareil." }
|
|
79
|
+
];
|
|
80
|
+
|
|
81
|
+
const faq: ToolLocaleContent<MiniAdventuresUI>['faq'] = [
|
|
82
|
+
{ question: "Qu'est-ce qu'une micro-aventure ?", answer: "C'est une petite aventure proche de chez vous, peu coûteuse et simple. Le terme cherche à démontrer qu'il n'est pas nécessaire d'aller à l'autre bout du monde pour vivre des expériences passionnantes." },
|
|
83
|
+
{ question: "À quoi sert ce générateur ?", answer: "Il sert à combattre la paralysie de l'analyse. Parfois, nous voulons faire quelque chose de différent mais nous ne savons pas quoi." },
|
|
84
|
+
{ question: "Dois-je m'enregistrer ?", answer: "Non. C'est un outil de confidentialité totale. Les défis sont générés localement." }
|
|
85
|
+
];
|
|
86
|
+
|
|
87
|
+
const bibliography: ToolLocaleContent<MiniAdventuresUI>['bibliography'] = [
|
|
88
|
+
{ name: "Alastair Humphreys: Microadventures", url: "https://alastairhumphreys.com/blog/microadventures-3/" },
|
|
89
|
+
{ name: "Rob Walker: The Art of Noticing", url: "https://www.goodreads.com/es/book/show/41552704-the-art-of-noticing" }
|
|
90
|
+
];
|
|
91
|
+
|
|
92
|
+
const howTo: ToolLocaleContent<MiniAdventuresUI>['howTo'] = [
|
|
93
|
+
{ name: "Générez", text: "Appuyez sur le bouton pour recevoir votre défi." },
|
|
94
|
+
{ name: "Réalisez", text: "Essayez de relever le défi avant la fin de la journée." },
|
|
95
|
+
{ name: "Complétez", text: "Marquez le défi comme réussi pour gagner des badges." }
|
|
96
|
+
];
|
|
97
|
+
|
|
98
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
99
|
+
'@context': 'https://schema.org',
|
|
100
|
+
'@type': 'FAQPage',
|
|
101
|
+
mainEntity: faq.map((item) => ({
|
|
102
|
+
'@type': 'Question',
|
|
103
|
+
name: item.question,
|
|
104
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
105
|
+
})),
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
const howToSchema: WithContext<HowTo> = {
|
|
109
|
+
'@context': 'https://schema.org',
|
|
110
|
+
'@type': 'HowTo',
|
|
111
|
+
name: title,
|
|
112
|
+
description: description,
|
|
113
|
+
step: howTo.map((step) => ({
|
|
114
|
+
'@type': 'HowToStep',
|
|
115
|
+
name: step.name,
|
|
116
|
+
text: step.text,
|
|
117
|
+
})),
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
121
|
+
'@context': 'https://schema.org',
|
|
122
|
+
'@type': 'SoftwareApplication',
|
|
123
|
+
name: title,
|
|
124
|
+
description: description,
|
|
125
|
+
applicationCategory: 'TravelApplication',
|
|
126
|
+
operatingSystem: 'All',
|
|
127
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
128
|
+
inLanguage: 'fr',
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
export const content: ToolLocaleContent<MiniAdventuresUI> = {
|
|
132
|
+
slug,
|
|
133
|
+
title,
|
|
134
|
+
description,
|
|
135
|
+
ui,
|
|
136
|
+
seo,
|
|
137
|
+
faq,
|
|
138
|
+
faqTitle: "Questions Fréquentes",
|
|
139
|
+
bibliography,
|
|
140
|
+
bibliographyTitle: "Sources et Références",
|
|
141
|
+
howTo,
|
|
142
|
+
howToTitle: "Comment ça marche",
|
|
143
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
144
|
+
};
|