mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Update beacon importer to handle TheChannel.
TheChannel doesn't have message catalogs for English.
This commit is contained in:
parent
745dfc71bc
commit
a7203ea90a
@ -24,6 +24,7 @@ import argparse
|
|||||||
from contextlib import contextmanager
|
from contextlib import contextmanager
|
||||||
import dataclasses
|
import dataclasses
|
||||||
import gettext
|
import gettext
|
||||||
|
import logging
|
||||||
import os
|
import os
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
import textwrap
|
import textwrap
|
||||||
@ -60,6 +61,7 @@ def convert_lua_frequency(raw: Union[float, int]) -> int:
|
|||||||
|
|
||||||
|
|
||||||
def beacons_from_terrain(dcs_path: Path, path: Path) -> Iterable[Beacon]:
|
def beacons_from_terrain(dcs_path: Path, path: Path) -> Iterable[Beacon]:
|
||||||
|
logging.info(f"Loading terrain data from {path}")
|
||||||
# TODO: Fix case-sensitive issues.
|
# TODO: Fix case-sensitive issues.
|
||||||
# The beacons.lua file differs by case in some terrains. Will need to be
|
# The beacons.lua file differs by case in some terrains. Will need to be
|
||||||
# fixed if the tool is to be run on Linux, but presumably the server
|
# fixed if the tool is to be run on Linux, but presumably the server
|
||||||
@ -84,6 +86,8 @@ def beacons_from_terrain(dcs_path: Path, path: Path) -> Iterable[Beacon]:
|
|||||||
end
|
end
|
||||||
|
|
||||||
"""))
|
"""))
|
||||||
|
|
||||||
|
try:
|
||||||
translator = gettext.translation(
|
translator = gettext.translation(
|
||||||
"messages", path / "l10n", languages=["en"])
|
"messages", path / "l10n", languages=["en"])
|
||||||
|
|
||||||
@ -91,6 +95,11 @@ def beacons_from_terrain(dcs_path: Path, path: Path) -> Iterable[Beacon]:
|
|||||||
if not message_name:
|
if not message_name:
|
||||||
return message_name
|
return message_name
|
||||||
return translator.gettext(message_name)
|
return translator.gettext(message_name)
|
||||||
|
except FileNotFoundError:
|
||||||
|
# TheChannel has no locale data for English.
|
||||||
|
def translate(message_name: str) -> str:
|
||||||
|
return message_name
|
||||||
|
|
||||||
bind_gettext(translate)
|
bind_gettext(translate)
|
||||||
|
|
||||||
src = beacons_lua.read_text()
|
src = beacons_lua.read_text()
|
||||||
@ -148,7 +157,6 @@ class Importer:
|
|||||||
], indent=True))
|
], indent=True))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def parse_args() -> argparse.Namespace:
|
def parse_args() -> argparse.Namespace:
|
||||||
"""Parses and returns command line arguments."""
|
"""Parses and returns command line arguments."""
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
@ -175,6 +183,7 @@ def parse_args() -> argparse.Namespace:
|
|||||||
|
|
||||||
def main() -> None:
|
def main() -> None:
|
||||||
"""Program entry point."""
|
"""Program entry point."""
|
||||||
|
logging.basicConfig(level=logging.DEBUG)
|
||||||
args = parse_args()
|
args = parse_args()
|
||||||
Importer(args.dcs_path, args.export_to).run()
|
Importer(args.dcs_path, args.export_to).run()
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user