2010-11-29 7 views
1

Согласно документации Python:.Возможно ли сбросить локаль в портативный локаль?

«программа, которая не называется setlocale(LC_ALL, '') прогонов с использованием портативного локаль„C“

После установки локали с setlocale(LC_ALL, '') это можно сбросить locale обратно в «портативное» состояние? Я работаю над библиотекой, которая включает в себя некоторые недостойные компоненты, которые пытаются глобально сбросить языковой стандарт до конкретного региона - мне нужно найти способ вернуть языковой стандарт обратно в переносное состояние.

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! 

должен работать на Python 2.4.4 на Windows XP 32bit

ответ

1
locale.setlocale(locale.getdefaultlocale()) 

будет установить его в стандартной локали

2

Вы можете попробовать: 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

это должно быть принято. Работал для меня как шарм на окнах -) Thanx! – 2014-08-13 07:49:41

Смежные вопросы