mirror of
https://github.com/home-assistant/core.git
synced 2025-12-24 12:59:34 +00:00
Migrate translations_develop script (#33933)
* Migrate translations_develop script * Fix lint
This commit is contained in:
63
script/translations/develop.py
Normal file
63
script/translations/develop.py
Normal file
@@ -0,0 +1,63 @@
|
||||
"""Compile the current translation strings files for testing."""
|
||||
import argparse
|
||||
import json
|
||||
from pathlib import Path
|
||||
from shutil import rmtree
|
||||
import sys
|
||||
|
||||
from . import download, upload
|
||||
from .const import INTEGRATIONS_DIR
|
||||
from .util import get_base_arg_parser
|
||||
|
||||
|
||||
def valid_integration(integration):
|
||||
"""Test if it's a valid integration."""
|
||||
if not (INTEGRATIONS_DIR / integration).is_dir():
|
||||
raise argparse.ArgumentTypeError(
|
||||
f"The integration {integration} does not exist."
|
||||
)
|
||||
|
||||
return integration
|
||||
|
||||
|
||||
def get_arguments() -> argparse.Namespace:
|
||||
"""Get parsed passed in arguments."""
|
||||
parser = get_base_arg_parser()
|
||||
parser.add_argument(
|
||||
"--integration", type=valid_integration, help="Integration to process."
|
||||
)
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def run():
|
||||
"""Run the script."""
|
||||
args = get_arguments()
|
||||
if args.integration:
|
||||
integration = args.integration
|
||||
else:
|
||||
integration = None
|
||||
while (
|
||||
integration is None
|
||||
or not Path(f"homeassistant/components/{integration}").exists()
|
||||
):
|
||||
if integration is not None:
|
||||
print(f"Integration {integration} doesn't exist!")
|
||||
print()
|
||||
integration = input("Integration to process: ")
|
||||
|
||||
translations = upload.generate_upload_data()
|
||||
|
||||
if integration not in translations["component"]:
|
||||
print("Integration has no strings.json")
|
||||
sys.exit(1)
|
||||
|
||||
if download.DOWNLOAD_DIR.is_dir():
|
||||
rmtree(str(download.DOWNLOAD_DIR))
|
||||
|
||||
download.DOWNLOAD_DIR.mkdir(parents=True)
|
||||
|
||||
(download.DOWNLOAD_DIR / "en.json").write_text(
|
||||
json.dumps({"component": {integration: translations["component"][integration]}})
|
||||
)
|
||||
|
||||
download.write_integration_translations()
|
||||
Reference in New Issue
Block a user