Every module now has a reviewed desc_tr and longdesc_tr in
module.info.tr - 245 strings across 125 modules. Previously 37 were
reviewed, 194 came from module.info.tr.auto and 14 were missing
entirely (grub2, hardware-info, kea-dhcp, logviewer, nftables, systemd,
xterm), so those modules showed English titles in the Webmin menu.
The reviewed strings are removed from module.info.tr.auto, which now
holds only name_tr - the same split the de and ca translations use.
Thirty-six of those files became empty and are deleted.
Some of the machine text this replaces was wrong rather than just
clumsy:
sarg "Squid Report Generator" had become "Kalamar Rapor
Oluşturucu" - the fish, not the proxy
heartbeat the product name was translated as "Kalp Atışı"
cluster-cron "Cron Jobs" had become "Cron İş İlanları" (job ads)
proc "renice" was translated as "rename"
samba "file and print shares" was split into "create a samba
file" and "print the shares"
exports, hpuxexports, sgiexports, inetd, init, mount, net
each repeated the file path mid-sentence
firewall, the "(iptables)" and "(ip6tables)" qualifiers that
firewall6 distinguish the two modules were dropped
Turkish capitalisation of English words was also wrong throughout
("İptables", "İnetd", "İscsitarget", "İnternet"), and three previously
reviewed strings were stored as double-encoded UTF-8 (cron/desc_tr,
mailboxes/desc_tr, mailboxes/longdesc_tr).
cluster-cron and ldap-server carried a stray desc_de_tr key - a German
key that had leaked into the Turkish file. It is removed.
Finishes the Turkish translation of system-status, logviewer, smart-status,
updown, htpasswd-file, bsdexports, dfsadmin, openslp, mailcap,
backup-config, at, proc, sgiexports, samba, lpadmin, cluster-cron,
tcpwrappers, hpuxexports, exports, cluster-shell, webmincron, time,
change-user, syslog, shell, inetd, htaccess-htpasswd, krb5, xterm, idmapd,
cluster-passwd, tunnel, inittab, passwd, man, xinetd, webalizer,
adsl-client and help, and removes their tr.auto files.
htaccess-htpasswd needed special handling: its existing lang/tr was a
verbatim copy of lang/en, so reusing it would have carried 75 English
strings into the finished file. The whole module was translated instead.
Six other strings that were still in English in acl, firewall, webalizer
and xinetd were translated at the same time.
Product and protocol names stay in English, including SMART, WebNFS,
Kerberos, LIPKEY, SPKM, OpenSLP, Winbind, TCP Wrappers, Xinetd, journalctl,
Boot Loader Specification, Trusted Platform Module and Alpine Package
Keeper.
ⓘ Only store `backend_session` for xterm websocket routes when there is no real browser session and a one-time backend key is needed. Normal xterm sessions continue using the browser session directly.
This PR adds general WebSocket proxying for linked Webmin servers, allowing modules such as `xterm` to work when opened through `servers/link.cgi`.
As requested in https://github.com/webmin/webmin/issues/1866.
The issue is a known xterm.js/iPadOS Safari hardware-keyboard bug where Ctrl+C may be reported like Enter/newline instead of terminal interrupt input; it has been fixed upstream in xterm.js.
https://github.com/xtermjs/xterm.js/issues/5721
ⓘ Avoid forcing xterm shell PTYs into IO::Stty raw/noecho mode, which can leave interactive shells with broken echo, line editing, and control-key behavior. Keep the existing stty logic for other PTY callers, but add an opt-out flag so xterm can let the shell manage terminal mode normally.
https://github.com/webmin/webmin/issues/2452