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

Re: Bug#940624: Errors in the translatable messages



Summary: a few of these are good wishlist-grade suggestions.

>> SOURCE TEXT
>> Alternatively the passwords can be permanently remembered in the
>> debconf database (which is protected by Unix file permissions),
>> though this is less secure and thus not the default setting.
>> ERRORS
>> - Word choice error: 'permanently remembered' ('stored').

"Permanently stored" would work, but presumably the idea is that it's
meant to remind users of dialogues saying "Remember password?"
 
>> SOURCE TEXT
>> The ${pkg} package must have a database installed and configured
>> before it can be used. This can be optionally handled with
>> dbconfig-common.
>> ERRORS
>> - Phrasing error: 'This can be optionally handled with
>> dbconfig-common.' (This can be done with dbconfig-common when
>> desired.).

No, that says something different; for a start, it implies that you
can leave it until some other time, if you like.  Also, which verb in
the main sentence is "This can be done" referring back to?  Presumably
"configure(d)", but it's hard to be sure; whereas "this can handled"
only needs to refer back to a noun, such as the situation in general.

>> SOURCE TEXT
>> If you are an advanced database administrator and know that you want
>> to perform this configuration manually, or if your database has
>> already been installed and configured, you should refuse this option.
>> Details on what needs to be done should most likely be provided in
>> /usr/share/doc/${pkg}.
>> ERRORS
>> - Phrasing error: 'know that you want' ('want').

Again, not quite the same.  "Are sure that you want" would work too,
but it isn't *better* (since for a start it's longer).

