#!/usr/bin/env python3
# originally from here: https://cgit.pacien.net/desktop-utilities/

import sys

alphabet = {
    "nato": {
        "A": "Alfa",  # No idea why this is not just 'Alpha' ..
        "B": "Bravo",
        "C": "Charlie",
        "D": "Delta",
        "E": "Echo",
        "F": "Foxtrot",
        "G": "Golf",
        "H": "Hotel",
        "I": "India",
        "J": "Juliett",
        "K": "Kilo",
        "L": "Lima",
        "M": "Mike",
        "N": "November",
        "O": "Oscar",
        "P": "Papa",
        "Q": "Quebec",
        "R": "Romeo",
        "S": "Sierra",
        "T": "Tango",
        "U": "Uniform",
        "V": "Victor",
        "W": "Whiskey",
        "X": "X-ray",
        "Y": "Yankee",
        "Z": "Zulu",
        "0": "Nadazero",
        "1": "Unaone",
        "2": "Bissotwo",
        "3": "Terrathree",
        "4": "Kartefour",
        "5": "Pantafive",
        "6": "Soxisix",
        "7": "Setteseven",
        "8": "Oktoeight",
        "9": "Novenine",
        ",": "Comma",
        "/": "Forward slash",
        ".": "Stop/Decimal",
    },
    "german": {
        "A": "Aachen",
        "Ä": "Umlaut Aachen",
        "B": "Berlin",
        "C": "Chemnitz",
        "D": "Düsseldorf",
        "E": "Essen",
        "F": "Frankfurt",
        "G": "Goslar",
        "H": "Hamburg",
        "I": "Ingelheim",
        "J": "Jena",
        "K": "Köln",
        "L": "Leipzig",
        "M": "München",
        "N": "Nürnberg",
        "O": "Offenbach",
        "Ö": "Umlaut Offenbach",
        "P": "Potsdam",
        "Q": "Quickborn",
        "R": "Rostock",
        "S": "Salzwedel",
        "ẞ": "Eszett",
        "T": "Tübingen",
        "U": "Unna",
        "Ü": "Umlaut Unna",
        "V": "Völklingen",
        "W": "Wuppertal",
        "X": "Xanten",
        "Y": "Ypsilon",
        "Z": "Zwickau",
    },
}


def str_to_telephony(phrase, language):
    language_alphabet = alphabet[language]

    return [
        language_alphabet[c] if c in language_alphabet else c for c in phrase.upper()
    ]


language = sys.argv[1]
if language not in ["nato", "german"]:
    print(
        f"Langugae '{language}' is not a valid language, only 'nato' and 'german' are!",
        file=sys.stderr,
    )
    exit(1)

print(
    "\n".join(
        str_to_telephony(
            " ".join(sys.argv[2:]),
            language,
        )
    )
)