Quoting Tom Lane <[EMAIL PROTECTED]>:
"Massimo Fidanza" <[EMAIL PROTECTED]> 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!
--- common.c 2006-09-19 22:41:35.000000000 +0200
+++ common.c 2006-09-19 22:45:29.000000000 +0200
@@ -25,2 +25,5 @@
+#ifdef WIN32
+#define strcasecmp(s1,s2) lstrcmpiA((s1), (s2))
+#endif
@@ -208,5 +211,5 @@
{
- if (strcmp(string, _(PG_YESLETTER)) == 0)
+ if ((strcasecmp(string, _(PG_YESLETTER)) == 0) || (strcasecmp(string,
"y") == 0))
return 1;
- else if (strcmp(string, _(PG_NOLETTER)) == 0)
+ else if ((strcasecmp(string, _(PG_NOLETTER)) == 0) ||
(strcasecmp(string, "n") == 0))
return 0;
---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend