ADD locales-tools + one example
This commit is contained in:
parent
3dd5825157
commit
dcddc55c92
|
@ -0,0 +1,51 @@
|
|||
import os
|
||||
import json
|
||||
from collections import defaultdict
|
||||
import jinja2
|
||||
|
||||
# Function to create a defaultdict that returns an empty dictionary for missing keys
|
||||
def make_defaultdict(default_factory):
|
||||
return defaultdict(lambda: defaultdict(default_factory))
|
||||
|
||||
# Load the translation dictionary from the JSON file
|
||||
script_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
json_path = os.path.join(script_dir, 'translation_zashi.json')
|
||||
|
||||
with open(json_path, 'r', encoding='utf-8') as file:
|
||||
data = json.load(file)
|
||||
translation_dict = data.get('translation_dict', {})
|
||||
|
||||
# Convert the translation dictionary to a defaultdict
|
||||
translation_dict = make_defaultdict(lambda: "") | translation_dict
|
||||
|
||||
# Project root directory
|
||||
root_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
|
||||
|
||||
# Function to process each .jinja2 file for a specific language
|
||||
def process_file(filepath, lang, output_dir):
|
||||
with open(filepath, 'r', encoding='utf-8') as file:
|
||||
content = file.read()
|
||||
|
||||
template = jinja2.Template(content)
|
||||
rendered_content = template.render(translation_dict={k: v.get(lang, '') for k, v in translation_dict.items()})
|
||||
|
||||
os.makedirs(output_dir, exist_ok=True)
|
||||
output_filepath = os.path.join(output_dir, 'strings.xml')
|
||||
with open(output_filepath, 'w', encoding='utf-8') as file:
|
||||
file.write(rendered_content)
|
||||
|
||||
# Traverse the directory and process each .jinja2 file for each language
|
||||
for root, dirs, files in os.walk(root_dir):
|
||||
for file in files:
|
||||
if file.endswith('.jinja2'):
|
||||
filepath = os.path.join(root, file)
|
||||
# Process for the default language (English)
|
||||
process_file(filepath, 'en', os.path.dirname(filepath))
|
||||
|
||||
# Process for all other languages
|
||||
for lang in translation_dict[next(iter(translation_dict))].keys():
|
||||
if lang != 'en':
|
||||
output_dir = os.path.join(os.path.dirname(os.path.dirname(filepath)), f'values-{lang}')
|
||||
process_file(filepath, lang, output_dir)
|
||||
|
||||
print("All files have been processed.")
|
File diff suppressed because it is too large
Load Diff
|
@ -12,6 +12,6 @@
|
|||
<string name="scan_state_failed">Camera initialization failed. Try it again, please.</string>
|
||||
<string name="scan_address_validation_failed">This QR code is not a valid Zcash Address.</string>
|
||||
|
||||
<string name="scan_torch_content_description">Camera torch toggle</string>
|
||||
<string name="scan_torch_content_description">{{ translation_dict['ScanTorchContentDescription'] }}</string>
|
||||
<string name="gallery_content_description">Gallery</string>
|
||||
</resources>
|
Loading…
Reference in New Issue