diff --git a/app/gui/images/app.icns b/app/gui/images/app.icns index e86ef04b74..ccaf5fd25d 100644 Binary files a/app/gui/images/app.icns and b/app/gui/images/app.icns differ diff --git a/app/gui/images/app.ico b/app/gui/images/app.ico index 4780240e11..f90d6c2710 100644 Binary files a/app/gui/images/app.ico and b/app/gui/images/app.ico differ diff --git a/app/gui/images/tutorial b/app/gui/images/tutorial index 65e5d237d1..b796f240e9 120000 --- a/app/gui/images/tutorial +++ b/app/gui/images/tutorial @@ -1 +1 @@ -../../../../etc/doc/images/tutorial \ No newline at end of file +../../../etc/doc/images/tutorial diff --git a/app/gui/lang/sonic-pi_es.ts b/app/gui/lang/sonic-pi_es.ts index 167a968224..78d9477a1b 100644 --- a/app/gui/lang/sonic-pi_es.ts +++ b/app/gui/lang/sonic-pi_es.ts @@ -306,12 +306,12 @@ Obtén Sonic Pi %1 Auto Indent mode enabled - + Modo de indentación automática habilitado Auto Indent mode disabled - + Modo de indentación automática deshabilitado @@ -347,258 +347,258 @@ Obtén Sonic Pi %1 Comment/Uncomment code - + Comentar/Descomentar código Transpose Characters - + Transponer caracteres Shift Line or Selection Up - + Desplazar línea o selección hacia arriba Shift Line or Selection Down - + Desplazar línea o selección hacia abajo Move Cursor Down - + Mover cursor hacia abajo Move Cursor Up - + Mover cursor hacia arriba Move Cursor Down 10 Lines - + Mover cursor 10 líneas hacia abajo Move Cursor Up 10 Lines - + Mover cursor 10 líneas hacia arriba Cut to the end of the line - + Cortar hasta el final de la línea Copy the current selection - + Copiar la selección actual Cut the current selection - + Cortar la selección actual Paste the current selection - + Pegar la selección actual Move Cursor Right - + Mover cursor a la derecha Move Cursor Left - + Mover cursor a la izquierda Delete Right - + Eliminar a la derecha Delete Left - + Eliminar a la izquierda Move Cursor to Start of Line - + Mover cursor al inicio de la línea Move Cursor to End of Line - + Mover cursor al final de la línea Move Cursor to Start of Document - + Mover cursor al inicio del documento Move Cursor to End of Document - + Mover cursor al final del documento Move Cursor Right by Word - + Mover cursor una palabra a la derecha Move Cursor Left by Word - + Mover cursor una palabra a la izquierda Undo the last action - + Deshacer la última acción Redo the last undo - + Rehacer lo último deshecho Select all text - + Seleccionar todo el texto Delete word to the right - + Eliminar palabra a la derecha Delete word to the left - + Eliminar palabra a la izquierda Uppercase word or selection - + Convertir palabra o selección a mayúsculas Lowercase word or selection - + Convertir palabra o selección a minúsculas Set a mark in the text - + Establecer una marca en el texto Look up documentation for the current word - + Buscar documentación para la palabra actual Cycle through the available colour themes - + Cambiar entre los temas de color disponibles Switch to the previous tab - + Cambiar a la pestaña anterior Switch to the next tab - + Cambiar a la siguiente pestaña Switch to tab 1 - + Cambiar a pestaña 1 Switch to tab 2 - + Cambiar a pestaña 2 Switch to tab 3 - + Cambiar a pestaña 3 Switch to tab 4 - + Cambiar a pestaña 4 Switch to tab 5 - + Cambiar a pestaña 5 Switch to tab 6 - + Cambiar a pestaña 6 Switch to tab 7 - + Cambiar a pestaña 7 Switch to tab 8 - + Cambiar a pestaña 8 Switch to tab 9 - + Cambiar a pestaña 9 Switch to tab 0 - + Cambiar a pestaña 0 Place focus on the logs - + Colocar el foco en los registros Show or hide the buttons - + Mostrar u ocultar los botones Show or hide the cue log - + Mostrar u ocultar el registro de señales Show or hide the log - + Mostrar u ocultar el registro Zoom in the log - + Ampliar el registro Zoom out the log - + Reducir el registro Toggle fullscreen mode - + Alternar modo de pantalla completa @@ -618,45 +618,45 @@ Obtén Sonic Pi %1 Sonic Pi - Unable to Write to Home Directory - + Sonic Pi - No se puede escribir en el directorio de inicio Boot Error - Home Dir not writable: - + Error de arranque - Directorio de inicio no escribible: Quick Fix: set the environment variable SONIC_PI_HOME to a directory you have permission to write to. - + Solución rápida: configure la variable de entorno SONIC_PI_HOME a un directorio donde tenga permisos de escritura. For the curious among you, Sonic Pi automatically stores the contents of the code buffers, configuration files and logs in a folder called .sonic-pi which typically resides in your home directory. - + Para los curiosos, Sonic Pi almacena automáticamente el contenido de los buffers de código, archivos de configuración y registros en una carpeta llamada .sonic-pi que normalmente reside en su directorio de inicio. Unfortunately you don't appear to have permission to write to your home directory: - + Desafortunadamente, parece que no tiene permiso para escribir en su directorio de inicio: To fix this you can set the environment variable SONIC_PI_HOME to any directory you have write access to and Sonic Pi will place its .sonic-pi directory within that. - + Para solucionar esto, puede configurar la variable de entorno SONIC_PI_HOME a cualquier directorio donde tenga acceso de escritura y Sonic Pi colocará su directorio .sonic-pi dentro de él. Boot Error - SONIC_PI_HOME not writable: - + Error de arranque - SONIC_PI_HOME no escribible: Unfortunately it appears you have set the SONIC_PI_HOME environment variable to a directory you don't have permission to write to: - + Desafortunadamente, parece que ha configurado la variable de entorno SONIC_PI_HOME a un directorio donde no tiene permisos de escritura: @@ -746,12 +746,12 @@ Obtén Sonic Pi %1 Tap Tempo - Toque Tempo + Marcar tempo Click Link Tap Tempo - + Hacer clic para marcar tempo Link @@ -1051,132 +1051,133 @@ Obtén Sonic Pi %1 Apologies, unable to start... - + Disculpas, no se puede iniciar... + Sorry, Sonic Pi is having issues booting: - + Lo sentimos, Sonic Pi tiene problemas para arrancar: Vertically center the caret in the editor - + Centrar verticalmente el cursor en el editor Move Line or Selection Up - + Mover línea o selección hacia arriba Move Line or Selection Down - + Mover línea o selección hacia abajo Move Down One Line - + Mover una línea hacia abajo Move Up One Line - + Mover una línea hacia arriba Move Down Ten Lines - + Mover diez líneas hacia abajo Move Up Ten Lines - + Mover diez líneas hacia arriba Cut to End of Line - + Cortar hasta el final de la línea Copy - + Copiar Cut - + Cortar Paste - + Pegar Move Right - + Mover a la derecha Move Left - + Mover a la izquierda Delete Forward - + Eliminar hacia adelante Delete Back - + Eliminar hacia atrás Move to Start of Line - + Mover al inicio de la línea Move to End of Line - + Mover al final de la línea Move to Start of Document - + Mover al inicio del documento Move to End of Document - + Mover al final del documento Move Right One Word - + Mover una palabra a la derecha Move Left One Word - + Mover una palabra a la izquierda Center Cursor Vertically - + Centrar cursor verticalmente Undo - + Deshacer Redo - + Rehacer @@ -1186,17 +1187,17 @@ Obtén Sonic Pi %1 Delete Word Left - + Eliminar palabra a la izquierda Delete Word Right - + Eliminar palabra a la derecha Upcase Word or Selection - + Poner palabra o selección en mayúscula @@ -1226,87 +1227,87 @@ Obtén Sonic Pi %1 Focus Tab 1 - + Enfocar pestaña 1 Focus Tab 2 - + Enfocar pestaña 2 Focus Tab 3 - + Enfocar pestaña 3 Focus Tab 4 - + Enfocar pestaña 4 Focus Tab 5 - + Enfocar pestaña 5 Focus Tab 6 - + Enfocar pestaña 6 Focus Tab 7 - + Enfocar pestaña 7 Focus Tab 8 - + Enfocar pestaña 8 Focus Tab 9 - + Enfocar pestaña 9 Focus Tab 0 - + Enfocar pestaña 0 Auto Indent Code Buffer - + Indentar automáticamente el buffer de código Set Mark - + Establecer marca Emacs Live Shortcut Mode - + Modo de atajos de Emacs Live Windows Shortcut Mode - + Modo de atajos de Windows Mac Shortcut Mode - + Modo de atajos de Mac User Shortcut Mode - + Modo de atajos de usuario Shortcut Mode - + Modo de atajos @@ -1346,12 +1347,12 @@ Obtén Sonic Pi %1 Zoom Out Logs - + Reducir los registros Focus - + Foco @@ -1366,7 +1367,7 @@ Obtén Sonic Pi %1 Enabling MIDI <input>... - + Habilitando entrada MIDI... @@ -1637,7 +1638,7 @@ Obtén Sonic Pi %1 Cannot read file %1: %2. - No se puede leer el archivo %1: + No se puede leer el archivo %1: %2. @@ -1649,7 +1650,7 @@ Obtén Sonic Pi %1 Cannot write file %1: %2. - No se puede escribir el archivo %1: + No se puede escribir el archivo %1: %2. @@ -1843,8 +1844,8 @@ Useful when working with external systems that can only handle mono. Alternar Modo Mono Si se encuentra activado, se mezclarán el audio del altavoz izquierdo y derecho, -y enviará la misma señal a ambos altavoces. -Esto es útil cuando se trabaja con sistemas externos que +y enviará la misma señal a ambos altavoces. +Esto es útil cuando se trabaja con sistemas externos que soportan únicamente salida mono. @@ -1885,7 +1886,7 @@ it is too late to do so When disabled, Sonic Pi will always attempt to trigger synths and FX even when a little late. - Cuando está habilitado, Sonic Pi impedirá + Cuando está habilitado, Sonic Pi impedirá el inicio de sintetizadores y efectos si es demasiado tarde para hacerlo @@ -1921,7 +1922,7 @@ que no está reconocido. to and from other programs or computers via the currently connected network. Sonic Pi puede enviar y recibir mensajes OSC (Open Sound Control) -hacia y desde otros programas u ordenadores +hacia y desde otros programas u ordenadores a través de la red actualmente conectada. @@ -1964,7 +1965,7 @@ Cuando no se elije, solo se habilita envío y recepción desde la máquina local Automatically align code on Enter or Run - + Alinear código automáticamente al presionar Enter o Ejecutar @@ -2005,7 +2006,7 @@ Cuando no esté seleccionado no se recibirán mensajes OSC. - Reset MIDI subsystems + Reset MIDI subsystems (Required to detect device changes on macOS) Reinicia subsistemas MIDI (En MacOS, es necesario para detectar cambios en los dispositivos) @@ -2033,7 +2034,7 @@ Sonic Pi y son recibidos como eventos de señal (cue) MIDI output devices receive MIDI messages directly from Sonic Pi which can be sent via the midi_* fns - Los dispositivos MIDI de salida reciben mensajes MIDI directamente de + Los dispositivos MIDI de salida reciben mensajes MIDI directamente de Sonic Pi, los cuales pueden ser enviados a través de los fns midi_* @@ -2302,7 +2303,7 @@ Sonic Pi, los cuales pueden ser enviados a través de los fns midi_* Cambiar opción de registrar mensajes. -Si esta opción está deshabilitada, actividades como el disparador del sintetizador +Si esta opción está deshabilitada, actividades como el disparador del sintetizador o muestra no se imprimirán en el registro por defecto. @@ -2315,8 +2316,8 @@ o muestra no se imprimirán en el registro por defecto. Toggle log clearing on run. If enabled, the log is cleared each time the run button is pressed. - Cambia opción de limpiar el registro al iniciar. -Si se encuentra habilitado, el registro se limpiará + Cambia opción de limpiar el registro al iniciar. +Si se encuentra habilitado, el registro se limpiará cada vez que se presione el botón de iniciar. @@ -2392,7 +2393,7 @@ Si se activa el registro se desplaza al último mensaje mostrado. - Translations have been generously provided by volunteers + Translations have been generously provided by volunteers on https://hosted.weblate.org/projects/sonic-pi/. Thank you! :) Las traducciones han sido proporcionadas generosamente por voluntarios en https://hosted.weblate.org/projects/sonic-pi/. ¡Gracias! :) @@ -2415,13 +2416,14 @@ en https://hosted.weblate.org/projects/sonic-pi/. ¡Gracias! :) System language found: %1 - + Idioma del sistema encontrado: %1 System language: %1 - + Idioma del sistema: %1 + @@ -2507,7 +2509,7 @@ Mirror Stereo - simple left/right composite wave, with left on top, right on bot Mono - shows a combined view of the left and right channels (using RMS) Spectrum - shows the sound frequencies as a spectrum, from low to high frequencies Stereo - shows two independent scopes for left and right channels - Los osciloscopias de audio vienen en diversos formatos que pueden + Los osciloscopias de audio vienen en diversos formatos que pueden ser vistos de forma independiente o al tiempo: Lissajous - ilustra relaciones de fase entre los canales izquierdo y derecho @@ -2530,7 +2532,7 @@ Estereo - muestra dos osciloscopios independientes para los canales izquierdo y Toggle automatic update checking. This check involves sending anonymous information about your platform and version. - Alterna la opción de comprobación automática de actualizaciones. + Alterna la opción de comprobación automática de actualizaciones. Esta verificación conlleva enviar información anónima de su plataforma y versión actuales. @@ -2542,7 +2544,7 @@ Esta verificación conlleva enviar información anónima de su plataforma y vers Force a check for updates now. This check involves sending anonymous information about your platform and version. - Comprobar inmediatamente la existencia de actualizaciones. + Comprobar inmediatamente la existencia de actualizaciones. Esta verificación conlleva enviar información anónima acerca de tu plataforma y versión actuales. @@ -2566,4 +2568,4 @@ Esta verificación conlleva enviar información anónima acerca de tu plataforma Información de actualización de Sonic Pi - + \ No newline at end of file diff --git a/app/gui/lang/sonic-pi_fr.ts b/app/gui/lang/sonic-pi_fr.ts index fe7964ebb7..119c6c587d 100644 --- a/app/gui/lang/sonic-pi_fr.ts +++ b/app/gui/lang/sonic-pi_fr.ts @@ -620,28 +620,28 @@ For the curious among you, Sonic Pi automatically stores the contents of the code buffers, configuration files and logs in a folder called .sonic-pi which typically resides in your home directory. - + Pour les plus curieux d'entre vous, Sonic Pi stocke automatiquement le contenu des tampons de code, des fichiers de configuration et des journaux dans un dossier appelé .sonic-pi qui se trouve généralement dans votre répertoire personnel. Unfortunately you don't appear to have permission to write to your home directory: - + Malheureusement, vous ne semblez pas avoir l'autorisation d'écrire dans votre répertoire personnel : To fix this you can set the environment variable SONIC_PI_HOME to any directory you have write access to and Sonic Pi will place its .sonic-pi directory within that. - + Pour résoudre ce problème, vous pouvez définir la variable d'environnement SONIC_PI_HOME à n'importe quel répertoire auquel vous avez accès en écriture et Sonic Pi placera son répertoire .sonic-pi à l'intérieur de celui-ci. Boot Error - SONIC_PI_HOME not writable: - + Erreur de démarrage - SONIC_PI_HOME ne peut pas être écrit : Unfortunately it appears you have set the SONIC_PI_HOME environment variable to a directory you don't have permission to write to: - + Malheureusement, il semble que vous ayez défini la variable d'environnement SONIC_PI_HOME pour un répertoire où vous n'avez pas le droit d'écrire : @@ -1035,252 +1035,252 @@ Vertically center the caret in the editor - + Centrer verticalement le caret dans l'éditeur Move Line or Selection Up - + Déplacer la ligne ou la sélection vers le haut Move Line or Selection Down - + Déplacer la ligne ou la sélection vers le bas Move Down One Line - + Descendre d'une ligne Move Up One Line - + Remonter d'une ligne Move Down Ten Lines - + Descendre de dix lignes Move Up Ten Lines - + Remonter de dix lignes Cut to End of Line - + Couper jusqu'à la fin de la ligne Copy - + Copier Cut - + Couper Paste - + Coller Move Right - + Déplacer vers la droite Move Left - + Déplacer vers la gauche Delete Forward - + Effacer en avant Delete Back - + Effacer en arrière Move to Start of Line - + Déplacer vers le début de la ligne Move to End of Line - + Déplacer vers la fin de la ligne Move to Start of Document - + Déplacer vers le début du document Move to End of Document - + Déplacer vers la fin du document Move Right One Word - + Déplacer d'un mot vers la droite Move Left One Word - + Déplacer d'un mot vers la gauche Center Cursor Vertically - + Centrer le curseur verticalement Undo - + Défaire Redo - + Refaire Select All - + Tout sélectionner Delete Word Left - + Supprimer le mot à gauche Delete Word Right - + Supprimer le mot à droite Upcase Word or Selection - + Mise en majuscule du mot ou de la sélection Downcase Word or Selection - + Mise en minuscule du mot ou de la sélection Show Docs for Current Word - + Afficher la documentation pour le mot actuel Cycle Themes - + Thèmes du cycle Previous Tab - + Onglet précédent Next Tab - + Onglet suivant Focus Tab 1 - + Focus sur l'onglet 1 Focus Tab 2 - + Focus sur l'onglet 2 Focus Tab 3 - + Focus sur l'onglet 3 Focus Tab 4 - + Focus sur l'onglet 4 Focus Tab 5 - + Focus sur l'onglet 5 Focus Tab 6 - + Focus sur l'onglet 6 Focus Tab 7 - + Focus sur l'onglet 7 Focus Tab 8 - + Focus sur l'onglet 8 Focus Tab 9 - + Focus sur l'onglet 9 Focus Tab 0 - + Focus sur l'onglet 0 Auto Indent Code Buffer - + Indentation automatique du tampon de code Set Mark - + Paramétrer un marqueur Emacs Live Shortcut Mode - + Mode raccourci d'Emacs Live Windows Shortcut Mode - + Mode raccourci de Windows Mac Shortcut Mode - + Mode raccourci de Mac User Shortcut Mode - + Mode raccourci de l'utilisateur Shortcut Mode - + Mode raccourci @@ -1315,17 +1315,17 @@ Zoom In Logs - + Zoom avant des journaux Zoom Out Logs - + Zoom arrière des journaux Focus - + Focus @@ -1340,7 +1340,7 @@ Enabling MIDI <input>... - + Activation du MIDI <input>... @@ -1965,7 +1965,7 @@ via le réseau actuellement connecté. Automatically align code on Enter or Run - + Aligner automatiquement le code lors de Entrée ou Run @@ -2416,13 +2416,14 @@ sur https://hosted.weblate.org/projects/sonic-pi/. Merci ! :) System language found: %1 - + Langue système découverte : %1 System language: %1 - + Langue système : %1 + diff --git a/app/gui/lang/sonic-pi_ga.ts b/app/gui/lang/sonic-pi_ga.ts index 1cd082c49f..4500827daf 100644 --- a/app/gui/lang/sonic-pi_ga.ts +++ b/app/gui/lang/sonic-pi_ga.ts @@ -495,7 +495,7 @@ Vertically center the caret in the editor - + Lárnaigh an caret go hingearach san eagarthóir @@ -1482,7 +1482,7 @@ Faigh Sonic Pi% 1 Enabling MIDI <input>... - + Ag cumasú <ionchur> MIDI... diff --git a/app/gui/mainwindow.cpp b/app/gui/mainwindow.cpp index e5d716c525..d12c2681e5 100644 --- a/app/gui/mainwindow.cpp +++ b/app/gui/mainwindow.cpp @@ -415,7 +415,6 @@ void MainWindow::setupWindowStructure() errorPane = new QTextBrowser; metroPane = new SonicPiMetro(m_spClient, m_spAPI, theme, this); - connect(metroPane, SIGNAL(linkEnabled()), this, SLOT(checkEnableLinkMenu())); connect(metroPane, SIGNAL(linkDisabled()), this, SLOT(uncheckEnableLinkMenu())); @@ -3187,8 +3186,8 @@ void MainWindow::loadWinShortcuts() shortcutMap["DeleteBackward"] = resolveShortcut("Ctrl+h"); shortcutMap["LineStart"] = resolveShortcut("Home"); shortcutMap["LineEnd"] = resolveShortcut("End"); - shortcutMap["DocStart"] = resolveShortcut("MetaShift+,"); - shortcutMap["DocEnd"] = resolveShortcut("MetaShift+."); + shortcutMap["DocStart"] = resolveShortcut("Ctrl+Home"); + shortcutMap["DocEnd"] = resolveShortcut("Ctrl+End"); shortcutMap["WordRight"] = resolveShortcut("Ctrl+Right"); shortcutMap["WordLeft"] = resolveShortcut("Ctrl+Left"); shortcutMap["CenterVertically"] = resolveShortcut("Ctrl+l"); @@ -3526,7 +3525,6 @@ void MainWindow::createToolBar() enableLinkAct->setChecked(false); connect(enableLinkAct, SIGNAL(triggered()), this, SLOT(toggleLinkMenu())); - linkTapTempoAct = new QAction(tr("Tap Tempo"), this); connect(linkTapTempoAct, SIGNAL(triggered()), metroPane, SLOT(tapTempo())); @@ -4311,7 +4309,14 @@ void MainWindow::readSettings() piSettings->themeStyle = theme->themeNameToStyle(styleName); piSettings->show_autocompletion = gui_settings->value("prefs/show-autocompletion", true).toBool(); piSettings->show_context = gui_settings->value("prefs/show-context", true).toBool(); - piSettings->shortcut_mode = gui_settings->value("prefs/shortcut-mode", 1).toInt(); +#if defined(Q_OS_WIN) + int os_shortcut_mode = 2; +#elif defined(Q_OS_MAC) + int os_shortcut_mode = 3; +#else + int os_shortcut_mode = 1; +#endif + piSettings->shortcut_mode = gui_settings->value("prefs/shortcut-mode", os_shortcut_mode).toInt(); emit settingsChanged(); } diff --git a/app/server/ruby/bin/i18n-tool.rb b/app/server/ruby/bin/i18n-tool.rb index 84d69fcfb4..f38f40fe95 100755 --- a/app/server/ruby/bin/i18n-tool.rb +++ b/app/server/ruby/bin/i18n-tool.rb @@ -49,6 +49,21 @@ def is_number? string end +def clean_invisible_chars(text) + # Remove or replace problematic invisible Unicode characters that can cause + # syntax errors when code is copied from documentation + text + .gsub(/\u202F/, ' ') # Replace Narrow No-Break Space with regular space + .gsub(/\u00A0/, ' ') # Replace Non-Breaking Space with regular space + .gsub(/\u200B/, '') # Remove Zero Width Space + .gsub(/\u200C/, '') # Remove Zero Width Non-Joiner + .gsub(/\u200D/, '') # Remove Zero Width Joiner + .gsub(/\uFEFF/, '') # Remove Byte Order Mark + .gsub(/\u200E/, '') # Remove Left-to-Right Mark + .gsub(/\u200F/, '') # Remove Right-to-Left Mark +end + + def handle_entry(msgid, filename, line, flags = []) reference = "#{filename}:#{line}" msgid.gsub!(/\\([.:_])/, '\1') @@ -217,7 +232,8 @@ def convert_element(filename, el, bullet = nil) FileUtils::mkdir_p File.expand_path("../../../../etc/doc/generated/#{l}/tutorial", __dir__) $translated.each do |filename, newcontent| File.open(File.expand_path("../../../../etc/doc/generated/#{l}/tutorial/#{filename}", __dir__), 'w') do |f| - f << newcontent + # Clean invisible characters that can cause syntax errors + f << clean_invisible_chars(newcontent) end end if ($count_msgid > 0) then diff --git a/install/windows/wix/sonic-pi.wxs b/install/windows/wix/sonic-pi.wxs index 28ab2d32c6..b6a645553f 100644 --- a/install/windows/wix/sonic-pi.wxs +++ b/install/windows/wix/sonic-pi.wxs @@ -26,19 +26,15 @@ - - - -