42 lines
1.2 KiB
Python
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()
|