Files
intaleq_driver/scratch/extract_keys.py

42 lines
1.2 KiB
Python

import os
import re
# Regex for .tr keys: matches 'string'.tr or "string".tr
tr_pattern = re.compile(r'[\'"]([^\'"]+)[\'"]\.tr')
# Regex for Text widgets or other common UI strings that might be hardcoded
# This is a bit broad, but helps find things like Text("Hello")
text_pattern = re.compile(r'Text\(\s*[\'"]([^\'"]+)[\'"]')
keys = set()
def scan_file(filepath):
try:
with open(filepath, 'r', encoding='utf-8') as f:
content = f.read()
# Find all .tr usages
for match in tr_pattern.finditer(content):
keys.add(match.group(1))
# Find potential hardcoded strings in Text widgets
# (We only care about those NOT already using .tr)
# This is just for my manual review to see if I missed any
# for match in text_pattern.finditer(content):
# keys.add(match.group(1))
except Exception as e:
pass
def main():
root_dir = 'lib'
for root, dirs, files in os.walk(root_dir):
for file in files:
if file.endswith('.dart'):
scan_file(os.path.join(root, file))
# Print all found keys
for key in sorted(keys):
print(key)
if __name__ == "__main__":
main()