
A general-purpose recursive method for extracting all translatable string values from a nested JSON structure.
import json
def extract_strings(obj, path=""):
strings = []
if isinstance(obj, dict):
for k, v in obj.items():
new_path = f"{path}.{k}" if path else k
strings.extend(extract_strings(v, new_path))
elif isinstance(obj, list):
for i, item in enumerate(obj):
strings.extend(extract_strings(item, f"{path}[{i}]"))
elif isinstance(obj, str):
strings.append((path, obj))
return strings
with open("xxxx.json", "r", encoding="utf-8") as f:
data = json.load(f)
pairs = extract_strings(data)
for p, text in pairs:
print(f"{p}\t{text}")