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

Reply via email to