11import { useRef } from 'react'
22import { useScrollReveal } from '../../hooks/useScrollReveal'
3+ import { useLang } from '../../context/LangContext'
34
45export function About ( ) {
56 const sectionRef = useRef < HTMLElement > ( null )
67 useScrollReveal ( sectionRef )
8+ const { t } = useLang ( )
79
810 return (
911 < section id = "sobre" ref = { sectionRef } >
@@ -13,52 +15,38 @@ export function About() {
1315 < circle cx = "12" cy = "8" r = "4" />
1416 < path d = "M20 21a8 8 0 10-16 0" />
1517 </ svg >
16- // whoami
18+ { t ( 'about.tag' ) }
1719 </ div >
18- < h2 > Sobre mí </ h2 >
20+ < h2 > { t ( 'about.h2' ) } </ h2 >
1921
2022 < div className = "hud-card reveal" >
2123 < div className = "hud-corner-tr" />
2224 < div className = "hud-corner-bl" />
2325 < div className = "hud-scan" />
2426
25- { /* circuit traces decorativas */ }
2627 < svg className = "hud-circuit" viewBox = "0 0 800 320" preserveAspectRatio = "xMidYMid meet" xmlns = "http://www.w3.org/2000/svg" >
27- { /* trazos izquierda */ }
2828 < path d = "M0 40 H30 V80 H60 V40 H120" stroke = "rgba(56,189,248,.07)" fill = "none" strokeWidth = "1" />
2929 < path d = "M0 200 H50 V160 H90" stroke = "rgba(56,189,248,.06)" fill = "none" strokeWidth = "1" />
3030 < path d = "M0 280 H20 V240 H70 V260 H110" stroke = "rgba(129,140,248,.05)" fill = "none" strokeWidth = "1" />
31- { /* nodos izquierda */ }
3231 < circle cx = "30" cy = "80" r = "2" fill = "rgba(56,189,248,.12)" />
3332 < circle cx = "60" cy = "40" r = "2" fill = "rgba(56,189,248,.12)" />
3433 < circle cx = "50" cy = "160" r = "2" fill = "rgba(56,189,248,.10)" />
3534 < circle cx = "20" cy = "240" r = "2" fill = "rgba(129,140,248,.10)" />
3635 < circle cx = "70" cy = "260" r = "2" fill = "rgba(129,140,248,.10)" />
37- { /* trazos derecha */ }
3836 < path d = "M800 60 H770 V100 H730 V60 H680" stroke = "rgba(129,140,248,.07)" fill = "none" strokeWidth = "1" />
3937 < path d = "M800 180 H750 V220 H710" stroke = "rgba(129,140,248,.06)" fill = "none" strokeWidth = "1" />
4038 < path d = "M800 290 H780 V250 H730 V270 H690" stroke = "rgba(56,189,248,.05)" fill = "none" strokeWidth = "1" />
41- { /* nodos derecha */ }
4239 < circle cx = "770" cy = "100" r = "2" fill = "rgba(129,140,248,.12)" />
4340 < circle cx = "730" cy = "60" r = "2" fill = "rgba(129,140,248,.12)" />
4441 < circle cx = "750" cy = "220" r = "2" fill = "rgba(129,140,248,.10)" />
4542 < circle cx = "780" cy = "250" r = "2" fill = "rgba(56,189,248,.10)" />
4643 < circle cx = "730" cy = "270" r = "2" fill = "rgba(56,189,248,.10)" />
47- { /* dot matrix sutil fondo */ }
4844 < circle cx = "200" cy = "60" r = "1" fill = "rgba(255,255,255,.04)" />
49- < circle cx = "250" cy = "60" r = "1" fill = "rgba(255,255,255,.04)" />
5045 < circle cx = "300" cy = "60" r = "1" fill = "rgba(255,255,255,.04)" />
51- < circle cx = "350" cy = "60" r = "1" fill = "rgba(255,255,255,.04)" />
5246 < circle cx = "400" cy = "60" r = "1" fill = "rgba(255,255,255,.04)" />
53- < circle cx = "450" cy = "60" r = "1" fill = "rgba(255,255,255,.04)" />
5447 < circle cx = "500" cy = "60" r = "1" fill = "rgba(255,255,255,.04)" />
55- < circle cx = "550" cy = "60" r = "1" fill = "rgba(255,255,255,.04)" />
56- < circle cx = "600" cy = "60" r = "1" fill = "rgba(255,255,255,.04)" />
5748 < circle cx = "200" cy = "260" r = "1" fill = "rgba(255,255,255,.04)" />
58- < circle cx = "300" cy = "260" r = "1" fill = "rgba(255,255,255,.04)" />
5949 < circle cx = "400" cy = "260" r = "1" fill = "rgba(255,255,255,.04)" />
60- < circle cx = "500" cy = "260" r = "1" fill = "rgba(255,255,255,.04)" />
61- < circle cx = "600" cy = "260" r = "1" fill = "rgba(255,255,255,.04)" />
6250 </ svg >
6351
6452 < div className = "hud-header" >
@@ -69,38 +57,38 @@ export function About() {
6957
7058 < div className = "hud-rows" >
7159 < div className = "hud-row" >
72- < span className = "hud-key" > nombre </ span >
60+ < span className = "hud-key" > { t ( 'about.key.name' ) } </ span >
7361 < span className = "hud-val" > < span className = "hud-val-accent" > Justino Rojas Sartorio</ span > </ span >
7462 </ div >
7563 < div className = "hud-row" >
76- < span className = "hud-key" > alias</ span >
64+ < span className = "hud-key" > { t ( 'about.key. alias' ) } </ span >
7765 < span className = "hud-val" style = { { fontFamily : "'JetBrains Mono',monospace" , fontSize : '13px' , color : 'var(--accent)' } } > devsart95</ span >
7866 </ div >
7967 < div className = "hud-row" >
80- < span className = "hud-key" > ubicación </ span >
68+ < span className = "hud-key" > { t ( 'about.key.location' ) } </ span >
8169 < span className = "hud-val" > San Pedro, Paraguay 🇵🇾</ span >
8270 </ div >
8371 < div className = "hud-row" >
84- < span className = "hud-key" > rol </ span >
72+ < span className = "hud-key" > { t ( 'about.key.role' ) } </ span >
8573 < span className = "hud-val" >
86- < span className = "hud-tag" > fullstack dev </ span >
87- < span className = "hud-tag" > AI enthusiast </ span >
88- < span className = "hud-tag" > agro worker </ span >
74+ < span className = "hud-tag" > { t ( 'about.tag. fullstack' ) } </ span >
75+ < span className = "hud-tag" > { t ( 'about.tag.ai' ) } </ span >
76+ < span className = "hud-tag" > { t ( 'about.tag. agro' ) } </ span >
8977 </ span >
9078 </ div >
9179 < div className = "hud-row" >
92- < span className = "hud-key" > foco </ span >
93- < span className = "hud-val" style = { { color : 'var(--muted2)' , fontSize : '13px' } } > IA aplicada · SaaS para LATAM · herramientas reales </ span >
80+ < span className = "hud-key" > { t ( 'about.key.focus' ) } </ span >
81+ < span className = "hud-val" style = { { color : 'var(--muted2)' , fontSize : '13px' } } > { t ( 'about.focus.text' ) } </ span >
9482 </ div >
9583 < div className = "hud-row" >
96- < span className = "hud-key" > modo </ span >
97- < span className = "hud-val" style = { { fontSize : '13px' , color : 'var(--muted2)' , fontStyle : 'italic' } } > "Experimentando con IA. Construyendo cosas reales." </ span >
84+ < span className = "hud-key" > { t ( 'about.key.mode' ) } </ span >
85+ < span className = "hud-val" style = { { fontSize : '13px' , color : 'var(--muted2)' , fontStyle : 'italic' } } > { t ( 'about.mode.text' ) } </ span >
9886 </ div >
9987 </ div >
10088
10189 < div className = "hud-footer" >
10290 < div className = "hud-footer-line" />
103- < span className = "hud-status" > ONLINE · SAN PEDRO · PY </ span >
91+ < span className = "hud-status" > { t ( 'about.status' ) } </ span >
10492 </ div >
10593 </ div >
10694 </ div >
0 commit comments