[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: request to review i18n templates in debian-edu-router



Mike Gabriel wrote:
> You can find a debian/README.i18n file in the src:pkg or on salsa.debian.org:
> https://salsa.debian.org/debian-edu/debian-edu-router/-/blob/master/debian/README.i18n.md?ref_type=heads

Unfortunately this isn't enough to let a git novice like me work out
how to check out the whole thing.  For now I'm just looking at
individual files via the web interface - but they're the wrong files
for a proper debian-l10n-english review, so once I've finished going
through looking for problems I'll want to start again editing the
actual templates files.
 
> We'd be very thankful if you could (in addition to debian/po/templates.pot
> which is massive!!!)

Fortunately it's only electrons.

Line 123:
# msgid "Please consider unconfiguring these interfaces and re-try again."

Make that "...and trying again."

Line 144:
# "You have ${num_tries} try left to unplug all network cables (except "
# "'Uplink') until the step-by-step setup will be aborted."

Unconditionally singular "try", unidiomatic use of "until".
  "You have ${num_tries} try/ies left to unplug all network cables (except "
  "'Uplink') before the step-by-step setup will be aborted."
Or maybe you could say
  "You need to unplug all network cables (except 'Uplink') or the "
  "step-by-step setup will be aborted. Tries remaining: ${num_tries}."

Line 257:
# "(2) STEP-BY-STEP - Connect and assign network interfaces one by one. This "
# "will add dialogs between each interface assignment requesting to connect the "
# "network cable of the to-be-assigned network interface."

Dialogs between what and what?  Keep implementation details like
debconf "dialogs" out of the explanations.

  "(2) STEP-BY-STEP - Connect and assign network interfaces one by one. This "
  "will require an extra step for each interface assignment, asking you to "
  "connect the network cable of the interface that is being assigned."

Line 282:
# msgid "Which NIC shall be used as the 'Uplink' network interface?"

As a rule of thumb, if you don't cite RFC 2119 or somesuch then you
want s/shall/should/g (here and in lines 423, 436...)

Line 417:
# msgid "Supported internal school networks types:"

If these are types of Supported internal school network, leave out the
plural inflection.

Line 980:
# "You can provide a list of explicit DNS upstream servers to be used by this

Shouldn't "DNS upstream servers" here and elsewhere be "upstream DNS
servers"?

Line 998:
# "If DNS upstream servers are provided here, they will also be used for "
# "forwarding DNS queries to from the internal networks if selected so in a "
# "later configuration query."

As above.  Then that "to from" pileup is a bit unfortunate, and the
"so" strikes me as unidiomatic and unclear.  How about:
  "If upstream DNS servers are provided here, DNS queries will also be "
  "forwarded to them from the internal networks if these queries are "
  "enabled in a later configuration query."
But it's not obvious what it is that might be enabled later. If it's
forwarding DNS queries, why do you even need to say that this will
mean sending them to your configured upstream DNS servers?

Line 1043:
# "'OpenLAN' interface ."

Just a surplus space  ^ (and likewise in lines 1131, 1165, 1199, 1234,
1268, 1302, and 1336).

Line 1362:
# msgid "Networks that are NAT'ed (and hidden) behind the 'Uplink' address:"

English spelling offers no really satisfactory way of handling the
past tense of the verb "to NAT", but you could avoid it by saying:

  msgid "Networks that are hidden by a NAT behind the 'Uplink' address:"

Line 1369:
# "Computers on networks selected here will connect to the internet via IPv4 "
# "and NAT (network address translation). Hosts on the internet will only "
# "\"see\" this system's external IPv4 address, whereas individual computers on "
# "the internal network stay \"hidden\"."

Just pointing out the inconsistent use of doublequotes here.  Using
them throughout would in fact be the style that was always recommended
in d-l-e template reviews, but I'm not going to try to impose it while
I'm working on the .pot file.

(Also, lowercase "internet".  Styleguides used to insist this should
be "Internet", but the consensus seems to be shifting, and I'm happy
to let it.)

Line 1385:
# "Computers on networks selected here will be directly routed to the 'Uplink' "
# "network via IPv4. Hosts on the 'Uplink' network will \"see\" each individual "
# "computer on the internal network."

