Skip to content

FErArg/lt-desktop

Repository files navigation

LT Desktop

Un cliente de escritorio para LibreTranslate, construido con Tauri (Rust + React + Tailwind CSS).

Características

  • Traducción de texto utilizando la API de LibreTranslate
  • Soporte para servidores oficiales y autoalojados
  • Selector de idiomas dinámico (cargado desde el servidor remoto)
  • Interfaz con dos paneles: origen y destino
  • Historial de traducciones persistente (SQLite)
  • Temas claro, oscuro y sistema
  • Copiar resultado al portapapeles con un clic
  • Configuración de URL y API Key del servidor
  • Atajo de teclado Ctrl+Enter para traducir
  • Iconos personalizados para todas las plataformas

Seguridad

  • Content Security Policy (CSP) habilitado
  • Validación de URL del servidor (HTTPS forzado para servidores remotos)
  • Timeouts HTTP configurados (10s conexión, 30s request)
  • API key eliminada del canal IPC del frontend
  • Mensajes de error sanitizados (sin información interna expuesta)
  • Input validation en todos los comandos Tauri (5000 chars max)
  • TypeScript strict mode habilitado
  • SQLite WAL mode para mejor concurrencia
  • Logs filtrados por nivel de build (Debug en dev, Warn en release)
  • Permisos de archivo restringidos en Unix (0700 dirs, 0600 files)

Descargas

Binarios precompilados disponibles en el directorio bin/:

Formato Archivo Uso recomendado
AppImage lt-desktop-v0.0.4-linux-x86_64.AppImage Portable, sin instalar
DEB lt-desktop-v0.0.4-linux-x86_64.deb Debian, Ubuntu, derivados
Binario lt-desktop-v0.0.4-linux-x86_64 Raw (requiere libs del sistema)

AppImage (recomendado)

chmod +x lt-desktop-v0.0.4-linux-x86_64.AppImage
./lt-desktop-v0.0.4-linux-x86_64.AppImage

DEB (Debian/Ubuntu)

sudo dpkg -i lt-desktop-v0.0.4-linux-x86_64.deb
sudo apt-get install -f

Binario raw

chmod +x lt-desktop-v0.0.4-linux-x86_64
./lt-desktop-v0.0.4-linux-x86_64

Requiere libwebkit2gtk-4.1, gtk-3 y libayatana-appindicator3 instaladas en el sistema.

Capturas de pantalla

Panel principal

Panel principal con dos paneles de traducción

Selector de idiomas

Selector de idiomas dinámico

Configuración

Modal de configuración del servidor

Requisitos

Plataformas soportadas

Plataforma Estado
Linux x86_64 Compilado y probado
macOS Planeado (icon.icns listo)
Windows Futuro (icon.ico listo)

Desarrollo

Desarrollo rápido

npm install
npm run tauri-dev      # modo desarrollo
npm run tauri-build    # build de producción

Configuración

La aplicación almacena la configuración en las rutas nativas del sistema:

Sistema Ruta
Linux ~/.config/lt-desktop/settings.json
macOS ~/Library/Application Support/com.ferarg.lt-desktop/settings.json
Windows %APPDATA%\lt-desktop\settings.json

Opciones de configuración

Opción Descripción Default
server_url URL del servidor LibreTranslate https://libretranslate.com
api_key Clave de API (opcional) (vacío)
default_source_lang Idioma de origen por defecto auto
default_target_lang Idioma de destino por defecto es
theme Tema de la interfaz system

API Endpoints utilizados

  • GET /languages - Lista de idiomas soportados
  • POST /translate - Traducción de texto
  • POST /detect - Detección automática de idioma
  • GET /health - Verificación de estado del servidor

Iconos

Los iconos de la aplicación se generan desde images/icon.png (512x512 RGBA):

Plataforma Archivos Generado con
Linux icon.png, 32x32.png, 128x128.png, 128x128@2x.png ImageMagick
Windows icon.ico, Square*.png, StoreLogo.png ImageMagick
macOS icon.icns png2icns (icnsutils)
Web favicon-16x16.png, favicon-32x32.png, apple-touch-icon.png ImageMagick

Para regenerar los iconos después de cambiar images/icon.png:

# PNGs para Tauri
convert images/icon.png -resize 32x32 src-tauri/icons/32x32.png
convert images/icon.png -resize 128x128 src-tauri/icons/128x128.png
convert images/icon.png -resize 256x256 src-tauri/icons/128x128@2x.png
convert images/icon.png -resize 512x512 src-tauri/icons/icon.png

# .ico para Windows
convert \( images/icon.png -resize 16x16 \) \( images/icon.png -resize 32x32 \) \
  \( images/icon.png -resize 48x48 \) \( images/icon.png -resize 64x64 \) \
  \( images/icon.png -resize 128x128 \) \( images/icon.png -resize 256x256 \) \
  src-tauri/icons/icon.ico

# .icns para macOS (requiere icnsutils)
mkdir -p /tmp/icns && convert images/icon.png -resize 16x16 /tmp/icns/16.png
convert images/icon.png -resize 32x32 /tmp/icns/32.png
convert images/icon.png -resize 128x128 /tmp/icns/128.png
convert images/icon.png -resize 256x256 /tmp/icns/256.png
convert images/icon.png -resize 512x512 /tmp/icns/512.png
convert images/icon.png -resize 1024x1024 /tmp/icns/1024.png
png2icns src-tauri/icons/icon.icns /tmp/icns/*.png && rm -rf /tmp/icns

# Favicons para web
convert images/icon.png -resize 16x16 public/favicon-16x16.png
convert images/icon.png -resize 32x32 public/favicon-32x32.png
convert images/icon.png -resize 180x180 public/apple-touch-icon.png

Licencia

Este proyecto está licenciado bajo la GNU General Public License v3.0 (GPL-3.0).

Consulta el archivo LICENSE para más detalles.

Autor y Créditos

Autor

Asistentes

Changelog

Consulta el archivo CHANGELOG.md para ver el historial de cambios.

About

Desktop application to use LibreTranslate services

Resources

License

Stars

2 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors