Show More
@@ -19,6 +19,14 from . import ( | |||||
19 | pycompat, |
|
19 | pycompat, | |
20 | ) |
|
20 | ) | |
21 |
|
21 | |||
|
22 | if pycompat.TYPE_CHECKING: | |||
|
23 | from typing import ( | |||
|
24 | Callable, | |||
|
25 | List, | |||
|
26 | Optional, | |||
|
27 | ) | |||
|
28 | ||||
|
29 | ||||
22 | # modelled after templater.templatepath: |
|
30 | # modelled after templater.templatepath: | |
23 | if getattr(sys, 'frozen', None) is not None: |
|
31 | if getattr(sys, 'frozen', None) is not None: | |
24 | module = pycompat.sysexecutable |
|
32 | module = pycompat.sysexecutable | |
@@ -40,7 +48,10 if ( | |||||
40 | try: |
|
48 | try: | |
41 | import ctypes |
|
49 | import ctypes | |
42 |
|
50 | |||
|
51 | # pytype: disable=module-attr | |||
43 | langid = ctypes.windll.kernel32.GetUserDefaultUILanguage() |
|
52 | langid = ctypes.windll.kernel32.GetUserDefaultUILanguage() | |
|
53 | # pytype: enable=module-attr | |||
|
54 | ||||
44 | _languages = [locale.windows_locale[langid]] |
|
55 | _languages = [locale.windows_locale[langid]] | |
45 | except (ImportError, AttributeError, KeyError): |
|
56 | except (ImportError, AttributeError, KeyError): | |
46 | # ctypes not found or unknown langid |
|
57 | # ctypes not found or unknown langid | |
@@ -51,7 +62,7 datapath = pycompat.fsdecode(resourceuti | |||||
51 | localedir = os.path.join(datapath, 'locale') |
|
62 | localedir = os.path.join(datapath, 'locale') | |
52 | t = gettextmod.translation('hg', localedir, _languages, fallback=True) |
|
63 | t = gettextmod.translation('hg', localedir, _languages, fallback=True) | |
53 | try: |
|
64 | try: | |
54 | _ugettext = t.ugettext |
|
65 | _ugettext = t.ugettext # pytype: disable=attribute-error | |
55 | except AttributeError: |
|
66 | except AttributeError: | |
56 | _ugettext = t.gettext |
|
67 | _ugettext = t.gettext | |
57 |
|
68 | |||
@@ -60,6 +71,7 except AttributeError: | |||||
60 |
|
71 | |||
61 |
|
72 | |||
62 | def gettext(message): |
|
73 | def gettext(message): | |
|
74 | # type: (Optional[bytes]) -> Optional[bytes] | |||
63 | """Translate message. |
|
75 | """Translate message. | |
64 |
|
76 | |||
65 | The message is looked up in the catalog to get a Unicode string, |
|
77 | The message is looked up in the catalog to get a Unicode string, | |
@@ -77,7 +89,7 def gettext(message): | |||||
77 | if message not in cache: |
|
89 | if message not in cache: | |
78 | if type(message) is pycompat.unicode: |
|
90 | if type(message) is pycompat.unicode: | |
79 | # goofy unicode docstrings in test |
|
91 | # goofy unicode docstrings in test | |
80 | paragraphs = message.split(u'\n\n') |
|
92 | paragraphs = message.split(u'\n\n') # type: List[pycompat.unicode] | |
81 | else: |
|
93 | else: | |
82 | # should be ascii, but we have unicode docstrings in test, which |
|
94 | # should be ascii, but we have unicode docstrings in test, which | |
83 | # are converted to utf-8 bytes on Python 3. |
|
95 | # are converted to utf-8 bytes on Python 3. | |
@@ -110,6 +122,6 def _plain(): | |||||
110 |
|
122 | |||
111 |
|
123 | |||
112 | if _plain(): |
|
124 | if _plain(): | |
113 | _ = lambda message: message |
|
125 | _ = lambda message: message # type: Callable[[bytes], bytes] | |
114 | else: |
|
126 | else: | |
115 | _ = gettext |
|
127 | _ = gettext |
General Comments 0
You need to be logged in to leave comments.
Login now