← Open source
12 · OPEN SOURCE · CONTRIBUCIÓN

Codenotch en español

Contribución open source a Codenotch (vinzdg/codenotch), una app para macOS, con versión para Windows y soporte en Linux, que muestra en el borde de la pantalla los límites de uso de Claude Code, Cursor, Codex, Antigravity y otros proveedores. Sumé el español completo en Mac y en Windows, con tests y un fix de Antigravity, en una PR de 14 commits y 20 archivos que el maintainer mergeó en main y que salió en Codenotch 1.24.0.

ROL
Localización Mac y Windows, tests y un fix de Antigravity.
REPOSITORIO
vinzdg/codenotch · MIT
RELEVANCIA
+2.800 estrellas · +470 forks
ESTADO
Mergeada en main
AUTORÍA
Autor de la PR #481
i18nSwiftString Catalog (xcstrings)RustTauriJavaScriptXCTest
01 · CONTEXTO

Antes

Codenotch es una app open source para macOS, con versión para Windows y soporte en Linux, que muestra en el borde de la pantalla los límites de uso de Claude Code, Cursor, Codex, Antigravity y otros proveedores. No tenía español en ninguna plataforma. Tomé como modelo la PR #305, la del coreano.

02 · PROBLEMA

Qué había que resolver

Además de sumar el español, en main había 100 literales L10n.t sin entrada en el catálogo, 64 de la app y 36 de las release notes de la 1.21 a la 1.23. Ese texto salía en inglés en todos los idiomas.

Qué hice.
Lo que aportó mi PR.

Cómo lo probé.
Qué corrí y qué revisé en cada plataforma.

RECORRIDO DE LA CONTRIBUCIÓNvinzdg/codenotch

Cómo se integró

  1. 01PR #481 · mi contribución14 commits · 20 archivos
  2. 02Mergeada en main24/10/2026
  3. 03Publicada en Codenotch 1.24.024/10/2026

Decisiones técnicas.
Qué se eligió y qué implica.

  1. 01

    El vocabulario de macOS en español

    Mi PR

    Usé los términos del sistema en español: Ajustes, Salir de Codenotch, Según el sistema.

    → La app se siente nativa.

  2. 02

    "Se renueva", nunca "reiniciar"

    Mi PR

    Para una cuota uso "se renueva" y nunca "reiniciar".

    → Evité el malentendido por el que rechazaron la #295 en portugués.

  3. 03

    "Endpoints propios"

    Mi PR

    Elegí "Endpoints propios" en vez de "Endpoints personalizados", porque el segundo se cortaba en la barra lateral de Ajustes.

    → El texto entra sin tocar el layout.

  4. 04

    No cambiar nada de los otros idiomas

    Mi PR

    Verifiqué a nivel JSON contra main que ningún valor ni orden de claves de los otros idiomas se modificara.

    → Quien usa otro idioma no ve cambios. Un truncado del horario en la tarjeta que afecta a todos los idiomas quedó documentado y sin tocar.

DESAFÍO PRINCIPAL

Sumar el español completo en dos plataformas que tenían que decir lo mismo, en una PR grande que tenía que ser fácil de revisar.

  1. 01Un catálogo de 1.249 claves con 174 claves con formato, en el que los especificadores (%lld y %@) tenían que coincidir en tipo y orden.
  2. 02Dos plataformas, Swift y Rust/HTML, que tenían que decir lo mismo.
  3. 03Textos que tenían que entrar en el ancho de cada control sin tocar CSS.
  4. 04Una PR muy grande que tenía que ser fácil de revisar.

Mi decisión clave

Que el español quedara completo y verificable en las dos plataformas, no sólo traducido. Chequeé mecánicamente cada valor contra el inglés con el mismo tokenizador de CatalogFormatTests: las 174 claves con formato coinciden y no hay ningún % suelto.

Resultado

La PR #481 está mergeada en main y salió en Codenotch 1.24.0. Fue un merge commit, no un squash, así que mis 14 commits quedaron en main con mi autoría.

  • vinzdg, maintainer del proyecto, la mergeó en main el 24/10/2026, sin pedir cambios.
  • Salió en la release 1.24.0, citada en las notas de Mac y de Windows.
  • Quien elige Español en Codenotch ve la app completa en ese idioma en Mac y Windows.
  • La tarjeta de Antigravity ahora se traduce en todos los idiomas que tienen esas claves, no sólo en español.