>> - Phrasing error: 'should most likely be provided in' ('is likely
>> provided in').

No - not quite idiomatic ("probably" would work better), a bit weak
(so beef it up to "most probably"), and not quite grammatical (the
"is" should be "are").  Or leave it as it is, since there's nothing
really wrong with it.

>> SOURCE TEXT
>> If you wish to reinstall the database for ${pkg}, you should select
>> this option. If you do not wish to do so (if you are reconfiguring
>> the package for unrelated reasons), you should not select this option.
>> ERRORS
>> - Clarity error: 'for unrelated reasons'.

I don't remember the context, but I presume it means something like
"If you are reconfiguring the package that uses the database for
reasons that have nothing in particular to do with the database
itself".
 
>> SOURCE TEXT
>> Warning: if you change the name of the database, the old database
>> will not be removed. If you change the name of the user that connects
>> to the database, the privileges of the original user will not be
>> revoked.
>> ERRORS
>> - Word choice error: 'Warning' ('Warnings').

No,  Warning signs aren't labelled "WARNINGS!" even if they go on to
mention several dangers.

>> - Grammatical error: 'if' (If).

No.  There are style guides that prefer uppercase after a colon in
particular circumstances, and style guides that always forbid it.  The
debian-l10n-english "house style" (more or less by accident) goes with
the lowercase option.

>> - Coherence error: 'If' (And if).

Make your mind up!  Are these two separate warnings or do you want
them run together into one?  Besides, there are probably just as many
style guides that prohibit sentence-initial "and/but" as there are
style guides that allow uppercase after colons.

>> SOURCE TEXT
>> Perform upgrade on database for ${pkg} with dbconfig-common?
>> ERRORS
>> - Phrasing error: 'Perform upgrade on' (Upgrade).

I suspect that the point of this phrasing was that it makes the
structure clear: with "Upgrade database" the reader needs to expend a
tiny amount of mental effort working out that it has "upgrade" as a
verb and "database" as its object (it's not, for instance, introducing
the concept of an upgrade database), "Perform upgrade on database" is
longwinded, but unambiguous.

If you want to translate it starting from the assumption that "what it
really means is UPGRADE DATABASE, and if English had a proper system
of grammatical word-endings, that's what it would say!", well. feel
free to imagine that's what it says, but there's no need to change the
English text.

>> SOURCE TEXT
>> According to the maintainer for this package, database upgrade
>> operations need to be performed on ${pkg}. Typically, this is due to
>> changes in how a new upstream version of the package needs to store
>> its data.
>> ERRORS
>> - Word choice error: 'for this package' (of this package).

This is the first one I've seen so far where I think your version
might actually be an improvement, but the difference is so tiny! 

>> - Phrasing error: 'database upgrade operations need to be performed
>> on ${pkg}' (the ${pkg} database needs to be updated).

Hang on, updated or upgraded?  That aside... the longwindedness here
*might* be because the "operations" that need to be performed may be
slightly obscure package-management-admin activities on the order of
reorganising the default alternatives for man pages for compression
modules (or some such), rather than an actual replacement of the
database engine binary.  I could be wrong, though - if we know it's
going to upgrade the database, a terser version would be better.

>> - Phrasing error: 'needs to store' (stores).

Ah, now here I can't see any downside to saying it your way.  Apart
from the fact you're fuzzying existing translations, of course.

>> - Coherence error: 'its data' (the database).

The trouble with the word "database" is that it can mean an executable
binary, a source package, a computer, a multithreaded process, a line
of commercially available software, a .db file... whereas "its data"
is considerably less ambiguous.
 
>> SOURCE TEXT
>> If you want to handle this process manually, you should refuse this
>> option. Otherwise, you should choose this option. During the upgrade,
>> a backup of the database will be made in
>> /var/cache/dbconfig-common/backups, from which the database can be
>> restored in the case of problems.
>> ERRORS
>> - Phrasing error: 'handle this process' (do this) {verbosity}.

No, again, this requires readers to find the referent of "do this".
The more verbose version gives a bit more context.

>> - Word choice error: 'from which' (with which).

No, it's restored *from* a backup *with* some piece of db-admin
software.

>> - Phrasing error: 'in the case of' (in case of) {not idiomatic}.

You've got that backwards.  "In case of a short circuit" is
idiomatically used to mean "unconditionally, to eliminate the risk of
a short circuit"; "in the case of a short circuit" is more or less
compositional and just means "conditionally, if there is a short
circuit".  Here, the database backup is being made in case of
problems, and can be used in the case of problems.  See?

Mind you, this sort of confusion is an argument for making it:
 
   restored if there are problems.

>> SOURCE TEXT
>> If other database types are supported by ${pkg} but not shown here,
>> the reason for their omission is that the corresponding
>> dbconfig-<database type> packages are not installed. If you know that
>> you want the package to use another supported database type, your
>> best option is to back out of the dbconfig-common questions and opt
>> out of dbconfig-common assistance for this package for now. Install
>> your preferred dbconfig-<database type> option from the list in the
>> package dependencies, and then "dpkg-reconfigure ${pkg}" to select it.
>> ERRORS
>> - Phrasing error: 'know that you want' (want).

No, as above.

>> - Phrasing error: 'back out of the dbconfig-common questions' (back
>> out of your answers to the dbconfig-common questions).

Not really.  What users would be doing is backing out of the debconf
dialogues, not backspacing through their text entries.  I'm not sure I
like the original, but I don't see an obvious way of improving it.

>> - Phrasing error: 'Install your preferred dbconfig-<database type>
>> option' (Install your preferred dbconfig-<database type>).

(Presumably this would be more self-explanatory if I was also looking
at a list of options like "dbconfig-xyzsql".)

Getting rid of that one word doesn't make things any clearer; but now
I look at it, it seems to me it could be shorter *and* clearer -

                                                             Install
   your choice of database from the list in the package dependencies,
   and then "dpkg-reconfigure ${pkg}" to select it.

>> SOURCE TEXT
>> If you no longer have need of the data being stored by ${pkg}, you
>> should choose this option. If you want to keep this data, or if you
>> would rather handle this process manually, you should refuse this
>> option. Either way, it won't affect your other databases.
>> ERRORS
>> - Phrasing error: 'have need of' (need).

Yes, I can't see any benefit from the extra wordage there.

>> - Coherence error: 'If you want to keep this data' (But if you want
>> to keep this data).

Where do you get the idea that this is an improvement?  It makes the
two if-clauses less parallel, and thus less obviously a pair of
contrasting alternatives,  which also means the "either way" doesn't
work as well.

>> SOURCE TEXT
>> The underlying database for ${pkg} needs to be upgraded as part of
>> the installation process. Just in case, the database can be backed up
>> before this is done, so that if something goes wrong, you can revert
>> to the previous package version and repopulate the database.
>> ERRORS
>> - Phrasing error: 'Just in case' () {colloquial}.

No, it was mildly colloquial forty years ago, but not any more.

>> - Phrasing error: 'before this is done' (beforehand) {verbosity}.

A plausible suggestion, but still in no way an "error".

>> - Phrasing error: 'Just in case, the [...], so that if something goes
>> wrong' (The [...], so that if something goes wrong) {repetition of a
>> point}.

