Translatable debug strings.
Remmina is not fully translated
There are strings in the Remmina source code that are not marked for translation. Most of these strings if not all, are part of debug messages in either the Remmina debug window or in the terminal
Further details
For example some of the debug messages are:
src/remmina_crypt.c: g_debug ("%s base64 encoded as %p with length %lu",
src/remmina_exec.c: g_debug ("Profile %s is set to autostart", remminafile->filename);
src/remmina_message_panel.c: g_signal_new ("response",
src/remmina_unlock.c: g_warning ("Passphrase is wrong, to reset it, you can edit the remmina.pref file by hand");
src/remmina_pref.c: g_debug ("remmina.pref is not writable, returning");
src/remmina_pref.c: g_warning ("remmina_pref_save error: %s", error->message);
src/remmina.c: g_unsetenv ("GDK_CORE_DEVICE_EVENTS");
src/remmina_main.c: g_warning ("Failed to set '%s' as the default application for secondary content type '%s': %s",
src/remmina_main.c: g_debug ("Set '%s' as the default application for '%s'",
src/remmina_main.c: g_debug ("Quit intercept");
src/remmina_file_editor.c: g_debug ("[Editor - tunnel] ssh_tunnel_auth_status is: %d", ssh_tunnel_auth_status);
src/remmina_protocol_widget.c: g_debug ("LibSSH support turned off, no need to free SSH tunnel data");
src/remmina_protocol_widget.c: g_debug ("[RPW] %s creating SSH tunnel to \"%s\" via SSH…", __func__, REMMINA_SSH(tunnel)->server);
src/remmina_protocol_widget.c: g_debug ("[SSH] %s Cannot init SSH session with tunnel struct", __func__);
src/remmina_protocol_widget.c: g_debug ("[SSH] tunnel auth returned %d", ret);
src/remmina_protocol_widget.c: g_debug ("SSH tunnel initialization…");
src/remmina_protocol_widget.c: g_debug ("server: %s, port: %d", srv_host, srv_port);
src/remmina_protocol_widget.c: g_debug ("[SSH] %s remmina_protocol_widget_init_tunnel failed with error is %s\n",
src/remmina_protocol_widget.c: g_debug ("%s: starting tunnel to: %s, port: %d", __func__, ssh_tunnel_host, ssh_tunnel_port);
src/remmina_ssh.c: //g_print ("[SSH] X11 channel error: %d\n", ret);
src/rmnews.c: g_warning ("Failed to set '%s' as the default application for secondary content type '%s': %s",
src/rmnews.c: g_debug ("Set '%s' as the default application for '%s'",
src/rmnews.c: g_debug ("Returned %d while creating %s", fd, output_file_path);
src/rmnews.c: g_debug ("Cannot store the remmina news file");
src/rmnews.c: g_debug ("Setting a random periodic_rmnews_last_get");
src/rmnews.c: g_debug ("periodic_rmnews_last_get is %ld", remmina_pref.periodic_rmnews_last_get);
src/remmina_file.c: g_debug ("We have a secret and disablepasswordstoring=0");
src/remmina_file.c: g_debug ("We have a password and disablepasswordstoring=0");
src/remmina_file.c: g_debug ("Deleting the secret in the keyring as disablepasswordstoring=1");
src/rcw.c: g_debug ("deny_screenshot_clipboard is set to %s", denyclip);
And for the debug window:
src/remmina_log.c: remmina_log_print("Shortcut keys for stats:\n"
src/remmina_log.c:static gboolean remmina_log_print_real(gpointer data)
src/remmina_log.c:void remmina_log_print(const gchar *text)
src/remmina_log.c: IDLE_ADD(remmina_log_print_real, g_strdup(text));
src/remmina_log.c:void remmina_log_printf(const gchar *fmt, ...)
src/remmina_log.c: IDLE_ADD(remmina_log_print_real, text);
src/remmina_mpchange.c: remmina_log_printf("Unable to load the multiple password changer glade file interface\n");
src/remmina_log.h:void remmina_log_print(const gchar *text);
src/remmina_log.h:void remmina_log_printf(const gchar *fmt, ...);
src/remmina_plugin_manager.c: remmina_log_print,
src/remmina_plugin_manager.c: remmina_log_printf,
src/remmina_stats_sender.c: remmina_log_printf("HTTP status error sending stats: %d\n",msg->status_code);
src/remmina_stats_sender.c: remmina_log_printf("STATS script response: %.40s\n", sb->data);
src/remmina_stats_sender.c: remmina_log_printf("STATS http upload error from server side script: %s\n", sb->data);
src/remmina_stats_sender.c: remmina_log_printf("STATS upload: JSON data%s\n", unenc_s);
src/remmina_stats_sender.c: remmina_log_printf("STATS upload: Starting upload to url %s\n", PERIODIC_UPLOAD_URL);
src/remmina_stats.c: remmina_log_print("Gnome Shell not found\n");
src/remmina_stats.c: remmina_log_printf("Gnome Shell version: %s\n", wmver);
src/remmina_stats.c: remmina_log_print("Cannot determine the Window Manger name\n");
src/remmina_stats.c: remmina_log_printf("Window Manger names %s\n", wmname);
src/remmina_protocol_widget.c: remmina_log_printf("plugin screenshot function is not implemented\n");
src/remmina_ssh.c: remmina_log_printf("[SSH] %s\n", message);
src/remmina_ssh.c: remmina_log_printf("[SSH] SSH_OPTIONS_IDENTITY is now %s\n", ssh->privkeyfile);
src/remmina_ssh.c: remmina_log_printf("[SSH] SSH_OPTIONS_IDENTITY is not set, by default the files \"identity\", \"id_dsa\" and \"id_rsa\" are used.\n");
src/remmina_ssh.c: remmina_log_printf("[SSH] SSH_OPTIONS_KEY_EXCHANGE is now %s\n", ssh->kex_algorithms);
src/remmina_ssh.c: remmina_log_printf("[SSH] SSH_OPTIONS_KEY_EXCHANGE does not have a valid value. %s\n", ssh->kex_algorithms);
src/remmina_ssh.c: remmina_log_printf("[SSH] SSH_OPTIONS_CIPHERS_C_S has been set to %s\n", ssh->ciphers);
src/remmina_ssh.c: remmina_log_printf("[SSH] SSH_OPTIONS_CIPHERS_C_S does not have a valid value. %s\n", ssh->ciphers);
src/remmina_ssh.c: remmina_log_printf("[SSH] SSH_OPTIONS_HOSTKEYS is now %s\n", ssh->hostkeytypes);
src/remmina_ssh.c: remmina_log_printf("[SSH] SSH_OPTIONS_HOSTKEYS does not have a valid value. %s\n", ssh->hostkeytypes);
src/remmina_ssh.c: remmina_log_printf("[SSH] SSH_OPTIONS_PROXYCOMMAND is now %s\n", ssh->proxycommand);
src/remmina_ssh.c: remmina_log_printf("[SSH] SSH_OPTIONS_PROXYCOMMAND does not have a valid value. %s\n", ssh->proxycommand);
src/remmina_ssh.c: remmina_log_printf("[SSH] SSH_OPTIONS_STRICTHOSTKEYCHECK is now %d\n", ssh->stricthostkeycheck);
src/remmina_ssh.c: remmina_log_printf("[SSH] SSH_OPTIONS_STRICTHOSTKEYCHECK does not have a valid value. %d\n", ssh->stricthostkeycheck);
src/remmina_ssh.c: remmina_log_printf("[SSH] SSH_OPTIONS_COMPRESSION is now %s\n", ssh->compression);
src/remmina_ssh.c: remmina_log_printf("[SSH] SSH_OPTIONS_COMPRESSION does not have a valid value. %s\n", ssh->compression);
src/remmina_ssh.c: remmina_log_printf("[SSH] TCP KeepAlive not set\n");
src/remmina_ssh.c: remmina_log_printf("[SSH] TCP KeepAlive enabled\n");
src/remmina_ssh.c: remmina_log_printf("[SSH] TCP_KEEPIDLE not set\n");
src/remmina_ssh.c: remmina_log_printf("[SSH] TCP_KEEPIDLE set to %i\n", optval);
src/remmina_ssh.c: remmina_log_printf("[SSH] TCP_KEEPCNT not set\n");
src/remmina_ssh.c: remmina_log_printf("[SSH] TCP_KEEPCNT set to %i\n", optval);
src/remmina_ssh.c: remmina_log_printf("[SSH] TCP_KEEPINTVL not set\n");
src/remmina_ssh.c: remmina_log_printf("[SSH] TCP_KEEPINTVL set to %i\n", optval);
src/remmina_ssh.c: remmina_log_printf("[SSH] TCP_USER_TIMEOUT not set\n");
src/remmina_ssh.c: remmina_log_printf("[SSH] TCP_USER_TIMEOUT set to %i\n", optval);
src/remmina_ssh.c: remmina_log_printf("[SSH] tunnel disconnected because %s\n", REMMINA_SSH(tunnel)->error);
src/remmina_ssh.c: remmina_log_printf("Connection to SSH tunnel dropped. %s\n", REMMINA_SSH(tunnel)->error);
src/remmina_ssh.c: remmina_log_printf("Could not open new SSH connection. %s\n", REMMINA_SSH(tunnel)->error);
src/remmina_file.c: remmina_log_printf("stat %s:", remminafile->filename);
src/remmina_file.c: remmina_log_printf("utimensat %s:", remminafile->filename);
src/remmina_file.c: remmina_log_printf("open %s:", remminafile->filename);
src/rcw.c: remmina_log_printf("Screenshot from plugin: w=%d h=%d bpp=%d bytespp=%d\n",
src/rcw.c: remmina_log_print("Fullscreen managed by WM or by the user, as per settings");
src/rcw.c: remmina_log_print("Cannot fullscreen on a specific monitor, feature available from GTK 3.18");
Proposal
Let's see if we can mark as translatable some, or all of those strings.
N.B.: Discussed on IRC