2012-10-23 11 views
5

क्या किसी अन्य भाषा में टाइमज़ोन नाम पुनर्प्राप्त करने के लिए कोई तरीका है?स्थानीय भाषा में समय क्षेत्र नाम

अजगर में, अगर मैं कुछ इस तरह करते हैं:

for tz in pytz.common_timezones_set : 
print tz 

परिणाम अंग्रेजी में है, लेकिन अगर मैं स्पेनिश में या अरबी यह करना चाहते हैं क्या?

उत्तर

1

नहीं, दुर्भाग्य से टाइमज़ोन नामों के लिए कोई अनुवाद नहीं है। नाम Olson timezone database (पायथन या pytz का हिस्सा नहीं) का हिस्सा हैं। नए समय-समय पर जोड़े जाते हैं, इसलिए किसी भी संभावित अनुवाद प्रोजेक्ट को उस डेटाबेस के साथ समन्वयित रहना होगा।

+0

नहीं जवाब मैं चाहता था, लेकिन धन्यवाद उपयोग कर सकते हैं। – Trollbane

0

pytz.common_timezones_set tz डेटाबेस में आईडी का एक सेट देता है। वे मानव पठनीय होने के लिए डिज़ाइन किए गए हैं लेकिन वे अनुवाद योग्य नहीं हैं।

>>> from datetime import datetime 
>>> import icu 
>>> df = icu.DateFormat.createDateTimeInstance(icu.DateFormat.SHORT, icu.DateFormat.FULL, icu.Locale.getFrance()) 
>>> df.format(datetime.now(icu.ICUtzinfo.getDefault())) 
'27/01/2015 21:01:01 heure normale d’Europe centrale' 
0

काफी देर से आ रहा है, लेकिन मैं हाल ही में एक ऐसी ही मुद्दे में भाग गया, और उस उद्देश्य के लिए अपने खुद के पैकेज l18n बना दी:

PyICU स्थानीय समय क्षेत्र के नाम तक पहुँच प्रदान करता। यह यहां उपलब्ध है: https://pypi.python.org/pypi/l18n

यह मानव-पठनीय स्थानों और पायट्ज़ में उपयोग किए जाने वाले टाइमज़ोन के लिए अनुवाद फ़ाइलें प्रदान करता है। अधिकांश अनुवाद स्वचालित रूप से सीएलडीआर डेटाबेस से प्राप्त किए जाते हैं, लेकिन उनमें से कुछ हमेशा गायब होते हैं। इस पल के लिए केवल अंग्रेजी और फ्रेंच के लिए अनुवाद फाइलें उपलब्ध हैं। मुझसे संपर्क करने में संकोच न करें (पैकेज के रेपो https://bitbucket.org/tkhyn/l18n पर कोई समस्या बनाएं) या यदि आप अपनी भाषा के लिए अनुवाद जोड़ना चाहते हैं तो चरण-दर-चरण प्रक्रिया here का पालन करें।

+0

इसे एक साथ रखने के लिए धन्यवाद! लेकिन एक सुझाव: 'एल' ऐसा लगता है कि यह एक राजधानी 'मैं' हो सकता है (और यदि आप स्क्वांट, लोअरकेस 'i'), तो l18n को i18n के साथ आसानी से भ्रमित किया जा सकता है। यह एक रचनात्मक नाम था, लेकिन शायद इस तरह से पकड़ने की संभावना कम है? साथ ही, स्थान के नामों का अनुवाद करना अच्छा होता है, लेकिन एक और उपयोगी टुकड़ा वास्तविक टाइमज़ोन नाम देना होगा (उदाहरण के लिए, जो दुर्भाग्य से बहुत जटिल लगता है)। –

+0

@NealGokli आप वास्तविक समय क्षेत्र नाम 'l18n.tz_fullnames' के साथ प्राप्त कर सकते हैं, है ना? – ouk

2

आप की व्याख्या के लिए babel package

import pytz 
from babel.dates import get_timezone_location 

for tz in pytz.common_timezones_set: 
    print(get_timezone_location(tz, locale='es')) 
संबंधित मुद्दे