##// END OF EJS Templates
i18n: remove unnecessary os.path.normpath call
Martin Geisler -
r9538:f96ee862 default
parent child Browse files
Show More
@@ -1,52 +1,52 b''
1 1 # i18n.py - internationalization support for mercurial
2 2 #
3 3 # Copyright 2005, 2006 Matt Mackall <mpm@selenic.com>
4 4 #
5 5 # This software may be used and distributed according to the terms of the
6 6 # GNU General Public License version 2, incorporated herein by reference.
7 7
8 8 import encoding
9 9 import gettext, sys, os
10 10
11 11 # modelled after templater.templatepath:
12 12 if hasattr(sys, 'frozen'):
13 13 module = sys.executable
14 14 else:
15 15 module = __file__
16 16
17 17 base = os.path.dirname(module)
18 18 for dir in ('.', '..'):
19 localedir = os.path.normpath(os.path.join(base, dir, 'locale'))
19 localedir = os.path.join(base, dir, 'locale')
20 20 if os.path.isdir(localedir):
21 21 break
22 22
23 23 t = gettext.translation('hg', localedir, fallback=True)
24 24
25 25 def gettext(message):
26 26 """Translate message.
27 27
28 28 The message is looked up in the catalog to get a Unicode string,
29 29 which is encoded in the local encoding before being returned.
30 30
31 31 Important: message is restricted to characters in the encoding
32 32 given by sys.getdefaultencoding() which is most likely 'ascii'.
33 33 """
34 34 # If message is None, t.ugettext will return u'None' as the
35 35 # translation whereas our callers expect us to return None.
36 36 if message is None:
37 37 return message
38 38
39 39 u = t.ugettext(message)
40 40 try:
41 41 # encoding.tolocal cannot be used since it will first try to
42 42 # decode the Unicode string. Calling u.decode(enc) really
43 43 # means u.encode(sys.getdefaultencoding()).decode(enc). Since
44 44 # the Python encoding defaults to 'ascii', this fails if the
45 45 # translated string use non-ASCII characters.
46 46 return u.encode(encoding.encoding, "replace")
47 47 except LookupError:
48 48 # An unknown encoding results in a LookupError.
49 49 return message
50 50
51 51 _ = gettext
52 52
General Comments 0
You need to be logged in to leave comments. Login now