The file was regenerated when master added acl/forgot_sudouser, and the
regeneration dropped the trailing newline. All 481 files in this branch
now end with one.
Both issues were raised in review.
webmin/upgrade_desc had <a href="webmin.com">, which a browser resolves
against the Webmin server rather than the public site. lang/en has
<a href=https://webmin.com>; the Turkish now matches. This was the only
relative href in any Turkish file.
proc uses __norefs=1, so the four $stime values were displayed
literally instead of expanding. lang/en spells the word out in all four
places rather than referencing stime, so the Turkish now does the same.
A scan for the same class of defect across every module found one more
case that had not been reported: useradmin/uedit_dothers was
$udel_dothers, and useradmin also sets __norefs=1. lang/en spells that
one out too, so it is fixed the same way.
The scan also found heartbeat/conf_auto_on and conf_auto_off, which are
${conf_enabled} and ${conf_disabled} in lang/en itself - so English is
affected as well, and conf_auto_ references ${default}, a key that does
not exist in the file. That is an upstream bug rather than a
translation one, so it is left alone here and reported on the PR.
#2829 landed on master and touched 173 of the same keys this branch
rewrites, which is where the conflicts came from.
Resolved by rule rather than by hand: for any key #2829 already fixed
and merged, master's value wins (54 keys); everything else keeps this
branch's version. That keeps the diff against master limited to what is
genuinely new here, and avoids re-editing work that is already upstream.
It also avoids a regression. This branch was cut before #2829, so it
still carried the old double-encoded UTF-8 in nine mailboxes strings
(confirm_warnallf, left_autoreply, left_folders, left_forward,
left_pass, left_sig, mail_fromfilter, mail_selread, mail_subfilter).
Taking master's value for those keeps them fixed. A mojibake scan over
the whole tree after the merge reports 0 remaining lines.
master also added acl/forgot_sudouser, which is translated here, so
lang/tr is still complete at 31,523 of 31,523 keys.
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.
A consistency check of every lang/tr against its lang/en turned up 58
lines that were wrong independently of the missing translations. All of
them are fixed here:
Missing or wrong $N placeholders (the value silently disappears from
the message at runtime, or the wrong value is shown):
acl/cert_eca, acl/hide_desc, adsl-client/index_stopdesc,
apache/reconfig_ever, apache/log_files, apache/log_files_l,
bind8/log_manual, dhcpd/listl_lfnotcont, fdisk/mkfs_desc1,
fdisk/fsck_desc1, fdisk/tunefs_desc, hpuxexports/save_ehost,
inittab/log_rename, mysql/index_ever, mysql/index_version,
mysql/log_perm_create, mysql/log_perm_delete, mysql/log_perm_modify,
sendmail/index_epath, sendmail/index_startmsg, sendmail/asave_ematch,
sendmail/mailers_efile, sendmail/generics_efile,
webalizer/index_ewebalizer, webalizer/index_econf
cron/env_ename carried a $1 that lang/en does not have, and its text
described a different error than the key means.
adsl-client/index_stopdesc and inittab/log_rename each repeated $1
where $2 was meant, so both values printed the same string.
HTML markup that did not match lang/en:
bind8/mass_desc, dhcpd/index_dhcpdnotfound, firewall/index_existing,
inetd/index_applymsg, mysql/index_nomod, mysql/index_nomods,
samba/esync_msg, samba/viewu_list, sendmail/trusts_desc,
sendmail/mailers_desc2, sendmail/domains_desc, squid/clear_msgclear,
status/proc_thresh
Several of these were also truncated mid-sentence, dropping a whole
sentence of the original text; those are now translated in full.
Encoding:
mailboxes/confirm_warnf was stored as double-encoded UTF-8 and
displayed as mojibake. It also used $1 twice instead of $1 and $2.
Trailing whitespace:
proc/kill_term, kill_hup, kill_stop, kill_cont
Untranslated strings:
fdisk/select_* device descriptions, mount/irix_mode0, irix_mode0cd,
shorewall/tunnels_ipsec:noah
bind8/mass_desc previously translated the literal configuration
keywords master, slave, stub and forward into Turkish; they are now
left in English, since they are values the user has to type.
With this change every module has a complete lang/tr and no lang/tr.auto
files are left in the tree:
mount 92 new strings - Linux/FreeBSD/IRIX mount options
bandwidth 83 strings - bandwidth monitoring and reports
mailboxes 78 new strings - attachments, iCal, HTML composer
firewall 76 new strings - IPset, physdev, chain rename and move
gray-theme 72 strings - theme layout and system information page
fdisk 72 new strings - parted, NVME, partition table format
servers 71 new strings - automatic server discovery
stunnel 69 strings - SSL tunnels via inetd/xinetd
cron 68 new strings - crond control and manual editing
custom 63 new strings - SQL commands and output formats
cluster-copy 62 strings - scheduled file copies across servers
firewall/move_chain reads "Current change" in lang/en where "Current
chain" is clearly meant; it is translated by intent as "Mevcut zincir".
Command and format names that appear verbatim in configuration files
(parted, fdisk, hdparm, SMART, GPT, MS-DOS, NVME, tmpfs, CIFS, NFSv4,
inetd, xinetd, crond, IPset, physdev, TCP-wrappers) stay in English.
Finishes the Turkish translation of six modules and removes their
machine-generated lang/tr.auto files:
useradmin 110 new strings - SSH keys, group batch files, export
quota 111 new strings - Btrfs subvolume quotas, mass updates
heartbeat 98 strings - Heartbeat cluster monitor
ppp-client 98 strings - WvDial dialup client
webminlog 96 new strings - action search, rollback, notification
ldap-useradmin 94 new strings - LDAP users, Samba and IMAP options
Also fixes five defects in the existing Turkish files:
quota/gfilesys_all was missing its $1 placeholder
quota/lusers_noquota was missing $1 and the <tt> tags
quota/lusers_info was missing $1
useradmin/batch_emove was missing $2
useradmin/export_eopen had a literal $! where $1 was meant
Adds complete lang/tr files for five more previously untranslated
modules and removes their machine-generated lang/tr.auto files:
procmail 122 strings - procmail recipes, conditions and variables
cpan 121 strings - Perl module installation from CPAN
logrotate 117 strings - log file rotation and scheduling
pptp-client 106 strings - PPTP VPN tunnels and MPPE options
iscsi-tgtd 99 strings - iSCSI TGTd targets
iscsi-tgtd reuses 73 strings from iscsi-target and iscsi-server, taken
only where the English source text is identical.
Procmail flag semantics, Makefile.PL, endscript/endrotate, MPPE
directive names and MH/maildir folder types are kept in English, since
they appear verbatim in the configuration files being edited.
Completes the Turkish translation of six more modules and removes their
machine-generated lang/tr.auto files:
cluster-useradmin 154 strings - users and groups across servers
net 146 new strings - IPv6, bridges, bonding, VLANs
pptp-server 141 strings - PoPToP PPTP VPN server
format 141 strings - Solaris disk partitioning
filter 131 strings - Usermin mail filtering and autoreply
fetchmail 130 strings - Fetchmail mail retrieval
net already had a partial lang/tr; the 196 existing strings were kept
and only the untranslated remainder was added.
Interface and driver terminology that appears verbatim in configuration
files (Netplan, dhcpcd, Network Manager, miimon, updelay, downdelay,
balance-tlb, balance-alb, VLAN, PPP, PAP, CHAP, MS-CHAP, MPPE, PTY,
UFS, INBOX, procmail) is kept in English.
Adds complete lang/tr files for four more previously untranslated
modules and removes their machine-generated lang/tr.auto files:
iscsi-client 176 strings - iSCSI initiator, interfaces and connections
iscsi-target 170 strings - iSCSI target export and access control
raid 161 strings - Linux MD RAID arrays
pap 154 strings - PPP dial-in accounts and Mgetty ports
iscsi-client and iscsi-target reuse a few strings from iscsi-server,
taken only where the English source text is identical.
Command names and option flags (mdadm, mkraid, raidstart, raidstop,
--grow, --manage, LVM VG/LV, UUID, RAID0..RAID10, baud) are kept in
English, matching the rest of the Turkish translation.
Adds complete lang/tr files for four more previously untranslated
modules and removes their machine-generated lang/tr.auto files:
iscsi-server 177 strings - iSCSI extents, devices and targets
sarg 171 strings - Squid report generator
firewalld 169 strings - FirewallD zones, ports and rules
cluster-software 167 strings - package management across servers
cluster-software shares 69 strings with the software module, which were
reused verbatim after checking that the English source text matches.
Also fixes software/install_ezip, which was missing its $1 placeholder;
the same defect had been inherited by cluster-software.
Adds complete lang/tr files for four more previously untranslated
modules and removes their machine-generated lang/tr.auto files:
ldap-client 226 strings - NSS/PAM LDAP client setup and NSS switch
dovecot 188 strings - Dovecot IMAP/POP3 server configuration
filemin 185 strings - file manager UI
package-updates 176 strings - package update checking and repositories
Product names are deliberately left untranslated where Turkish has no
established equivalent: "Novell Directory Services", "Active Directory",
"System Security Services", "Hesiod", "XFN", "VPOPMail", "Blastwave".
Protocol, format and command names (IMAP, POP3, LMTP, SASL, Maildir,
mbox, dbox, chmod, chown, chattr, setfacl, umask, tar.gz) also stay in
English, matching the rest of the Turkish translation.
Adds complete lang/tr files for four more previously untranslated
modules and removes their machine-generated lang/tr.auto files:
ipsec 237 strings - FreeSWAN IPsec VPN connections and policies
rbac 235 strings - Solaris RBAC users, profiles and projects
ipfw 227 strings - BSD IPFW firewall rules
fsdump 227 strings - filesystem backup and restore
Two upstream lang/en strings have typos that were translated by intent
rather than literally: rbac/auth_err reads "Failed to authorization"
(missing "save") and rbac/policy_eclash spells "Algorithsm".
Protocol and command names (IPsec, ESP, AH, RSA, ICMP, TCP, UDP, MAC,
UID/GID, gzip, bzip2, XZ, rmt, noatime, dumpdates) are kept in English,
matching the rest of the Turkish translation.
Adds complete lang/tr files for three previously untranslated modules
and removes their machine-generated lang/tr.auto files:
bsdfdisk 292 strings - BSD slice/partition, GEOM, ZFS and newfs UI
ipfilter 304 strings - IPFilter rules, NAT/redirect and clustering
zones 268 strings - Solaris zone management
Also fixes two strings that were still English in existing files:
acl/log_reset and firewall/edit_flags. The latter also had its $1/$2
placeholders in the wrong order relative to lang/en.
Protocol keywords, command names and configuration values (TCP, ICMP,
NAT, CIDR, ZFS, GEOM, glabel, VT100, NIS+, ro,nosuid) are kept in
English, matching the rest of the Turkish translation.
Translates all 375 strings in minecraft/lang/en and all 325 in
smf/lang/en into Turkish, and removes both tr.auto files.
Game and platform vocabulary stays in English where it names something
the user will see elsewhere: Minecraft world types, Nether, NPC, JAR,
UUID, XP and level.dat, and on the Solaris side SMF, FMRI, the svcs,
svcadm, svccfg and inetd manual page references, and the dependency
grouping keywords require_all, require_any, optional_all and exclude_all.
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.
Translates all 319 strings in ldap-server/lang/en and all 288 in
nis/lang/en into Turkish, and removes both tr.auto files.
Directory and naming-service terms stay in English: OpenLDAP, slapd,
LDIF, DN and the sample DNs, SHA1 and SSHA hashing, objectClass filters,
NIS and NIS+, Hesiod, XFN, RPC, DES and the Automounter map names.
Adds the 285 strings missing from dhcpd/lang/tr and the 196 missing from
init/lang/tr, so both modules are now fully translated, and removes their
tr.auto files.
Names that appear in configuration or on the command line stay in English:
ISC DHCPd, dhcpd.conf, TSIG, SLP, the ad-hoc and interim DDNS update
styles, and the boot systems SysV init, Upstart, systemd, launchd, OpenRC,
FreeBSD RC and macOS StartupItems.
Translates all 307 strings in cluster-usermin/lang/en into Turkish and
removes cluster-usermin/lang/tr.auto.
264 strings are shared verbatim with the cluster-webmin module and reuse
its translation; the 43 keys whose English differs - almost all of them
naming Usermin rather than Webmin - were translated separately.
Translates all 317 strings in cluster-webmin/lang/en into Turkish and
removes cluster-webmin/lang/tr.auto.
Package format and protocol names stay in English: RPM, tar.gz, the
Debian, Solaris, Gentoo and Caldera package types, RPC and module.info.
Adds the 273 strings that acl/lang/tr was missing, so the Webmin Users
module is now fully translated, and removes acl/lang/tr.auto.
Authentication and directory terms stay in English: PAM, SSSD, sudo, root,
LDAP, DN and the sample base DN dc=mydomain,dc=com, along with the schema
paths /etc/ldap/schema and /etc/openldap/schema.
Adds the 350 strings that software/lang/tr was missing, so the module is
now fully translated, and removes software/lang/tr.auto.
Package manager names and their subcommands stay in English: APT, YUM,
DNF, RPM, RHN, URPMI, APK, CSW, IPKG, pkgng, pkgsrc, Portage, emerge,
MSI, the versionlock and upgrade-dist subcommands, and the uncompress,
gzip and gunzip tools.
Adds the 348 strings that sendmail/lang/tr was missing, so the module is
now fully translated, and removes sendmail/lang/tr.auto.
107 of the new strings are shared verbatim with the postfix module and
reuse its translation; 25 keys whose English differs were translated
separately.
Sendmail feature and file names stay in English, since they appear in the
M4 configuration: virtuser, mailertable, generics, domaintable,
access_db, the M4 entry types (Feature, Define, Undefine, Mailer), and the
SMTP tokens HELO, ETRN, From: and To:.
Translates all 369 strings in qmailadmin/lang/en into Turkish and removes
qmailadmin/lang/tr.auto.
187 strings are shared verbatim with the postfix module and reuse its
translation; reuse required the two lang/en values to be byte-identical,
which excluded 19 keys whose English differs.
QMail, SMTP, the HELO verb, qmail-send and the UID/GID abbreviations are
left in English.
Adds the 376 strings that status/lang/tr was missing, so the module is now
fully translated, and removes status/lang/tr.auto.
Protocol, command and product names stay in English: SNMP, SMTP, IMAP,
FTP, LDAP, SSH, DNS, TLS, STARTTLS, the HELO and HEAD verbs, nslookup,
dig, openssl, sensors-detect, and the monitored services PHP-FPM,
FirewallD, Fail2Ban, Dovecot, Qmail, Postfix and Sendmail.
Adds the 406 strings that squid/lang/tr was missing, so the module is now
fully translated, and removes squid/lang/tr.auto.
Squid and HTTP vocabulary stays in English where it names a protocol,
directive or file: ICP, HTCP, WCCP, NTLM, ACL, TTL, RFC931, DISKD, COSS,
the max_user_ip ACL name, cachemgr.cgi, access.log, IPtables, Calamaris
and the cache header tokens no-cache and If-Modified-Since.
Adds the 502 strings that bind8/lang/tr was missing, so the module is now
fully translated, and removes bind8/lang/tr.auto.
DNS vocabulary is left in English where it names a record type, protocol
or tool the administrator will look up: record types (SOA, NS, MX, TXT,
A, AAAA, SRV, TLSA, SSHFP, NAPTR, CAA, DMARC, NSEC3PARAM), DNSSEC terms
(KSK, ZSK, DS, NSEC3, DLV), SPF and DKIM, the DNSSEC-Tools components
(rollrec, keyrec, Rollerd, dnssec-tools) and BIND itself.
Adds the 494 strings that apache/lang/tr was missing, so the module is now
fully translated, and removes apache/lang/tr.auto.
Apache configuration vocabulary is left in English so it still matches the
config files and documentation: directive and container names (Directory,
Files, Location, Proxy, Require, RequireAny, RequireAll, Allow/Deny/Order,
ServerName, Multiviews), protocol tokens (HTTP/1.1, HTTP/2, h2, h2c),
header names (ETag, Location:, Host:, Via:, Last-Modified), the .htaccess
filename, DBM, WebDAV, PROPFIND, suexec, gcache and the mod_* module
names.
Adds the 504 strings that mysql/lang/tr was missing, so the module is now
fully translated, and removes mysql/lang/tr.auto.
114 of the new strings are shared verbatim with the postgresql module and
reuse its translation; as elsewhere, reuse required the two lang/en values
to be byte-identical, which excluded 57 keys whose English differs.
MySQL identifiers stay in English: my.cnf, the [mysqld] section, MYSQL_PWD,
.my.cnf, InnoDB, MyISAM, mysql-bin, SQL mode, X509 and the compatibility
target names (ANSI, Oracle, DB2, MaxDB and so on).
Translates all 619 strings in bacula-backup/lang/en into Turkish and
removes bacula-backup/lang/tr.auto.
Bacula component and product names stay in English: Bacula, Bareos,
Director, the FD/SD daemon abbreviations, and the TLS, PEM, MD5, LZO,
Gzip, DBI and SQLite identifiers.
Translates all 490 strings in usermin/lang/en into Turkish and removes
usermin/lang/tr.auto.
201 strings are shared verbatim with the webmin module and reuse its
translation; reuse was allowed only where the two lang/en values are
byte-identical, which excluded 87 keys whose English differs only by
naming Usermin instead of Webmin. Those were translated separately.
Adds the 789 strings that webmin/lang/tr was missing, so Webmin's own
configuration module is now fully translated, and removes
webmin/lang/tr.auto.
The 469 strings that were already translated are left untouched.
Protocol, tooling and format names are kept in English: ACME, Certbot,
Let's Encrypt, TOTP, Authy, PEM, PKCS12, CSR, HSTS, STARTTLS, Cram-MD5,
MD5, SHA512, yescrypt, utmp, syslog, logrotate, miniserv.error and the
wbm.gz / wbt.gz package extensions.
Three strings in shorewall/lang/tr were already broken before this branch
and two of them would have been carried into the new shorewall6 file:
* blacklist_desc lost the <b> tags present in lang/en and its text
described something other than the English string
* policy_limit and proxyarp_desc had been left in English
All three are corrected in shorewall, and the two shared ones in
shorewall6.
Adds the 161 strings that shorewall/lang/tr was missing, so the module is
now fully translated, and creates shorewall6/lang/tr (443 strings),
removing shorewall6/lang/tr.auto.
Where shorewall6 shares a key with shorewall, the translation is reused
only when the two lang/en values are byte-identical. The 13 keys whose
English text differs were translated separately - interfaces_2 in
particular is "Broadcast address" in shorewall but "Options" in
shorewall6, so reusing it by key name alone would have been wrong.
Shorewall keywords stay in English: zone types (ipv4, ipv6, ipsec,
ipsec6, bport, bport6), interface and provider options, and the
shorewall6 subcommands shown in button descriptions.
Translates all 405 strings in spam/lang/en into Turkish and removes
spam/lang/tr.auto.
Mail header names (Subject:, From:, To:, Received:, X-Spam-Status:,
X-Spam-Level:) and the names of the external tools SpamAssassin drives
(Razor, DCC, Pyzor, Amavisd, Procmail) are left in English, as is the
SpamAssassin term "ham" and the spam_Quarantine_to setting name.
Translates all 416 strings in kea-dhcp/lang/en into Turkish. The module
had no translation of any kind.
Kea and DHCP identifiers stay in English: daemon and protocol names
(DHCPv4, DHCPv6, DHCP-DDNS, D2, NCR, TSIG, DUID), the memfile backend,
logger severities (FATAL, ERROR, WARN, INFO, DEBUG), Kea JSON keys such
as option-data, and DHCP packet fields (siaddr, sname, file).
Translates all strings in grub2 (346) and nftables (400) into Turkish.
Neither module had a translation of any kind.
Names that appear in configuration files or commands are left in English:
GRUB tooling and values (grub-install, grubby, grubenv, kernelopts,
theme.txt, modinfo.sh, grub.pbkdf2, PBKDF2, BLS, Secure Boot, UEFI) and
nftables concepts (hook, DNAT, ICMP, ipv4_addr, ipv6_addr, inet_service)
together with service names such as SSH, HTTP, IMAPS and mDNS.
Translates all strings in pam (270), syslog-ng (276) and hardware-info
(276) into Turkish and removes the pam and syslog-ng tr.auto files.
hardware-info had no translation of any kind.
PAM control flags (Required, Requisite, Sufficient, Optional) and module
file names are left in English because they appear verbatim in PAM
configuration files. Hardware identifiers and units keep their standard
forms (UEFI, TPM, IRQ, NUMA, IOMMU, WWID, MTU, BogoMIPS, TRIM, RPM, MHz).
Translates all strings in fail2ban (236), phpini (231) and lvm (242)
into Turkish and removes their tr.auto files.
Names a user has to type or recognise are left in English: Fail2Ban
section names (Definition, DEFAULT), backend names (systemd, polling,
gamin, pyinotify), duration suffixes (30m, 5h, 7d, 5w), PHP function
names in the disabled-features list, HTTP_GET_VARS, and LVM concepts
that appear verbatim in tooling (thin pool, LV, PV, VG, readahead).
Translates all 606 strings in postgresql/lang/en into Turkish and removes
postgresql/lang/tr.auto.
Command names, index access methods and SQL keywords are left in English
(psql, pg_dump, gzip, bzip2, BTREE, RTREE, Hash, ident, PAM, text, bytea,
where).
Note: acl_login in lang/en reads "Login to MySQL as" in the postgresql
module, which looks like a copy-paste slip from the mysql module. The
Turkish string says PostgreSQL.
Translates all 447 strings in proftpd/lang/en into Turkish and removes
proftpd/lang/tr.auto.
Directive and file names are left in English, including .ftpaccess,
/etc/ftpusers, wtmp, TCP_NODELAY, PASV, RFC2228, Inetd, PAM and the ls
and chmod command names.
Translates all 235 strings in sshd/lang/en into Turkish and removes
sshd/lang/tr.auto.
File and command names referenced in the interface are left in English,
including .rhosts, hosts.equiv, known_hosts, /etc/motd,
~/.ssh/authorized_keys, xauth, ssh-keygen and the HostKey directive.