summaryrefslogtreecommitdiff
path: root/raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/translations/replace_qstr.py
blob: b1ae17e4dd6489e2ea750e397d3add3c1fea8382 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/usr/bin/env python3
import os
import re
from pathlib import Path

def replace_qstr_in_file(file_path, root_dir):
    with open(file_path, 'r', encoding='utf-8') as f:
        content = f.read()

    original_content = content
    relative_path = file_path.relative_to(root_dir)

    qstr_pattern = re.compile(r'qsTr\("([^"]+)"\)')

    def replacement(match):
        term = match.group(1)
        context = term
        return f'I18n.tr("{term}", "{context}")'

    content = qstr_pattern.sub(replacement, content)

    if content != original_content:
        with open(file_path, 'w', encoding='utf-8') as f:
            f.write(content)
        return True
    return False

def main():
    script_dir = Path(__file__).parent
    root_dir = script_dir.parent

    modified_count = 0

    for qml_file in root_dir.rglob('*.qml'):
        if 'translations' in str(qml_file):
            continue

        try:
            if replace_qstr_in_file(qml_file, root_dir):
                modified_count += 1
                print(f"Modified: {qml_file.relative_to(root_dir)}")
        except Exception as e:
            print(f"Error processing {qml_file}: {e}")

    print(f"\nTotal files modified: {modified_count}")

if __name__ == '__main__':
    main()