Hello,
>>>> Now for the Problem: There is a problem with the translation of the
>>>> english word "March" to the german "März". Instead of "März" i get "MäRz"
>>>> (with uppercase "r").
>>>>
>>>> You can reproduce it as follow:
>>>> # SET lc_time = "de_DE.UTF-8";
>>>> # SELECT to_char('2011-03-04 00:00:01'::date, 'TMMonth YYYY');
>>>> to_char
>>>> -----------
>>>> MäRz 2011
>>>>
>>>> I did not find the translation file for this, so i can't add a patch or
>>>> check for other misspellings.
>>>>
>>>> My System:
>>>> PostgreSQL 9.0.3
>>>> FreeBSD 8.1-RELEASE
>>> Thats very likely a problem of your operating systems locales. What
>>> spelling does the month have if you construct it with `date` or such?
>> Done directly at the bash on the same system:
>> $ date +%B
>> March
>> $ export LC_TIME=de_DE.UTF-8
>> $ date +%B
>> März
>>
>> And in PostgreSQL:
>> # SET lc_time = "de_DE.UTF-8";
>> SET
>> # SELECT to_char(current_date, 'TMMonth YYYY');
>> to_char
>> -----------
>> MäRz 2011
>>
>> I also can reproduce this at a FreeBSD 7.0-STABLE.
>
> IIRC, the FreeBSD locales at least used to be pretty much broken for
> UTF8. Can you try and see if you get the same problem in a non-UTF8
> locale?
Doesn't work proper at my bash, even the dirty way:
$ export LC_ALL=de_DE.ISO8859-1
$ export LC_PAPER=de_DE.ISO8859-1
$ export LC_ADDRESS=de_DE.ISO8859-1
$ export LC_MONETARY=de_DE.ISO8859-1
$ export LC_NUMERIC=de_DE.ISO8859-1
$ export LC_TELEPHONE=de_DE.ISO8859-1
$ export LC_MESSAGES=de_DE.ISO8859-1
$ export LC_IDENTIFICATION=de_DE.ISO8859-1
$ export LC_COLLATE=de_DE.ISO8859-1
$ export LANG=de_DE.ISO8859-1
$ export LC_MEASUREMENT=de_DE.ISO8859-1
$ export XTERM_LOCALE=de_DE.ISO8859-1
$ export LANGUAGE=de_DE.ISO8859-1:de
$ export LC_CTYPE=de_DE.ISO8859-1
$ export LC_TIME=de_DE.ISO8859-1
$ export LC_NAME=de_DE.ISO8859-1
$ export LC_ALL=de_DE.ISO8859-1
$ date +%B
M�z
I can't figure out, why the umlaut is not displayed correctly.
In PostgreSQL it looks interesting:
# SET lc_time = "de_DE.ISO8859-1";
SET
0.3.impos=# SELECT to_char(current_date, 'TMMonth YYYY'); to_char
---------- MRz 2011
(1 Zeile)
The missing Umlaut could be an error of the bash, but the upperase "r"
is still there.
Greetings,
Torsten