#492 closed defect (fixed)
Error: unsupported locale setting
Reported by: | Owned by: | Emmanuel Blot | |
---|---|---|---|
Priority: | normal | Component: | TracFrenchTranslation |
Severity: | normal | Keywords: | |
Cc: | Trac Release: | 0.10 |
Description (last modified by )
Hi,
I am trying to install TracFrenchTranslation. I created a separate area for french Trac projects (I have only one standard Trac instance running with a lot of projects). When I start the french Trac, I get the following Python error :
Error: unsupported locale setting The traceback is : /www/Web/servers/trac/0.10-french-1005/lib/python2.4/site-packages/trac/web/main.py in dispatch_request(environ={'DOCUMENT_ROOT': '/htdocs/tracfr', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTPS': 'on', 'HTTP_ACCEPT': 'image/gif, image/x-xbitmap, image/jpeg, image/pj...cation/vnd.ms-powerpoint, application/msword, */*', 'HTTP_ACCEPT_ENCODING': 'gzip, deflate', 'HTTP_ACCEPT_LANGUAGE': 'fr', 'HTTP_CONNECTION': 'Keep-Alive', 'HTTP_HOST': 'tracfr', 'HTTP_USER_AGENT': 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)', 'PATH': '/usr/bin:/usr/sbin:/sbin', ...}, start_response=<function start_response>) 258 else: 259 if os.name == 'posix': 260 locale.setlocale(locale.LC_ALL, 'fr_FR') 261 elif os.name == 'nt': 262 locale.setlocale(locale.LC_ALL, 'French_France') global locale = <module 'locale' from '/usr/local/Python/2.4.1/lib/python2.4/locale.pyc'>, locale.setlocale = <function setlocale>, locale.LC_ALL = 65535 /usr/local/Python/2.4.1/lib/python2.4/locale.py in setlocale(category=65535, locale='fr_FR') 377 # convert to string 378 locale = normalize(_build_localename(locale)) 379 return _setlocale(category, locale) 380 381 def resetlocale(category=LC_ALL): global _setlocale = <built-in function setlocale>, category = 65535, locale = 'fr_FR' Error: unsupported locale setting args = ('unsupported locale setting',)
I am pretty sure I made something wrong but I cannot figure out why...
Any help appreciated.
Michel
Attachments (0)
Change History (22)
comment:1 Changed 18 years ago by
comment:2 Changed 18 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
Sorry for forgetting {{{ }}}...
Thanks for your help, I was guessing it was related to missing parts in NLS configuration. I am trying to solve it (this is not on Linux... Tru64).
Michel
comment:3 Changed 18 years ago by
Resolution: | fixed |
---|---|
Status: | closed → reopened |
comment:4 Changed 18 years ago by
Resolution: | → worksforme |
---|---|
Status: | reopened → closed |
(fixing ticket resolution)
comment:5 Changed 18 years ago by
Resolution: | worksforme |
---|---|
Status: | closed → reopened |
I fixed the language installation problem on my system, Tru64. Unfortunatly, the locale is called fr_FR.ISO8859-1 instead of fr_FR. Is there any possibility to define this externally (e.g. trac.ini, defining LC_ALL env var when launching trac.fcgi doesn't seem to work).
comment:6 Changed 18 years ago by
Resolution: | → worksforme |
---|---|
Status: | reopened → closed |
It is pretty simple : just define LC_ALL with -initial-env when launching the FCGI. And don't forget to stop/start Apache (graceful restart is not enough as this setting is processed by Apache master).
comment:7 Changed 18 years ago by
Resolution: | worksforme |
---|---|
Status: | closed → reopened |
I reopen this ticket again. I made a mistake testing the previous solution and it doesn't work : locale definition is done unconditionally, whenever the LC_ALL is set or not. There is a test for 'trac.locale' being defined but how to define it ?
comment:8 Changed 18 years ago by
With mod_python, you probably need to add the following rule:
PythonOption TracLocale "fr_FR.ISO8859-1"
to your Apache config file.
TracFrenchTranslation falls back to "fr_FR" if no custom locale is defined.
comment:9 Changed 18 years ago by
Thanks for the info. I am using FastCGI, thus I tried to define env variable TRAC_LOCALE. But it doesn't (seem) to work. May be there is something to add in fcgi.py to retrieve the env variable ? I'll try to have a look if I find 5 minutes...
comment:10 Changed 18 years ago by
Actually, it was not supported, as there was no handler for this case.
Can you give a try with [1015] and "TRAC_LOCALE
"?
comment:12 Changed 18 years ago by
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
comment:13 Changed 18 years ago by
For my system (Ubuntu) I used
dpkg-reconfigure locales
With this, I learned that my locale was fr_FR.UTF-8
I just had to add this line in Apache:
PythonOption TracLocale "fr_FR.UTF-8"
And it worked...
comment:15 follow-up: 16 Changed 18 years ago by
Replying to jouvin@lal.in2p3.fr:
But I am running Fastcgi... that was the problem !
On Ubuntu, you need to set the option like this :
PythonOption TracLocale "fr_FR.utf-8"
else, it will not work.
comment:16 Changed 17 years ago by
I am running FreeBSD 6.2-STABLE. I have no idea if it has something to te subject, but setting Python option didn't help me. I had to add:
SetEnv LC_ALL pl_PL.ISO8859-2
next to the TracLocale.
comment:17 Changed 13 years ago by
on FreeBSD 8.2 rel p3 and cgi : trac 0.13.dev
os.environtrac.locale? = 'fr_FR.UTF-8'
comment:19 follow-up: 21 Changed 13 years ago by
Replying to anonymous:
should be
os.environ['trac.locale'] =
- Locale string depends on the platform; you need to check the locale string format and adapt the setting accordingly;
- This plugin is useless since Trac supports localization (several years ago)
comment:20 Changed 13 years ago by
Description: | modified (diff) |
---|
comment:21 follow-up: 22 Changed 13 years ago by
Replying to eblot:
- This plugin is useless since Trac supports localization (several years ago)
I added the deprecated tag to the wiki page. There are 7 open tickets for this plugin. Should they be closed as wontfix since it sounds like you don't plan to support it any longer given the Trac 0.12 support?
comment:22 Changed 13 years ago by
Replying to rjollos:
Should they be closed as wontfix since it sounds like you don't plan to support it any longer given the Trac 0.12 support?
You're right. Done.
Did you build the locale for
fr_FR
?Try to set your locale to the same value:
export LC_ALL="fr_FR"
and use a localized command, for example '
man ls
'If you get an error, this means that you forgot to build your locale files for the french language.
ps: for the sake of readibility, please use the {{{ }}} syntax to paste your python traceback when reporting an issue.