Used as a clausal modifier like this, "just in case" effectively means
something like "as a general precaution".  There's not *much* extra
information in the "if something goes wrong" part, but clearly it's
implying "if something goes wrong with the upgrade process" (not, say,
"if you spill your coffee over yourself").  We could safely trim it
down to something like "...so that if necessary you can revert...",
but is it worth the effort?

>> - Word choice error: 'repopulate' (restore).

It hadn't occurred to me there was a difference, but I suppose the
former implies that you're only resurrecting the data and not the
table structure; and I don't see any reason to think that's true, so
you may be right.
 
>> SOURCE TEXT FRAGMENT (3 times)
>> This will usually also impact your ability to install other packages
>> until the installation failure is resolved.
>> ERRORS
>> - Word choice error: 'failure' (problem).

I don't remember - is this talking about an actual dpkg error?

>> SOURCE TEXT FRAGMENT (4 times)
>> retry - Prompts once more with all the configuration questions
>> (including ones you may have missed due to the debconf priority
>> setting) and makes another attempt at performing the operation.
>> ERRORS
>> - Phrasing error: 'Prompts once more with all the configuration
>> questions' (Prompts the user to answer each configuration question
>> again).

That wouldn't match the use of second person in the following line.
Switching them both to third person would mean having to decide
whether the user is male or female, but second person throughout would
work... about as well as what's there already.

>> - Phrasing error: 'makes another attempt at performing the operation'
>> (attempts the operation once more) {verbosity}.

This could be trimmed down quite a bit, though maybe not to:

    retry - Tries once more, re-asking configuration questions
    (including ones you may have missed due to the debconf priority
    setting).
 
>> SOURCE TEXT FRAGMENT (3 times)
>> This is normally useful only if you have solved the underlying
>> problem since the time the error occurred.
>> ERRORS
>> - Phrasing error: 'since the time' (after).

No, that (rather bizarrely) becomes ungrammatical - "have Xed"
constructions (present-perfect rather than past tense) are fussy about
accompanying temporal expressions, and "since" is one of the few that
can be used like this.
 
>> SOURCE TEXT
>> Configuring the database for ${pkg} requires the package ${dbpackage}
>> to be installed and configured first, which is not something that can
>> be checked for automatically.
>> ERRORS
>> - Phrasing error: 'checked for' (checked).

No, checking for something and checking something are in principle
very slightly different things.  If we were desperately short of room
here I'd drop the "for", but here it would just mean wasted space!

>> SOURCE TEXT
>> Please select the remote hostname to use, or select "new host" to
>> enter a new host.
>> ERRORS
>> - Phrasing error: 'the remote hostname to use' (the name of the
>> remote server to use).

I can imagine cases where a database server is known by a name that
isn't its hostname - oh, wait, in fact I remember encountering the
corpse of one that had been generally known as "The Problem"!  So
keeping "hostname" in the prompt is definitely justifiable, and then
this is a nice concise way of doing that.

>> SOURCE TEXT
>> Please specify the port the ${dbvendor} database on the remote host
>> is running on.
>> ERRORS
>> - Phrasing error: 'the port the ${dbvendor} database on the remote
>> host is running on' (the port the ${dbvendor} database server on the
>> remote host uses).

That's a plausible idea, but it needs to be
   Please specify the port the ${dbvendor} database on the remote host
   is using.
