We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent ed5b912 commit c0ef623Copy full SHA for c0ef623
README.md
@@ -63,6 +63,7 @@ export TLDR_COLOR_DESCRIPTION="white"
63
export TLDR_COLOR_EXAMPLE="green"
64
export TLDR_COLOR_COMMAND="red"
65
export TLDR_COLOR_PARAMETER="white"
66
+export TLDR_LANGUAGE="es"
67
export TLDR_CACHE_ENABLED=1
68
export TLDR_CACHE_MAX_AGE=720
69
export TLDR_PAGES_SOURCE_LOCATION="https://raw.githubusercontent.com/tldr-pages/tldr/master/pages"
@@ -120,12 +121,14 @@ Any of the values of above may be omitted. For example, you can do similar thing
120
121
122
The language that tldr will use is dependent on a number of factors. If you specify a language via the
123
`--language` flag, tldr will attempt to use that language and only that language. Otherwise, it will
-default to language set using `LANGUAGE` and `LANG` (ignoring the value `C` and `POSIX`).
124
+try to use the language specified by `TLDR_LANGUAGE`. If it is not set, or the page does not exist in that language,
125
+then tldr will use the
126
+language set using `LANGUAGE` and `LANG` (ignoring the values `C` and `POSIX`).
127
If neither are set, then tldr will always attempt to get the `en` page. Finally, if `LANG` is set, it uses `LANGUAGE`, if set,
128
first as the priority list to try languages in, followed by `LANG` if not included in `LANGUAGE`
129
and `en` as fallback (assuming it does not already appear somewhere in `LANGUAGE` or `LANG`).
130
All language values should be set to a value that follows [RFC 1766](https://tools.ietf.org/html/rfc1766.html),
-with the special exception of `C` and `POSIX` which is ignored.
131
+with the special exceptions of `C` and `POSIX` which are ignored.
132
133
### Remote source
134
tests/test_tldr.py
@@ -61,6 +61,23 @@ def test_get_default_language_unset(monkeypatch):
61
assert tldr.get_default_language() is None
62
+@pytest.mark.parametrize("tldr_language, language, lang, expected", [
+ ("en", None, "fr_FR", ["en", "fr"]),
+ ("de", "ja_JA:cz_CZ", "cz_CZ", ["de", "ja", "cz", "en"]),
+ ("it", None, "C", ["it", "en"]),
+])
+def test_tldr_language(tldr_language, language, lang, expected, monkeypatch):
70
+ for name, var in [("TLDR_LANGUAGE", tldr_language),
71
+ ("LANGUAGE", language),
72
+ ("LANG", lang)]:
73
+ # Unset environment variable if their value is given as None
74
+ if var is None:
75
+ monkeypatch.delenv(name, raising=False)
76
+ else:
77
+ monkeypatch.setenv(name, var)
78
+ assert tldr.get_language_list() == expected
79
+
80
81
@pytest.mark.parametrize("platform, expected", [
82
("linux2", "linux"),
83
("win32", "windows"),
tldr.py
@@ -184,6 +184,7 @@ def get_platform_list():
184
185
186
def get_language_list():
187
+ tldr_language = get_language_code(os.environ.get('TLDR_LANGUAGE', ''))
188
languages = os.environ.get('LANGUAGE', '').split(':')
189
languages = list(map(
190
get_language_code,
@@ -192,12 +193,19 @@ def get_language_list():
192
193
194
default_lang = get_default_language()
195
- if default_lang is not None and default_lang not in languages:
196
- languages.append(default_lang)
197
- else:
+ if default_lang is None:
198
languages = []
+ elif default_lang not in languages:
199
+ languages.append(default_lang)
200
+ if tldr_language:
201
+ # remove tldr_language if it already exists to avoid double entry
202
+ try:
203
+ languages.remove(tldr_language)
204
+ except ValueError:
205
+ pass
206
+ languages.insert(0, tldr_language)
207
if 'en' not in languages:
- languages.append(None)
208
+ languages.append('en')
209
return languages
210
211
@@ -338,8 +346,8 @@ def output(page):
338
346
339
347
def update_cache(language=None):
340
348
if language is None:
341
- default_lang = get_default_language()
342
- language = default_lang if default_lang is not None else 'en'
349
+ tldr_language = os.environ.get("TLDR_LANGUAGE", get_default_language())
350
+ language = tldr_language if tldr_language else 'en'
343
351
elif isinstance(language, list):
344
352
language = language[0]
345
353
try:
0 commit comments