mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +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)
 |