90 |
self._fallbacks = fallbacks |
self._fallbacks = fallbacks |
91 |
|
|
92 |
|
|
93 |
|
def getLanguageName(self, code): |
94 |
|
for (ccode, cdomain), cnames in self._catalogs.items(): |
95 |
|
if ccode == code: |
96 |
|
for cname in cnames: |
97 |
|
cat = self._data[cname] |
98 |
|
if cat.name: |
99 |
|
return cat.name |
100 |
|
|
101 |
|
|
102 |
def getLanguages(self, domain=None): |
def getLanguages(self, domain=None): |
103 |
"""Get available languages""" |
"""Get available languages""" |
104 |
if domain is not None: |
if domain is None: |
105 |
return [m[0] for m in self._catalogs.keys() if m[1] == domain] |
# no domain, so user wants 'em all |
106 |
# no domain, so user wants 'em all |
langs = self._catalogs.keys() |
107 |
langs = [m[0] for m in self._catalogs.keys()] |
# uniquify |
108 |
# uniquify |
d = {} |
109 |
d = {} |
for l in langs: |
110 |
for l in langs: |
d[l[0]] = 1 |
111 |
d[l] = 1 |
l = d.keys() |
112 |
return d.keys() |
else: |
113 |
|
l = [k[0] for k in self._catalogs.keys() if k[1] == domain] |
114 |
|
l.sort() |
115 |
|
return l |
116 |
|
|
117 |
|
|
118 |
def translate(self, domain, msgid, mapping=None, context=None, |
def translate(self, domain, msgid, mapping=None, context=None, |
135 |
raise TypeError, 'No destination language' |
raise TypeError, 'No destination language' |
136 |
else: |
else: |
137 |
langs = [m[0] for m in self._catalogs.keys() if m[1] == domain] |
langs = [m[0] for m in self._catalogs.keys() if m[1] == domain] |
138 |
|
for fallback in self._fallbacks: |
139 |
|
if fallback not in langs: |
140 |
|
langs.append(fallback) |
141 |
target_language = negotiator.getLanguage(langs, context) |
target_language = negotiator.getLanguage(langs, context) |
142 |
|
|
143 |
# Get the translation. Use the specified fallbacks if this fails |
# Get the translation. Use the specified fallbacks if this fails |