or maybe
   Please specify the port the ${dbvendor} database is using on the
   remote host.
 
>> SOURCE TEXT
>> Please provide a ${dbvendor} username for ${pkg} to register with the
>> database server. A ${dbvendor} user is not necessarily the same as a
>> system login, especially if the database is on a remote server.
>> ERRORS
>> - Coherence error: 'user' (username).

No.  It uses "username" just the first time to make it unambiguous
that the admin is being asked to type in a username, not to insert a
user into the DVD slot.  Users hate it when that happens.

>> - Phrasing error: 'system login' (system username).

It's using the most unambiguous terms available to distinguish between
the two kinds of "user": the ones that have logins on the system and
the ones that have access to the database.

>> SOURCE TEXT
>> This is the user which will own the database, tables, and other
>> objects to be created by this installation. This user will have
>> complete freedom to insert, change, or delete data in the database.
>> ERRORS
>> - Text level error: 'username' in the previous paragraph is not
>> coherent with 'user' in this paragraph.

In the previous text, the reader was being asked to type in a
(database) username, not a user.  But here it's the dbadmin *user*
that owns the tables, not the username.

>> - Grammatical error: 'the user which' (the user who).

That's definitely a grammatic oddity, but I suppose it's justified by
the idea that the dbadmin "user" is a role within the database system,
not a human being.  After all, Steve the database admin doesn't
literally *own* his company's data...
 
>> SOURCE TEXT
>> Advanced usage: if you need to define the domain that the user will
>> log in from, you can write "username@domain".
>> ERRORS
>> - Word choice error: 'define' (specify).

That certainly works equally well, but I don't see how it's better.
 
>> SOURCE TEXT
>> Please provide a path where the ${dbvendor} database file for ${pkg}
>> should be installed into.
>> ERRORS

Ah!  I see one myself: "where X should be installed into" is mildly
redundant and/or colloquial, like "where you're at".

>> - Clarity error: A path refers to a file or directory that needs to
>> be addressed. The source text is about a file. Therefore, the path of
>> the file could be meant. However, 'where' refers to a location and
>> 'into' refers to a motion from outside to inside. Therefore, the path
>> of a directory (also known as folder) where the file should be
>> installed could also be meant.

I can't decipher the alternate interpretation you're suggesting here.
Wait, is this *copying* a file somewhere or *creating* a database?  It
might be better as
   Please specify where the ${dbvendor} database file for ${pkg} should
   be created.
Or, if appropriate
   Please specify a directory for the ${dbvendor} database file for
   ${pkg}.
 
>> SOURCE TEXT
>> By default, ${pkg} will be configured to use a MySQL server through a
>> local Unix socket (this provides the best performance). To connect
>> with a different method, or to a different server entirely, select
>> the appropriate option from the choices here.
>> ERRORS
>> - Word choice error: 'choices' (options).

Being more repetitive is not an improvement.

>> - Phrasing error: 'select the appropriate option from the choices
>> here' (please select the appropriate option) {verbosity}.

Now, that on the other hand might be an improvement.

>> SOURCE TEXT
>> MySQL application password for ${pkg}:
>> ERRORS
>> - Clarity error: 'application' can refer to 'MySQL' itself and to
>> some unknown application that has its password set with MySQL.

I for one would never call MySQL an application, any more than I would
call sysvinit or cat "applications".  A "MySQL application" can only
be a database application that uses MySQL.
 
>> SOURCE TEXT
>> Please provide the name of the account with which this package should
>> perform administrative actions. This user is the one with the power
>> to create new database users.
>> ERRORS
>> - Phrasing error: 'This user is the one with' (This is the user with)
>> {verbosity}.

Possibly.  I'm not sure I like the way it moves the two uses of the
word "user" closer together, but that probably matters less than
avoiding verbosity.  In fact, how about:

   Please provide the name of the account with which this package should
   perform administrative actions. This user will have the power to
   create new database users.

>> - Coherence error: an account's name is not a user. {This error is
>> extremely hard to deal with by translators.}

