MCPcopy
hub / github.com/django/django / fetch

Function fetch

scripts/manage_translations.py:266–336  ·  view source on GitHub ↗

Fetch translations from Transifex, wrap long lines, generate mo files.

(resources=None, languages=None, date_since=None, verbosity=0)

Source from the content-addressed store, hash-verified

264
265
266def fetch(resources=None, languages=None, date_since=None, verbosity=0):
267 """
268 Fetch translations from Transifex, wrap long lines, generate mo files.
269 """
270 if date_since is None:
271 resource_lang_mapping = {}
272 else:
273 # Filter resources and languages that were updates after `date_since`
274 resource_lang_mapping = list_resources_with_updates(
275 date_since=date_since,
276 resources=resources,
277 languages=languages,
278 verbosity=verbosity,
279 )
280 resources = resource_lang_mapping.keys()
281
282 locale_dirs = _get_locale_dirs(resources)
283 errors = []
284
285 for name, dir_ in locale_dirs:
286 cmd = [
287 "tx",
288 "pull",
289 "-r",
290 _tx_resource_for_name(name),
291 "-f",
292 "--minimum-perc=5",
293 ]
294 per_resource_langs = resource_lang_mapping.get(name, languages)
295 # Transifex pull
296 if per_resource_langs is None:
297 run([*cmd, "--all"], verbosity=verbosity)
298 target_langs = sorted(
299 d for d in os.listdir(dir_) if not d.startswith("_") and d != "en"
300 )
301 else:
302 run([*cmd, "-l", ",".join(per_resource_langs)], verbosity=verbosity)
303 target_langs = per_resource_langs
304
305 target_langs = [LANG_OVERRIDES.get(d, d) for d in target_langs]
306
307 # msgcat to wrap lines and msgfmt for compilation of .mo file
308 for lang in target_langs:
309 po_path = "%(path)s/%(lang)s/LC_MESSAGES/django%(ext)s.po" % {
310 "path": dir_,
311 "lang": lang,
312 "ext": "js" if name.endswith("-js") else "",
313 }
314 if not os.path.exists(po_path):
315 print(
316 "No %(lang)s translation for resource %(name)s"
317 % {"lang": lang, "name": name}
318 )
319 continue
320 run(
321 ["msgcat", "--no-location", "-o", po_path, po_path], verbosity=verbosity
322 )
323 msgfmt = run(

Callers

nothing calls this directly

Calls 10

_get_locale_dirsFunction · 0.85
_tx_resource_for_nameFunction · 0.85
runFunction · 0.70
keysMethod · 0.45
getMethod · 0.45
listdirMethod · 0.45
joinMethod · 0.45
existsMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected