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. (cherry picked from commit a7203ea90a97f5ee3aecb524a5362f09e35f46df)
This commit is contained in:
parent
5382d99a94
commit
1a0889d3d9
@ -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,13 +86,20 @@ def beacons_from_terrain(dcs_path: Path, path: Path) -> Iterable[Beacon]:
|
|||||||
end
|
end
|
||||||
|
|
||||||
"""))
|
"""))
|
||||||
translator = gettext.translation(
|
|
||||||
"messages", path / "l10n", languages=["en"])
|
|
||||||
|
|
||||||
def translate(message_name: str) -> str:
|
try:
|
||||||
if not message_name:
|
translator = gettext.translation(
|
||||||
|
"messages", path / "l10n", languages=["en"])
|
||||||
|
|
||||||
|
def translate(message_name: str) -> str:
|
||||||
|
if not message_name:
|
||||||
|
return 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
|
return message_name
|
||||||
return translator.gettext(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