It doesn't say that the account's name is a user; it talks about the
name of an account - and that *account* is the user account that will
have the special powers.

>> - Word choice error: 'create' (register).

Why is that better?  It does, after all, create them, and not merely
enter existing users in a register...
 
>> SOURCE TEXT
>> For MySQL, this is almost always "root". Note that this is not the
>> same as the Unix login "root".
>> ERRORS
>> - Word choice error: 'login' (username).

No, again that's a deliberate use of a word that emphasises the
difference between system login accounts and database user accounts.

>> SOURCE TEXT
>> Please provide the password for the administrative account
>> "${dbadmin}" with which this package should create its MySQL database
>> and user.
>> ERRORS
>> - Clarity error: 'user' can refer to 'MySQL user' and to 'package
>> user'.

How is there room for ambiguity when it's giving the name of the
administrative account on-screen, and talking about that account
creating the MySQL user account?
 
>> SOURCE TEXT
>> Database user accounts can be configured to use a variety of plugins
>> for authentication with MySQL. If the server default won't work with
>> this application, it is necessary to specify one that will. Please
>> select one from the list of available plugins. Leaving the selection
>> set to its original value should work unless a remote server is using
>> unpredictable defaults, but other options may not be supported by
>> ${pkg}. If problems arise, the package's documentation should give
>> hints; see /usr/share/doc/${pkg}/.
>> ERRORS
>> - Phrasing error: 'Database user accounts can be configured to use a
>> variety of plugins for authentication with MySQL.' (Database user
>> accounts can be configured to use a plugin for authentication with
>> MySQL. This plugin can be chosen from a variety of plugins.).
>> {Database user accounts are unlikely able to concurrently use more
>> than one authentication method.}.

Yes, and that's obvious to readers, too, so what's the problem that
you're trying to solve with this extra verbosity?

>> - Word choice error: 'unpredictable' (unusual).

No, it really means "unpredictable", in that the Debian Stable package
can't predict what a remote server running Ubuntu 19.10 might decide
to do, even if that's the new standard global default.

>> - Coherence error: 'Leaving the selection set to its original value
>> should work unless a remote server is using unpredictable defaults,
>> but other options may not be supported by ${pkg}.' (Leaving the
>> selection set to its original value should work unless a remote
>> server is using unusual defaults. One or more of the other options
>> may not be supported by ${pkg}.).

Breaking the sentence there might be a good idea, but you've lost the
counterbalancing of good news/bad news.

>> - Word choice error: 'hints' (useful information).

Isn't that what hints are?

>> - Phrasing error: 'If problems arise, the package's documentation
>> should give hints; see /usr/share/doc/${pkg}/.' (If problems arise,
>> the package's documentation may provide useful information. This
>> documentation should be in /usr/share/doc/${pkg}/.) {If problems
>> arise, the documentation does not change in response.}.

No.  You must have *terrible* trouble processing "biscuit
conditionals" ("there are biscuits in the sideboard if you want
some.")

>> SOURCE TEXT
>> Your options are:
>>  * default - use the default determined by the server.
>>  * mysql_native_password - no MySQL authentication plugin is used.
>>  * sha256_password - a more secure password encryption algorithm.
>>  * caching_sha2_password - SHA2 plus an in-memory authentication
>>    cache.
>> ERRORS
>> - Text level error: Because of the previous paragraph, this paragraph
>> must be a list of available plugins. However, only the first item in
>> this list seems to be a plugin.

How do you come to that conclusion?  They're labelled as "options",
and even the second is a plugin option: in effect, the null plugin.
And the last two are just plain plugins, aren't they?

>> - Clarity error: 'more secure' {More secure than what? More secure
>> than the default determined by the server? If so, then how much more
>> secure is SHA-256 when the server determines SHA-512?}.

SHA-256 is fairly obviously more secure than the SHA-2 mentioned
immediately below, just for a start.  And surely it's self-evident
that it's exactly seven arbitrary units more secure.  What are you
hoping for, here?  Do you want the descriptions removed, or what?

