Una aplicación. Cinco idiomas.
Cambiados mientras se ejecuta.
sgcLocalization traduce tus propias aplicaciones Delphi, C++Builder y Lazarus. Cada formulario, cada mensaje, cada plural, con un editor y una línea de código para cambiar el idioma.
- English
- Deutsch
- Español
- Français
- Italiano
La imagen de arriba es un único ejecutable. El mismo panel, los mismos datos, en inglés, alemán, español, francés e italiano, y el usuario cambia el idioma desde un combo mientras la aplicación se ejecuta. Sin reiniciar y sin una segunda compilación.
Esa aplicación se tradujo con sgcLocalization, un nuevo producto de la suite sgcUI. Funciona con VCL, FireMonkey y LCL, desde Delphi 7 hasta Delphi 13, en C++Builder y en Lazarus, y está incluido en todas las ediciones de sgcUI y en cada producto individual.
sgcLocalization en un minuto: analiza, traduce y cambia el idioma de una aplicación real. También en YouTube.
Cambia el idioma con una línea
Este es todo el código que necesita el cambio de idioma:
uses
sgcLocalization_Engine;
procedure TfrmMain.btnGermanClick(Sender: TObject);
begin
sgcSetLanguage('de');
end;
Si prefieres no escribir código, coloca en el formulario el combo de idiomas listo para usar (TsgcVCLLanguageCombo o TsgcFMXLanguageCombo). Muestra los idiomas de tu proyecto y cambia cuando el usuario elige uno.
El cambio hace más que reemplazar títulos:
- Los formularios creados después se traducen automáticamente. Un diálogo abierto diez minutos después del cambio aparece en el idioma correcto.
- Los valores cambiados por código se conservan. Una etiqueta que tu código ha rellenado con el nombre de un cliente no se sobrescribe con una traducción.
- Las selecciones se mantienen. Los combos y las listas conservan el elemento seleccionado mientras sus elementos cambian de idioma.
- Los idiomas de derecha a izquierda invierten el diseño, de modo que un usuario de árabe o hebreo obtiene un formulario reflejado.
Para empezar en el idioma del sistema del usuario, basta con una propiedad:
sgcVCLLocalizer1.Language := 'auto';
Cuánto poco trabajo hace falta
El localizador (TsgcVCLLocalizer para VCL, TsgcFMXLocalizer para FireMonkey) encuentra cada propiedad de texto mediante RTTI. No marcas propiedades, no renombras componentes y no cambias tus formularios.
Las reglas de exclusión integradas omiten lo que nunca es texto: nombres de componentes, nombres de campos, SQL, nombres de archivo, cadenas de formato y las propiedades que no son texto de los propios controles sgcUI. Puedes añadir tus propias reglas. Un formulario que mezcla controles estándar y controles sgcUI se analiza limpiamente, así que la lista que traduces contiene textos y nada más.
Textos en el código: fragmentos
No todos los textos viven en un formulario. Los mensajes, las líneas de estado y los títulos construidos en código son fragmentos. Envuelve el texto en sgcT y se vuelve traducible:
if MessageDlg(sgcT('Save changes?'), mtConfirmation,
[mbYes, mbNo], 0) = mrYes then
SaveOrder;
La misma palabra puede necesitar dos traducciones. En inglés "Open" es a la vez un comando y el estado de un pedido. sgcTC añade un contexto, de modo que cada significado recibe su propia traducción:
btnOpen.Caption := sgcTC('command', 'Open');
lblState.Caption := sgcTC('order status', 'Open');
Los plurales usan sgcTN. Escribes el singular y el plural del idioma de origen, y la traducción aporta tantas formas como necesite el idioma de destino:
lblSelected.Caption := sgcTN('%d order selected', '%d orders selected',
Count, [Count]);
Las reglas de plurales provienen de CLDR, así que son correctas para cada idioma. El polaco, por ejemplo, tiene cuatro formas, y el editor pide al traductor cada una de ellas.
Un editor de traducción
Todas las traducciones se editan en un solo lugar. Haz clic derecho en el localizador en tiempo de diseño para abrir el editor dentro del IDE, o usa la herramienta independiente fuera de él.
- Estados de los elementos. Cada texto es nuevo, modificado, propuesta, traducido, revisado u obsoleto, y puedes filtrar por estado.
- Filtros y selección múltiple. Filtra por idioma, formulario o texto de búsqueda, selecciona muchas filas y cámbialas juntas.
- Marcas de versión. Marca una versión publicada, y el filtro «nuevo o modificado desde» muestra exactamente lo que la próxima versión tiene que traducir. No se pierde nada.
- El idioma de tu traductor. El propio editor viene en 12 idiomas, con temas claro y oscuro.
Una validación que detecta los errores habituales
Una traducción que pierde un %d o una tecla de acceso es fácil de escribir y difícil de detectar. sgcLocalization comprueba cada traducción, ya se haya escrito, importado o propuesto por la IA:
- especificadores de formato y marcadores de posición,
- teclas de acceso,
- saltos de línea, espacios al principio y al final,
- traducciones vacías y formas plurales.
Un elemento con un error no puede marcarse como revisado, así que un texto defectuoso no se cuela en una versión como trabajo terminado.
Traducción con IA, como propuestas
El editor puede traducir con servicios de IA como ChatGPT, Claude, Gemini y Ollama. Elige los idiomas de destino, dale un glosario e instrucciones sobre el tono, y empieza.
Los resultados llegan como propuestas. Aceptas o rechazas cada una, y una propuesta nunca sobrescribe un texto que ya está traducido. Se les aplica la misma validación.
XLIFF para traductores profesionales
Las agencias de traducción trabajan con XLIFF. sgcLocalization exporta XLIFF 1.2 para un idioma, e importa el archivo cuando vuelve.
Una importación nunca escribe directamente en tu proyecto. Abre una lista de revisión con cada cambio: el texto anterior, el texto nuevo, el tipo de cambio y cualquier problema encontrado. Solo se aplican las filas que marcas.
Un archivo de proyecto
Las traducciones de una aplicación viven en un archivo de proyecto con la extensión .sgcloc. Es JSON, así que se lleva bien con el control de versiones: una traducción modificada es un diff pequeño que puedes leer en una revisión de código. Si prefieres un único ejecutable sin nada a su lado, el proyecto puede incrustarse en el archivo del formulario.
Velo en una aplicación real
La demo de muestra es Order Desk, una aplicación de negocio completa: un panel, pedidos, clientes, un planificador, análisis dinámico, un asistente y una vista previa de impresión. Está traducida al inglés, alemán, español, francés e italiano, y viene en versiones VCL, FireMonkey y Lazarus.
La carpeta de la demo incluye además tres inicios rápidos, la herramienta independiente del editor de traducción y una guía de primeros pasos que te lleva de un formulario vacío a una aplicación traducida.
Incluido con sgcUI
sgcLocalization se entrega con sgcUI 2026.12.0. No se vende por separado: está incluido en todas las ediciones de sgcUI y en cada producto individual, y viene seleccionado por defecto en el instalador.
Tu aplicación, en el idioma de tu cliente
Descarga sgcUI, abre la demo Order Desk y cambia el idioma mientras se ejecuta. Después coloca un localizador en tu propio formulario principal.
¿Preguntas o comentarios? Ponte en contacto, recibirás respuesta de las personas que escribieron el código.
