diff --git a/assets/locale/Makefile b/assets/locale/Makefile new file mode 100644 index 00000000..dbb4478b --- /dev/null +++ b/assets/locale/Makefile @@ -0,0 +1,19 @@ +# https://weblate.org/en/ + +ALL_LOCALES := en_US.po es_MX.po fr_FR.po + +# Update all locales from the 'messages.pot' template +.PHONY: all +all: $(ALL_LOCALES) + +# Generate a new locale file from the template +.PHONY: generate +generate: +ifndef LOCALE + $(error LOCALE not specified to generate) +endif + msginit --no-translator --input=messages.pot --locale=$(LOCALE) + +# Update the locale from the 'messages.pot' template +$(ALL_LOCALES): messages.pot + msgmerge --update --backup=none $@ $< diff --git a/assets/locale/en_US.po b/assets/locale/en_US.po new file mode 100644 index 00000000..b177b721 --- /dev/null +++ b/assets/locale/en_US.po @@ -0,0 +1,533 @@ +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: en_US\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +# LANGUAGE translation for OpenGamepadUI +# +# William Edwards , 2023. +# +msgid "PROJECT DESCRIPTION" +msgstr "" +"Project-Id-Version: Open Gamepad UI\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" + +# Main Menu +msgid "Home" +msgstr "Home" + +msgid "Library" +msgstr "Library" + +msgid "Settings" +msgstr "Settings" + +msgid "Power" +msgstr "Power" + +msgid "Accept" +msgstr "Accept" + +msgid "Back" +msgstr "Back" + +msgid "Cancel" +msgstr "" + +msgid "Exit" +msgstr "" + +msgid "Submit" +msgstr "" + +msgid "Open Main Menu" +msgstr "Open Main Menu" + +msgid "Open Quick Access Menu" +msgstr "Open Quick Access Menu" + +msgid "Open On-Screen Keyboard" +msgstr "Open On-Screen Keyboard" + +msgid "Scroll container" +msgstr "Scroll container" + +msgid "Switch to left tab" +msgstr "Switch to left tab" + +msgid "Switch to right tab" +msgstr "Switch to right tab" + +msgid "Backspace" +msgstr "Backspace" + +msgid "Close keyboard" +msgstr "Close keyboard" + +msgid "Toggle Shift" +msgstr "Toggle Shift" + +msgid "Enter" +msgstr "Enter" + +msgid "Steam Deck" +msgstr "Steam Deck" + +msgid "Global" +msgstr "Global" + +msgid "Unable to save gamepad profile" +msgstr "Unable to save gamepad profile" + +msgid "Failed to save gamepad profile" +msgstr "Failed to save gamepad profile" + +msgid "Gamepad profile saved" +msgstr "Gamepad profile saved" + +msgid "Play Now" +msgstr "Play Now" + +msgid "Install" +msgstr "Install" + +msgid "Resume" +msgstr "Resume" + +msgid "Queued" +msgstr "Queued" + +msgid "Installing" +msgstr "Installing" + +msgid "Quick Access Menu" +msgstr "Quick Access Menu" + +msgid "Game Name" +msgstr "Game Name" + +# Game Launch Settings Menu +msgid "Launch" +msgstr "" + +msgid "Boxart" +msgstr "" + +msgid "Launch Provider" +msgstr "" + +msgid "Library provider to launch this game with" +msgstr "" + +#, fuzzy +msgid "Launch Settings" +msgstr "Settings" + +msgid "Command" +msgstr "" + +msgid "Command to use to launch the game" +msgstr "" + +msgid "Arguments" +msgstr "" + +msgid "Command-line arguments to pass to the game" +msgstr "" + +msgid "Launch Directory" +msgstr "" + +msgid "Directory to launch the game from" +msgstr "" + +msgid "Environment Variables" +msgstr "" + +msgid "Environment variables to use when launching the game" +msgstr "" + +#, fuzzy +msgid "Sandbox Settings" +msgstr "Settings" + +msgid "Use sandboxing" +msgstr "" + +msgid "Launch the game in a sandbox" +msgstr "" + +# Boxart Settings Menu +msgid "Boxart Provider" +msgstr "" + +msgid "Images" +msgstr "" + +msgid "Banner" +msgstr "" + +msgid "Logo" +msgstr "" + +msgid "Grids" +msgstr "" + +# Settings Menu +msgid "General" +msgstr "" + +msgid "Display" +msgstr "" + +msgid "Network" +msgstr "" + +msgid "Bluetooth" +msgstr "" + +msgid "Plugins" +msgstr "" + +msgid "Plugin Store" +msgstr "" + +msgid "Processes" +msgstr "" + +msgid "Logging" +msgstr "" + +msgid "Controllers" +msgstr "" + +msgid "Windows" +msgstr "" + +# General Settings Menu +msgid "Updates" +msgstr "" + +msgid "Automatic Updates" +msgstr "" + +msgid "" +"Automatically download and apply updates in the background when they are " +"available" +msgstr "" + +msgid "Check for Updates" +msgstr "" + +#, fuzzy +msgid "Install Update" +msgstr "Install" + +msgid "Appearance" +msgstr "" + +msgid "Language" +msgstr "" + +msgid "System language" +msgstr "" + +msgid "Theme" +msgstr "" + +msgid "Maximum Recent Apps" +msgstr "" + +msgid "System Information" +msgstr "" + +msgid "Platform" +msgstr "" + +msgid "Client Version" +msgstr "" + +msgid "OS" +msgstr "" + +msgid "Kernel Version" +msgstr "" + +msgid "Vendor" +msgstr "" + +msgid "Product" +msgstr "" + +msgid "BIOS Version" +msgstr "" + +msgid "CPU Model" +msgstr "" + +msgid "GPU Model" +msgstr "" + +msgid "Driver Version" +msgstr "" + +# Display Menu +msgid "Scale" +msgstr "" + +# Network Menu +msgid "Network dependencies not found" +msgstr "" + +msgid "Wireless Network" +msgstr "" + +msgid "Visible Networks" +msgstr "" + +msgid "Refresh Networks" +msgstr "" + +msgid "Wired Network" +msgstr "" + +msgid "Password" +msgstr "" + +msgid "Enter the password for this network" +msgstr "" + +msgid "Bluetooth service unavailable" +msgstr "Bluetooth service unavailable" + +msgid "Enabled" +msgstr "" + +msgid "Enable Discovery" +msgstr "" + +# Audio Menu +msgid "Audio" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "Output Device" +msgstr "" + +msgid "Input Device" +msgstr "" + +msgid "Microphone" +msgstr "" + +# Plugins Menu +msgid "No plugins found" +msgstr "" + +# Processes Menu +msgid "Kill" +msgstr "" + +# Log Menu +msgid "Global Log Level" +msgstr "" + +msgid "Set the log level for all systems" +msgstr "" + +msgid "Per-system Logging" +msgstr "" + +# General Controller Settings Menu +msgid "General Controller Settings" +msgstr "" + +msgid "SDL HIDAPI Enabled" +msgstr "" + +msgid "" +"Alternate input system that can cause double input. Some games use SDL for " +"gyro controls or all input. Requires restart." +msgstr "" + +# Gamepad Settings Menu +msgid "Profile Name" +msgstr "" + +msgid "Buttons" +msgstr "" + +# (plural of "axis", not the wood chopping thing) +msgid "Axes" +msgstr "" + +# Gamepad Mapper Menu +msgid "Change Input" +msgstr "" + +#, fuzzy +msgid "Keyboard" +msgstr "Close keyboard" + +msgid "Mouse" +msgstr "" + +#, fuzzy +msgid "Gamepad" +msgstr "Game Name" + +msgid "Clear" +msgstr "" + +msgid "Left Click" +msgstr "" + +msgid "Right Click" +msgstr "" + +msgid "Mouse Motion" +msgstr "" + +msgid "Wheel Up" +msgstr "" + +msgid "Wheel Down" +msgstr "" + +msgid "Middle Click" +msgstr "" + +msgid "Welcome" +msgstr "Welcome" + +msgid "Select a language" +msgstr "" + +msgid "Connect to your network" +msgstr "" + +msgid "Next" +msgstr "" + +#, fuzzy +msgid "Install plugins" +msgstr "Installing" + +msgid "Configure your plugins" +msgstr "" + +msgid "Finished" +msgstr "Finished" + +msgid "You're ready to go" +msgstr "" + +msgid "Start playing" +msgstr "" + +# Search Bar +msgid "What should you play?" +msgstr "" + +#, fuzzy +msgid "Installed" +msgstr "Install" + +msgid "All Games" +msgstr "" + +msgid "Favorites" +msgstr "" + +msgid "Collections" +msgstr "" + +#, fuzzy +msgid "Quick Settings" +msgstr "Settings" + +msgid "Performance" +msgstr "" + +#, fuzzy +msgid "Power Tools" +msgstr "Power" + +msgid "Brightness" +msgstr "" + +msgid "Saturation" +msgstr "" + +# Performance Menu +msgid "Performance Overlay" +msgstr "" + +msgid "FPS Limit" +msgstr "" + +msgid "Refresh Rate" +msgstr "" + +# Power Tools Menu +msgid "Waiting for PowerStation service..." +msgstr "" + +#, fuzzy +msgid "CPU Settings" +msgstr "Settings" + +msgid "CPU Boost" +msgstr "" + +msgid "SMT Enabled" +msgstr "" + +msgid "CPU Cores" +msgstr "" + +#, fuzzy +msgid "GPU Settings" +msgstr "Settings" + +msgid "TDP Boost" +msgstr "" + +msgid "Manual Freq" +msgstr "" + +msgid "Min Freq" +msgstr "" + +msgid "Max Freq" +msgstr "" + +msgid "GPU Temp Limit" +msgstr "" + +msgid "Power Profile" +msgstr "" + +msgid "Thermal Throttle Profile" +msgstr "" + +# Power Menu +msgid "Suspend" +msgstr "" + +msgid "Reboot" +msgstr "" + +msgid "Shutdown" +msgstr "" diff --git a/assets/locale/es_MX.po b/assets/locale/es_MX.po new file mode 100644 index 00000000..4546fd9f --- /dev/null +++ b/assets/locale/es_MX.po @@ -0,0 +1,530 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: es_MX\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.4.1\n" + +# LANGUAGE translation for OpenGamepadUI +# +# William Edwards , 2023. +# +#, fuzzy +msgid "PROJECT DESCRIPTION" +msgstr "" +"Project-Id-Version: Open Gamepad UI\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" + +# Main Menu +msgid "Home" +msgstr "Inicio" + +msgid "Library" +msgstr "Juegos" + +msgid "Settings" +msgstr "Opciones" + +msgid "Power" +msgstr "Apagado" + +msgid "Accept" +msgstr "Confirmar" + +msgid "Back" +msgstr "Volver" + +msgid "Cancel" +msgstr "Cancelar" + +msgid "Exit" +msgstr "Salida" + +msgid "Submit" +msgstr "Enviar" + +msgid "Open Main Menu" +msgstr "Abrir menú principal" + +msgid "Open Quick Access Menu" +msgstr "Abrir menú rápido" + +msgid "Open On-Screen Keyboard" +msgstr "Abrir el teclado en pantalla" + +msgid "Scroll container" +msgstr "Desplazarse por el menú" + +msgid "Switch to left tab" +msgstr "Cambiar a la pestaña izquierda" + +msgid "Switch to right tab" +msgstr "Cambiar a la pestaña derecha" + +msgid "Backspace" +msgstr "Retroceso" + +msgid "Close keyboard" +msgstr "Cerrar el teclado" + +msgid "Toggle Shift" +msgstr "Activar la tecla de mayúsculas" + +msgid "Enter" +msgstr "Ingresar" + +msgid "Steam Deck" +msgstr "" + +msgid "Global" +msgstr "Global" + +msgid "Unable to save gamepad profile" +msgstr "No se puede guardar el perfil del gamepad" + +msgid "Failed to save gamepad profile" +msgstr "No se pudo guardar el perfil del gamepad" + +msgid "Gamepad profile saved" +msgstr "Perfil de gamepad guardado" + +msgid "Play Now" +msgstr "Jugar ahora" + +msgid "Install" +msgstr "Instalar" + +msgid "Resume" +msgstr "Reanudar" + +msgid "Queued" +msgstr "Puesto en cola" + +msgid "Installing" +msgstr "Instalando" + +msgid "Quick Access Menu" +msgstr "Menú rápido" + +msgid "Game Name" +msgstr "Nombre del juego" + +# Game Launch Settings Menu +msgid "Launch" +msgstr "Lanzamiento" + +msgid "Boxart" +msgstr "Arte de caja" + +msgid "Launch Provider" +msgstr "Proveedor de lanzamiento" + +msgid "Library provider to launch this game with" +msgstr "Proveedor de juegos para lanzar este juego" + +#, fuzzy +msgid "Launch Settings" +msgstr "Opciones" + +msgid "Command" +msgstr "Comando" + +msgid "Command to use to launch the game" +msgstr "Comando a utilizar para iniciar el juego." + +msgid "Arguments" +msgstr "Argumentos de comando" + +msgid "Command-line arguments to pass to the game" +msgstr "Argumentos de línea de comando para darle al juego" + +msgid "Launch Directory" +msgstr "Directorio de inicio" + +msgid "Directory to launch the game from" +msgstr "Directorio desde el que iniciar el juego" + +msgid "Environment Variables" +msgstr "Variables de entorno" + +msgid "Environment variables to use when launching the game" +msgstr "Variables de entorno a utilizar al iniciar el juego" + +#, fuzzy +msgid "Sandbox Settings" +msgstr "Opciones de salvadera" + +msgid "Use sandboxing" +msgstr "Usar zona de pruebas" + +msgid "Launch the game in a sandbox" +msgstr "Iniciar el juego en una caja de arena" + +# Boxart Settings Menu +msgid "Boxart Provider" +msgstr "Proveedor de arte de caja" + +msgid "Images" +msgstr "Imágenes" + +msgid "Banner" +msgstr "Bandera" + +msgid "Logo" +msgstr "Logo" + +msgid "Grids" +msgstr "Rejillas" + +# Settings Menu +msgid "General" +msgstr "General" + +msgid "Display" +msgstr "Monitor" + +msgid "Network" +msgstr "Red" + +msgid "Bluetooth" +msgstr "Bluetooth" + +msgid "Plugins" +msgstr "Complementos" + +msgid "Plugin Store" +msgstr "Tienda de complementos" + +msgid "Processes" +msgstr "Procesos" + +msgid "Logging" +msgstr "Registro" + +msgid "Controllers" +msgstr "Mandos" + +msgid "Windows" +msgstr "Ventanas" + +# General Settings Menu +msgid "Updates" +msgstr "Actualizaciones" + +msgid "Automatic Updates" +msgstr "Actualizaciones automáticas" + +msgid "" +"Automatically download and apply updates in the background when they are " +"available" +msgstr "Descargue y aplique actualizaciones automáticamente en segundo plano cuando estén disponibles" + +msgid "Check for Updates" +msgstr "Buscar actualizaciones" + +msgid "Install Update" +msgstr "Instalar actualización" + +msgid "Appearance" +msgstr "Apariencia" + +msgid "Language" +msgstr "Idioma" + +msgid "System language" +msgstr "Lenguaje del sistema" + +msgid "Theme" +msgstr "Tema" + +msgid "Maximum Recent Apps" +msgstr "Aplicaciones recientes máximas" + +msgid "System Information" +msgstr "Información del sistema" + +msgid "Platform" +msgstr "Plataforma" + +msgid "Client Version" +msgstr "Versión de aplicacion" + +msgid "OS" +msgstr "OS" + +msgid "Kernel Version" +msgstr "Versión de kernel" + +msgid "Vendor" +msgstr "Proveedor" + +msgid "Product" +msgstr "Producto" + +msgid "BIOS Version" +msgstr "Versión de BIOS" + +msgid "CPU Model" +msgstr "Modelo de CPU" + +msgid "GPU Model" +msgstr "Modelo de GPU" + +msgid "Driver Version" +msgstr "Versión de driver" + +# Display Menu +msgid "Scale" +msgstr "La amplitud" + +# Network Menu +msgid "Network dependencies not found" +msgstr "Dependencias de red no encontradas" + +msgid "Wireless Network" +msgstr "Red inalámbrica" + +msgid "Visible Networks" +msgstr "Redes visibles" + +msgid "Refresh Networks" +msgstr "Actualizar redes" + +msgid "Wired Network" +msgstr "Red cableada" + +msgid "Password" +msgstr "Contraseña" + +msgid "Enter the password for this network" +msgstr "Ingrese la contraseña para esta red" + +msgid "Bluetooth service unavailable" +msgstr "Servicio Bluetooth no disponible" + +msgid "Enabled" +msgstr "Activado" + +msgid "Enable Discovery" +msgstr "Habilitar el descubrimiento" + +# Audio Menu +msgid "Audio" +msgstr "Audio" + +msgid "Volume" +msgstr "Volumen" + +msgid "Output Device" +msgstr "Dispositivo de salida" + +msgid "Input Device" +msgstr "Dispositivo de entrada" + +msgid "Microphone" +msgstr "Micrófono" + +# Plugins Menu +msgid "No plugins found" +msgstr "No se encontraron complementos" + +# Processes Menu +msgid "Kill" +msgstr "Cesar" + +# Log Menu +msgid "Global Log Level" +msgstr "Nivel de registro global" + +msgid "Set the log level for all systems" +msgstr "Establecer el nivel de registro para todos los sistemas" + +msgid "Per-system Logging" +msgstr "Registro por sistema" + +# General Controller Settings Menu +msgid "General Controller Settings" +msgstr "Configuración general del controlador" + +msgid "SDL HIDAPI Enabled" +msgstr "SDL HIDAPI encendido" + +msgid "" +"Alternate input system that can cause double input. Some games use SDL for " +"gyro controls or all input. Requires restart." +msgstr "Sistema de entrada alternativo que puede provocar doble entrada. Algunos juegos usan SDL para controles giroscópicos o todas las entradas. Requiere reinicio." + +# Gamepad Settings Menu +msgid "Profile Name" +msgstr "Nombre de perfil" + +msgid "Buttons" +msgstr "Botones" + +# (plural of "axis", not the wood chopping thing) +msgid "Axes" +msgstr "Ejes" + +# Gamepad Mapper Menu +msgid "Change Input" +msgstr "Cambiar entrada" + +msgid "Keyboard" +msgstr "Teclado" + +msgid "Mouse" +msgstr "Ratón" + +msgid "Gamepad" +msgstr "Mando" + +msgid "Clear" +msgstr "Borrar" + +msgid "Left Click" +msgstr "Click izquierdo" + +msgid "Right Click" +msgstr "Click derecho" + +msgid "Mouse Motion" +msgstr "Movimiento del mouse" + +msgid "Wheel Up" +msgstr "" + +msgid "Wheel Down" +msgstr "" + +msgid "Middle Click" +msgstr "" + +msgid "Welcome" +msgstr "Bienvenidos" + +msgid "Select a language" +msgstr "Selecciona un idioma" + +msgid "Connect to your network" +msgstr "Conéctate a tu red" + +msgid "Next" +msgstr "Entrante" + +msgid "Install plugins" +msgstr "Instalar complementos" + +msgid "Configure your plugins" +msgstr "Configura tus complementos" + +msgid "Finished" +msgstr "Finalizado" + +msgid "You're ready to go" +msgstr "Estas listo para ir" + +msgid "Start playing" +msgstr "Empezar a jugar" + +# Search Bar +msgid "What should you play?" +msgstr "¿Qué deberías jugar?" + +msgid "Installed" +msgstr "Instalado" + +msgid "All Games" +msgstr "Todos los juegos" + +msgid "Favorites" +msgstr "Favoritos" + +msgid "Collections" +msgstr "Colecciones" + +#, fuzzy +msgid "Quick Settings" +msgstr "Ajustes rápidos" + +msgid "Performance" +msgstr "Rendimiento" + +msgid "Power Tools" +msgstr "Herramientas eléctricas" + +msgid "Brightness" +msgstr "Brillo" + +msgid "Saturation" +msgstr "Saturación" + +# Performance Menu +msgid "Performance Overlay" +msgstr "Superposición de rendimiento" + +msgid "FPS Limit" +msgstr "Límite de FPS" + +msgid "Refresh Rate" +msgstr "Frecuencia de actualización" + +# Power Tools Menu +msgid "Waiting for PowerStation service..." +msgstr "Esperando el servicio de PowerStation..." + +#, fuzzy +msgid "CPU Settings" +msgstr "Opciones de CPU" + +msgid "CPU Boost" +msgstr "Aumentar de CPU" + +msgid "SMT Enabled" +msgstr "SMT habilitado" + +msgid "CPU Cores" +msgstr "Núcleos de CPU" + +#, fuzzy +msgid "GPU Settings" +msgstr "Opciones de GPU" + +msgid "TDP Boost" +msgstr "Aumentar de TDP" + +msgid "Manual Freq" +msgstr "Frecuencia manual" + +msgid "Min Freq" +msgstr "Frecuencia mínima" + +msgid "Max Freq" +msgstr "Frecuencia máxima" + +msgid "GPU Temp Limit" +msgstr "Límite de temperatura de la gpu" + +msgid "Power Profile" +msgstr "Perfil de poder" + +msgid "Thermal Throttle Profile" +msgstr "Perfil del acelerador térmico" + +# Power Menu +msgid "Suspend" +msgstr "Suspender" + +msgid "Reboot" +msgstr "Reiniciar" + +msgid "Shutdown" +msgstr "Cerrar" diff --git a/assets/locale/fr_FR.po b/assets/locale/fr_FR.po new file mode 100644 index 00000000..6036fde0 --- /dev/null +++ b/assets/locale/fr_FR.po @@ -0,0 +1,537 @@ +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: fr_FR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +# LANGUAGE translation for OpenGamepadUI +# +# William Edwards , 2023. +# +msgid "PROJECT DESCRIPTION" +msgstr "" +"Project-Id-Version: Open Gamepad UI\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" + +# Main Menu +msgid "Home" +msgstr "Accueil" + +msgid "Library" +msgstr "Bibliothèque" + +msgid "Settings" +msgstr "Paramètres" + +msgid "Power" +msgstr "Marche/arrêt" + +msgid "Accept" +msgstr "Confirmer" + +msgid "Back" +msgstr "Retour" + +msgid "Cancel" +msgstr "Annuler" + +msgid "Exit" +msgstr "Quitter" + +msgid "Submit" +msgstr "Envoyer" + +msgid "Open Main Menu" +msgstr "Ouvrir le menu principal" + +msgid "Open Quick Access Menu" +msgstr "Ouvrir le menu d'accès rapide" + +msgid "Open On-Screen Keyboard" +msgstr "Ouvrir le clavier virtuel" + +msgid "Scroll container" +msgstr "Scroll container" + +msgid "Switch to left tab" +msgstr "Passer à l'onglet de gauche" + +msgid "Switch to right tab" +msgstr "Passer à l'onglet de droite" + +msgid "Backspace" +msgstr "Retour arrière" + +msgid "Close keyboard" +msgstr "Fermer le clavier" + +msgid "Toggle Shift" +msgstr "Activer Maj" + +msgid "Enter" +msgstr "Entrer" + +msgid "Steam Deck" +msgstr "Steam Deck" + +msgid "Global" +msgstr "Global" + +msgid "Unable to save gamepad profile" +msgstr "Impossible de sauvegarder le profil de la manette" + +msgid "Failed to save gamepad profile" +msgstr "Échec de la sauvegarde du profil manette" + +msgid "Gamepad profile saved" +msgstr "Profil manette sauvegardé" + +msgid "Play Now" +msgstr "Jouer" + +msgid "Install" +msgstr "Installer" + +msgid "Resume" +msgstr "Reprendre" + +msgid "Queued" +msgstr "En file d'attente" + +msgid "Installing" +msgstr "Installation en cours" + +msgid "Quick Access Menu" +msgstr "Menu d'accès rapide" + +msgid "Game Name" +msgstr "Nom du jeu" + +# Game Launch Settings Menu +msgid "Launch" +msgstr "Lancer" + +msgid "Boxart" +msgstr "Jacquette" + +msgid "Launch Provider" +msgstr "" + +msgid "Library provider to launch this game with" +msgstr "" + +#, fuzzy +msgid "Launch Settings" +msgstr "Paramètres de lancement" + +msgid "Command" +msgstr "Commande" + +msgid "Command to use to launch the game" +msgstr "Commande à utiliser pour lancer le jeu" + +msgid "Arguments" +msgstr "Arguments" + +msgid "Command-line arguments to pass to the game" +msgstr "Arguments de ligne de commande à transmettre au jeu" + +msgid "Launch Directory" +msgstr "Répertoire de lancement" + +msgid "Directory to launch the game from" +msgstr "Répertoire d'où lancer le jeu" + +msgid "Environment Variables" +msgstr "Variables d'environnement" + +msgid "Environment variables to use when launching the game" +msgstr "Variables d'environnement à utiliser lors du lancement du jeu" + +#, fuzzy +msgid "Sandbox Settings" +msgstr "Paramètres sandbox" + +msgid "Use sandboxing" +msgstr "Utiliser le sandboxing" + +msgid "Launch the game in a sandbox" +msgstr "Lancer le jeu dans une sandbox" + +# Boxart Settings Menu +msgid "Boxart Provider" +msgstr "Fournisseur jaquettes" + +msgid "Images" +msgstr "Images" + +msgid "Banner" +msgstr "Bannière" + +msgid "Logo" +msgstr "Logo" + +msgid "Grids" +msgstr "Grilles" + +# Settings Menu +msgid "General" +msgstr "Général" + +msgid "Display" +msgstr "Affichage" + +msgid "Network" +msgstr "Réseau" + +msgid "Bluetooth" +msgstr "Bluetooth" + +msgid "Plugins" +msgstr "Plugins" + +msgid "Plugin Store" +msgstr "" + +msgid "Processes" +msgstr "Processus" + +msgid "Logging" +msgstr "Connexion" + +msgid "Controllers" +msgstr "Contrôleurs" + +msgid "Windows" +msgstr "Windows" + +# General Settings Menu +msgid "Updates" +msgstr "Mises à jour" + +msgid "Automatic Updates" +msgstr "Mises à jour automatiques" + +msgid "" +"Automatically download and apply updates in the background when they are " +"available" +msgstr "" +"Téléchargez et appliquez automatiquement les mises à jour en arrière-plan " +"lorsqu'elles sont disponibles" + +msgid "Check for Updates" +msgstr "Rechercher des mises à jour" + +#, fuzzy +msgid "Install Update" +msgstr "Installer la mise à jour" + +msgid "Appearance" +msgstr "Apparence" + +msgid "Language" +msgstr "Langue" + +msgid "System language" +msgstr "Langue système" + +msgid "Theme" +msgstr "Thème" + +msgid "Maximum Recent Apps" +msgstr "Nombre maximal d'applications récentes" + +msgid "System Information" +msgstr "Informations système" + +msgid "Platform" +msgstr "Plateformes" + +msgid "Client Version" +msgstr "Version du client" + +msgid "OS" +msgstr "OS" + +msgid "Kernel Version" +msgstr "Version du kernel" + +msgid "Vendor" +msgstr "Fournisseur" + +msgid "Product" +msgstr "Produit" + +msgid "BIOS Version" +msgstr "Version du BIOS" + +msgid "CPU Model" +msgstr "Modèle de CPU" + +msgid "GPU Model" +msgstr "Modèle de GPU" + +msgid "Driver Version" +msgstr "Version du driver" + +# Display Menu +msgid "Scale" +msgstr "Échelle" + +# Network Menu +msgid "Network dependencies not found" +msgstr "Dépendances réseau introuvables" + +msgid "Wireless Network" +msgstr "Réseau sans fil" + +msgid "Visible Networks" +msgstr "Réseaux visibles" + +msgid "Refresh Networks" +msgstr "Actualiser les réseaux" + +msgid "Wired Network" +msgstr "Réseau filaire" + +msgid "Password" +msgstr "Mot de passe" + +msgid "Enter the password for this network" +msgstr "Entrez le mot de passe de ce réseau" + +msgid "Bluetooth service unavailable" +msgstr "Service bluetooth indisponible" + +msgid "Enabled" +msgstr "Activé" + +msgid "Enable Discovery" +msgstr "Activer la découverte" + +# Audio Menu +msgid "Audio" +msgstr "Audio" + +msgid "Volume" +msgstr "Volume" + +msgid "Output Device" +msgstr "Périphérique de sortie" + +msgid "Input Device" +msgstr "Périphérique d'entrée" + +msgid "Microphone" +msgstr "Microphone" + +# Plugins Menu +msgid "No plugins found" +msgstr "Aucun plugin trouvé" + +# Processes Menu +msgid "Kill" +msgstr "Tuer" + +# Log Menu +msgid "Global Log Level" +msgstr "" + +msgid "Set the log level for all systems" +msgstr "" + +msgid "Per-system Logging" +msgstr "" + +# General Controller Settings Menu +msgid "General Controller Settings" +msgstr "Paramètres généraux du contrôleur" + +msgid "SDL HIDAPI Enabled" +msgstr "SDL HIDAPI activé" + +msgid "" +"Alternate input system that can cause double input. Some games use SDL for " +"gyro controls or all input. Requires restart." +msgstr "" +"Système de saisie alternatif pouvant provoquer une double saisie. Certains " +"jeux utilisent SDL pour les contrôles gyro ou pour toutes les entrées. Nécessite un redémarrage" + +# Gamepad Settings Menu +msgid "Profile Name" +msgstr "Nom du profil" + +msgid "Buttons" +msgstr "Boutons" + +# (plural of "axis", not the wood chopping thing) +msgid "Axes" +msgstr "Axes" + +# Gamepad Mapper Menu +msgid "Change Input" +msgstr "Modifier l'entrée" + +#, fuzzy +msgid "Keyboard" +msgstr "Clavier" + +msgid "Mouse" +msgstr "Souris" + +#, fuzzy +msgid "Gamepad" +msgstr "Manette" + +msgid "Clear" +msgstr "Effacer" + +msgid "Left Click" +msgstr "Click gauche" + +msgid "Right Click" +msgstr "Click droit" + +msgid "Mouse Motion" +msgstr "Mouvement de souris" + +msgid "Wheel Up" +msgstr "Molette vers le haut" + +msgid "Wheel Down" +msgstr "Molete vers le bas" + +msgid "Middle Click" +msgstr "Click du milieu" + +msgid "Welcome" +msgstr "Bienvenu" + +msgid "Select a language" +msgstr "Choisissez une langue" + +msgid "Connect to your network" +msgstr "Connectez-vous à votre réseau" + +msgid "Next" +msgstr "Suivant" + +#, fuzzy +msgid "Install plugins" +msgstr "Installer des plugins" + +msgid "Configure your plugins" +msgstr "Configurer vos plugins" + +msgid "Finished" +msgstr "Terminé" + +msgid "You're ready to go" +msgstr "Tout est prêt" + +msgid "Start playing" +msgstr "Commencer à jouer" + +# Search Bar +msgid "What should you play?" +msgstr "A quoi jouer ?" + +#, fuzzy +msgid "Installed" +msgstr "Installé" + +msgid "All Games" +msgstr "Tous les jeux" + +msgid "Favorites" +msgstr "Favoris" + +msgid "Collections" +msgstr "Collections" + +#, fuzzy +msgid "Quick Settings" +msgstr "Paramètres rapides" + +msgid "Performance" +msgstr "Performance" + +#, fuzzy +msgid "Power Tools" +msgstr "Marche/arrêt" + +msgid "Brightness" +msgstr "Luminosité" + +msgid "Saturation" +msgstr "Saturation" + +# Performance Menu +msgid "Performance Overlay" +msgstr "Overlay des performances" + +msgid "FPS Limit" +msgstr "Limite des FPS" + +msgid "Refresh Rate" +msgstr "Taux de rafraîchissement" + +# Power Tools Menu +msgid "Waiting for PowerStation service..." +msgstr "En attente du service PowerStation..." + +#, fuzzy +msgid "CPU Settings" +msgstr "Paramètres du CPU" + +msgid "CPU Boost" +msgstr "Boost CPU" + +msgid "SMT Enabled" +msgstr "SMT activé" + +msgid "CPU Cores" +msgstr "Cœurs du CPU" + +#, fuzzy +msgid "GPU Settings" +msgstr "Paramètres du GPU" + +msgid "TDP Boost" +msgstr "Boost TDP" + +msgid "Manual Freq" +msgstr "Freq manuelle" + +msgid "Min Freq" +msgstr "Freq min" + +msgid "Max Freq" +msgstr "Freq max" + +msgid "GPU Temp Limit" +msgstr "Temp limit GPU" + +msgid "Power Profile" +msgstr "Profil de puissance" + +msgid "Thermal Throttle Profile" +msgstr "Profil d'accélérateur thermique" + +# Power Menu +msgid "Suspend" +msgstr "Veille" + +msgid "Reboot" +msgstr "Redémarrer" + +msgid "Shutdown" +msgstr "Éteindre" diff --git a/assets/locale/messages.pot b/assets/locale/messages.pot new file mode 100644 index 00000000..b84215e6 --- /dev/null +++ b/assets/locale/messages.pot @@ -0,0 +1,524 @@ +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 3.4.1\n" + +# LANGUAGE translation for OpenGamepadUI +# +# William Edwards , 2023. +# +msgid "PROJECT DESCRIPTION" +msgstr "" +"Project-Id-Version: Open Gamepad UI\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" + +# Main Menu Messages +msgid "Home" +msgstr "" + +msgid "Library" +msgstr "" + +msgid "Settings" +msgstr "" + +msgid "Power" +msgstr "" + +# General messages +msgid "Accept" +msgstr "" + +msgid "Back" +msgstr "" + +msgid "Cancel" +msgstr "" + +msgid "Exit" +msgstr "" + +msgid "Submit" +msgstr "" + +# Help Menu Messages +msgid "Open Main Menu" +msgstr "" + +msgid "Open Quick Access Menu" +msgstr "" + +msgid "Open On-Screen Keyboard" +msgstr "" + +msgid "Scroll container" +msgstr "" + +msgid "Switch to left tab" +msgstr "" + +msgid "Switch to right tab" +msgstr "" + +msgid "Backspace" +msgstr "" + +msgid "Close keyboard" +msgstr "" + +msgid "Toggle Shift" +msgstr "" + +msgid "Enter" +msgstr "" + +msgid "Steam Deck" +msgstr "" + +msgid "Global" +msgstr "" + +msgid "Unable to save gamepad profile" +msgstr "" + +msgid "Failed to save gamepad profile" +msgstr "" + +msgid "Gamepad profile saved" +msgstr "" + +msgid "Play Now" +msgstr "" + +msgid "Install" +msgstr "" + +msgid "Resume" +msgstr "" + +msgid "Queued" +msgstr "" + +msgid "Installing" +msgstr "" + +msgid "Quick Access Menu" +msgstr "" + +msgid "Game Name" +msgstr "" + +# Game Launch Settings Menu +msgid "Launch" +msgstr "" + +msgid "Boxart" +msgstr "" + +msgid "Launch Provider" +msgstr "" + +msgid "Library provider to launch this game with" +msgstr "" + +msgid "Launch Settings" +msgstr "" + +msgid "Command" +msgstr "" + +msgid "Command to use to launch the game" +msgstr "" + +msgid "Arguments" +msgstr "" + +msgid "Command-line arguments to pass to the game" +msgstr "" + +msgid "Launch Directory" +msgstr "" + +msgid "Directory to launch the game from" +msgstr "" + +msgid "Environment Variables" +msgstr "" + +msgid "Environment variables to use when launching the game" +msgstr "" + +msgid "Sandbox Settings" +msgstr "" + +msgid "Use sandboxing" +msgstr "" + +msgid "Launch the game in a sandbox" +msgstr "" + +# Boxart Settings Menu +msgid "Boxart Provider" +msgstr "" + +msgid "Images" +msgstr "" + +msgid "Banner" +msgstr "" + +msgid "Logo" +msgstr "" + +msgid "Grids" +msgstr "" + +# Settings Menu +msgid "General" +msgstr "" + +msgid "Display" +msgstr "" + +msgid "Network" +msgstr "" + +msgid "Bluetooth" +msgstr "" + +msgid "Plugins" +msgstr "" + +msgid "Plugin Store" +msgstr "" + +msgid "Processes" +msgstr "" + +msgid "Logging" +msgstr "" + +msgid "Controllers" +msgstr "" + +msgid "Windows" +msgstr "" + +# General Settings Menu +msgid "Updates" +msgstr "" + +msgid "Automatic Updates" +msgstr "" + +msgid "Automatically download and apply updates in the background when they are available" +msgstr "" + +msgid "Check for Updates" +msgstr "" + +msgid "Install Update" +msgstr "" + +msgid "Appearance" +msgstr "" + +msgid "Language" +msgstr "" + +msgid "System language" +msgstr "" + +msgid "Theme" +msgstr "" + +msgid "Maximum Recent Apps" +msgstr "" + +msgid "System Information" +msgstr "" + +msgid "Platform" +msgstr "" + +msgid "Client Version" +msgstr "" + +msgid "OS" +msgstr "" + +msgid "Kernel Version" +msgstr "" + +msgid "Vendor" +msgstr "" + +msgid "Product" +msgstr "" + +msgid "BIOS Version" +msgstr "" + +msgid "CPU Model" +msgstr "" + +msgid "GPU Model" +msgstr "" + +msgid "Driver Version" +msgstr "" + +# Display Menu +msgid "Scale" +msgstr "" + +# Network Menu +msgid "Network dependencies not found" +msgstr "" + +msgid "Wireless Network" +msgstr "" + +msgid "Visible Networks" +msgstr "" + +msgid "Refresh Networks" +msgstr "" + +msgid "Wired Network" +msgstr "" + +msgid "Password" +msgstr "" + +msgid "Enter the password for this network" +msgstr "" + +# Bluetooth Menu +msgid "Bluetooth service unavailable" +msgstr "" + +msgid "Enabled" +msgstr "" + +msgid "Enable Discovery" +msgstr "" + +# Audio Menu +msgid "Audio" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "Output Device" +msgstr "" + +msgid "Input Device" +msgstr "" + +msgid "Microphone" +msgstr "" + +# Plugins Menu +msgid "No plugins found" +msgstr "" + +# Processes Menu +msgid "Kill" +msgstr "" + +# Log Menu +msgid "Global Log Level" +msgstr "" + +msgid "Set the log level for all systems" +msgstr "" + +msgid "Per-system Logging" +msgstr "" + +# General Controller Settings Menu +msgid "General Controller Settings" +msgstr "" + +msgid "SDL HIDAPI Enabled" +msgstr "" + +msgid "Alternate input system that can cause double input. Some games use SDL for gyro controls or all input. Requires restart." +msgstr "" + +# Gamepad Settings Menu +msgid "Profile Name" +msgstr "" + +msgid "Buttons" +msgstr "" + +# (plural of "axis", not the wood chopping thing) +msgid "Axes" +msgstr "" + +# Gamepad Mapper Menu +msgid "Change Input" +msgstr "" + +msgid "Keyboard" +msgstr "" + +msgid "Mouse" +msgstr "" + +msgid "Gamepad" +msgstr "" + +msgid "Clear" +msgstr "" + +msgid "Left Click" +msgstr "" + +msgid "Right Click" +msgstr "" + +msgid "Mouse Motion" +msgstr "" + +msgid "Wheel Up" +msgstr "" + +msgid "Wheel Down" +msgstr "" + +msgid "Middle Click" +msgstr "" + +# First Boot Menu +msgid "Welcome" +msgstr "" + +msgid "Select a language" +msgstr "" + +msgid "Connect to your network" +msgstr "" + +msgid "Next" +msgstr "" + +msgid "Install plugins" +msgstr "" + +msgid "Configure your plugins" +msgstr "" + +msgid "Finished" +msgstr "" + +msgid "You're ready to go" +msgstr "" + +msgid "Start playing" +msgstr "" + +# Search Bar +msgid "What should you play?" +msgstr "" + +msgid "Installed" +msgstr "" + +msgid "All Games" +msgstr "" + +msgid "Favorites" +msgstr "" + +msgid "Collections" +msgstr "" + +# Quick Settings +msgid "Quick Settings" +msgstr "" + +msgid "Performance" +msgstr "" + +msgid "Power Tools" +msgstr "" + +msgid "Brightness" +msgstr "" + +msgid "Saturation" +msgstr "" + +# Performance Menu +msgid "Performance Overlay" +msgstr "" + +msgid "FPS Limit" +msgstr "" + +msgid "Refresh Rate" +msgstr "" + +# Power Tools Menu +msgid "Waiting for PowerStation service..." +msgstr "" + +msgid "CPU Settings" +msgstr "" + +msgid "CPU Boost" +msgstr "" + +msgid "SMT Enabled" +msgstr "" + +msgid "CPU Cores" +msgstr "" + +msgid "GPU Settings" +msgstr "" + +msgid "TDP Boost" +msgstr "" + +msgid "Manual Freq" +msgstr "" + +msgid "Min Freq" +msgstr "" + +msgid "Max Freq" +msgstr "" + +msgid "GPU Temp Limit" +msgstr "" + +msgid "Power Profile" +msgstr "" + +msgid "Thermal Throttle Profile" +msgstr "" + +# Power Menu +msgid "Suspend" +msgstr "" + +msgid "Reboot" +msgstr "" + +msgid "Shutdown" +msgstr "" diff --git a/core/ui/card_ui/card_ui.gd b/core/ui/card_ui/card_ui.gd index 9708035a..816b162f 100644 --- a/core/ui/card_ui/card_ui.gd +++ b/core/ui/card_ui/card_ui.gd @@ -56,6 +56,10 @@ func _ready() -> void: fade_texture.visible = true boot_video.finished.connect(_on_boot_video_player_finished) + # Configure the locale + var locale := settings_manager.get_value("general", "locale", "en_US") as String + TranslationServer.set_locale(locale) + # Load any platform-specific logic platform.load(get_tree().get_root()) diff --git a/core/ui/card_ui/home/cardui_home.tscn b/core/ui/card_ui/home/cardui_home.tscn index 6cfddef1..be4aeb2a 100644 --- a/core/ui/card_ui/home/cardui_home.tscn +++ b/core/ui/card_ui/home/cardui_home.tscn @@ -5,9 +5,9 @@ [ext_resource type="Resource" uid="uid://oaavalv0wcoa" path="res://assets/state/states/home.tres" id="3_x1rvr"] [ext_resource type="Resource" uid="uid://bmgs1ngma1523" path="res://assets/state/states/in_game_menu.tres" id="4_d0dnr"] [ext_resource type="Resource" uid="uid://e7bbebwf7guj" path="res://assets/state/states/main_menu.tres" id="5_gbh30"] -[ext_resource type="Resource" uid="uid://bp807nlks8eq1" path="res://assets/state/states/quick_bar.tres" id="6_jlesr"] +[ext_resource type="Resource" uid="uid://bp807nlks8eq1" path="res://assets/state/states/quick_bar_menu.tres" id="6_jlesr"] [ext_resource type="Resource" uid="uid://dja3m1mevv6xw" path="res://assets/state/states/osk.tres" id="7_ao7st"] -[ext_resource type="Resource" uid="uid://bfoequ6xb7csn" path="res://assets/state/states/overlay_button_submenu.tres" id="8_dx6pe"] +[ext_resource type="Resource" uid="uid://bfoequ6xb7csn" path="res://assets/state/states/quick_bar_button_submenu.tres" id="8_dx6pe"] [ext_resource type="Resource" uid="uid://bw0mtk7sso8m2" path="res://assets/state/states/power_menu.tres" id="9_kvuqp"] [ext_resource type="Texture2D" uid="uid://d1mksukdkqorr" path="res://assets/images/placeholder-grid-banner.png" id="10_mmfgs"] [ext_resource type="PackedScene" uid="uid://rosd00fxjrs8" path="res://core/ui/components/library_banner.tscn" id="11_16gcd"] diff --git a/core/ui/card_ui/ootbe/language_select.gd b/core/ui/card_ui/ootbe/language_select.gd index adbb09a2..9c98c5ce 100644 --- a/core/ui/card_ui/ootbe/language_select.gd +++ b/core/ui/card_ui/ootbe/language_select.gd @@ -1,6 +1,32 @@ extends MarginContainer +var state_updater_scene := load("res://core/systems/state/state_updater.tscn") as PackedScene +var button_scene := load("res://core/ui/components/card_button.tscn") as PackedScene +@onready var button_container := %VBoxContainer # Called when the node enters the scene tree for the first time. func _ready() -> void: - pass + # Delete the old buttons + for child in button_container.get_children(): + if child is CardButton: + child.queue_free() + + # Create a button for each locale + for locale in TranslationServer.get_loaded_locales(): + var language := locale.split("_")[0] + var language_name := TranslationServer.get_language_name(language) + + # Configure a state updater to change menu states when the button is pressed + var state_updater := state_updater_scene.instantiate() as StateUpdater + state_updater.state_machine = load("res://assets/state/state_machines/first_boot_state_machine.tres") + state_updater.state = load("res://assets/state/states/first_boot_network.tres") + state_updater.action = state_updater.ACTION.REPLACE + state_updater.on_signal = "button_up" + + # Create the button and set the language name + var button := button_scene.instantiate() as CardButton + button.text = language_name + button.add_child(state_updater) + + # Add the button to the scene + button_container.add_child(button) diff --git a/core/ui/card_ui/ootbe/language_select.tscn b/core/ui/card_ui/ootbe/language_select.tscn index 7ef69770..9019db65 100644 --- a/core/ui/card_ui/ootbe/language_select.tscn +++ b/core/ui/card_ui/ootbe/language_select.tscn @@ -80,6 +80,7 @@ theme_override_constants/margin_right = 40 theme_override_constants/margin_bottom = 80 [node name="VBoxContainer" type="VBoxContainer" parent="HBoxContainer/ScrollContainer/MarginContainer"] +unique_name_in_owner = true layout_mode = 2 alignment = 1 diff --git a/core/ui/card_ui/ootbe/plugin_setup.tscn b/core/ui/card_ui/ootbe/plugin_setup.tscn index 11094127..e56e7527 100644 --- a/core/ui/card_ui/ootbe/plugin_setup.tscn +++ b/core/ui/card_ui/ootbe/plugin_setup.tscn @@ -66,9 +66,8 @@ layout_mode = 2 theme_override_constants/separation = 40 alignment = 1 -[node name="FocusGroup" parent="HBoxContainer/MarginContainer/VBoxContainer" node_paths=PackedStringArray("current_focus") instance=ExtResource("4_bqgae")] +[node name="FocusGroup" parent="HBoxContainer/MarginContainer/VBoxContainer" instance=ExtResource("4_bqgae")] unique_name_in_owner = true -current_focus = NodePath("") [node name="Spacer" type="Control" parent="HBoxContainer/MarginContainer/VBoxContainer"] layout_mode = 2 diff --git a/core/ui/card_ui/settings/general_settings_menu.gd b/core/ui/card_ui/settings/general_settings_menu.gd index febc1ca2..45b63d3c 100644 --- a/core/ui/card_ui/settings/general_settings_menu.gd +++ b/core/ui/card_ui/settings/general_settings_menu.gd @@ -32,6 +32,7 @@ var logger := Log.get_logger("GeneralSettings") @onready var driver_text := $%GPUDriverText as SelectableText @onready var kernel_text := $%KernelVerText as SelectableText @onready var bios_text := $%BIOSVerText as SelectableText +@onready var lang_dropdown := $%LanguageDropdown as Dropdown # Called when the node enters the scene tree for the first time. @@ -111,6 +112,29 @@ func _ready() -> void: if auto_update: update_timer.start() + # Configure the language dropdown + var current_locale := SettingsManager.get_value("general", "locale", "en_US") as String + lang_dropdown.clear() + # E.g. ["en_US", "es_MX"] + var i := 0 + for locale in TranslationServer.get_loaded_locales(): + var language := locale.split("_")[0] + var language_name := TranslationServer.get_language_name(language) + lang_dropdown.add_item(language_name) + lang_dropdown.option_button.set_item_metadata(i, locale) + if locale == current_locale: + lang_dropdown.select(i) + i += 1 + + # Update the locale when it is changed + var on_language_change := func(idx: int) -> void: + var locale := lang_dropdown.option_button.get_item_metadata(idx) as String + var language_name := lang_dropdown.option_button.get_item_text(idx) + logger.info("Setting language to: " + locale) + TranslationServer.set_locale(locale) + SettingsManager.set_value("general", "locale", locale) + lang_dropdown.item_selected.connect(on_language_change) + # Looks for user defined themes and creates buttons to select those themes func _add_user_themes() -> void: diff --git a/core/ui/card_ui/settings/general_settings_menu.tscn b/core/ui/card_ui/settings/general_settings_menu.tscn index 6024b34b..0cd888eb 100644 --- a/core/ui/card_ui/settings/general_settings_menu.tscn +++ b/core/ui/card_ui/settings/general_settings_menu.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=16 format=3 uid="uid://dsgrw1grwef4m"] +[gd_scene load_steps=17 format=3 uid="uid://dsgrw1grwef4m"] [ext_resource type="Script" path="res://core/ui/card_ui/settings/general_settings_menu.gd" id="1_if7xt"] [ext_resource type="PackedScene" uid="uid://bnhxravpuheh2" path="res://core/systems/updater/software_updater.tscn" id="2_ogwq4"] @@ -9,6 +9,7 @@ [ext_resource type="PackedScene" uid="uid://c71ayw7pcw6u6" path="res://core/ui/components/card_button.tscn" id="7_qenel"] [ext_resource type="PackedScene" uid="uid://d0u3rsa5qpj57" path="res://core/ui/components/subsection_label.tscn" id="8_2m3jw"] [ext_resource type="PackedScene" uid="uid://cemxrvvjgm4g" path="res://core/ui/components/slider.tscn" id="8_58mcr"] +[ext_resource type="PackedScene" uid="uid://xei5afwefxud" path="res://core/ui/components/dropdown.tscn" id="8_r15pa"] [ext_resource type="Texture2D" uid="uid://ckbrrln8fngno" path="res://assets/images/platform/ayaneoair-ctr_v1a_1172023.png" id="9_00g0t"] [ext_resource type="PackedScene" uid="uid://c6dpw6swmcbw6" path="res://core/systems/user_interface/theme_setter.tscn" id="9_bci6g"] [ext_resource type="PackedScene" uid="uid://cmjjyqx1pl23d" path="res://core/ui/components/text.tscn" id="9_sq2rc"] @@ -92,6 +93,12 @@ layout_mode = 2 layout_mode = 2 text = "Appearance" +[node name="LanguageDropdown" parent="MarginContainer/VBoxContainer/VBoxContainer" instance=ExtResource("8_r15pa")] +unique_name_in_owner = true +layout_mode = 2 +title = "Language" +description = "System language" + [node name="ThemeLabel" parent="MarginContainer/VBoxContainer/VBoxContainer" instance=ExtResource("8_2m3jw")] layout_mode = 2 text = "Theme" diff --git a/core/ui/card_ui/settings/settings_menu.tscn b/core/ui/card_ui/settings/settings_menu.tscn index cdeb1202..8146c464 100644 --- a/core/ui/card_ui/settings/settings_menu.tscn +++ b/core/ui/card_ui/settings/settings_menu.tscn @@ -373,6 +373,9 @@ theme_override_constants/margin_bottom = 5 [node name="GeneralSettings" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer" instance=ExtResource("29_8hwjo")] layout_mode = 2 +[node name="AutoUpdateToggle" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/GeneralSettings/MarginContainer/VBoxContainer/VBoxContainer" index="2"] +button_pressed = true + [node name="VisibilityManager" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/GeneralSettings" instance=ExtResource("2_xwevg")] state_machine = ExtResource("15_cb33u") state = ExtResource("16_sfk74") @@ -403,6 +406,12 @@ state = ExtResource("19_l8vuu") visible = false layout_mode = 2 +[node name="EnableToggle" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/BluetoothSettingsMenu/MarginContainer/ScrollContainer/AvailableContainer/VBoxContainer" index="1"] +button_pressed = true + +[node name="DiscoverToggle" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/BluetoothSettingsMenu/MarginContainer/ScrollContainer/AvailableContainer/VBoxContainer" index="2"] +button_pressed = true + [node name="VisibilityManager" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/BluetoothSettingsMenu" instance=ExtResource("2_xwevg")] state_machine = ExtResource("15_cb33u") state = ExtResource("21_cbayw") @@ -451,6 +460,9 @@ state = ExtResource("25_nijem") visible = false layout_mode = 2 +[node name="SDLHIDAPIToggle" parent="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/GeneralControllerSettings/MarginContainer/VBoxContainer" index="1"] +button_pressed = true + [editable path="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/GeneralSettings"] [editable path="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/DisplaySettings"] [editable path="MarginContainer/HBoxContainer/ContentContainer/VBoxContainer/ContentContainer/MarginContainer/NetworkSettings"] diff --git a/core/ui/card_ui_overlay_mode/card_ui_overlay_mode.gd b/core/ui/card_ui_overlay_mode/card_ui_overlay_mode.gd index 6b046112..6d26ae0e 100644 --- a/core/ui/card_ui_overlay_mode/card_ui_overlay_mode.gd +++ b/core/ui/card_ui_overlay_mode/card_ui_overlay_mode.gd @@ -64,6 +64,10 @@ func _ready() -> void: logger.warn("Launched via update pack without arguments! Falling back to default.") args = ["steam", "-gamepadui", "-steamos3", "-steampal", "-steamdeck"] + # Configure the locale + var locale := settings_manager.get_value("general", "locale", "en_US") as String + TranslationServer.set_locale(locale) + # Set the theme if one was set var theme_path := settings_manager.get_value("general", "theme", "") as String if theme_path == "": diff --git a/core/ui/components/expandable_card.tscn b/core/ui/components/expandable_card.tscn index 147a9722..3d45146a 100644 --- a/core/ui/components/expandable_card.tscn +++ b/core/ui/components/expandable_card.tscn @@ -7,7 +7,7 @@ [ext_resource type="PackedScene" uid="uid://uljtdvmuol3l" path="res://core/systems/input/focus_group_setter.tscn" id="5_3aqkt"] [ext_resource type="PackedScene" uid="uid://d0u3rsa5qpj57" path="res://core/ui/components/subsection_label.tscn" id="6_cxawo"] -[sub_resource type="Image" id="Image_7o00x"] +[sub_resource type="Image" id="Image_h7vcd"] data = { "data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 93, 93, 41, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0), "format": "RGBA8", @@ -16,8 +16,8 @@ data = { "width": 16 } -[sub_resource type="ImageTexture" id="ImageTexture_wsaqv"] -image = SubResource("Image_7o00x") +[sub_resource type="ImageTexture" id="ImageTexture_fgwnb"] +image = SubResource("Image_h7vcd") [node name="ExpandableCard" type="PanelContainer"] clip_children = 2 @@ -61,7 +61,7 @@ on_signal = "effect_finished" unique_name_in_owner = true visible = false layout_mode = 2 -texture = SubResource("ImageTexture_wsaqv") +texture = SubResource("ImageTexture_fgwnb") expand_mode = 1 stretch_mode = 6 diff --git a/project.godot b/project.godot index 3300aef5..c9611787 100644 --- a/project.godot +++ b/project.godot @@ -210,6 +210,11 @@ ogui_volume_mute={ pointing/emulate_touch_from_mouse=true +[internationalization] + +locale/translations=PackedStringArray("res://assets/locale/en_US.po", "res://assets/locale/es_MX.po", "res://assets/locale/fr_FR.po") +locale/fallback="en_US" + [rendering] renderer/rendering_method="gl_compatibility"