A more glaring use of inconsistent quotes.

Line 1403:
# msgid "Networks that are host-only, i.e. neither routed nor NAT'ed:"

I'd suggest "nor on a NAT", but wait, is this saying it's possible to
be on a NAT without being routed?

Line 1441:
# "Also if you wish to filter user content you want to disable direct internet "
# "access in order to assure that no one can bypass the content filter proxy."

Colloquial use of "want" (reserve that word for cases where the
sysadmin wants to do things manually); then "assure" is the wrong verb.
  "Also if you wish to filter user content you need to disable direct internet "
  "access in order to ensure that no one can bypass the content filter proxy."

Line 1461:
# "Internal addresses/networks which are declared trustworthy can directly "
# "connect to the internet even if its network is configured to block direct "
# "internet access."

"Its" network?  The only singular noun here is the internet.  Either
singularise it consistently as "Any internal address/network which is
declared..." or more likely pluralise it as "even if their
network..."

Line 1478:
# "You can enter IPv4/IPv6 single addresses or entire networks using the "
# "address/netmask CIDR syntax."

That has to be "single IPv4/IPv6 addresses".

Line 1514:
# "For example, you configured the 'Mgmt' network to 172.16.0.253/24. Now one "
# "can add the 172.16.0.16/28 network as to be allowed to directly connect to "
# "the internet. Effectively then, all IPv4 addresses from 172.16.0.16 to "
# "172.16.0.31 will be granted direct internet access."

Is this trying to say:
  "For example, if you configured the 'Mgmt' network to 172.16.0.253/24 then "
  "you can add 172.16.0.16/28 as a network that can directly connect to the "
  "internet. This means that all IPv4 addresses from 172.16.0.16 to "
  "172.16.0.31 will be granted direct internet access."

Line 1544:
# "Here, you can configure services that shall be reachable from the internet "
# "(via your 'Uplink' IPv4 address). Multiple configurations are possible and "
# "should be seperated by spaces."

s/shall/should/g, and a typo: s/seperated/separated/

Line 1602:
# "For example, you configured the 'Mgmt' network to 172.16.0.253/24 and this "
# "network is configured to be hidden behind a NAT. Now imagine you have a web "
# "service running on a server on 172.16.0.100. One can now make that web "
# "service reachable from the internet via the 'Uplink' IP address using this "
# "configuration: 80:172.16.0.100:80 443:172.16.0.100:443"

Better than the last example, but again, if you start by addressing
the sysadmin as "you" then switching over to "one" is jarring.
Either s/One/You/ or just make it a passive: "That web service can now
be made reachable".

Line 1631:
# "Internal/external network interfaces via which it is permitted to log into "
# "this host via SSH."

Cut one of those uses of "via".  While rsyslog remote logging might
"log into this host", what SSH users do is "log in to this host".
It might be clearer to just drop the "to this host" part:
  "Internal/external network interfaces via which it is permitted to log in "
  "using SSH."
Or
  "Internal/external network interfaces that permit SSH logins."

