Thread: BUG #2632: createuser language poblem

BUG #2632: createuser language poblem

From
"Massimo Fidanza"
Date:
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.

Re: BUG #2632: createuser language poblem

From
Tom Lane
Date:
"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

Re: BUG #2632: createuser language poblem

From
Peter Eisentraut
Date:
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/

Re: BUG #2632: createuser language poblem

From
Massimo Fidanza
Date:
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!

Attachment

Re: BUG #2632: createuser language poblem

From
Tom Lane
Date:
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