# Etiquetas de idioma que los clientes de verdad usen

**Status:** Drafting · **Opened:** 2026-07-10

Nostr no tiene una forma ratificada de decir en qué idioma está escrito un evento. El propio fundador de Soapbox lo intentó — NIP-37 "Language Tag" se cerró sin fusionarse en 2024, con la objeción de que "las herramientas de traducción automática ya detectan el idioma de todos modos". Una segunda propuesta (PR #1127) sigue abierta, sin fusionarse. Mientras tanto, el lado de lectura ya existe: NIP-50 define un filtro de búsqueda `language:` y hay software de relay que lo implementa — pero casi nadie etiqueta al publicar de forma consistente, así que no hay nada confiable que filtrar. Resultado: una persona hispanohablante no puede pedir su propio idioma de manera confiable.

## La brecha

No falta una especificación. NIP-32 (etiquetado) está ratificado y su propio texto contiene el ejemplo — `["L","ISO-639-1"], ["l","en","ISO-639-1"]`. Lo que falta es una convención del lado de publicación y un ciclo de adopción. Y la objeción de la detección automática falla justo donde vivimos nosotros: notas cortas, texto mezclado español/inglés, y filtrado a nivel de relay que no debería exigir analizar el contenido de cada evento.

## Lo que estamos esbozando

Un documento de convención delgado: etiquetas de idioma NIP-32 en los kinds 1 y 30023, metadatos NIP-89 localizados para que los directorios de aplicaciones no existan solo en inglés, y una advertencia de espacios de nombres (NIP-C0 ya usa una etiqueta `l` para lenguaje de *programación*). Implementaciones de referencia, no solo prosa: un skill de MKStack, y nuestras capas en español etiquetando al publicar. Donde PR #1127 coincida, lo apoyamos en lugar de competir.

## Por qué nosotros

Para nosotros lo bilingüe no es una función; es la tesis de la firma. Publicamos capas en español con verificaciones simétricas de paridad EN/ES, y chocamos con esta brecha en cada una.

## Evidencia

- [NIP-37 "Language Tag" — PR #632](https://github.com/nostr-protocol/nips/pull/632) — cerrado sin fusionar el 2024-06-07; la objeción está citada del hilo
- [PR #1127 — Internationalization and Localization](https://github.com/nostr-protocol/nips/pull/1127) — sigue abierto, sin fusionar
- [NIP-32: Labeling](https://github.com/nostr-protocol/nips/blob/master/32.md) — ratificado; contiene el ejemplo ISO-639-1
- [NIP-50: Search Capability](https://github.com/nostr-protocol/nips/blob/master/50.md) — filtro `language:`, lado de lectura
- [NIP-C0: Code Snippets](https://github.com/nostr-protocol/nips/blob/master/C0.md) — la otra etiqueta `l`; advertencia de espacios de nombres
- [ditto-relay](https://gitlab.com/soapbox-pub/ditto-relay) — ya implementa búsqueda con `language:`
