mirror of
https://github.com/zulip/zulip.git
synced 2025-11-02 21:13:36 +00:00
As of commitcff40c557b(#9300), these files are no longer served directly to the browser. Disentangle them from the static asset pipeline so we can refactor it without worrying about them. This has the side effect of eliminating the accidental duplication of translation data via hash-naming in our release tarballs. This reverts commitb546391f0b(#1148). Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
46 lines
1.4 KiB
Python
Executable File
46 lines
1.4 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
import json
|
|
import os
|
|
import re
|
|
from subprocess import check_output
|
|
from typing import Dict, List
|
|
|
|
def get_json_filename(locale: str) -> str:
|
|
return "locale/{}/mobile.json".format(locale)
|
|
|
|
def get_locales() -> List[str]:
|
|
tracked_files = check_output(['git', 'ls-files', 'locale'])
|
|
tracked_files = tracked_files.decode().split()
|
|
regex = re.compile(r'locale/(\w+)/LC_MESSAGES/django.po')
|
|
locales = ['en']
|
|
for tracked_file in tracked_files:
|
|
matched = regex.search(tracked_file)
|
|
if matched:
|
|
locales.append(matched.group(1))
|
|
|
|
return locales
|
|
|
|
def get_translation_stats(resource_path: str) -> Dict[str, int]:
|
|
with open(resource_path) as raw_resource_file:
|
|
raw_info = json.load(raw_resource_file)
|
|
|
|
total = len(raw_info)
|
|
not_translated = len([i for i in raw_info.items() if i[1] == ''])
|
|
return {'total': total, 'not_translated': not_translated}
|
|
|
|
translation_stats = {} # type: Dict[str, Dict[str, int]]
|
|
locale_paths = [] # List[str]
|
|
for locale in get_locales():
|
|
path = get_json_filename(locale)
|
|
if os.path.exists(path):
|
|
stats = get_translation_stats(path)
|
|
translation_stats.update({locale: stats})
|
|
locale_paths.append(path)
|
|
|
|
stats_path = os.path.join('locale', 'mobile_info.json')
|
|
with open(stats_path, 'w') as f:
|
|
json.dump(translation_stats, f, indent=2, sort_keys=True)
|
|
f.write('\n')
|
|
|
|
print("Mobile stats file created at: " + stats_path)
|