2010-11-29 9 views
1

Nach der Python-Dokumentation.Ist es möglich, locale auf den tragbaren locale zurücksetzen?

„ein Programm, das setlocale(LC_ALL, '') läuft unter Verwendung des tragbaren locale‚C‘nicht aufgerufen hat

Nachdem das Gebietsschema mit setlocale(LC_ALL, '') gesetzt zu haben ist es möglich, die zurückgesetzt werden ? locale zurück in die „portable“ Zustand ich arbeite an einer Bibliothek, die einige Misbehaved Komponenten enthält, die das Gebietsschema auf die länderspezifischen global versuchen Reset -. ich muss einen Weg finden, um das Gebietsschema zurück zu dem tragbaren Zustand zurückzukehren

import locale 
loc = locale.getlocale(locale.LC_ALL) # get current locale 
assert loc == (None, None) 
# Locale is unset, therefore in the "portable" state. 
locale.setlocale(locale.LC_ALL, '') # use user's preferred locale 
# Loc is not set to regional default 
???? DO SOMETHING HERE 
assert loc == locale.getlocale(locale.LC_ALL) # I want to make this true! 

Needs auf Python 2.4.4 auf Windows XP 32-Bit arbeiten

Antwort

1
locale.setlocale(locale.getdefaultlocale()) 

es zurück auf den Standard locale

2

Sie könnten versuchen, gesetzt wird: locale.setlocale(locale.LC_ALL, loc).

>>> locale.getlocale(locale.LC_ALL) 
(None, None) 
>>> locale.setlocale(locale.LC_ALL, "")           
'en_US.utf8' 
>>> locale.getlocale(locale.LC_ALL) 
('en_US', 'UTF8') 
>>> locale.setlocale(locale.LC_ALL, "C")         
'C' 
>>> locale.getlocale(locale.LC_ALL) 
(None, None) 
>>> locale.setlocale(locale.LC_ALL, (None,None)) 
'C' 
>>> locale.getlocale(locale.LC_ALL) 
(None, None) 
+0

sollte diese Antwort akzeptiert werden. Arbeitete für mich wie ein Zauber auf Fenster -) Thanx! –