>> - Spelling error: 'SHA2' (SHA-2).

Ah, true: the plugin name may have SHA2, but the canonical name is
hyphenated.
 
>> SOURCE TEXT
>> TCP/IP + SSL
>> ERRORS
>> - Word choice error: '+' (and).

I'd be inclined to say "plus", but it's hard to care very much.

>> SOURCE TEXT
>> PostgreSQL application password for ${pkg}:
>> ERRORS
>> - Phrasing error: 'PostgreSQL application password' (PostgreSQL
>> password) {Because PostgreSQL is a database management system, that
>> system will manage passwords for access to the database.}.

I don't understand why you think this is helpful.
 
>> SOURCE TEXT
>> If you are using "ident" authentication, the supplied password will
>> not be used and can be left blank. Otherwise, PostgreSQL access may
>> need to be reconfigured to allow password-authenticated access.
>> ERRORS
>> - Word choice error: 'left blank' (left out).

"Blank" isn't great, in that it sounds vaguely as if it's talking
about a password that's currently made up of whitespace.  But "left
out" sounds as if you've created a password but forgotten to put it in
the database.
 
>> SOURCE TEXT
>> PostgreSQL servers provide several different mechanisms for
>> authenticating connections. Please select what method the
>> administrative user should use when connecting to the server.
>> ERRORS
>> - Phrasing error: 'several different' (various) {verbosity}.

Probably an improvement, yes.  (And yet it can only use one mechanism
at a time on any given connection, so surely you should go to enormous
lengths to say that!)

>> - Phrasing error: 'administrative user' (administrator) {verbosity}.

I think the idea is to emphasise that it's a characteristic associated
with a user-account, not with Steve the admin.

>> SOURCE TEXT
>> PostgreSQL servers provide several different mechanisms for
>> authenticating connections. Please select what method the database
>> user should use when connecting to the server.
>> ERRORS
>> - Phrasing error: 'several different' (various) {verbosity}.

As above, yes.
 
>> SOURCE TEXT
>> Empty passwords unsupported with PostgreSQL
>> ERRORS
>> - Phrasing error: 'unsupported with' (are not supported by).

Definitely an improvement, since there's room for it.
 
>> DISCUSSION
>> Statistics:
>> - Spelling errors: 1
>> - Word choice errors: 16
>> - Grammatical errors: 2
>> - Phrasing errors: 39
>> - Coherence errors: 6
>> - Clarity errors: 5
>> - Text level errors: 2
>> - Total number of errors: 71
>> - Total number of paragraphs: 110
>> - Number of unused paragraphs: 8
>> - Number of (used) paragraphs: 110 - 8 = 102
>> - Average number of errors per paragraph: 71 / 102 = 0.70
>> 
>> I am not a native speaker of English. A native speaker may be able to
>> find more errors, in particular idiomatic errors.
>> 
>> Most paragraphs contain only one or two sentences.
>> 
>> Because of the average number of errors per paragraph and the
>> average length of the paragraphs, I mark the English source text as
>> unsatisfactory.

This is a great way of reducing my motivation to help with
implementing any of your ideas.

>> English is the largest language by number of speakers, and the third
>> most-spoken native language in the world, after Standard Chinese and
>> Spanish. (source: Wikipedia)

So if we divide the number of things you don't like about this
template by the number of speakers, they're negligible!  Or what *am*
I meant to be doing with this statistic?
 
>> According to Debian's Bug Tracking System, dbconfig-common has been
>> translated in German, French, Italian, Dutch, Brazilian Portuguese,
>> Turkish and Russian. Standard Chinese and Spanish are not in this
>> list, thus the English source text is particularly important.

And the fact that it has already been translated into these languages
is itself a reason not to alter the text where the scope for
improvement is negligible, since all those translators will have to
repeat their work for essentially no benefit.

>> CONCLUSION
>> 71 errors were found in the English source text of dbconfig-common.

That's Numberwang!
-- 
JBR	with qualifications in linguistics, experience as a Debian
	sysadmin, and probably no clue about this particular package


Reply to: