PageSourceSearch

https://vibe-coding-educativo.github.io/assets/main.js

js vibe-coding-educativo.github.io collected 2026-10-03 10:08:12 UTC 29,717 bytes, 512 lines download raw bytes

1/*
2 * Vibe Coding Educativo - Código fuente
3 * Licencia: GPL-3.0 (ver LICENSE.txt)
4 * Copyright (c) 2025 Juan José de Haro
5 */
6const translations = {
7  es: {
8    guideBadge: "Guía de la comunidad",
9    guideTitle: "Vibe coding responsable",
10    guideDesc:
11      "Diez recomendaciones para publicar de forma responsable y ética los materiales creados con IA: licencias, datos del alumnado, accesibilidad y transparencia sobre cómo se han hecho. Incluye instrucciones para que la IA las siga y una rúbrica para evaluar cualquier recurso.",
12    guideButton: "Leer la guía",
13    groupName: "Vibe Coding Educativo",
14    navWhatIs: "Qué es",
15    navCommunity: "Comunidad",
16    navApps: "Aplicaciones",
17    navResources: "Recursos",
18    navNewsletter: "Boletín",
19    navAgent: "Agente",
20    joinGroup: "Únete al Grupo",
21    heroTitle: "Programa con Propósito y Vibe",
22    heroSubtitle:
23      "Un espacio para crear, compartir y aprender a desarrollar aplicaciones educativas interactivas con lenguaje natural e Inteligencia Artificial.",
24    viewApps: "Ver Aplicaciones",
25    viewNewsletter: "Ver Boletín",
26    agentButtonHeader: "Resuelve tus dudas con nuestro Agente",
27    joinTelegram: "Únete en Telegram",
28    whatIsTitle: "¿Qué es el Vibe Coding Educativo?",
29    whatIsSubtitle:
30      "Una nueva forma de programar, más intuitiva y accesible para todos los educadores.",
31    whatIsContent:
32      `<p><strong>Vibe Coding Educativo</strong> es un grupo y una metodología centrada en la creación de aplicaciones para la enseñanza mediante <em>vibe coding</em>: un enfoque de desarrollo basado en <strong>lenguaje natural</strong> y apoyado por modelos de inteligencia artificial 🤖.</p><p>Es un espacio para compartir aplicaciones, resolver dudas técnicas y profundizar en el uso didáctico de esta forma de programación asistida. No necesitas ser un experto en código; si tienes una idea para una herramienta educativa, aquí puedes aprender a hacerla realidad.</p><blockquote class="border-l-4 border-blue-500 pl-4 italic text-slate-700 dark:text-slate-300">"Es hacer programas a través de la IA. Le dices lo que quieres y lo hace." - Juanjo de Haro</blockquote><p>La clave está en la conversación con la IA, refinando la idea paso a paso hasta obtener una aplicación funcional y atractiva que puedes integrar en tus clases y recursos digitales.</p>`,
33    learnWord: "Aprender",
34    createWord: "Crear",
35    communityTitle: "Una Comunidad Abierta y Colaborativa",
36    communitySubtitle:
37      "Conectamos con otros apasionados de la tecnología y la educación.",
38    card1Title: "Grupo de Telegram",
39    card1Desc:
40      "El corazón de nuestra comunidad. Únete para compartir tus proyectos, resolver dudas y aprender de los demás.",
41    card1Link: "Unirme al grupo &rarr;",
42    card2Title: "ChatGPT-IA-edu",
43    card2Desc:
44      "Este grupo está vinculado con la comunidad especializada en el uso educativo de la IA en un sentido más amplio. En él encontrarás otros grupos de interés sobre IA educativa.",
45    card2Link: "Visitar grupo &rarr;",
46    card3Title: "Conocimiento Abierto",
47    card3Desc:
48      "Nos adherimos a los principios del Conocimiento Abierto, fomentando que la tecnología y la educación sean accesibles para todos.",
49    card3Link: "Leer principios &rarr;",
50    appsTitle: "Galería de Aplicaciones",
51    appsSubtitle:
52      "Descubre lo que hemos creado. ¡Inspírate y crea la tuya!",
53    exploreRepo: "Explorar el Repositorio Completo",
54    addAppNote:
55      "Para añadir tu aplicación, utiliza el formulario oficial disponible en el grupo de Telegram.",
56    resourcesTitle: "Recursos y Guías",
57    resourcesSubtitle:
58      "Enlaces clave para empezar y profundizar en el Vibe Coding.",
59    resource1Title: "Manual de Vibe Coding Educativo",
60    resource1Desc:
61      "Una guía completa con extractos de artículos sobre cómo crear aplicaciones, dónde publicarlas y más.",
62    resourceLink: "Acceder al manual &rarr;",
63    resource2Title: "Cómo activar la IA en recursos educativos",
64    resource2Desc:
65      "Aprende a integrar chatbots de IA (Grok, ChatGPT, etc.) en tus materiales digitales como Moodle, eXeLearning o Google Sites.",
66    readArticle: "Leer el artículo &rarr;",
67    newsletterTitle: "Boletín Semanal",
68    newsletterSubtitle:
69      "Un resumen de las conversaciones, recursos y proyectos más destacados de la comunidad.",
70    newsletterDesc:
71      "Cada semana, recopilamos lo más relevante de nuestro grupo de Telegram para que no te pierdas nada. Descubre nuevas herramientas, debates interesantes y las últimas creaciones de los miembros.",
72    readNewsletter: "Leer el último boletín",
73    agentTitle: "Agente NotebookLM",
74    agentSubtitle:
75      "Tu asistente para resolver dudas sobre Vibe Coding Educativo al instante.",
76    agentDesc:
77      "Nuestro agente NotebookLM reúne el conocimiento compartido por la comunidad y te guía con respuestas contextualizadas y recursos recomendados.",
78    agentNote:
79      "Hemos creado un nuevo agente experto con NotebookLM a partir de las conversaciones del grupo de Telegram, para que recibas respuestas alineadas con la experiencia colectiva.",
80    agentButton: "Abrir el Agente",
81    footerTitle:
82      "Participa, comparte, aprende y programa con propósito y vibe.",
83    joinConversation: "Únete a la conversación",
84    footerCommunity: "Comunidad Vibe Coding Educativo.",
85    footerLicense: "Licencia Creative Commons BY-SA",
86  },
87  ca: {
88    guideBadge: "Guia de la comunitat",
89    guideTitle: "Vibe coding responsable",
90    guideDesc:
91      "Deu recomanacions per publicar de manera responsable i ètica els materials creats amb IA: llicències, dades de l'alumnat, accessibilitat i transparència sobre com s'han fet. Inclou instruccions perquè la IA les segueixi i una rúbrica per avaluar qualsevol recurs.",
92    guideButton: "Llegir la guia",
93    groupName: "Vibe Coding Educatiu",
94    navWhatIs: "Què és",
95    navCommunity: "Comunitat",
96    navApps: "Aplicacions",
97    navResources: "Recursos",
98    navNewsletter: "Butlletí",
99    navAgent: "Agent",
100    joinGroup: "Uneix-te al Grup",
101    heroTitle: "Programa amb Propòsit i Vibe",
102    heroSubtitle:
103      "Un espai per a crear, compartir i aprendre a desenvolupar aplicacions educatives interactives amb llenguatge natural i Intel·ligència Artificial.",
104    viewApps: "Veure Aplicacions",
105    viewNewsletter: "Veure Butlletí",
106    agentButtonHeader: "Resol els teus dubtes amb el nostre Agent",
107    joinTelegram: "Uneix-te a Telegram",
108    whatIsTitle: "Què és el Vibe Coding Educatiu?",
109    whatIsSubtitle:
110      "Una nova manera de programar, més intuïtiva i accessible per a tots els educadors.",
111    whatIsContent:
112      `<p><strong>Vibe Coding Educatiu</strong> és un grup i una metodologia centrada en la creació d'aplicacions per a l'ensenyament mitjançant <em>vibe coding</em>: un enfocament de desenvolupament basat en <strong>llenguatge natural</strong> i recolzat per models d'intel·ligència artificial 🤖.</p><p>És un espai per compartir aplicacions, resoldre dubtes tècnics i aprofundir en l'ús didàctic d'aquesta forma de programació assistida. No necessites ser un expert en codi; si tens una idea per a una eina educativa, aquí pots aprendre a fer-la realitat.</p><blockquote class="border-l-4 border-blue-500 pl-4 italic text-slate-700 dark:text-slate-300">"És fer programes a través de la IA. Li dius el que vols i ho fa." - Juanjo de Haro</blockquote><p>La clau està en la conversa amb la IA, refinant la idea pas a pas fins a obtenir una aplicació funcional i atractiva que pots integrar a les teves classes i recursos digitals.</p>`,
113    learnWord: "Aprendre",
114    createWord: "Crear",
115    communityTitle: "Una Comunitat Oberta i Col·laborativa",
116    communitySubtitle:
117      "Connectem amb altres apassionats de la tecnologia i l'educació.",
118    card1Title: "Grup de Telegram",
119    card1Desc:
120      "El cor de la nostra comunitat. Uneix-te per compartir els teus projectes, resoldre dubtes i aprendre dels altres.",
121    card1Link: "Unir-me al grup &rarr;",
122    card2Title: "ChatGPT-IA-edu",
123    card2Desc:
124      "Aquest grup està vinculat amb la comunitat especialitzada en l'ús educatiu de la IA en un sentit més ampli. Hi trobaràs altres grups d'interès sobre IA educativa.",
125    card2Link: "Visitar grup &rarr;",
126    card3Title: "Coneixement Obert",
127    card3Desc:
128      "Ens adherim als principis del Coneixement Obert, fomentant que la tecnologia i l'educació siguin accessibles per a tothom.",
129    card3Link: "Llegir principis &rarr;",
130    appsTitle: "Galeria d'Aplicacions",
131    appsSubtitle:
132      "Descobreix el que hem creat. Inspira't i crea la teva!",
133    exploreRepo: "Explorar el Repositori Complet",
134    addAppNote:
135      "Per afegir la teva aplicació, utilitza el formulari oficial disponible al grup de Telegram.",
136    resourcesTitle: "Recursos i Guies",
137    resourcesSubtitle:
138      "Enllaços clau per començar i aprofundir en el Vibe Coding.",
139    resource1Title: "Manual de Vibe Coding Educatiu",
140    resource1Desc:
141      "Una guia completa amb extractes d'articles sobre com crear aplicacions, on publicar-les i més.",
142    resourceLink: "Accedir al manual &rarr;",
143    resource2Title:
144      "Com activar la IA en recursos educatius",
145    resource2Desc:
146      "Aprèn a integrar chatbots d'IA (Grok, ChatGPT, etc.) als teus materials digitals com Moodle, eXeLearning o Google Sites.",
147    readArticle: "Llegir l'article &rarr;",
148    newsletterTitle: "Butlletí Setmanal",
149    newsletterSubtitle:
150      "Un resum de les converses, recursos i projectes més destacats de la comunitat.",
151    newsletterDesc:
152      "Cada setmana, recopilem el més rellevant del nostre grup de Telegram perquè no et perdis res. Descobreix noves eines, debats interessants i les últimes creacions dels membres.",
153    readNewsletter: "Llegir l'últim butlletí",
154    agentTitle: "Agent NotebookLM",
155    agentSubtitle:
156      "El teu assistent per resoldre dubtes sobre Vibe Coding Educatiu al moment.",
157    agentDesc:
158      "El nostre agent NotebookLM recull el coneixement compartit per la comunitat i t'orienta amb respostes contextualitzades i recursos recomanats.",
159    agentNote:
160      "Hem creat un nou agent expert amb NotebookLM a partir de les converses del grup de Telegram, perquè rebis respostes alineades amb l'experiència col·lectiva.",
161    agentButton: "Obrir l'Agent",
162    footerTitle:
163      "Participa, comparteix, aprèn i programa amb propòsit i vibe.",
164    joinConversation: "Uneix-te a la conversa",
165    footerCommunity: "Comunitat Vibe Coding Educatiu.",
166    footerLicense: "Llicència Creative Commons BY-SA",
167  },
168  gl: {
169    guideBadge: "Guía da comunidade",
170    guideTitle: "Vibe coding responsable",
171    guideDesc:
172      "Dez recomendacións para publicar de forma responsable e ética os materiais creados con IA: licenzas, datos do alumnado, accesibilidade e transparencia sobre como se fixeron. Inclúe instrucións para que a IA as siga e unha rúbrica para avaliar calquera recurso.",
173    guideButton: "Ler a guía",
174    groupName: "Vibe Coding Educativo",
175    navWhatIs: "Que é",
176    navCommunity: "Comunidade",
177    navApps: "Aplicacións",
178    navResources: "Recursos",
179    navNewsletter: "Boletín",
180    navAgent: "Axente",
181    joinGroup: "Únete ao Grupo",
182    heroTitle: "Programa con Propósito e Vibe",
183    heroSubtitle:
184      "Un espazo para crear, compartir e aprender a desenvolver aplicacións educativas interactivas con linguaxe natural e Intelixencia Artificial.",
185    viewApps: "Ver Aplicacións",
186    viewNewsletter: "Ver Boletín",
187    agentButtonHeader: "Resolve as túas dúbidas co noso Axente",
188    joinTelegram: "Únete en Telegram",
189    whatIsTitle: "Que é o Vibe Coding Educativo?",
190    whatIsSubtitle:
191      "Unha nova forma de programar, máis intuitiva e accesible para todos os educadores.",
192    whatIsContent:
193      `<p><strong>Vibe Coding Educativo</strong> é un grupo e unha metodoloxía centrada na creación de aplicacións para o ensino mediante <em>vibe coding</em>: un enfoque de desenvolvemento baseado na <strong>linguaxe natural</strong> e apoiado por modelos de intelixencia artificial 🤖.</p><p>É un espazo para compartir aplicacións, resolver dúbidas técnicas e profundar no uso didáctico desta forma de programación asistida. Non necesitas ser un experto en código; se tes unha idea para unha ferramenta educativa, aquí podes aprender a facela realidade.</p><blockquote class="border-l-4 border-blue-500 pl-4 italic text-slate-700 dark:text-slate-300">"É facer programas a través da IA. Diceslle o que queres e faino." - Juanjo de Haro</blockquote><p>A clave está na conversa coa IA, refinando a idea paso a paso ata obter unha aplicación funcional e atractiva que podes integrar nas túas clases e recursos dixitais.</p>`,
194    learnWord: "Aprender",
195    createWord: "Crear",
196    communityTitle: "Unha Comunidade Aberta e Colaborativa",
197    communitySubtitle:
198      "Conectamos con outros apaixonados da tecnoloxía e a educación.",
199    card1Title: "Grupo de Telegram",
200    card1Desc:
201      "O corazón da nosa comunidade. Únete para compartir os teus proxectos, resolver dúbidas e aprender dos demais.",
202    card1Link: "Unirme ao grupo &rarr;",
203    card2Title: "ChatGPT-IA-edu",
204    card2Desc:
205      "Este grupo está vencellado coa comunidade especializada no uso educativo da IA nun sentido máis amplo. Nel atoparás outros grupos de interese sobre IA educativa.",
206    card2Link: "Visitar grupo &rarr;",
207    card3Title: "Coñecemento Aberto",
208    card3Desc:
209      "Adherímonos aos principios do Coñecemento Aberto, fomentando que a tecnoloxía e a educación sexan accesibles para todos.",
210    card3Link: "Ler principios &rarr;",
211    appsTitle: "Galería de Aplicacións",
212    appsSubtitle:
213      "Descubre o que creamos. Inspírate e crea a túa!",
214    exploreRepo: "Explorar o Repositorio Completo",
215    addAppNote:
216      "Para engadir a túa aplicación, utiliza o formulario oficial dispoñible no grupo de Telegram.",
217    resourcesTitle: "Recursos e Guías",
218    resourcesSubtitle:
219      "Ligazóns clave para comezar e profundar no Vibe Coding.",
220    resource1Title: "Manual de Vibe Coding Educativo",
221    resource1Desc:
222      "Unha guía completa con extractos de artigos sobre como crear aplicacións, onde publicalas e máis.",
223    resourceLink: "Acceder ao manual &rarr;",
224    resource2Title: "Como activar a IA en recursos educativos",
225    resource2Desc:
226      "Aprende a integrar chatbots de IA (Grok, ChatGPT, etc.) nos teus materiais dixitais como Moodle, eXeLearning ou Google Sites.",
227    readArticle: "Ler o artigo &rarr;",
228    newsletterTitle: "Boletín Semanal",
229    newsletterSubtitle:
230      "Un resumo das conversas, recursos e proxectos máis destacados da comunidade.",
231    newsletterDesc:
232      "Cada semana, recompilamos o máis relevante do noso grupo de Telegram para que non te perdas nada. Descobre novas ferramentas, debates interesantes e las últimas creacións dos membros.",
233    readNewsletter: "Ler o último boletín",
234    agentTitle: "Axente NotebookLM",
235    agentSubtitle:
236      "O teu asistente para resolver dúbidas sobre Vibe Coding Educativo ao instante.",
237    agentDesc:
238      "O noso axente NotebookLM recompila o coñecemento compartido pola comunidade e guíate con respostas contextualizadas e recursos recomendados.",
239    agentNote:
240      "Creamos un novo axente experto con NotebookLM a partir das conversas do grupo de Telegram, para que recibas respostas aliñadas coa experiencia colectiva.",
241    agentButton: "Abrir o Axente",
242    footerTitle:
243      "Participa, comparte, aprende e programa con propósito e vibe.",
244    joinConversation: "Únete á conversa",
245    footerCommunity: "Comunidade Vibe Coding Educativo.",
246    footerLicense: "Licenza Creative Commons BY-SA",
247  },
248  eu: {
249    guideBadge: "Komunitatearen gida",
250    guideTitle: "Vibe coding arduratsua",
251    guideDesc:
252      "IArekin sortutako materialak modu arduratsu eta etikoan argitaratzeko hamar gomendio: lizentziak, ikasleen datuak, irisgarritasuna eta nola egin ziren argi azaltzea. IAk jarrai ditzan jarraibideak eta edozein baliabide ebaluatzeko errubrika bat ditu.",
253    guideButton: "Gida irakurri",
254    groupName: "Vibe Coding Hezitzailea",
255    navWhatIs: "Zer da",
256    navCommunity: "Komunitatea",
257    navApps: "Aplikazioak",
258    navResources: "Baliabideak",
259    navNewsletter: "Buletina",
260    navAgent: "Agentea",
261    joinGroup: "Sartu Taldean",
262    heroTitle: "Programatu Helburu eta Viberekin",
263    heroSubtitle:
264      "Aplikazio hezitzaile interaktiboak hizkuntza naturalarekin eta Adimen Artifizialarekin sortzeko, partekatzeko eta ikasteko gunea.",
265    viewApps: "Ikusi Aplikazioak",
266    viewNewsletter: "Ikusi Buletina",
267    agentButtonHeader: "Argitu zure zalantzak gure agentearekin",
268    joinTelegram: "Sartu Telegramen",
269    whatIsTitle: "Zer da Vibe Coding Hezitzailea?",
270    whatIsSubtitle:
271      "Programatzeko modu berri bat, hezitzaile guztientzat intuitiboagoa eta eskuragarriagoa.",
272    whatIsContent:
273      `<p><strong>Vibe Coding Hezitzailea</strong> irakaskuntzarako aplikazioak sortzera bideratutako talde eta metodologia bat da, <em>vibe coding</em> bidez: <strong>hizkuntza naturalean</strong> oinarritutako eta adimen artifizialeko ereduek lagundutako garapen-ikuspegia 🤖.</p><p>Aplikazioak partekatzeko, zalantza teknikoak argitzeko eta programazio-modu lagundu honen erabilera didaktikoan sakontzeko gunea da. Ez duzu zertan kodean aditua izan; tresna hezitzaile baterako ideia bat baduzu, hemen errealitate bihurtzen ikas dezakezu.</p><blockquote class="border-l-4 border-blue-500 pl-4 italic text-slate-700 dark:text-slate-300">"Programak IAren bidez egitea da. Zer nahi duzun esaten diozu eta berak egiten du." - Juanjo de Haro</blockquote><p>Gakoa IA-rekin elkarrizketan datza, ideia pausoz pauso fintzen, zure klaseetan eta baliabide digitaletan integra dezakezun aplikazio funtzional eta erakargarri bat lortu arte.</p>`,
274    learnWord: "Ikasi",
275    createWord: "Sortu",
276    communityTitle: "Komunitate Ireki eta Kolaboratiboa",
277    communitySubtitle:
278      "Teknologiaren eta hezkuntzaren beste zale batzuekin konektatzen dugu.",
279    card1Title: "Telegram Taldea",
280    card1Desc:
281      "Gure komunitatearen bihotza. Bat egin zure proiektuak partekatzeko, zalantzak argitzeko eta besteengandik ikasteko.",
282    card1Link: "Taldean sartu &rarr;",
283    card2Title: "ChatGPT-IA-edu",
284    card2Desc:
285      "Talde hau IAren erabilera hezitzailean espezializatutako komunitatearekin lotuta dago zentzu zabalagoan. Bertan, hezkuntzako IAri buruzko beste interes-talde batzuk aurkituko dituzu.",
286    card2Link: "Taldea bisitatu &rarr;",
287    card3Title: "Ezagutza Irekia",
288    card3Desc:
289      "Ezagutza Irekiaren printzipioekin bat egiten dugu, teknologia eta hezkuntza guztiontzat eskuragarri egon daitezen sustatuz.",
290    card3Link: "Printzipioak irakurri &rarr;",
291    appsTitle: "Aplikazioen Galeria",
292    appsSubtitle:
293      "Ezagutu zer sortu dugun. Inspiratu zaitez eta sortu zurea!",
294    exploreRepo: "Arakatu Repositorio Osoa",
295    addAppNote:
296      "Zure aplikazioa gehitzeko, erabili Telegram taldean eskuragarri dagoen formulario ofiziala.",
297    resourcesTitle: "Baliabideak eta Gidak",
298    resourcesSubtitle:
299      "Vibe Coding-en hasteko eta sakontzeko funtsezko estekak.",
300    resource1Title: "Vibe Coding Hezitzailearen Eskuliburua",
301    resource1Desc:
302      "Gida osoa, aplikazioak nola sortu, non argitaratu eta gehiagori buruzko artikuluen pasarteekin.",
303    resourceLink: "Eskuliburura joan &rarr;",
304    resource2Title: "Nola aktibatu IA hezkuntza-baliabideetan",
305    resource2Desc:
306      "Ikasi nola integratu IAko chatbotak (Grok, ChatGPT, etab.) zure material digitaletan, hala nola Moodle, eXeLearning edo Google Sites.",
307    readArticle: "Artikulua irakurri &rarr;",
308    newsletterTitle: "Asteko Buletina",
309    newsletterSubtitle:
310      "Komunitateko elkarrizketa, baliabide eta proiektu nabarmenenen laburpena.",
311    newsletterDesc:
312      "Astero, gure Telegram taldeko garrantzitsuena biltzen dugu, ezer galdu ez dezazun. Ezagutu tresna berriak, eztabaida interesgarriak eta kideen azken sorkuntzak.",
313    readNewsletter: "Irakurri azken buletina",
314    agentTitle: "NotebookLM Agentea",
315    agentSubtitle:
316      "Vibe Coding Hezitzaileari buruzko zalantzak berehala argitzeko zure laguntzailea.",
317    agentDesc:
318      "NotebookLM agenteak komunitateak partekatutako ezagutza biltzen du eta testuinguruko erantzunak eta gomendatutako baliabideak eskaintzen dizkizu.",
319    agentNote:
320      "Telegram taldeko elkarrizketetatik abiatu eta NotebookLMrekin sortu dugun agente aditu berria da, komunitatearen esperientziarekin bat datozen erantzunak jasotzeko.",
321    agentButton: "Agentea ireki",
322    footerTitle:
323      "Parte hartu, partekatu, ikasi eta programatu helburu eta viberekin.",
324    joinConversation: "Sartu elkarrizketan",
325    footerCommunity: "Vibe Coding Educativo Komunitatea.",
326    footerLicense: "Creative Commons BY-SA Lizentzia",
327  },
328  en: {
329    guideBadge: "Community guide",
330    guideTitle: "Responsible vibe coding",
331    guideDesc:
332      "Ten recommendations for publishing materials created with AI responsibly and ethically: licences, students' data, accessibility and transparency about how they were made. It includes instructions for the AI to follow them and a rubric to evaluate any resource.",
333    guideButton: "Read the guide",
334    groupName: "Educational Vibe Coding",
335    navWhatIs: "What is it",
336    navCommunity: "Community",
337    navApps: "Apps",
338    navResources: "Resources",
339    navNewsletter: "Newsletter",
340    navAgent: "Agent",
341    joinGroup: "Join the Group",
342    heroTitle: "Code with Purpose and Vibe",
343    heroSubtitle:
344      "A space to create, share, and learn to develop interactive educational applications with natural language and Artificial Intelligence.",
345    agentButtonHeader: "Resolve your questions with our Agent",
346    joinTelegram: "Join on Telegram",
347    whatIsTitle: "What is Educational Vibe Coding?",
348    whatIsSubtitle:
349      "A new way of programming, more intuitive and accessible for all educators.",
350    whatIsContent:
351      `<p><strong>Educational Vibe Coding</strong> is a group and methodology focused on creating applications for teaching through <em>vibe coding</em>: a development approach based on <strong>natural language</strong> and supported by artificial intelligence models 🤖.</p><p>It is a space to share applications, solve technical doubts, and delve into the didactic use of this form of assisted programming. You don't need to be a coding expert; if you have an idea for an educational tool, you can learn to make it a reality here.</p><blockquote class="border-l-4 border-blue-500 pl-4 italic text-slate-700 dark:text-slate-300">"It's about making programs through AI. You tell it what you want, and it does it." - Juanjo de Haro</blockquote><p>The key is the conversation with the AI, refining the idea step by step to obtain a functional and attractive application that you can integrate into your classes and digital resources.</p>`,
352    learnWord: "Learn",
353    createWord: "Create",
354    communityTitle: "An Open and Collaborative Community",
355    communitySubtitle:
356      "We connect with other technology and education enthusiasts.",
357    card1Title: "Telegram Group",
358    card1Desc:
359      "The heart of our community. Join to share your projects, solve doubts, and learn from others.",
360    card1Link: "Join the group &rarr;",
361    card2Title: "ChatGPT-AI-edu",
362    card2Desc:
363      "This group is linked to the community specializing in the educational use of AI in a broader sense. In it, you will find other interest groups on educational AI.",
364    card2Link: "Visit group &rarr;",
365    card3Title: "Open Knowledge",
366    card3Desc:
367      "We adhere to the principles of Open Knowledge, promoting that technology and education are accessible to all.",
368    card3Link: "Read principles &rarr;",
369    appsTitle: "Application Gallery",
370    appsSubtitle:
371      "Discover what we've created. Get inspired and create your own!",
372    exploreRepo: "Explore the Full Repository",
373    addAppNote:
374      "To add your application, use the official form available in the Telegram group.",
375    resourcesTitle: "Resources and Guides",
376    resourcesSubtitle:
377      "Key links to get started and delve deeper into Vibe Coding.",
378    resource1Title: "Educational Vibe Coding Manual",
379    resource1Desc:
380      "A complete guide with excerpts from articles on how to create applications, where to publish them, and more.",
381    resourceLink: "Access the manual &rarr;",
382    resource2Title:
383      "How to activate AI in educational resources",
384    resource2Desc:
385      "Learn how to integrate AI chatbots (Grok, ChatGPT, etc.) into your digital materials like Moodle, eXeLearning, or Google Sites.",
386    readArticle: "Read the article &rarr;",
387    newsletterTitle: "Weekly Newsletter",
388    newsletterSubtitle:
389      "A summary of the community's most outstanding conversations, resources, and projects.",
390    newsletterDesc:
391      "Every week, we compile the most relevant content from our Telegram group so you don't miss a thing. Discover new tools, interesting debates, and the latest creations from our members.",
392    readNewsletter: "Read the latest newsletter",
393    agentTitle: "NotebookLM Agent",
394    agentSubtitle:
395      "Your assistant for instant answers about Vibe Coding Educativo.",
396    agentDesc:
397      "Our NotebookLM agent distills the community's knowledge to guide you with contextual answers and curated resources.",
398    agentNote:
399      "We built this new expert agent in NotebookLM using the Telegram group's conversations so you get answers that reflect our collective experience.",
400    agentButton: "Open the Agent",
401    footerTitle:
402      "Participate, share, learn, and code with purpose and vibe.",
403    joinConversation: "Join the conversation",
404    footerCommunity: "Vibe Coding Educativo Community.",
405    footerLicense: "Creative Commons BY-SA License",
406  },
407};
408
409function setLanguage(lang) {
410  if (!translations[lang]) return;
411  document.documentElement.lang = lang;
412  const langStrings = translations[lang];
413  document.querySelectorAll('[data-lang]').forEach((el) => {
414    const key = el.dataset.lang;
415    if (langStrings[key]) {
416      if (key === 'whatIsContent') {
417        // Conservar el contenedor y sus clases (incl. variantes dark)
418        el.innerHTML = langStrings[key];
419      } else {
420        el.innerHTML = langStrings[key];
421      }
422    }
423  });
424  // Enlaces e imágenes que existen en cada idioma, como la guía «Vibe coding responsable»
425  document.querySelectorAll('[data-href-lang]').forEach((el) => {
426    el.href = el.dataset.hrefLang.replace('{lang}', lang);
427  });
428  document.querySelectorAll('[data-src-lang]').forEach((el) => {
429    el.src = el.dataset.srcLang.replace('{lang}', lang);
430  });
431  localStorage.setItem('vibeLang', lang);
432}
433
434function getInitialLanguage() {
435  const savedLang = localStorage.getItem('vibeLang');
436  if (savedLang && translations[savedLang]) {
437    return savedLang;
438  }
439  const browserLang = navigator.language.split('-')[0];
440  return translations[browserLang] ? browserLang : 'es';
441}
442
443document.addEventListener('DOMContentLoaded', () => {
444  const mobileMenuButton = document.getElementById('mobile-menu-button');
445  const mobileMenu = document.getElementById('mobile-menu');
446  const langSelector = document.getElementById('lang-selector');
447  // Controles de tema eliminados: solo se respeta el modo del sistema
448
449  if (mobileMenuButton && mobileMenu) {
450    mobileMenuButton.addEventListener('click', () => {
451      mobileMenu.classList.toggle('hidden');
452    });
453
454    const navLinks = document.querySelectorAll('#mobile-menu a, #main-nav a');
455    navLinks.forEach((link) => {
456      link.addEventListener('click', () => {
457        mobileMenu.classList.add('hidden');
458      });
459    });
460  }
461
462  const initialLang = getInitialLanguage();
463  if (langSelector) langSelector.value = initialLang;
464  setLanguage(initialLang);
465
466  if (langSelector) {
467    langSelector.addEventListener('change', (e) => {
468      setLanguage(e.target.value);
469    });
470  }
471
472  const agentOpenButton = document.getElementById('agent-open-button');
473  if (agentOpenButton) {
474    agentOpenButton.addEventListener('click', (event) => {
475      event.preventDefault();
476      const popupWidth = 960;
477      const popupHeight = 720;
478      const dualScreenLeft = window.screenLeft ?? window.screenX ?? 0;
479      const dualScreenTop = window.screenTop ?? window.screenY ?? 0;
480      const viewportWidth =
481        window.innerWidth || document.documentElement.clientWidth || screen.width;
482      const viewportHeight =
483        window.innerHeight || document.documentElement.clientHeight || screen.height;
484      const left = Math.max(0, dualScreenLeft + (viewportWidth - popupWidth) / 2);
485      const top = Math.max(0, dualScreenTop + (viewportHeight - popupHeight) / 2);
486      const agentUrl = agentOpenButton.getAttribute('href');
487      const features = [
488        'noopener=yes',
489        'noreferrer=yes',
490        `width=${popupWidth}`,
491        `height=${popupHeight}`,
492        `left=${Math.round(left)}`,
493        `top=${Math.round(top)}`,
494        'resizable=yes',
495        'scrollbars=yes',
496        'toolbar=no',
497        'location=no',
498        'status=no',
499        'menubar=no',
500      ].join(',');
501      const agentWindow = window.open(agentUrl, 'vibeAgentWindow', features);
502      if (agentWindow) {
503        agentWindow.focus();
504        return;
505      }
506
507      console.warn('Autoriza las ventanas emergentes para abrir el agente.');
508    });
509  }
510
511  // Sin lógica de tema manual
512});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.