("Login" is one of those confusing cases of "one word as a noun but
two words as a verb".)

Line 1639:
# "If you are installing this device from remote, please make sure to include "
# "the Uplink interface into the list of allowed network interfaces."

"Remote" isn't a place, and "include into" is redundant.
  "If you are performing a remote install, please make sure to include the"
  "'Uplink' interface in the list of allowed network interfaces."

Line 1647:
# "NOTE: To fully make incoming SSH connections operational, make sure the SSH "
# "service is installed and enabled."

A prolix way of saying "SSH won't work unless it exists", but if I try
to shorten it then the "YOU IDIOT" subtext gets too obvious.

Line 1954:
# "Please specify a DNS alias under which content filter can be reachable on "
# "internal networks."

You can get away with dropping the article before "content filter";
but should that be "will be reachable"?

Line 2027:
# "Devices which where not updated properly will warn about a unsecure "
# "connection (self-signed SSL certificate)."

  "Devices which were not updated properly will warn about an insecure "
  "connection (self-signed SSL certificate)."

Line 2035:
# "Please *BACKUP* the entire directory: '/etc/debian-edu-router/ssl/', "
# "*BEFORE* proceeding."

Backup is another of those English lexical items that still has to be
two words when it's a verb (because you can talk about "backing
something up").  Compare checkout, setup, logout, shutdown, lookup...

  "Please *BACK UP* the entire directory: '/etc/debian-edu-router/ssl/', "

(Does it really need shoutycaps AND asterisks?)

Line 2079:
# msgid "Networks that offer connecting to the internet via an http proxy?"

If I was working on the template file I'd do s/http/HTTP/g, but for
now I'll skip that.

Line 2100:
# "  - Client IPs\n"
# "  - Website IPs\n"

Even more pedantically, these are IP *addresses* (and that lets you
avoid having to decide if it's IPs or IP's).  But definitely never
mind this one.

Line 2112:
# "The caching and website access control will be handled by the software "
# "'squid'."

Squid isn't a software (you can't have one software any more than
you can eat one rice - it's a non-countable noun).  You could say "the
program 'squid'", but it's redundant anyway - if it does web caching,
it has to be a program, not a lemon meringue pie or something.

  "The caching and website access control will be handled by 'squid'."

(Likewise for e2guardian at Line 2470)

Line 2130:
# msgid "HTTP Proxy Port exposed to Clients on the internal Networks:"

Why all The capital Letters?

Line 2153:
# "Make sure those three server ports are not in use by other services on the "
# "this host's internal networks' IP addresses."

Surplus article - s/the this/this/.

Line 2296:
# "This field can't be left empty. Please use either a custom port or use the "
# "default of port 80 or 8080."

Malformed ellipsis.
  "This field can't be left empty. Please use either a custom port or the "

Line 2339:
# "Please note that you want to have a powerful machine as your Debian Edu "
# "Router host as running SSL MitM with deep content introspection is heavily "
# "relying on CPU, I/O and network power, since zillions of SSL packets have to "
# "be intercepted, decrypted, analyzed, encrypted and forwarded. So please "
# "scale accordingly."

Minor tweaks:
  "Please note that you will need a powerful machine as your Debian Edu "
  "Router host, as running SSL MitM with deep content introspection is heavily "
  "reliant on CPU, I/O and network power, since zillions of SSL packets have to "

Line 2356:
# "For SSL-based HTTPS connections, http caching is not possible, the secured "
# "connections is simply forwarded by the proxy."

Inconsistent capitalisation, comma splice,  and number agreement error.
  "For SSL-based HTTPS connections, HTTP caching is not possible; the secured "
  "connections are simply forwarded by the proxy."

Line 2522:
# "All websites, which are listed in Proxy*Site.*, will be resolved. The "
# "resolved IP addresses are then stored in Proxy*SiteIP.generated."

A relative clause with a comma is a *descriptive* relative clause,
which means that you're saying "Proxy*Site.* resolves all websites,
AND it maintains a complete catalogue of the worldwide web."  What you
need is a commaless *restrictive* relative clause, which means
"Proxy*Site.* resolves only those websites that are included in its
list".

Or in fact you could shorten it to:

  "All websites listed in Proxy*Site.* will be resolved. The "

Line 2643:
# "Please enter the LDAP search filter to locate a user's DN. The search "
# "filter, that retrieves all active and valid user objects from LDAP can "
# "contain up to 15 occurrences of %s which will be replaced by the username. "
# "(As in \"uid=%s\" or \"sAMAccountName=%s\"). Squid will crash if other % "
# "values than %s are used, or if there are more than 15 %s occurrences."

Another garbled relative clause.  The *filter* doesn't retrieve
anything from LDAP; it's the *search* that does that!  How about:

  "Please enter the LDAP search filter to locate a user's DN. This filter will "
  "be applied to a list of all active and valid LDAP user objects, and can "
  "contain up to 15 occurrences of %s (as in \"uid=%s\" or \"sAMAccountName=%s\") "
  "which will be replaced by the username. Squid will crash if % values other than "
  "%s are used, or if there are more than 15 %s occurrences."

Line 2923:
# "NOTE: If you select 'demand', (or 'try') you should install and trust some "
# "sort of certificate of the LDAP server to this system. You can do this "
# "easily in the plugins' loginmenu after this setup ended."

Various glitches in the last line:
  "in the plugins loginmenu after this setup ends."

Line 2966:
# " Installing a CA (certificate authority) certificate on the system, makes
# "the\n"

(a) What's up with the linewrapping here?  (b) This comma is sitting
right in between the subject and verb, which generally speaking isn't
allowed.

Line 2982:
# " This router will try to obtain a root or intermediary CA\n"
# " certificate. This option should be selected, when in doubt.\n"

Another excess comma.

Line 2987:
# " This router *WON'T* try to obtain a CA certificate. The current EE\n"
# " (end-entity) certificate served by your LDAP server, will be installed and\n"
# " trusted automatically, instead. You will have to manually keep it updated,\n"
# " using the loginmenu, when the certificate expires.\n"

Well, the commas in the last sentence are okay, but the rest need to go.

Line 3002:
# " NOTE: Choosing 'ca-cert' or 'ee-cert' will result in a connection attempt "
# "to\n"
# " another host on your local network. To avoid this, please choose "
# "'manually',\n"
# " here."

Weird wrapping and at least one excess comma.

Line 3035:
# Only change this path, if you really want to differ from Debian defaults (by "
# "manually maintaining your own certificate file for example)."

Another interesting case where the meaning gets mangled by an excess
comma - the above version means "if you want to differ from Debian
defaults then change only this path".  What you need is:

  "Only change this path if you really want to differ from Debian defaults (by "
  "manually maintaining your own certificate file, for example)."

Line 3128:
# "If you have trouble choosing this, or if you have any other question, please "
# "take a look at the documentation files at /usr/share/doc/debian-edu-router*"

This sounds as if you know which one you want to choose but somehow
can't (maybe the checkbox keeps unticking itself).  Just omit the
"this".

Line 3673:
# "Please select, if you want to"

This line baffled me until I worked out that it means
  "Please select whether you want to:"
(followed by a list of selectable options)

Okay, that's the end of the big debian/po/templates.pot file.


> take a look at the po/*.pot templates files:
> 
> po/debian-edu-router-config.pot

Lines 233/265:
# [...] An internet downage can easily ruin your day!\n"

Online dictionaries claim there is such a word as "downage", but I've
never encountered it in real life; to me, that's the name of a place
in London.  The word I'm used to seeing is "outage" (and of course
during an outage I would be relying on my paper dictionaries...)

Line 251:
# msgid "Shutdown system"

If that's a verb, it should be two words, "shut down".

Line 308:
# msgid "Quit menu and logout as user '%s'"

Likewise, "log out".

> po/debian-edu-router-fai.pot

Line 257:
# "Please plugin a network cable to the uplink network interface and try again."

Oh, I don't see that one very often.  "Please plug in..." (or
"Please plug a network cable in...")

Line 359:
# msgid "Do you want to setup IPv4 internet access manually?"

Guess what!  Yup, "to set up".

> po/debian-edu-router-plugin.content-filter.pot

Line 40:
# "This plugin adds an squid/e2guardian based content filtering system for the "
# "internal networks."

Either put e2guardian first or make it "a"!  Then I'd recommend at
least one extra hyphen:
  "This plugin adds a squid/e2guardian-based content-filtering system for the "
  "internal networks."


> po/debian-edu-router-plugin.krb5-connector.pot
> po/debian-edu-router-plugin.ldap-connector.pot
> po/debian-edu-router-plugin.mdns-reflector.pot

These all look okay.

> 
> (These are much shorter and have an impact on the loginmenu that manoeuvers
> the admin through the debian-edu-router setup directly after login).
> 
> We are aware that debian-edu-router comes with a lot of translation strings,
> but the overall outcome is a Debian based firewall for schools that is 100%
> preseedable by vendors, site admins, municipality staff, etc.
> 
> Thanks in advance, if anyone dares taking a look at this.
> 
> Maybe please ping the list (and us) if you pick up the task, so that we
> avoid two or more persons reviewing the same strings...

Maybe hold off on translations until the English versions are settled.
-- 
JBR	with qualifications in linguistics, experience as a Debian
	sysadmin, and probably no clue about this particular package


Reply to: