Web TippsUse custom web fonts in Google Sheets charts(08.09.2026 um 17:05 Uhr)
Web TippsIntroducing the new 1Password App for Google Chat(08.09.2026 um 18:02 Uhr)
Web TippsUse custom web fonts in Google Sheets charts(08.09.2026 um 17:05 Uhr)
Web TippsIntroducing the new 1Password App for Google Chat(08.09.2026 um 18:02 Uhr)

🔧 Programmierung 🕛 vor 2 Monaten 3 Min Lesezeit
0

5 idiomas, 8,560 skills: cómo construimos un marketplace MCP multilingüe

↗ Quelle (dev.to)
🗣️ Stimme:
📑 Inhaltsübersicht

Cuando lanzamos MarketNow hace 2 semanas, todo estaba en inglés. Hoy soportamos 5 idiomas: English, Español, Português, 中文, Français. Este artículo explica cómo lo hicimos sin react-i18next ni librerías pesadas.






El problema



MarketNow es un marketplace de 8,560 MCP skills. Nuestros usuarios son:





  • Desarrolladores en EE.UU. y Europa (inglés)


  • Agentes IA que consumen JSON (language-agnostic)


  • Comunidades dev en Latinoamérica (español/portugués)


  • Mercado AI en China (chino — el segundo más grande del mundo)


  • Comunidades en Francia, Quebec, África francófona



Un sitio solo en inglés pierde ~60% del tráfico potencial.






La solución: Context + CONTENT objects






1. LanguageContext



Creamos un context simple que persiste el idioma en localStorage:




CODE
const LanguageContext = createContext(null);

export function LanguageProvider({ children }) {
const [lang, setLang] = useState(detectInitialLang);

const t = useCallback((key, vars) => {
const dict = TRANSLATIONS[lang] || TRANSLATIONS[DEFAULT_LANG];
let str = dict[key] ?? TRANSLATIONS[DEFAULT_LANG][key] ?? key;
// Interpolate {count} → params.count
if (vars) {
for (const [k, v] of Object.entries(vars)) {
str = str.replace(new RegExp(`\{${k}\}`, 'g'), String(v));
}
}
return str;
}, [lang]);

return (
<LanguageContext.Provider value={{ lang, setLang, t }}>
{children}
</LanguageContext.Provider>
);
}









2. Translation dictionary



Un solo archivo translations.js con ~400 keys × 5 idiomas:




CODE
export const TRANSLATIONS = {
en: {
'nav.marketplace': 'MARKETPLACE',
'hero.title1': 'The trust layer for',
'hero.title2': 'agent commerce.',
'home.freeTitle': '⚡ {count} Free Skills — Install Now',
// ... 400+ keys
},
es: { /* ... */ },
pt: { /* ... */ },
zh: { /* ... */ },
fr: { /* ... */ },
};









3. CONTENT objects para páginas complejas



Las páginas con mucho contenido (Trust, Security, About) usan un patrón CONTENT:




CODE
const CONTENT = {
en: {
title: 'Trust Roadmap',
points: [
{ title: 'Human-in-the-loop by default', claudeSaid: '...', whatWeDid: [...] },
// ... 7 points
],
},
es: { /* ... */ },
// ... 5 languages
};

export default function Trust() {
const { lang } = useLang();
const c = CONTENT[lang] || CONTENT.en;
return <h1>{c.title}</h1>;
}









Lo que aprendimos






1. NO uses display:none para SEO content



Primero usamos <div class="sr-only"> con CSS para esconder contenido SEO. Resultado: Google lo indexaba, pero los usuarios con screen readers lo veían duplicado. Mezclaba idiomas.



Solución: <noscript> tag. Google lo indexa inmediatamente, los usuarios con JS ven React.






2. Las categorías técnicas se mantienen en inglés



"AI/ML", "DevOps", "Security" — son términos universales. Los tradujimos pero mantuvimos los originales como fallback.






3. El selector de idioma debe ser visible



Pusimos un dropdown con banderas (🇺🇸🇪🇸🇧🇷🇨🇳🇫🇷). Click → cambia todo al instante, sin reload.






Resultado





  • 5 idiomas completos (no parciales)


  • 400+ strings traducidos por idioma


  • 23 páginas con contenido traducido


  • 0 librerías externas (solo React Context)


  • Persistencia en localStorage


  • Detección automática del idioma del navegador






Links





¿Qué idioma deberíamos añadir next? Estamos considerando japonés (ja) y alemán (de).






MarketNow es la capa de confianza para el comercio de agentes. 8,560 MCP skills, Sentinel L2 security, x402 + USDC on Base. Maintained by AliceLabs LLC (Wyoming, USA).

Vollständiger Original-Bericht
Ausführliche Details, Code-Beispiele & Hersteller-Stellungnahme auf dev.to.
↗ Original-Artikel auf dev.to lesen
Wie bewertest du diesen Beitrag?
1 Klick Feedback
Teilen mit Netzwerk & Team:

Community-Analysen & Experten-Meinungen 0

Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
Community Pulse: Relevanz-Einschätzung
1 Klick Experten-Votum
🔴 Akute Relevanz 0%
🟡 In Evaluierung 0%
🟢 Keine Auswirkung 0%
Spannende Innovation 0%
Verwandte Story-Cluster & Quellen (Vektor-KI)
Port 8095 Engine
3 Quellen
Use custom web fonts in Google Sheets charts
2 Quellen
Introducing the new 1Password App for Google Chat
1 Quelle
Context-aware access controls are available for Gemini Enterprise in the Admin console
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten 5 idiomas, 8,560 skills: cómo construimos un marketplace MCP multilingüe

Thematisch verwandte Begriffe: idiomas, 8560, skills, cómo · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...