Skip to content

Commit 3ec23f9

Browse files
brunoborgesCopilot
andcommitted
Add Brazilian Portuguese (pt_BR) and Spanish (es) localization
- Locale picker UI (🌐 globe dropdown) on all docs pages - Translated workshop markdown (workshop/pt_BR/, workshop/es/) - Translated docs site pages (docs/pt_BR/, docs/es/) - Translated READMEs with locale badges - hreflang SEO tags on all HTML pages Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent ce966cf commit 3ec23f9

25 files changed

+3121
-1
lines changed

README.es.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
<!-- l10n-sync: source-file="README.md" -->
2+
# Soc Ops
3+
4+
Juego de Social Bingo para encuentros presenciales. ¡Encuentra personas que coincidan con las preguntas y consigue 5 en línea!
5+
6+
📚 **[Ver Guía del Lab](workshop/es/GUIDE.md)**
7+
8+
---
9+
10+
## 📚 Guía del Lab
11+
12+
| Parte | Título |
13+
|-------|--------|
14+
| [**00**](workshop/es/00-overview.md) | Descripción General y Lista de Verificación |
15+
| [**01**](workshop/es/01-setup.md) | Configuración e Ingeniería de Contexto |
16+
| [**02**](workshop/es/02-design.md) | Desarrollo Frontend Orientado al Diseño |
17+
| [**03**](workshop/es/03-quiz-master.md) | Quiz Master Personalizado |
18+
| [**04**](workshop/es/04-multi-agent.md) | Desarrollo Multi-Agente |
19+
20+
> 📝 Las guías del lab también están disponibles en la carpeta [`workshop/es/`](workshop/es/) para lectura sin conexión.
21+
22+
---
23+
24+
## Requisitos Previos
25+
26+
- [Java 21 JDK](https://adoptium.net/) o superior
27+
- [Apache Maven 3.9+](https://maven.apache.org/) (o usa el Maven Wrapper incluido)
28+
29+
## Ejecutar
30+
31+
```bash
32+
cd socops
33+
./mvnw spring-boot:run
34+
```
35+
36+
## Compilar
37+
38+
```bash
39+
cd socops
40+
./mvnw clean package
41+
```
42+
43+
## Pruebas
44+
45+
```bash
46+
cd socops
47+
./mvnw test
48+
```
49+
50+
Se despliega automáticamente a GitHub Pages con cada push a `main`.

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
🌐 [Português (BR)](README.pt_BR.md) | [Español](README.es.md)
2+
13
# Soc Ops
24

35
Social Bingo game for in-person mixers. Find people who match the questions and get 5 in a row!

README.pt_BR.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
<!-- l10n-sync: source-file="README.md" -->
2+
# Soc Ops
3+
4+
Jogo de Social Bingo para encontros presenciais. Encontre pessoas que correspondam às perguntas e faça 5 em linha!
5+
6+
📚 **[Ver Guia do Lab](workshop/pt_BR/GUIDE.md)**
7+
8+
---
9+
10+
## 📚 Guia do Lab
11+
12+
| Parte | Título |
13+
|-------|--------|
14+
| [**00**](workshop/pt_BR/00-overview.md) | Visão Geral & Lista Rápida |
15+
| [**01**](workshop/pt_BR/01-setup.md) | Configuração & Engenharia de Contexto |
16+
| [**02**](workshop/pt_BR/02-design.md) | Frontend Design-First |
17+
| [**03**](workshop/pt_BR/03-quiz-master.md) | Quiz Master Personalizado |
18+
| [**04**](workshop/pt_BR/04-multi-agent.md) | Desenvolvimento Multi-Agente |
19+
20+
> 📝 Os guias do lab também estão disponíveis na pasta [`workshop/pt_BR/`](workshop/pt_BR/) para leitura offline.
21+
22+
---
23+
24+
## Pré-requisitos
25+
26+
- [Java 21 JDK](https://adoptium.net/) ou superior
27+
- [Apache Maven 3.9+](https://maven.apache.org/) (ou use o Maven Wrapper incluído)
28+
29+
## Executar
30+
31+
```bash
32+
cd socops
33+
./mvnw spring-boot:run
34+
```
35+
36+
## Build
37+
38+
```bash
39+
cd socops
40+
./mvnw clean package
41+
```
42+
43+
## Testes
44+
45+
```bash
46+
cd socops
47+
./mvnw test
48+
```
49+
50+
O deploy é feito automaticamente no GitHub Pages ao fazer push para `main`.

docs/es/index.html

Lines changed: 210 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,210 @@
1+
<!DOCTYPE html>
2+
<html lang="es">
3+
<head>
4+
<!-- Google tag (gtag.js) -->
5+
<script async src="https://www.googletagmanager.com/gtag/js?id=G-LSC44NDPLQ"></script>
6+
<script>
7+
window.dataLayer = window.dataLayer || [];
8+
function gtag(){dataLayer.push(arguments);}
9+
gtag('js', new Date());
10+
gtag('config', 'G-LSC44NDPLQ');
11+
</script>
12+
<meta charset="UTF-8">
13+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
14+
<title>VS Code GitHub Copilot Agent Lab | Edición Java</title>
15+
<link rel="preconnect" href="https://fonts.googleapis.com">
16+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
17+
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;700&family=Space+Grotesk:wght@400;500;700&display=swap" rel="stylesheet">
18+
<link rel="alternate" hreflang="en" href="https://copilot-dev-days.github.io/agent-lab-java/">
19+
<link rel="alternate" hreflang="pt-BR" href="https://copilot-dev-days.github.io/agent-lab-java/pt_BR/">
20+
<link rel="alternate" hreflang="es" href="https://copilot-dev-days.github.io/agent-lab-java/es/">
21+
<link rel="alternate" hreflang="x-default" href="https://copilot-dev-days.github.io/agent-lab-java/">
22+
<link rel="stylesheet" href="../styles.css">
23+
<link rel="stylesheet" href="../light-theme.css">
24+
<script src="../theme-toggle.js"></script>
25+
</head>
26+
<body>
27+
<div style="position:fixed;top:1rem;right:1rem;z-index:1000;display:flex;gap:0.5rem;align-items:center;">
28+
<div class="locale-picker" id="localePicker">
29+
<button type="button" class="locale-toggle" aria-haspopup="listbox" aria-expanded="false" aria-label="Seleccionar idioma">🌐</button>
30+
<ul role="listbox" aria-label="Idioma">
31+
<li role="option" data-locale="en" aria-selected="false">🇬🇧 English</li>
32+
<li role="option" data-locale="es" aria-selected="true" class="active">🇪🇸 Español</li>
33+
<li role="option" data-locale="pt-BR" aria-selected="false">🇧🇷 Português (Brasil)</li>
34+
</ul>
35+
</div>
36+
<button class="theme-toggle" onclick="toggleTheme()">☀️ Claro</button>
37+
</div>
38+
<div class="container">
39+
<!-- Hero -->
40+
<section class="hero">
41+
<span class="hero-badge">🚀 Java 21 + Spring Boot</span>
42+
<h1>VS Code GitHub Copilot Agent Lab</h1>
43+
<p class="hero-subtitle">
44+
Construye un juego de Bingo Social mientras dominas el Modo Agente de VS Code con GitHub Copilot.
45+
Aprende ingeniería de contexto, agentes personalizados y flujos de trabajo de desarrollo con IA.
46+
</p>
47+
<div class="hero-cta">
48+
<a href="step.html?step=00-overview" class="btn btn-primary">
49+
🚀 Iniciar Taller
50+
</a>
51+
<a href="https://github.com/copilot-dev-days/agent-lab-java" class="btn btn-secondary">
52+
📦 Repositorio GitHub
53+
</a>
54+
</div>
55+
<p class="hero-also">También disponible en <a href="https://copilot-dev-days.github.io/agent-lab-dotnet/">.NET</a>, <a href="https://copilot-dev-days.github.io/agent-lab-python/">Python</a> y <a href="https://copilot-dev-days.github.io/agent-lab-typescript/">TypeScript</a></p>
56+
<div class="stats">
57+
<div class="stat">
58+
<div class="stat-value">~1h</div>
59+
<div class="stat-label">Duración</div>
60+
</div>
61+
<div class="stat">
62+
<div class="stat-value">4</div>
63+
<div class="stat-label">Partes</div>
64+
</div>
65+
<div class="stat">
66+
<div class="stat-value">9</div>
67+
<div class="stat-label">Checkpoints</div>
68+
</div>
69+
</div>
70+
</section>
71+
72+
<!-- Features -->
73+
<section class="features">
74+
<h2 class="section-title">Lo que Aprenderás</h2>
75+
<div class="features-grid">
76+
<div class="feature-card">
77+
<div class="feature-icon">🧠</div>
78+
<h3>Ingeniería de Contexto</h3>
79+
<p>Enseña a la IA sobre tu código con instrucciones, haciendo las sugerencias de Copilot más precisas y relevantes.</p>
80+
</div>
81+
<div class="feature-card">
82+
<div class="feature-icon">🤖</div>
83+
<h3>Primitivas Agénticas</h3>
84+
<p>Usa agentes en segundo plano, agentes en la nube y flujos personalizados para escalar tu desarrollo.</p>
85+
</div>
86+
<div class="feature-card">
87+
<div class="feature-icon">🎨</div>
88+
<h3>Desarrollo Design-First</h3>
89+
<p>Deja que la IA itere en la UI mientras tú guías la visión creativa con agentes de diseño especializados.</p>
90+
</div>
91+
<div class="feature-card">
92+
<div class="feature-icon">🧪</div>
93+
<h3>Desarrollo Guiado por Pruebas</h3>
94+
<p>Construye funcionalidades confiables usando agentes TDD con el flujo Red-Green-Refactor.</p>
95+
</div>
96+
</div>
97+
</section>
98+
99+
<!-- Workshop Parts -->
100+
<section class="workshop">
101+
<h2 class="section-title">Partes del Taller</h2>
102+
<div class="parts-list">
103+
<a href="step.html?step=01-setup" class="part-card">
104+
<div class="part-number">01</div>
105+
<div class="part-content">
106+
<h3>Configuración & Ingeniería de Contexto</h3>
107+
<p>Clona, configura y enseña a la IA sobre tu proyecto</p>
108+
</div>
109+
<span class="part-time">15 min</span>
110+
</a>
111+
<a href="step.html?step=02-design" class="part-card">
112+
<div class="part-number">02</div>
113+
<div class="part-content">
114+
<h3>Frontend Design-First</h3>
115+
<p>Rediseña la UI con temas creativos usando el Modo Plan</p>
116+
</div>
117+
<span class="part-time">15 min</span>
118+
</a>
119+
<a href="step.html?step=03-quiz-master" class="part-card">
120+
<div class="part-number">03</div>
121+
<div class="part-content">
122+
<h3>Quiz Master Personalizado</h3>
123+
<p>Crea preguntas de quiz temáticas con agentes personalizados</p>
124+
</div>
125+
<span class="part-time">10 min</span>
126+
</a>
127+
<a href="step.html?step=04-multi-agent" class="part-card">
128+
<div class="part-number">04</div>
129+
<div class="part-content">
130+
<h3>Desarrollo Multi-Agente</h3>
131+
<p>Construye nuevas funcionalidades con agentes TDD y de diseño</p>
132+
</div>
133+
<span class="part-time">20 min</span>
134+
</a>
135+
</div>
136+
</section>
137+
</div>
138+
139+
<!-- Prerequisites -->
140+
<section class="prereqs">
141+
<div class="container">
142+
<h2 class="section-title">Requisitos Previos</h2>
143+
<div class="prereqs-grid">
144+
<div class="prereq-item">
145+
<span class="prereq-check"></span>
146+
<span>VS Code v1.107+</span>
147+
</div>
148+
<div class="prereq-item">
149+
<span class="prereq-check"></span>
150+
<span>GitHub Copilot</span>
151+
</div>
152+
<div class="prereq-item">
153+
<span class="prereq-check"></span>
154+
<span>Java 21 JDK</span>
155+
</div>
156+
<div class="prereq-item">
157+
<span class="prereq-check"></span>
158+
<span>Git instalado</span>
159+
</div>
160+
</div>
161+
</div>
162+
</section>
163+
164+
<div class="container">
165+
<!-- Footer -->
166+
<footer>
167+
<div class="footer-links">
168+
<a href="https://github.com/copilot-dev-days/agent-lab-java">Repositorio GitHub</a>
169+
<a href="https://www.youtube.com/code">VS Code YouTube</a>
170+
<a href="https://code.visualstudio.com/docs/copilot/overview">Docs de Copilot</a>
171+
<a href="https://github.com/github/awesome-copilot">Awesome Copilot</a>
172+
</div>
173+
<p class="footer-credit">
174+
Hecho con 💜 por el equipo de VS Code
175+
</p>
176+
</footer>
177+
</div>
178+
<script>
179+
(function(){
180+
var match=location.pathname.match(/\/(pt_BR|es)\//);
181+
var locale=match?match[1]:'en';
182+
var picker=document.getElementById('localePicker');
183+
if(!picker)return;
184+
var btn=picker.querySelector('.locale-toggle'),list=picker.querySelector('ul');
185+
list.querySelectorAll('li').forEach(function(li){
186+
var l=li.dataset.locale==='pt-BR'?'pt_BR':li.dataset.locale;
187+
if(l===locale){li.classList.add('active');li.setAttribute('aria-selected','true');}
188+
else{li.classList.remove('active');li.setAttribute('aria-selected','false');}
189+
});
190+
function open(){list.style.display='block';btn.setAttribute('aria-expanded','true');}
191+
function close(){list.style.display='none';btn.setAttribute('aria-expanded','false');}
192+
btn.addEventListener('click',function(e){e.stopPropagation();list.style.display==='block'?close():open();});
193+
document.addEventListener('click',close);
194+
document.addEventListener('keydown',function(e){if(e.key==='Escape')close();});
195+
list.querySelectorAll('li').forEach(function(li){
196+
li.addEventListener('click',function(e){
197+
e.stopPropagation();
198+
var t=li.dataset.locale==='pt-BR'?'pt_BR':li.dataset.locale;
199+
if(t===locale){close();return;}
200+
var p=location.pathname;
201+
if(locale!=='en')p=p.replace(new RegExp('/'+locale+'/'),'/');;
202+
if(t!=='en'){var base=p.replace(/\/index\.html$/,'/');if(!base.endsWith('/'))base+='/';p=base+t+'/';}
203+
localStorage.setItem('preferred-locale',t);
204+
window.location.href=p;
205+
});
206+
});
207+
})();
208+
</script>
209+
</body>
210+
</html>

0 commit comments

Comments
 (0)