C Lumen es un preprocesador fuente-a-fuente multilingüe para C/C++ que permite a los desarrolladores escribir palabras clave localizadas en español (es) y chino (zh) mientras compila con Clang/GCC estándar. El sistema es determinístico, seguro e independiente del editor.
C Lumen proporciona localización solo de palabras clave para código C/C++. Traduce las palabras clave del lenguaje (como if → si en español, 如果 en chino) mientras preserva todos los identificadores, cabeceras y símbolos de biblioteca. Esto permite a los desarrolladores escribir código en su idioma nativo manteniendo la compatibilidad completa con sistemas de construcción y cadenas de herramientas existentes.
- Normalización NFC: Toda la entrada se normaliza a la forma Unicode NFC
- Protección contra Sobrescritura Bidireccional: Rechaza sobrescrituras Unicode bidireccionales potencialmente peligrosas
- Detección de Caracteres Confusos: Advierte sobre caracteres visualmente similares que podrían causar problemas de seguridad
- Salida Determinística: La misma entrada siempre produce la misma salida canónica
# Construir desde el código fuente
git clone https://github.com/c-lumen/c-lumen.git
cd c-lumen
cargo build --release# Traducir palabras clave españolas a C++ canónico
clumen apply --lang es --in examples/ahorcado_es.clumen.c --out build/ahorcado.c
# Compilar la salida canónica
cc build/ahorcado.c -o build/ahorcado && ./build/ahorcado- Instala la extensión C Lumen desde el marketplace de VS Code
- Abre un archivo
.clumen.co.clumen.cpp - Disfruta del resaltado de sintaxis y tokens semánticos para palabras clave localizadas
- Ve a Configuración → Editor → Paquetes TextMate
- Importa el archivo
textmate-bundle/c-lumen.tmLanguage.json - Reinicia tu IDE
Usa el ayudante de CMake proporcionado para una integración perfecta con el sistema de construcción:
include(tools/cmake/ClumenPrepass.cmake)
# Añade tus archivos fuente localizados
clumen_translate(TRANSLATED_SOURCES
src/main.clumen.cpp
src/utils.clumen.c
)
# Usa las fuentes traducidas en tu objetivo
add_executable(myapp ${TRANSLATED_SOURCES})si→ifsino→elsemientras→whilepara→forretornar→return- Y muchos más...
如果→if否则→else当→while为→for返回→return- Y muchos más...
Revisa el directorio examples/ para ejemplos completos funcionales:
ahorcado_es.clumen.c- Juego del ahorcado con palabras clave en español排序_zh.clumen.cpp- Algoritmo de ordenamiento con palabras clave en chino
✅ Traducido:
- Palabras clave del lenguaje (
if,while,for, etc.) - Directivas de preprocesador (
#include→#incluir)
❌ NO Traducido:
- Nombres de funciones
- Nombres de variables
- Nombres de archivos de cabecera
- Símbolos de biblioteca
- Nombres de API
C Lumen incluye varias medidas de seguridad:
- La normalización Unicode previene ataques de canonización
- La detección de sobrescritura bidireccional previene ataques de dirección de texto
- La detección de caracteres confusos advierte sobre posibles suplantaciones
- Los mapas de fuente permiten reportes de error precisos
Ver SECURITY.md para información detallada de seguridad.
¡Aceptamos contribuciones! Por favor consulta CONTRIBUTING.md para pautas sobre:
- Añadir nuevas palabras clave
- Extender soporte de idiomas
- Ejecutar pruebas
- Código de conducta
C Lumen está licenciado bajo la Licencia Apache 2.0. Ver LICENSE para detalles.
- Soporte adicional de idiomas (francés, alemán, japonés)
- Integración con Clangd para diagnósticos mejorados
- Filtros git clean/smudge para localización transparente
- Tokenizador WebAssembly para desarrollo basado en navegador