def METHOD_NAME(x, y, path):
    if isinstance(x, str):
        strings.append(TranslatableString(path, str(x), str(y or "")))
        return
    if isinstance(x, list):
        y = y if isinstance(y, list) else []
        for i, el in enumerate(x):
            if not isinstance(el, str):
                strings.append(TranslatableSection(str(i + 1)))
            METHOD_NAME(el, y[i] if i < len(y) else None, path + ["a:" + str(i)])
        return
    if isinstance(x, dict):
        y = y if isinstance(y, dict) else {}
        for key, el in x.items():
            if not isinstance(el, str):
                strings.append(TranslatableSection(str(key)))
            METHOD_NAME(el, y.get(key, None), path + [str(key)])