BUG #2632: createuser language poblem

Started by Massimo Fidanzaover 19 years ago5 messagesbugs
Jump to latest
#1Massimo Fidanza
max@massimofidanza.it

The following bug has been logged online:

Bug reference: 2632
Logged by: Massimo Fidanza
Email address: max@massimofidanza.it
PostgreSQL version: 8.1.4
Operating system: Ubuntu 6.04
Description: createuser language poblem
Details:

Hi, I discover a very annoying bug in the create user command. I have the
environment variable LANG=it_IT.UTF-8 and when I try to crate a new user wit
the create user command, at he prompt I have the three questions
Shall the new role be a superuser? (y/n)
Shall the new role be allowed to create databases? (y/n)
Shall the new role be allowed to create more new roles? (y/n)
So I ask y only to the second, but when I try to create a new database with
the new just created user it claims that I don't have permissions. So I drop
the user and recreated it several times. After a lot of tentative I discover
the arcane I must ask s=sì the italian affermative answer during
createuser, but the question is in english. This is a very stupid bug. I
think the right is to accept the italian and the english answer as oher
commands do like apt. Translate the question to is not a bad idea.

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Massimo Fidanza (#1)
Re: BUG #2632: createuser language poblem

"Massimo Fidanza" <max@massimofidanza.it> writes:

Hi, I discover a very annoying bug in the create user command. I have the
environment variable LANG=it_IT.UTF-8 and when I try to crate a new user wit
the create user command, at he prompt I have the three questions
Shall the new role be a superuser? (y/n)
Shall the new role be allowed to create databases? (y/n)
Shall the new role be allowed to create more new roles? (y/n)

The reason those aren't getting translated is that the Italian
translations have not been updated for 8.1 --- the entries in it.po
still look like the 8.0 wording:

#: createuser.c:170
msgid "Shall the new user be allowed to create databases? (y/n) "
msgstr "Il nuovo utente pu� creare database? (s/n)"

#: createuser.c:181
msgid "Shall the new user be allowed to create more new users? (y/n) "
msgstr "Il nuovo utente pu� creare altri utenti? (s/n)"

If this annoys you, please join the PG translation project and help to
fix it:
http://pgtranslation.projects.postgresql.org/

regards, tom lane

#3Peter Eisentraut
peter_e@gmx.net
In reply to: Tom Lane (#2)
Re: BUG #2632: createuser language poblem

Tom Lane wrote:

The reason those aren't getting translated is that the Italian
translations have not been updated for 8.1 --- the entries in it.po
still look like the 8.0 wording:

It might be possible with little effort to rework this so that the
prompts display the letters that are actually expected as answers.
I'll look into it.

--
Peter Eisentraut
http://developer.postgresql.org/~petere/

#4Massimo Fidanza
max@massimofidanza.it
In reply to: Tom Lane (#2)
Re: BUG #2632: createuser language poblem

Quoting Tom Lane <tgl@sss.pgh.pa.us>:

"Massimo Fidanza" <max@massimofidanza.it> writes:

Hi, I discover a very annoying bug in the create user command. I have the
environment variable LANG=it_IT.UTF-8 and when I try to crate a new user wit
the create user command, at he prompt I have the three questions
Shall the new role be a superuser? (y/n)
Shall the new role be allowed to create databases? (y/n)
Shall the new role be allowed to create more new roles? (y/n)

The reason those aren't getting translated is that the Italian
translations have not been updated for 8.1 --- the entries in it.po
still look like the 8.0 wording:

#: createuser.c:170
msgid "Shall the new user be allowed to create databases? (y/n) "
msgstr "Il nuovo utente può creare database? (s/n)"

#: createuser.c:181
msgid "Shall the new user be allowed to create more new users? (y/n) "
msgstr "Il nuovo utente può creare altri utenti? (s/n)"

If this annoys you, please join the PG translation project and help to
fix it:
http://pgtranslation.projects.postgresql.org/

regards, tom lane

Yes, I can join the translation team and translate the missing strigs,
but I think this is not the right answer. I think the best solution is
to accept the english answer too.
I made a patch to common.c (src/bin/scripts/common.c) that compare the
user answer with the translated and the english affermative (y) and
negative (n) answer. I add a case insensitive comparison too.
I know that this can generate conflicts between languages, but looking
at the other languages in wich Postgresql is already translated there
are no conflict between english and non english languages. I look for
other languages too and I find a possible conflict with african
Swahili language, where the answers are (ndiyo==yes/kataa==no), but
they can for example specify (y/n) as (nd/k).

Bye Max!

Attachments:

common.c.difftext/plain; charset=UTF-8; name=common.c.diffDownload+5-2
#5Tom Lane
tgl@sss.pgh.pa.us
In reply to: Massimo Fidanza (#4)
Re: BUG #2632: createuser language poblem

Massimo Fidanza <max@massimofidanza.it> writes:

Yes, I can join the translation team and translate the missing strigs,=20=
=20
but I think this is not the right answer. I think the best solution is=20=
=20
to accept the english answer too.

I liked Peter's idea better (ie, not have the y/n in the
string-to-be-translated but generate it dynamically using the same
strings that will actually be matched to the input). Your approach
fails if there are any languages that use y or n in a way conflicting
with the English usage ... and whether or not we have any such
translations today, who knows what will be out there tomorrow?

regards, tom lane