Changeset 276:b7b25febba1a


Ignore:
Timestamp:
07/07/12 08:41:37 (12 years ago)
Author:
István Váradi <ivaradi@…>
Branch:
default
Phase:
public
Message:

Using gettext to translate strings

Files:
3 added
5 edited

Legend:

Unmodified
Added
Removed
  • .hgignore

    r26 r276  
    55build/.+
    66mlx-common.nsh
     7locale/.+/LC_MESSAGES
  • src/mlx/gui/common.py

    r264 r276  
    7171        """Convert the given text, returned by a Gtk widget, to Unicode."""
    7272        return unicode(text)
     73
     74    def text2str(text):
     75        """Convert the given text, returned by xstr to a string."""
     76        return str(text)
    7377else:
    7478    print "Using PyGObject"
     
    133137        return _utf8Decoder(str)[0]
    134138
     139    def text2str(text):
     140        """Convert the given text, returned by xstr to a string."""
     141        return _utf8Decoder(text)[0]
     142
    135143import cairo
    136144
  • src/mlx/gui/gui.py

    r264 r276  
    3737class GUI(fs.ConnectionListener):
    3838    """The main GUI class."""
    39     _authors = [ ("Váradi", "István", "prog_test"),
    40                  ("Galyassy", "Tamás", "negotiation"),
    41                  ("Petrovszki", "Gábor", "test"),
    42                  ("Zsebényi-Loksa", "Gergely", "test"),
    43                  ("Kurják", "Ákos", "test"),
    44                  ("Nagy", "Dániel", "test"),
    45                  ("Radó", "Iván", "test") ]
     39    _authors = [ (u"Váradi", u"István", "prog_test"),
     40                 (u"Galyassy", u"Tamás", "negotiation"),
     41                 (u"Petrovszki", u"Gábor", "test"),
     42                 (u"Zsebényi-Loksa", u"Gergely", "test"),
     43                 (u"Kurják", u"Ákos", "test"),
     44                 (u"Nagy", u"Dániel", "test"),
     45                 (u"Radó", u"Iván", "test") ]
    4646
    4747    def __init__(self, programDirectory, config):
     
    13281328        If it does not exist yet, it will be created."""
    13291329        if self._aboutDialog is None:
    1330             self._aboutDialog = dialog = gtk.AboutDialog()
     1330            dialog = gtk.AboutDialog()
    13311331            dialog.set_transient_for(self._mainWindow)
    13321332            dialog.set_modal(True)
     
    13451345            authors = []
    13461346            for (familyName, firstName, role) in GUI._authors:
    1347                 authors.append("%s %s (%s)" % \
    1348                                (familyName if isHungarian else firstName,
    1349                                 firstName if isHungarian else familyName,
    1350                                 xstr("about_role_" + role)))           
     1347                author = "%s %s" % \
     1348                         (familyName if isHungarian else firstName,
     1349                          firstName if isHungarian else familyName)
     1350                role = xstr("about_role_" + role)
     1351                authors.append(author + " (" + role + ")")
    13511352            dialog.set_authors(authors)
    13521353
     
    13551356            if not pygobject:
    13561357                gtk.about_dialog_set_url_hook(self._showAboutURL, None)
     1358
     1359            self._aboutDialog = dialog
    13571360
    13581361        return self._aboutDialog
  • src/mlx/i18n.py

    r272 r276  
    44#------------------------------------------------------------------------------
    55
    6 import locale
     6import gettext
     7import os
     8import traceback
    79
    810#------------------------------------------------------------------------------
    911
    10 _strings = None
    11 _fallback = None
     12_translation = None
     13_language = None
    1214
    1315#------------------------------------------------------------------------------
    1416
    15 def setLanguage(language):
     17def setLanguage(programDirectory, language):
    1618    """Setup the internationalization support for the given language."""
    1719    print "i18n.setLanguage", language
    18     _Strings.set(language)
     20    translation = _getTranslation(programDirectory, language)
     21    fallback = _getFallbackFor(programDirectory, language)
     22    if translation is None:
     23        translation = fallback
     24    elif fallback is not None:
     25        translation.add_fallback(fallback)
     26    assert translation is not None
     27
     28    global _translation, _language
     29    _translation = translation
     30    _language = language
    1931   
    2032#------------------------------------------------------------------------------
     
    2234def getLanguage():
    2335    """Get the two-letter language code."""
    24     language = _Strings.current().getLanguage()
    25     underscoreIndex = language.find("_")
    26     return language[:underscoreIndex] if underscoreIndex>0 else language
     36    underscoreIndex = _language.find("_")
     37    return _language[:underscoreIndex] if underscoreIndex>0 else _language
    2738
    2839#------------------------------------------------------------------------------
     
    3344    If not found, the fallback language is searched. If that is not found
    3445    either, the key itself is returned within curly braces."""
    35     s = _Strings.current()[key]
    36     if s is None:
    37         s = _Strings.fallback()[key]
    38     return "{" + key + "}" if s is None else s
     46    return _translation.ugettext(key)
    3947   
    4048#------------------------------------------------------------------------------
    4149
    42 class _Strings(object):
    43     """A collection of strings belonging to a certain language."""
    44     # The registry of the string collections. This is a mapping from
    45     # language codes to the actual collection objects
    46     _instances = {}
     50def _getFallbackFor(programDirectory, language):
     51    """Get the fallback for the given language.
    4752
    48     # The fallback instance
    49     _fallback = None
    50 
    51     # The currently used instance.
    52     _current = None
    53 
    54     @staticmethod
    55     def _find(language):
    56         """Find an instance for the given language.
    57 
    58         First the language is searched for as is. If not found, it is truncated
    59         from the end until the last underscore and that is searched for. And so
    60         on, until no underscore remains.
    61 
    62         If nothing is found this way, the fallback will be returned."""
    63         while language:
    64             if language in _Strings._instances:
    65                 return _Strings._instances[language]
    66             underscoreIndex = language.rfind("_")
    67             language = language[:underscoreIndex] if underscoreIndex>0 else ""
    68         return _Strings._fallback
    69 
    70     @staticmethod
    71     def set(language):
    72         """Set the string for the given language.
    73 
    74         A String instance is searched for the given language (see
    75         _Strings._find()). Otherwise the fallback language is used."""
    76         strings = _Strings._find(language)
    77         assert strings is not None
    78         if _Strings._current is not None and \
    79            _Strings._current is not _Strings._fallback:
    80             _Strings._current.finalize()
    81         if strings is not _Strings._fallback:
    82             strings.initialize()
    83         _Strings._current = strings
    84 
    85     @staticmethod
    86     def fallback():
    87         """Get the fallback."""
    88         return _Strings._fallback
    89 
    90     @staticmethod
    91     def current():
    92         """Get the current."""
    93         return _Strings._current
    94 
    95     def __init__(self, languages, fallback = False):
    96         """Construct an empty strings object."""
    97         self._strings = {}
    98         self._language = languages[0]
    99         for language in languages:
    100             _Strings._instances[language] = self
    101         if fallback:
    102             _Strings._fallback = self
    103             self.initialize()
    104 
    105     def initialize(self):
    106         """Initialize the strings.
    107 
    108         This should be overridden in children to setup the strings."""
    109         pass
    110 
    111     def finalize(self):
    112         """Finalize the object.
    113 
    114         This releases the string dictionary to free space."""
    115         self._strings = {}
    116 
    117     def getLanguage(self):
    118         """Get the language."""
    119         return self._language
    120 
    121     def add(self, id, s):
    122         """Add the given text as the string with the given ID.
    123 
    124         If the ID is already in the object, that is an assertion failure!"""
    125         assert id not in self._strings
    126         self._strings[id] = s
    127 
    128     def __iter__(self):
    129         """Return an iterator over the keys in the string set."""
    130         return iter(self._strings)
    131 
    132     def __getitem__(self, key):
    133         """Get the string  with the given key."""
    134         return self._strings[key] if key in self._strings else None
     53    If the language is English, None is returned, otherwise the English
     54    language translation."""
     55    if language in ["en", "en_GB"]:
     56        return None
     57    else:
     58        return _getTranslation(programDirectory, "en")
    13559
    13660#------------------------------------------------------------------------------
    13761
    138 class _English(_Strings):
    139     """The strings for the English language."""
    140     def __init__(self):
    141         """Construct the object."""
    142         super(_English, self).__init__(["en_GB", "en"], fallback = True)
    143 
    144     def initialize(self):
    145         """Initialize the strings."""
    146         self.add("aircraft_b736",  "Boeing 737-600")
    147         self.add("aircraft_b737",  "Boeing 737-700")
    148         self.add("aircraft_b738",  "Boeing 737-800")
    149         self.add("aircraft_b738c", "Boeing 737-800 (charter)")
    150         self.add("aircraft_b733",  "Boeing 737-300")
    151         self.add("aircraft_b734",  "Boeing 737-400")
    152         self.add("aircraft_b735",  "Boeing 737-500")
    153         self.add("aircraft_dh8d",  "Bombardier Dash 8 Q400")
    154         self.add("aircraft_b762",  "Boeing 767-200")
    155         self.add("aircraft_b763",  "Boeing 767-300")
    156         self.add("aircraft_crj2",  "Canadair Regional Jet CRJ-200")
    157         self.add("aircraft_f70",   "Fokker F70")
    158         self.add("aircraft_dc3",   "Lisunov Li-2")
    159         self.add("aircraft_t134",  "Tupolev Tu-134")
    160         self.add("aircraft_t154",  "Tupolev Tu-154")
    161         self.add("aircraft_yk40",  "Yakovlev Yak-40")
    162 
    163         self.add("file_filter_all", "All files")
    164         self.add("file_filter_pireps", "PIREP files")
    165         self.add("file_filter_audio", "Audio files")
    166 
    167         self.add("button_ok", "_OK")
    168         self.add("button_cancel", "_Cancel")
    169         self.add("button_yes", "_Yes")
    170         self.add("button_no", "_No")
    171         self.add("button_browse", "Browse...")
    172         self.add("button_cancelFlight", "Cancel flight")
    173        
    174         self.add("menu_file", "File")
    175         self.add("menu_file_loadPIREP", "_Load PIREP...")
    176         self.add("menu_file_loadPIREP_key", "l")
    177         self.add("menu_file_quit", "_Quit")
    178         self.add("menu_file_quit_key", "q")
    179         self.add("quit_question", "Are you sure to quit the logger?")
    180 
    181         self.add("menu_tools", "Tools")
    182         self.add("menu_tools_chklst", "_Checklist Editor")
    183         self.add("menu_tools_chklst_key", "c")
    184         self.add("menu_tools_callouts", "_Approach Callouts Editor")
    185         self.add("menu_tools_callouts_key", "e")
    186         self.add("menu_tools_prefs", "_Preferences")
    187         self.add("menu_tools_prefs_key", "p")
    188 
    189         self.add("menu_view", "View")
    190         self.add("menu_view_monitor", "Show _monitor window")
    191         self.add("menu_view_monitor_key", "m")
    192         self.add("menu_view_debug", "Show _debug log")
    193         self.add("menu_view_debug_key", "d")
    194        
    195         self.add("menu_help", "Help")
    196         self.add("menu_help_manual", "_User's manual")
    197         self.add("menu_help_manual_key", "u")
    198         self.add("menu_help_about", "_About")
    199         self.add("menu_help_about_key", "a")
    200 
    201         self.add("tab_flight", "_Flight")
    202         self.add("tab_flight_tooltip", "Flight wizard")
    203         self.add("tab_flight_info", "Flight _info")
    204         self.add("tab_flight_info_tooltip", "Further information regarding the flight")
    205         self.add("tab_weight_help", "_Help")
    206         self.add("tab_weight_help_tooltip", "Help to calculate the weights")
    207         self.add("tab_log", "_Log")
    208         self.add("tab_log_tooltip",
    209                  "The log of your flight that will be sent to the MAVA website")
    210         self.add("tab_gates", "_Gates")       
    211         self.add("tab_gates_tooltip", "The status of the MAVA fleet and the gates at LHBP")       
    212         self.add("tab_debug_log", "_Debug log")
    213         self.add("tab_debug_log_tooltip", "Log with debugging information.")
    214 
    215         self.add("conn_failed", "Cannot connect to the simulator.")
    216         self.add("conn_failed_sec",
    217                  "Rectify the situation, and press <b>Try again</b> "
    218                  "to try the connection again, "
    219                  "or <b>Cancel</b> to cancel the flight.")
    220         self.add("conn_broken",
    221                  "The connection to the simulator failed unexpectedly.")
    222         self.add("conn_broken_sec",
    223                  "If the simulator has crashed, restart it "
    224                  "and restore your flight as much as possible "
    225                  "to the state it was in before the crash. "
    226                  "Then press <b>Reconnect</b> to reconnect.\n\n"
    227                  "If you want to cancel the flight, press <b>Cancel</b>.")
    228         self.add("button_tryagain", "_Try again")
    229         self.add("button_reconnect", "_Reconnect")
    230 
    231         self.add("login", "Login")
    232         self.add("loginHelp",
    233                  "Enter your MAVA pilot's ID and password to\n" \
    234                  "log in to the MAVA website and download\n" \
    235                  "your booked flights.")
    236         self.add("label_pilotID", "Pil_ot ID:")
    237         self.add("login_pilotID_tooltip",
    238                  "Enter your MAVA pilot's ID. This usually starts with a "
    239                  "'P' followed by 3 digits.")
    240         self.add("label_password", "_Password:")
    241         self.add("login_password_tooltip",
    242                  "Enter the password for your pilot's ID")
    243         self.add("remember_password", "_Remember password")
    244         self.add("login_remember_tooltip",
    245                  "If checked, your password will be stored, so that you should "
    246                  "not have to enter it every time. Note, however, that the password "
    247                  "is stored as text, and anybody who can access your files will "
    248                  "be able to read it.")
    249         self.add("login_entranceExam", "_Entrance exam")
    250         self.add("login_entranceExam_tooltip",
    251                  "Check this to log in to take your entrance exam.")
    252         self.add("button_offline", "Fl_y offline")
    253         self.add("button_offline_tooltip",
    254                  "Click this button to fly offline, without logging in "
    255                  "to the MAVA website.")
    256         self.add("button_login", "Logi_n")
    257         self.add("login_button_tooltip", "Click to log in.")
    258         self.add("login_busy", "Logging in...")
    259         self.add("login_invalid", "Invalid pilot's ID or password.")
    260         self.add("login_invalid_sec",
    261                  "Check the ID and try to reenter the password.")
    262         self.add("login_entranceExam_invalid",
    263                  "Invalid pilot's ID or not registered for exam.")
    264         self.add("login_entranceExam_invalid_sec",
    265                  "Check the ID and make sure that you are "
    266                  "allowed to take your entrance exam.")
    267         self.add("login_failconn",
    268                  "Failed to communicate with the MAVA website.")
    269         self.add("login_failconn_sec",
    270                  "Try again in a few minutes. If it does not help, "
    271                  "see the debug log for details.")
    272 
    273         self.add("reload_busy", "Reloading flights...")
    274         self.add("reload_failed",
    275                  "Your pilot ID and password failed this time.")
    276         self.add("reload_failed_sec",
    277                  "This must be some problem with the MAVA website "
    278                  "(or you are fired), using your old list of flights.")
    279         self.add("reload_failconn",
    280                  "Failed to communicate with the MAVA website.")
    281         self.add("reload_failconn_sec",
    282                  "Your previously downloaded list of flights will be used.")
    283 
    284         self.add("cancelFlight_question",
    285                  "Are you sure to cancel the flight?")
    286 
    287         self.add("button_next", "_Next")
    288         self.add("button_next_tooltip", "Click to go to the next page.")
    289         self.add("button_previous", "_Previous")
    290         self.add("button_previous_tooltip", "Click to go to the previous page.")
    291         self.add("button_cancelFlight_tooltip",
    292                  "Click to cancel the current flight. If you have "
    293                  "logged in, you will go back to the flight selection "
    294                  "page, otherwise to the login page.")
    295 
    296         self.add("flightsel_title", "Flight selection")
    297         self.add("flightsel_help", "Select the flight you want to perform.")
    298         self.add("flightsel_chelp", "You have selected the flight highlighted below.")
    299         self.add("flightsel_no", "Flight no.")
    300         self.add("flightsel_deptime", "Departure time [UTC]")
    301         self.add("flightsel_from", "From")
    302         self.add("flightsel_to", "To")
    303         self.add("flightsel_save", "_Save flight")
    304         self.add("flightsel_save_tooltip",
    305                  "Click here to save the currently selected flight into "
    306                  "a file that can be loaded later.")
    307         self.add("flightsel_save_title", "Save a flight into a file")
    308         self.add("flightsel_save_failed",
    309                  "Could not save the flight into a file.")
    310         self.add("flightsel_save_failed_sec",
    311                  "Check the debug log for more details.")
    312         self.add("flightsel_refresh", "_Refresh flights")
    313         self.add("flightsel_refresh_tooltip",
    314                  "Click here to refresh the list of flights from the MAVA website.")
    315         self.add("flightsel_load", "L_oad flight from file")
    316         self.add("flightsel_load_tooltip",
    317                  "Click here to load a flight from a file, "
    318                  "and add it to the list above.")
    319         self.add("flightsel_load_title", "Load flight from file")
    320         self.add("flightsel_filter_flights", "Flight files")
    321         self.add("flightsel_load_failed",
    322                  "Could not load the flight file")
    323         self.add("flightsel_load_failed_sec",
    324                  "Check the debug log for more details.")
    325 
    326         self.add("fleet_busy", "Retrieving fleet...")
    327         self.add("fleet_failed",
    328                  "Failed to retrieve the information on the fleet.")
    329         self.add("fleet_update_busy", "Updating plane status...")
    330         self.add("fleet_update_failed",
    331                  "Failed to update the status of the airplane.")
    332        
    333         self.add("gatesel_title", "LHBP gate selection")
    334         self.add("gatesel_help",
    335                  "The airplane's gate position is invalid.\n\n" \
    336                  "Select the gate from which you\n" \
    337                  "would like to begin the flight.")
    338         self.add("gatesel_conflict", "Gate conflict detected again.")
    339         self.add("gatesel_conflict_sec",
    340                  "Try to select a different gate.")
    341 
    342         self.add("connect_title", "Connect to the simulator")
    343         self.add("connect_help",
    344                  "Load the aircraft below into the simulator and park it\n" \
    345                  "at the given airport, at the gate below, if present.\n\n" \
    346                  "Then press the Connect button to connect to the simulator.")
    347         self.add("connect_chelp",
    348                  "The basic data of your flight can be read below.")
    349         self.add("connect_flightno", "Flight number:")
    350         self.add("connect_acft", "Aircraft:")
    351         self.add("connect_tailno", "Tail number:")
    352         self.add("connect_airport", "Airport:")
    353         self.add("connect_gate", "Gate:")
    354         self.add("button_connect", "_Connect")
    355         self.add("button_connect_tooltip", "Click to connect to the simulator.")
    356         self.add("connect_busy", "Connecting to the simulator...")
    357 
    358         self.add("payload_title", "Payload")
    359         self.add("payload_help",
    360                  "The briefing contains the weights below.\n" \
    361                  "Setup the cargo weight here and the payload weight "
    362                  "in the simulator.\n\n" \
    363                  "You can also check here what the simulator reports as ZFW.")
    364         self.add("payload_chelp",
    365                  "You can see the weights in the briefing\n" \
    366                  "and the cargo weight you have selected below.\n\n" \
    367                  "You can also query the ZFW reported by the simulator.")
    368         self.add("payload_crew", "Crew:")
    369         self.add("payload_pax", "Passengers:")
    370         self.add("payload_bag", "Baggage:")
    371         self.add("payload_cargo", "_Cargo:")
    372         self.add("payload_cargo_tooltip",
    373                  "The weight of the cargo for your flight.")
    374         self.add("payload_mail", "Mail:")
    375         self.add("payload_zfw", "Calculated ZFW:")
    376         self.add("payload_fszfw", "_ZFW from FS:")
    377         self.add("payload_fszfw_tooltip",
    378                  "Click here to refresh the ZFW value from the simulator.")
    379         self.add("payload_zfw_busy", "Querying ZFW...")
    380 
    381         self.add("time_title", "Time")
    382         self.add("time_help",
    383                  "The departure and arrival times are displayed below in UTC.\n\n" \
    384                  "You can also query the current UTC time from the simulator.\n" \
    385                  "Ensure that you have enough time to properly prepare for the flight.")
    386         self.add("time_chelp",
    387                  "The departure and arrival times are displayed below in UTC.\n\n" \
    388                  "You can also query the current UTC time from the simulator.\n")
    389         self.add("time_departure", "Departure:")
    390         self.add("time_arrival", "Arrival:")
    391         self.add("time_fs", "_Time from FS:")
    392         self.add("time_fs_tooltip",
    393                  "Click here to query the current UTC time from the simulator.")
    394         self.add("time_busy", "Querying time...")
    395 
    396         self.add("fuel_title", "Fuel")
    397         self.add("fuel_help",
    398                  "Enter the amount of fuel in kilograms that need to be "
    399                  "present in each tank below.\n\n"
    400                  "When you press <b>Next</b>, the necessary amount of fuel\n"
    401                  "will be pumped into or out of the tanks.")
    402         self.add("fuel_chelp",
    403                  "The amount of fuel tanked into your aircraft at the\n"
    404                  "beginning of the flight can be seen below.")
    405 
    406         self.add("fuel_tank_centre", "_Centre\n")
    407         self.add("fuel_tank_left", "L_eft\n")
    408         self.add("fuel_tank_right", "_Right\n")
    409         self.add("fuel_tank_left_aux", "Left\nA_ux")
    410         self.add("fuel_tank_right_aux", "Right\nAu_x")
    411         self.add("fuel_tank_left_tip", "Left\n_Tip")
    412         self.add("fuel_tank_right_tip", "Right\nTip")
    413         self.add("fuel_tank_external1", "External\n_1")
    414         self.add("fuel_tank_external2", "External\n_2")
    415         self.add("fuel_tank_centre2", "Ce_ntre\n2")
    416         self.add("fuel_get_busy", "Querying fuel information...")
    417         self.add("fuel_pump_busy", "Pumping fuel...")
    418         self.add("fuel_tank_tooltip",
    419                  "This part displays the current level of the fuel in the "
    420                  "compared to its capacity. The "
    421                  '<span color="turquoise">turquoise</span> '
    422                  "slider shows the level that should be loaded into the tank "
    423                  "for the flight. You can click anywhere in the widget to "
    424                  "move the slider there. Or you can grab it by holding down "
    425                  "the left button of your mouse, and move the pointer up or "
    426                  "down. The scroll wheel on your mouse also increments or "
    427                  "decrements the amount of fuel by 10. If you hold down "
    428                  "the <b>Shift</b> key while scrolling, the steps will be "
    429                  "100, or with the <b>Control</b> key, 1.")
    430 
    431         self.add("route_title", "Route")
    432         self.add("route_help",
    433                  "Set your cruise flight level below, and\n" \
    434                  "if necessary, edit the flight plan.")
    435         self.add("route_chelp",
    436                  "If necessary, you can modify the cruise level and\n" \
    437                  "the flight plan below during flight.\n" \
    438                  "If so, please, add a comment on why " \
    439                  "the modification became necessary.")
    440         self.add("route_level", "_Cruise level:")
    441         self.add("route_level_tooltip",
    442                  "The cruise flight level. Click on the arrows to increment "
    443                  "or decrement by 10, or enter the number on the keyboard.")
    444         self.add("route_route", "_Route")
    445         self.add("route_route_tooltip",
    446                  "The planned flight route in the standard format.")
    447         self.add("route_down_notams", "Downloading NOTAMs...")
    448         self.add("route_down_metars", "Downloading METARs...")
    449 
    450         self.add("briefing_title", "Briefing (%d/2): %s")
    451         self.add("briefing_departure", "departure")
    452         self.add("briefing_arrival", "arrival")
    453         self.add("briefing_help",
    454                  "Read carefully the NOTAMs and METAR below.\n\n" \
    455                  "You can edit the METAR if your simulator or network\n" \
    456                  "provides different weather.")
    457         self.add("briefing_chelp",
    458                  "If your simulator or network provides a different\n" \
    459                  "weather, you can edit the METAR below.")
    460         self.add("briefing_notams_init", "LHBP NOTAMs")
    461         self.add("briefing_metar_init", "LHBP METAR")
    462         self.add("briefing_button",
    463                  "I have read the briefing and am _ready to fly!")
    464         self.add("briefing_notams_template", "%s NOTAMs")
    465         self.add("briefing_metar_template", "%s _METAR")
    466         self.add("briefing_notams_failed", "Could not download NOTAMs")
    467         self.add("briefing_notams_missing",
    468                  "Could not download NOTAM for this airport")
    469         self.add("briefing_metar_failed", "Could not download METAR")
    470 
    471         self.add("takeoff_title", "Takeoff")
    472         self.add("takeoff_help",
    473                  "Enter the runway and SID used, as well as the speeds.")
    474         self.add("takeoff_chelp",
    475                  "The runway, SID and takeoff speeds logged can be seen below.")
    476         self.add("takeoff_runway", "Run_way:")
    477         self.add("takeoff_runway_tooltip",
    478                  "The runway the takeoff is performed from.")
    479         self.add("takeoff_sid", "_SID:")
    480         self.add("takeoff_sid_tooltip",
    481                  "The name of the Standard Instrument Deparature procedure followed.")
    482         self.add("label_knots", "knots")
    483         self.add("label_kmph", "km/h")
    484         self.add("takeoff_v1", "V<sub>_1</sub>:")
    485         self.add("takeoff_v1_tooltip_knots", "The takeoff decision speed in knots.")
    486         self.add("takeoff_v1_tooltip_kmph", "The takeoff decision speed in km/h.")
    487         self.add("takeoff_vr", "V<sub>_R</sub>:")
    488         self.add("takeoff_vr_tooltip_knots", "The takeoff rotation speed in knots.")
    489         self.add("takeoff_vr_tooltip_kmph", "The takeoff rotation speed in km/h.")
    490         self.add("takeoff_v2", "V<sub>_2</sub>:")
    491         self.add("takeoff_v2_tooltip_knots", "The takeoff safety speed in knots.")
    492         self.add("takeoff_v2_tooltip_kmph", "The takeoff safety speed in km/h.")
    493 
    494         self.add("landing_title", "Landing")
    495         self.add("landing_help",
    496                  "Enter the STAR and/or transition, runway,\n" \
    497                  "approach type and V<sub>Ref</sub> used.")
    498         self.add("landing_chelp",
    499                  "The STAR and/or transition, runway, approach\n" \
    500                  "type and V<sub>Ref</sub> logged can be seen below.")
    501         self.add("landing_star", "_STAR:")
    502         self.add("landing_star_tooltip",
    503                  "The name of Standard Terminal Arrival Route planned.")
    504         self.add("landing_transition", "_Transition:")
    505         self.add("landing_transition_tooltip",
    506                  "The name of transition planned.")
    507         self.add("landing_runway", "Run_way:")
    508         self.add("landing_runway_tooltip",
    509                  "The runway the landing is performed on.")
    510         self.add("landing_approach", "_Approach type:")
    511         self.add("landing_approach_tooltip",
    512                  "The type of the approach, e.g. ILS or VISUAL.")
    513         self.add("landing_vref", "V<sub>_Ref</sub>:")
    514         self.add("landing_vref_tooltip_knots",
    515                  "The landing reference speed in knots.")
    516         self.add("landing_vref_tooltip_kmph",
    517                  "The landing reference speed in km/h.")
    518 
    519         self.add("flighttype_scheduled", "scheduled")
    520         self.add("flighttype_ot", "old-timer")
    521         self.add("flighttype_vip", "VIP")
    522         self.add("flighttype_charter", "charter")
    523 
    524         self.add("finish_title", "Finish")
    525         self.add("finish_help",
    526                  "There are some statistics about your flight below.\n\n" \
    527                  "Review the data, also on earlier pages, and if you are\n" \
    528                  "satisfied, you can save or send your PIREP.")
    529         self.add("finish_rating", "Flight rating:")
    530         self.add("finish_flight_time", "Flight time:")
    531         self.add("finish_block_time", "Block time:")
    532         self.add("finish_distance", "Distance flown:")
    533         self.add("finish_fuel", "Fuel used:")
    534         self.add("finish_type", "_Type:")
    535         self.add("finish_type_tooltip", "Select the type of the flight.")
    536         self.add("finish_online", "_Online flight")
    537         self.add("finish_online_tooltip",
    538                  "Check if your flight was online, uncheck otherwise.")
    539         self.add("finish_gate", "_Arrival gate:")
    540         self.add("finish_gate_tooltip",
    541                  "Select the gate or stand at which you have arrived to LHBP.")
    542         self.add("finish_newFlight", "_New flight...")
    543         self.add("finish_newFlight_tooltip",
    544                  "Click here to start a new flight.")
    545         self.add("finish_newFlight_question",
    546                  "You have neither saved nor sent your PIREP. "
    547                  "Are you sure to start a new flight?")
    548         self.add("finish_save", "Sa_ve PIREP...")
    549         self.add("finish_save_tooltip",
    550                  "Click to save the PIREP into a file on your computer. " \
    551                  "The PIREP can be loaded and sent later.")
    552         self.add("finish_save_title", "Save PIREP into")
    553         self.add("finish_save_done", "The PIREP was saved successfully")
    554         self.add("finish_save_failed", "Failed to save the PIREP")
    555         self.add("finish_save_failed_sec", "See the debug log for the details.")
    556 
    557         # C D
    558        
    559         self.add("info_comments", "_Comments")
    560         self.add("info_defects", "Flight _defects")
    561         self.add("info_delay", "Delay codes")
    562 
    563         # O V N E Y T R A W P
    564        
    565         self.add("info_delay_loading", "L_oading problems")
    566         self.add("info_delay_vatsim", "_VATSIM problem")
    567         self.add("info_delay_net", "_Net problems")
    568         self.add("info_delay_atc", "Controll_er's fault")
    569         self.add("info_delay_system", "S_ystem crash/freeze")
    570         self.add("info_delay_nav", "Naviga_tion problem")
    571         self.add("info_delay_traffic", "T_raffic problems")
    572         self.add("info_delay_apron", "_Apron navigation problem")
    573         self.add("info_delay_weather", "_Weather problems")
    574         self.add("info_delay_personal", "_Personal reasons")
    575 
    576         self.add("statusbar_conn_tooltip",
    577                  'The state of the connection.\n'
    578                  '<span foreground="grey">Grey</span> means idle.\n'
    579                  '<span foreground="red">Red</span> means trying to connect.\n'
    580                  '<span foreground="green">Green</span> means connected.')
    581         self.add("statusbar_stage_tooltip", "The flight stage")
    582         self.add("statusbar_time_tooltip", "The simulator time in UTC")
    583         self.add("statusbar_rating_tooltip", "The flight rating")
    584         self.add("statusbar_busy_tooltip", "The status of the background tasks.")
    585 
    586         self.add("flight_stage_boarding", "boarding")
    587         self.add("flight_stage_pushback and taxi", "pushback and taxi")
    588         self.add("flight_stage_takeoff", "takeoff")
    589         self.add("flight_stage_RTO", "RTO")
    590         self.add("flight_stage_climb", "climb")
    591         self.add("flight_stage_cruise", "cruise")
    592         self.add("flight_stage_descent", "descent")
    593         self.add("flight_stage_landing", "landing")
    594         self.add("flight_stage_taxi", "taxi")
    595         self.add("flight_stage_parking", "parking")
    596         self.add("flight_stage_go-around", "go-around")
    597         self.add("flight_stage_end", "end")
    598 
    599         self.add("statusicon_showmain", "Show main window")
    600         self.add("statusicon_showmonitor", "Show monitor window")
    601         self.add("statusicon_quit", "Quit")
    602         self.add("statusicon_stage", "Stage")
    603         self.add("statusicon_rating", "Rating")
    604 
    605         self.add("update_title", "Update")
    606         self.add("update_needsudo",
    607                  "There is an update available, but the program cannot write\n"
    608                  "its directory due to insufficient privileges.\n\n"
    609                  "Click OK, if you want to run a helper program\n"
    610                  "with administrator privileges "
    611                  "to complete the update,\n"
    612                  "Cancel otherwise.")
    613         self.add("update_manifest_progress", "Downloading manifest...")
    614         self.add("update_manifest_done", "Downloaded manifest...")
    615         self.add("update_files_progress", "Downloading files...")
    616         self.add("update_files_bytes", "Downloaded %d of %d bytes")
    617         self.add("update_renaming", "Renaming downloaded files...")
    618         self.add("update_renamed", "Renamed %s")
    619         self.add("update_removing", "Removing files...")
    620         self.add("update_removed", "Removed %s")
    621         self.add("update_writing_manifest", "Writing the new manifest")
    622         self.add("update_finished",
    623                  "Finished updating. Press OK to restart the program.")
    624         self.add("update_nothing", "There was nothing to update")
    625         self.add("update_failed", "Failed, see the debug log for details.")
    626 
    627         self.add("weighthelp_usinghelp", "_Using help")
    628         self.add("weighthelp_usinghelp_tooltip",
    629                  "If you check this, some help will be displayed on how "
    630                  "to calculate the payload weight for your flight. "
    631                  "Note, that the usage of this facility will be logged.")
    632         self.add("weighthelp_header_calculated", "Requested/\ncalculated")
    633         self.add("weighthelp_header_simulator", "Simulator\ndata")
    634         self.add("weighthelp_header_simulator_tooltip",
    635                  "Click this button to retrieve the weight values from the "
    636                  "simulator, which will be displayed below. If a value is "
    637                  "within 10% of the tolerance, it is displayed in "
    638                  '<b><span foreground="darkgreen">green</span></b>, '
    639                  "if it is out of the tolerance, it is displayed in "
    640                  '<b><span foreground="red">red</span></b>, '
    641                  "otherwise in"
    642                  '<b><span foreground="orange">yellow</span></b>.')
    643         self.add("weighthelp_crew", "Crew (%s):")
    644         self.add("weighthelp_pax", "Passengers (%s):")
    645         self.add("weighthelp_baggage", "Baggage:")
    646         self.add("weighthelp_cargo", "Cargo:")
    647         self.add("weighthelp_mail", "Mail:")
    648         self.add("weighthelp_payload", "Payload:")
    649         self.add("weighthelp_dow", "DOW:")
    650         self.add("weighthelp_zfw", "ZFW:")
    651         self.add("weighthelp_gross", "Gross weight:")
    652         self.add("weighthelp_mzfw", "MZFW:")
    653         self.add("weighthelp_mtow", "MTOW:")
    654         self.add("weighthelp_mlw", "MLW:")
    655         self.add("weighthelp_busy", "Querying weight data...")
    656 
    657         self.add("gates_fleet_title", "Fl_eet")
    658         self.add("gates_gates_title", "LHBP gates")
    659         self.add("gates_tailno", "Tail nr.")
    660         self.add("gates_planestatus", "Status")
    661         self.add("gates_refresh", "_Refresh data")
    662         self.add("gates_refresh_tooltip",
    663                  "Click this button to refresh the status data above")
    664         self.add("gates_planes_tooltip",
    665                  "This table lists all the planes in the MAVA fleet and their "
    666                  "last known location. If a plane is conflicting with another "
    667                  "because of occupying the same gate its data is displayed in "
    668                  "<b><span foreground=\"red\">red</span></b>.")
    669         self.add("gates_gates_tooltip",
    670                  "The numbers of the gates occupied by MAVA planes are "
    671                  "displayed in "
    672                  '<b><span foreground="orange">yellow</span></b>, '
    673                  "while available gates in black.")
    674         self.add("gates_plane_away", "AWAY")
    675         self.add("gates_plane_parking", "PARKING")
    676         self.add("gates_plane_unknown", "UNKNOWN")
    677 
    678         self.add("prefs_title", "Preferences")
    679         self.add("prefs_tab_general", "_General")
    680         self.add("prefs_tab_general_tooltip", "General preferences")
    681         self.add("prefs_tab_messages", "_Messages")
    682         self.add("prefs_tab_message_tooltip",
    683                  "Enable/disable message notifications in FS and/or by sound")
    684         self.add("prefs_tab_sounds", "_Sounds")
    685         self.add("prefs_tab_sounds_tooltip",
    686                  "Preferences regarding what sounds should be played during the various flight stages")
    687         self.add("prefs_tab_advanced", "_Advanced")
    688         self.add("prefs_tab_advanced_tooltip",
    689                  "Advanced preferences, edit with care!")
    690         self.add("prefs_language", "_Language:")
    691         self.add("prefs_language_tooltip",
    692                  "The language of the program")
    693         self.add("prefs_restart",
    694                  "Restart needed")
    695         self.add("prefs_language_restart_sec",
    696                  "If you change the language, the program should be restarted "
    697                  "so that the change has an effect.")
    698         self.add("prefs_lang_$system", "system default")
    699         self.add("prefs_lang_en_GB", "English")
    700         self.add("prefs_lang_hu_HU", "Hungarian")
    701         self.add("prefs_hideMinimizedWindow",
    702                  "_Hide the main window when minimized")
    703         self.add("prefs_hideMinimizedWindow_tooltip",
    704                  "If checked, the main window will be hidden completely "
    705                  "when minimized. You can still make it appear by "
    706                  "clicking on the status icon or using its popup menu.")
    707         self.add("prefs_quitOnClose",
    708                  "_Quit when the window close button is clicked")
    709         self.add("prefs_quitOnClose_tooltip",
    710                  "If checked, the application will quit when the window close "
    711                  "button is clicked. Before quitting, the confirmation "
    712                  "will be asked. If not checked, the window will be hidden "
    713                  "to the tray.")
    714         self.add("prefs_onlineGateSystem",
    715                  "_Use the Online Gate System")
    716         self.add("prefs_onlineGateSystem_tooltip",
    717                  "If this is checked, the logger will query and update the "
    718                  "LHBP Online Gate System.")
    719         self.add("prefs_onlineACARS",
    720                  "Use the Online ACA_RS System")
    721         self.add("prefs_onlineACARS_tooltip",
    722                  "If this is checked, the logger will continuously update "
    723                  "the MAVA Online ACARS System with your flight's data.")
    724         self.add("prefs_flaretimeFromFS",
    725                  "Take flare _time from the simulator")
    726         self.add("prefs_flaretimeFromFS_tooltip",
    727                  "If this is checked, the time of the flare will be calculated "
    728                  "from timestamps returned by the simulator.")
    729         self.add("prefs_syncFSTime",
    730                  "S_ynchronize the time in FS with the computer's clock")
    731         self.add("prefs_syncFSTime_tooltip",
    732                  "If this is checked, the flight simulator's internal clock "
    733                  "will always be synchronized to the computer's clock.")
    734         self.add("prefs_usingFS2Crew",
    735                  "Using FS_2Crew")
    736         self.add("prefs_usingFS2Crew_tooltip",
    737                  "If this is checked, the logger will take into account, "
    738                  "that you are using the FS2Crew addon.")
    739         self.add("prefs_iasSmoothingEnabled",
    740                  "Enable the smoothing of _IAS over ")
    741         self.add("prefs_iasSmoothingEnabledTooltip",
    742                  "If enabled, the IAS value will be averaged over the "
    743                  "given number of seconds, and in some checks "
    744                  "this averaged value will be considered.")
    745         self.add("prefs_vsSmoothingEnabled",
    746                  "Enable the smoothing of _VS over ")
    747         self.add("prefs_vsSmoothingEnabledTooltip",
    748                  "If enabled, the VS value will be averaged over the "
    749                  "given number of seconds, and in some checks "
    750                  "this averaged value will be considered.")
    751         self.add("prefs_smoothing_seconds", "sec.")
    752         self.add("prefs_pirepDirectory",
    753                  "_PIREP directory:")
    754         self.add("prefs_pirepDirectory_tooltip",
    755                  "The directory that will be offered by default when "
    756                  "saving a PIREP.")
    757         self.add("prefs_pirepDirectory_browser_title",
    758                  "Select PIREP directory")
    759         self.add("prefs_frame_gui", "GUI")
    760         self.add("prefs_frame_online", "MAVA Online Systems")
    761         self.add("prefs_frame_simulator", "Simulator")
    762 
    763         self.add("chklst_title", "Checklist Editor")
    764         self.add("chklst_aircraftType", "Aircraft _type:")
    765         self.add("chklst_aircraftType_tooltip",
    766                  "The type of the aircraft for which the checklist "
    767                  "is being edited.")
    768         self.add("chklst_add", "_Add to checklist")
    769         self.add("chklst_add_tooltip",
    770                  "Append the files selected on the left to the "
    771                  "checklist on the right.")
    772         self.add("chklst_remove", "_Remove")
    773         self.add("chklst_remove_tooltip",
    774                  "Remove the selected items from the checklist.")
    775         self.add("chklst_moveUp", "Move _up")
    776         self.add("chklst_moveUp_tooltip",
    777                  "Move up the selected file(s) in the checklist.")
    778         self.add("chklst_moveDown", "Move _down")
    779         self.add("chklst_moveDown_tooltip",
    780                  "Move down the selected file(s) in the checklist.")
    781         self.add("chklst_header", "Checklist files")
    782 
    783         self.add("prefs_sounds_frame_bg", "Background")
    784         self.add("prefs_sounds_enable",
    785                  "_Enable background sounds")
    786         self.add("prefs_sounds_enable_tooltip",
    787                  "If the background sounds are enabled, the logger "
    788                  "can play different pre-recorded sounds during the "
    789                  "various stages of the flight.")
    790         self.add("prefs_sounds_pilotControls",
    791                  "_Pilot controls the sounds")
    792         self.add("prefs_sounds_pilotControls_tooltip",
    793                  "If checked, the background sounds can be started by the "
    794                  "pilot by pressing the hotkey specified below. Otherwise "
    795                  "the sounds will start automatically when certain "
    796                  "conditions hold.")
    797         self.add("prefs_sounds_pilotHotkey",
    798                  "_Hotkey:")
    799         self.add("prefs_sounds_pilotHotkey_tooltip",
    800                  "The key to press possibly together with modifiers to play "
    801                  "the sound relevant to the current flight status.")
    802         self.add("prefs_sounds_pilotHotkeyCtrl_tooltip",
    803                  "If checked, the Ctrl key should be pressed together with the "
    804                  "main key.")
    805         self.add("prefs_sounds_pilotHotkeyShift_tooltip",
    806                  "If checked, the Shift key should be pressed together with the "
    807                  "main key.")
    808         self.add("prefs_sounds_approachCallouts",
    809                  "Enable app_roach callouts")
    810         self.add("prefs_sounds_approachCallouts_tooltip",
    811                  "If checked, the approach callouts will be played at "
    812                  "certain altitudes.")
    813         self.add("prefs_sounds_speedbrakeAtTD",
    814                  "Enable speed_brake sound at touchdown")
    815         self.add("prefs_sounds_speedbrakeAtTD_tooltip",
    816                  "If checked, a speedbrake sound will be played after "
    817                  "touchdown, when the speedbrakes deploy.")
    818         self.add("prefs_sounds_frame_checklists", "Checklists")
    819         self.add("prefs_sounds_enableChecklists",
    820                  "E_nable aircraft-specific checklists")
    821         self.add("prefs_sounds_enableChecklists_tooltip",
    822                  "If checked, the program will play back pre-recorded "
    823                  "aircraft-specific checklists at the pilot's discretion.")
    824         self.add("prefs_sounds_checklistHotkey",
    825                  "Checklist hot_key:")
    826         self.add("prefs_sounds_checklistHotkey_tooltip",
    827                  "The key to press possibly together with modifiers to play the next "
    828                  "checklist item.")
    829         self.add("prefs_sounds_checklistHotkeyCtrl_tooltip",
    830                  "If checked, the Ctrl key should be pressed together with the "
    831                  "main key.")
    832         self.add("prefs_sounds_checklistHotkeyShift_tooltip",
    833                  "If checked, the Shift key should be pressed together with the "
    834                  "main key.")
    835        
    836         self.add("prefs_update_auto", "Update the program auto_matically")
    837         self.add("prefs_update_auto_tooltip",
    838                  "If checked the program will look for updates when "
    839                  "it is starting, and if new updates are found, they "
    840                  "will be downloaded and installed. This ensures that "
    841                  "the PIREP you send will always conform to the latest "
    842                  "expectations of the airline.")
    843         self.add("prefs_update_auto_warning",
    844                  "Disabling automatic updates may result in "
    845                  "your version of the program becoming out of date "
    846                  "and your PIREPs not being accepted.")
    847         self.add("prefs_update_url", "Update _URL:")
    848         self.add("prefs_update_url_tooltip",
    849                  "The URL from which to download the updates. Change this "
    850                  "only if you know what you are doing!")
    851 
    852         # A C G M O S
    853        
    854         self.add("prefs_msgs_fs", "Displayed in FS")
    855         self.add("prefs_msgs_sound", "Sound alert")
    856         self.add("prefs_msgs_type_loggerError", "Logger _Error Messages")
    857         self.add("prefs_msgs_type_information",
    858                  "_Information Messages\n(e.g. flight stage)")
    859         self.add("prefs_msgs_type_fault",
    860                  "_Fault Messages\n(e.g. strobe light fault)")
    861         self.add("prefs_msgs_type_nogo",
    862                  "_NO GO Fault messages\n(e.g. MTOW NO GO)")
    863         self.add("prefs_msgs_type_gateSystem",
    864                  "Ga_te System Messages\n(e.g. available gates)")
    865         self.add("prefs_msgs_type_environment",
    866                  "Envi_ronment Messages\n(e.g. \"welcome to XY aiport\")")
    867         self.add("prefs_msgs_type_help",
    868                  "_Help Messages\n(e.g. \"don't forget to set VREF\")")
    869         self.add("prefs_msgs_type_visibility",
    870                  "_Visibility Messages")
    871 
    872         self.add("loadPIREP_browser_title", "Select the PIREP to load")
    873         self.add("loadPIREP_failed", "Failed to load the PIREP")
    874         self.add("loadPIREP_failed_sec", "See the debug log for the details.")
    875         self.add("loadPIREP_send_title", "PIREP")
    876         self.add("loadPIREP_send_help",
    877                  "The main data of the PIREP loaded:")
    878         self.add("loadPIREP_send_flightno", "Flight number:")
    879         self.add("loadPIREP_send_date", "Date:")
    880         self.add("loadPIREP_send_from", "From:")
    881         self.add("loadPIREP_send_to", "To:")
    882         self.add("loadPIREP_send_rating", "Rating:")
    883        
    884         self.add("sendPIREP", "_Send PIREP...")
    885         self.add("sendPIREP_tooltip",
    886                  "Click to send the PIREP to the MAVA website for further review.")
    887         self.add("sendPIREP_busy", "Sending PIREP...")
    888         self.add("sendPIREP_success",
    889                  "The PIREP was sent successfully.")
    890         self.add("sendPIREP_success_sec",
    891                  "Await the thorough scrutiny by our fearless PIREP reviewers! :)")
    892         self.add("sendPIREP_already",
    893                  "The PIREP for this flight has already been sent!")
    894         self.add("sendPIREP_already_sec",
    895                  "You may clear the old PIREP on the MAVA website.")
    896         self.add("sendPIREP_notavail",
    897                  "This flight is not available anymore!")
    898         self.add("sendPIREP_unknown",
    899                  "The MAVA website returned with an unknown error.")
    900         self.add("sendPIREP_unknown_sec",
    901                  "See the debug log for more information.")
    902         self.add("sendPIREP_failed",
    903                  "Could not send the PIREP to the MAVA website.")
    904         self.add("sendPIREP_failed_sec",
    905                  "This can be a network problem, in which case\n" \
    906                  "you may try again later. Or it can be a bug;\n" \
    907                  "see the debug log for more information.")
    908 
    909         self.add("viewPIREP", "_View PIREP...")
    910 
    911         self.add("pirepView_title", "PIREP viewer")
    912 
    913         self.add("pirepView_tab_data", "_Data")
    914         self.add("pirepView_tab_data_tooltip",
    915                  "The main data of the flight.")
    916 
    917         self.add("pirepView_frame_flight", "Flight")
    918         self.add("pirepView_callsign", "Callsign:")
    919         self.add("pirepView_tailNumber", "Tail no.:")
    920         self.add("pirepView_aircraftType", "Aircraft:")
    921         self.add("pirepView_departure", "Departure airport:")
    922         self.add("pirepView_departure_time", "time:")
    923         self.add("pirepView_arrival", "Arrival airport:")
    924         self.add("pirepView_arrival_time", "time:")
    925         self.add("pirepView_numPassengers", "PAX:")
    926         self.add("pirepView_numCrew", "Crew:")
    927         self.add("pirepView_bagWeight", "Baggage:")
    928         self.add("pirepView_cargoWeight", "Cargo:")
    929         self.add("pirepView_mailWeight", "Mail:")
    930         self.add("pirepView_route", "MAVA route:")
    931 
    932         self.add("pirepView_frame_route", "Route filed")
    933         self.add("pirepView_filedCruiseLevel", "Cruise level:")
    934         self.add("pirepView_modifiedCruiseLevel", "modified to:")
    935 
    936         self.add("pirepView_frame_departure", "Departure")
    937         self.add("pirepView_runway", "Runway:")
    938         self.add("pirepView_sid", "SID:")
    939 
    940         self.add("pirepView_frame_arrival", "Arrival")
    941         self.add("pirepView_star", "STAR:")
    942         self.add("pirepView_transition", "Transition:")
    943         self.add("pirepView_approachType", "Approach:")
    944 
    945         self.add("pirepView_frame_statistics", "Statistics")
    946         self.add("pirepView_blockTimeStart", "Block time start:")
    947         self.add("pirepView_blockTimeEnd", "end:")
    948         self.add("pirepView_flightTimeStart", "Flight time start:")
    949         self.add("pirepView_flightTimeEnd", "end:")
    950         self.add("pirepView_flownDistance", "Flown distance:")
    951         self.add("pirepView_fuelUsed", "Fuel used:")
    952         self.add("pirepView_rating", "Rating:")
    953 
    954         self.add("pirepView_frame_miscellaneous", "Miscellaneous")
    955         self.add("pirepView_flightType", "Type:")
    956         self.add("pirepView_online", "Online:")
    957         self.add("pirepView_yes", "yes")
    958         self.add("pirepView_no", "no")
    959         self.add("pirepView_delayCodes", "Delay codes:")
    960 
    961         self.add("pirepView_tab_comments", "_Comments & defects")
    962         self.add("pirepView_tab_comments_tooltip",
    963                  "The comments and the flight defects.")
    964 
    965         self.add("pirepView_comments", "Comments")
    966         self.add("pirepView_flightDefects", "Flight defects")
    967 
    968         self.add("pirepView_tab_log", "_Log")
    969         self.add("pirepView_tab_log_tooltip", "The flight log.")
    970 
    971         self.add("about_website", "Project Homepage")
    972 
    973         self.add("about_license",
    974                  "This program is in the public domain.")
    975 
    976         self.add("about_role_prog_test", "programming, testing")
    977         self.add("about_role_negotiation", "negotiation")
    978         self.add("about_role_test", "testing")
    979 
    980         self.add("callouts_title", "Approach Callouts Editor")
    981         self.add("callouts_aircraftType", "Aircraft _type:")
    982         self.add("callouts_aircraftType_tooltip",
    983                  "The type of the aircraft for which the approach "
    984                  "callouts are being edited.")
    985         self.add("callouts_header_altitude", "Altitude")
    986         self.add("callouts_header_path", "Callout file")
    987         self.add("callouts_add", "_Add new callout")
    988         self.add("callouts_add_tooltip",
    989                  "Add a new callout with some default altitude.")
    990         self.add("callouts_remove", "_Remove")
    991         self.add("callouts_remove_tooltip",
    992                  "Remove the selected items from the list of callouts.")
    993         self.add("callouts_altitude_clash",
    994                  "There is already a callout for this altitude")
    995         self.add("callouts_altitude_clash_sec",
    996                  "Shall I set the altitude nevertheless? If so, "
    997                  "the other callout with the same altitude will be "
    998                  "removed.")
     62def _getTranslation(programDirectory, language):
     63    """Get the translation for the given language."""
     64    try:
     65        return gettext.translation("mlx",
     66                                   localedir = os.path.join(programDirectory,
     67                                                            "locale"),
     68                                   languages = [language])
     69    except:
     70        traceback.print_exc()
     71        return None
    99972
    100073#------------------------------------------------------------------------------
    1001 
    1002 class _Hungarian(_Strings):
    1003     """The strings for the Hungarian language."""
    1004     def __init__(self):
    1005         """Construct the object."""
    1006         super(_Hungarian, self).__init__(["hu_HU", "hu"])
    1007 
    1008     def initialize(self):
    1009         """Initialize the strings."""
    1010         self.add("aircraft_b736",  "Boeing 737-600")
    1011         self.add("aircraft_b737",  "Boeing 737-700")
    1012         self.add("aircraft_b738",  "Boeing 737-800")
    1013         self.add("aircraft_b738c", "Boeing 737-800 (charter)")
    1014         self.add("aircraft_b733",  "Boeing 737-300")
    1015         self.add("aircraft_b734",  "Boeing 737-400")
    1016         self.add("aircraft_b735",  "Boeing 737-500")
    1017         self.add("aircraft_dh8d",  "Bombardier Dash 8 Q400")
    1018         self.add("aircraft_b762",  "Boeing 767-200")
    1019         self.add("aircraft_b763",  "Boeing 767-300")
    1020         self.add("aircraft_crj2",  "Canadair Regional Jet CRJ-200")
    1021         self.add("aircraft_f70",   "Fokker F70")
    1022         self.add("aircraft_dc3",   "Liszunov Li-2")
    1023         self.add("aircraft_t134",  "Tupoljev Tu-134")
    1024         self.add("aircraft_t154",  "Tupoljev Tu-154")
    1025         self.add("aircraft_yk40",  "Jakovlev Jak-40")
    1026 
    1027         self.add("file_filter_all", "Összes fájl")
    1028         self.add("file_filter_pireps", "PIREP fájlok")
    1029         self.add("file_filter_audio", "Audio fájlok")
    1030 
    1031         self.add("button_ok", "_OK")
    1032         self.add("button_cancel", "_Mégse")
    1033         self.add("button_yes", "_Igen")
    1034         self.add("button_no", "_Nem")
    1035         self.add("button_browse", "Keresés...")
    1036         self.add("button_cancelFlight", "Járat megszakítása")
    1037        
    1038         self.add("menu_file", "Fájl")
    1039         self.add("menu_file_loadPIREP", "PIREP be_töltése...")
    1040         self.add("menu_file_loadPIREP_key", "t")
    1041         self.add("menu_file_quit", "_Kilépés")
    1042         self.add("menu_file_quit_key", "k")
    1043         self.add("quit_question", "Biztosan ki akarsz lépni?")
    1044 
    1045         self.add("menu_tools", "Eszközök")
    1046         self.add("menu_tools_chklst", "_Ellenőrzőlista szerkesztő")
    1047         self.add("menu_tools_chklst_key", "e")
    1048         self.add("menu_tools_callouts", "_Megközelítési bemondások szerkesztése")
    1049         self.add("menu_tools_callouts_key", "m")
    1050         self.add("menu_tools_prefs", "_Beállítások")
    1051         self.add("menu_tools_prefs_key", "b")
    1052 
    1053         self.add("menu_view", "Nézet")
    1054         self.add("menu_view_monitor", "Mutasd a _monitor ablakot")
    1055         self.add("menu_view_monitor_key", "m")
    1056         self.add("menu_view_debug", "Mutasd a _debug naplót")
    1057         self.add("menu_view_debug_key", "d")
    1058        
    1059         self.add("menu_help", "Súgó")
    1060         self.add("menu_help_manual", "_Felhasználói kézikönyv")
    1061         self.add("menu_help_manual_key", "f")
    1062         self.add("menu_help_about", "_Névjegy")
    1063         self.add("menu_help_about_key", "n")
    1064 
    1065         self.add("tab_flight", "_Járat")
    1066         self.add("tab_flight_tooltip", "Járat varázsló")
    1067         self.add("tab_flight_info", "Járat _info")
    1068         self.add("tab_flight_info_tooltip", "Egyéb információk a járat teljesítésével kapcsolatban")
    1069         self.add("tab_weight_help", "_Segítség")
    1070         self.add("tab_weight_help_tooltip", "Segítség a súlyszámításhoz")
    1071         self.add("tab_log", "_Napló")
    1072         self.add("tab_log_tooltip",
    1073                  "A járat naplója, amit majd el lehet küldeni a MAVA szerverére")
    1074         self.add("tab_gates", "_Kapuk")       
    1075         self.add("tab_gates_tooltip", "A MAVA flotta és LHBP kapuinak állapota")       
    1076         self.add("tab_debug_log", "_Debug napló")
    1077         self.add("tab_debug_log_tooltip",
    1078                  "Hibakereséshez használható információkat tartalmazó napló.")
    1079 
    1080         self.add("conn_failed", "Nem tudtam kapcsolódni a szimulátorhoz.")
    1081         self.add("conn_failed_sec",
    1082                  "Korrigáld a problémát, majd nyomd meg az "
    1083                  "<b>Próbáld újra</b> gombot a újrakapcsolódáshoz, "
    1084                  "vagy a <b>Mégse</b> gombot a járat megszakításához.")
    1085         self.add("conn_broken",
    1086                  "A szimulátorral való kapcsolat váratlanul megszakadt.")
    1087         self.add("conn_broken_sec",
    1088                  "Ha a szimulátor elszállt, indítsd újra "
    1089                  "és állítsd vissza a repülésed elszállás előtti "
    1090                  "állapotát amennyire csak lehet. "
    1091                  "Ezután nyomd meg az <b>Újrakapcsolódás</b> gombot "
    1092                  "a kapcsolat ismételt felvételéhez.\n\n"
    1093                  "Ha meg akarod szakítani a repülést, nyomd meg a "
    1094                  "<b>Mégse</b> gombot.")
    1095         self.add("button_tryagain", "_Próbáld újra")
    1096         self.add("button_reconnect", "Újra_kapcsolódás")
    1097 
    1098         self.add("login", "Bejelentkezés")
    1099         self.add("loginHelp",
    1100                  "Írd be a MAVA pilóta azonosítódat és a\n" \
    1101                  "bejelentkezéshez használt jelszavadat,\n" \
    1102                  "hogy választhass a foglalt járataid közül.")
    1103         self.add("label_pilotID", "_Azonosító:")
    1104         self.add("login_pilotID_tooltip",
    1105                  "Írd be a MAVA pilóta azonosítódat. Ez általában egy 'P' "
    1106                  "betűvel kezdődik, melyet 3 számjegy követ.")
    1107         self.add("label_password", "Je_lszó:")
    1108         self.add("login_password_tooltip",
    1109                  "Írd be a pilóta azonosítódhoz tartozó jelszavadat.")
    1110         self.add("remember_password", "_Emlékezz a jelszóra")
    1111         self.add("login_remember_tooltip",
    1112                  "Ha ezt kiválasztod, a jelszavadat eltárolja a program, így "
    1113                  "nem kell mindig újból beírnod. Vedd azonban figyelembe, "
    1114                  "hogy a jelszót szövegként tároljuk, így bárki elolvashatja, "
    1115                  "aki hozzáfér a fájljaidhoz.")
    1116         self.add("login_entranceExam", "_Ellenőrző repülés")
    1117         self.add("login_entranceExam_tooltip",
    1118                  "Ha ezt bejelölöd, ellenörző repülésre jelentkezhetsz be.")
    1119         self.add("button_offline", "_Offline repülés")
    1120         self.add("button_offline_tooltip",
    1121                  "Kattints ide hogy offline, a MAVA szerverre való "
    1122                  "bejelentkezés nélkül repülhess.")
    1123         self.add("button_login", "_Bejelentkezés")
    1124         self.add("login_button_tooltip", "Kattints ide a bejelentkezéshez.")
    1125         self.add("login_busy", "Bejelentkezés...")
    1126         self.add("login_invalid", "Érvénytelen azonosító vagy jelszó.")
    1127         self.add("login_invalid_sec",
    1128                  "Ellenőrízd az azonosítót, és próbáld meg újra beírni a jelszót.")
    1129         self.add("login_entranceExam_invalid",
    1130                  "Érvénytelen azonosító, vagy nem regisztráltak a vizsgára.")
    1131         self.add("login_entranceExam_invalid_sec",
    1132                  "Ellenőrízd az azonosítót, és bizonyosdj meg "
    1133                  "arról, hogy végrehajthatod-e az ellenőrző repülést.")
    1134         self.add("login_failconn",
    1135                  "Nem sikerült kommunikálni a MAVA honlappal.")
    1136         self.add("login_failconn_sec",
    1137                  "Próbáld meg pár perc múlva. Ha az nem segít, "
    1138                  "részletesebb információt találsz a debug naplóban.")
    1139        
    1140         self.add("reload_busy", "Járatok újratöltése...")
    1141         self.add("reload_failed",
    1142                  "Ezúttal nem működött az azonosítód és a jelszavad.")
    1143         self.add("reload_failed_sec",
    1144                  "Ez minden bizonnyal a MAVA website hibája "
    1145                  "(hacsak nem rúgtak ki), így használom a régi járatlistát.")
    1146         self.add("reload_failconn",
    1147                  "Nem sikerült kommunikálni a MAVA honlappal.")
    1148         self.add("reload_failconn_sec",
    1149                  "A korábban letöltött járatlistát használom.")
    1150 
    1151         self.add("cancelFlight_question",
    1152                  "Biztosan meg akarod szakítani a járatot?")
    1153 
    1154         self.add("button_next", "_Előre")
    1155         self.add("button_next_tooltip",
    1156                  "Kattints ide, ha a következő lapra szeretnél lépni.")
    1157         self.add("button_previous", "_Vissza")
    1158         self.add("button_previous_tooltip",
    1159                  "Kattints ide, ha az előző lapra szeretnél lépni.")
    1160         self.add("button_cancelFlight_tooltip",
    1161                  "Kattints ide, ha meg akarod szakítani a járatot. "
    1162                  "Ha bejelentkeztél, visszakerülsz a járatválasztó "
    1163                  "lapra, egyébként a bejelentkező lapra.")
    1164 
    1165         self.add("flightsel_title", "Járatválasztás")
    1166         self.add("flightsel_help", "Válaszd ki a járatot, amelyet le szeretnél repülni.")
    1167         self.add("flightsel_chelp", "A lent kiemelt járatot választottad.")
    1168         self.add("flightsel_no", "Járatszám")
    1169         self.add("flightsel_deptime", "Indulás ideje [UTC]")
    1170         self.add("flightsel_from", "Honnan")
    1171         self.add("flightsel_to", "Hová")
    1172         self.add("flightsel_save", "Járat _mentése")
    1173         self.add("flightsel_save_tooltip",
    1174                  "Kattints ide az éppen kiválasztott járatnak "
    1175                  "fájlba mentéséhez. A fájl később visszatölthető, "
    1176                  "és így a járat offline is teljesíthető lesz.")
    1177         self.add("flightsel_save_title", "Járat mentése fájlba")
    1178         self.add("flightsel_save_failed",
    1179                  "Nem tudtam elmenteni a járatot.")
    1180         self.add("flightsel_save_failed_sec",
    1181                  "A további részleteket lásd a debug naplóban.")
    1182         self.add("flightsel_refresh", "Járatlista f_rissítése")
    1183         self.add("flightsel_refresh_tooltip",
    1184                  "Kattints ide a járatlista újbóli letöltéséhez.")
    1185         self.add("flightsel_load", "Járat betöltése _fájlból")
    1186         self.add("flightsel_load_tooltip",
    1187                  "Kattints ide, hogy fájlból betölthess egy járatot, "
    1188                  "ami bekerül a fenti listába.")
    1189         self.add("flightsel_load_title", "Járat betöltése fájlból")
    1190         self.add("flightsel_filter_flights", "Járat fájlok")
    1191         self.add("flightsel_load_failed",
    1192                  "Nem tudtam betölteni a járatfájlt.")
    1193         self.add("flightsel_load_failed_sec",
    1194                  "A további részleteket lásd a debug naplóban.")
    1195 
    1196         self.add("fleet_busy", "Flottaadatok letöltése...")
    1197         self.add("fleet_failed",
    1198                  "Nem sikerült letöltenem a flotta adatait.")
    1199         self.add("fleet_update_busy", "Repülőgép pozíció frissítése...")
    1200         self.add("fleet_update_failed",
    1201                  "Nem sikerült frissítenem a repülőgép pozícióját.")
    1202 
    1203         self.add("gatesel_title", "LHBP kapuválasztás")
    1204         self.add("gatesel_help",
    1205                  "A repülőgép kapu pozíciója érvénytelen.\n\n" \
    1206                  "Válaszd ki azt a kaput, ahonnan\n" \
    1207                  "el szeretnéd kezdeni a járatot.")
    1208         self.add("gatesel_conflict", "Ismét kapuütközés történt.")
    1209         self.add("gatesel_conflict_sec",
    1210                  "Próbálj egy másik kaput választani.")
    1211 
    1212         self.add("connect_title", "Kapcsolódás a szimulátorhoz")
    1213         self.add("connect_help",
    1214                  "Tölsd be a lent látható repülőgépet a szimulátorba\n" \
    1215                  "az alább megadott reptérre és kapuhoz.\n\n" \
    1216                  "Ezután nyomd meg a Kapcsolódás gombot a kapcsolódáshoz.")
    1217         self.add("connect_chelp",
    1218                  "A járat alapadatai lent olvashatók.")
    1219         self.add("connect_flightno", "Járatszám:")
    1220         self.add("connect_acft", "Típus:")
    1221         self.add("connect_tailno", "Lajstromjel:")
    1222         self.add("connect_airport", "Repülőtér:")
    1223         self.add("connect_gate", "Kapu:")
    1224         self.add("button_connect", "K_apcsolódás")
    1225         self.add("button_connect_tooltip",
    1226                  "Kattints ide a szimulátorhoz való kapcsolódáshoz.")
    1227         self.add("connect_busy", "Kapcsolódás a szimulátorhoz...")
    1228 
    1229         self.add("payload_title", "Terhelés")
    1230         self.add("payload_help",
    1231                  "Az eligazítás az alábbi tömegeket tartalmazza.\n" \
    1232                  "Allítsd be a teherszállítmány tömegét itt, a hasznos "
    1233                  "terhet pedig a szimulátorban.\n\n" \
    1234                  "Azt is ellenőrízheted, hogy a szimulátor milyen ZFW-t jelent.")
    1235         self.add("payload_chelp",
    1236                  "Lent láthatók az eligazításban szereplő tömegek, valamint\n" \
    1237                  "a teherszállítmány általad megadott tömege.\n\n" \
    1238                  "Azt is ellenőrízheted, hogy a szimulátor milyen ZFW-t jelent.")
    1239         self.add("payload_crew", "Legénység:")
    1240         self.add("payload_pax", "Utasok:")
    1241         self.add("payload_bag", "Poggyász:")
    1242         self.add("payload_cargo", "_Teher:")
    1243         self.add("payload_cargo_tooltip",
    1244                  "A teherszállítmány tömege.")
    1245         self.add("payload_mail", "Posta:")
    1246         self.add("payload_zfw", "Kiszámolt ZFW:")
    1247         self.add("payload_fszfw", "_ZFW a szimulátorból:")
    1248         self.add("payload_fszfw_tooltip",
    1249                  "Kattints ide, hogy frissítsd a ZFW értékét a szimulátorból.")
    1250         self.add("payload_zfw_busy", "ZFW lekérdezése...")
    1251        
    1252         self.add("time_title", "Menetrend")
    1253         self.add("time_help",
    1254                  "Az indulás és az érkezés ideje lent látható UTC szerint.\n\n" \
    1255                  "A szimulátor aktuális UTC szerinti idejét is lekérdezheted.\n" \
    1256                  "Győzödj meg arról, hogy elég időd van a repülés előkészítéséhez.")
    1257         self.add("time_chelp",
    1258                  "Az indulás és az érkezés ideje lent látható UTC szerint.\n\n" \
    1259                  "A szimulátor aktuális UTC szerinti idejét is lekérdezheted.")
    1260         self.add("time_departure", "Indulás:")
    1261         self.add("time_arrival", "Érkezés:")
    1262         self.add("time_fs", "Idő a s_zimulátorból:")
    1263         self.add("time_fs_tooltip",
    1264                  "Kattings ide, hogy frissítsd a szimulátor aktuális UTC szerint idejét.")
    1265         self.add("time_busy", "Idő lekérdezése...")
    1266 
    1267         self.add("fuel_title", "Üzemanyag")
    1268         self.add("fuel_help",
    1269                  "Írd be az egyes tartályokba szükséges üzemanyag "
    1270                  "mennyiségét kilogrammban.\n\n"
    1271                  "Ha megnyomod az <b>Előre</b> gombot, a megadott mennyiségű\n"
    1272                  "üzemanyag bekerül a tartályokba.")
    1273         self.add("fuel_chelp",
    1274                  "A repülés elején az egyes tartályokba tankolt\n"
    1275                  "üzemanyag mennyisége lent látható.")
    1276 
    1277         # A B D E I G J K N O P S T V Y Z
    1278        
    1279         self.add("fuel_tank_centre", "Kö_zépső\n")
    1280         self.add("fuel_tank_left", "_Bal\n")
    1281         self.add("fuel_tank_right", "J_obb\n")
    1282         self.add("fuel_tank_left_aux", "Bal\nkie_gészítő")
    1283         self.add("fuel_tank_right_aux", "Jobb\nkiegészí_tő")
    1284         self.add("fuel_tank_left_tip", "B_al\nszárnyvég")
    1285         self.add("fuel_tank_right_tip", "Jobb\nszárn_yvég")
    1286         self.add("fuel_tank_external1", "Külső\n_1")
    1287         self.add("fuel_tank_external2", "Külső\n_2")
    1288         self.add("fuel_tank_centre2", "Közé_pső\n2")
    1289         self.add("fuel_get_busy", "Az üzemanyag lekérdezése...")
    1290         self.add("fuel_pump_busy", "Az üzemanyag pumpálása...")
    1291         self.add("fuel_tank_tooltip",
    1292                  "Ez mutatja az üzemanyag szintjét a tartályban annak "
    1293                  "kapacitásához mérve. A "
    1294                  '<span color="turquoise">türkizkék</span> '
    1295                  "csúszka mutatja a repüléshez kívánt szintet. "
    1296                  "Ha a bal gombbal bárhová kattintasz az ábrán, a csúszka "
    1297                  "odaugrik. Ha a gombot lenyomva tartod, és az egérmutatót "
    1298                  "föl-le mozgatod, a csúszka követi azt. Az egered görgőjével "
    1299                  "is kezelheted a csúszkát. Alaphelyzetben az üzemanyag "
    1300                  "mennyisége 10-zel nő, illetve csökken a görgetés irányától "
    1301                  "függően. Ha a <b>Shift</b> billentyűt lenyomva tartod, "
    1302                  "növekmény 100, a <b>Control</b> billentyűvel pedig 1 lesz.")
    1303 
    1304         self.add("route_title", "Útvonal")
    1305         self.add("route_help",
    1306                  "Állítsd be az utazószintet lent, és ha szükséges,\n" \
    1307                  "módosítsd az útvonaltervet.")
    1308         self.add("route_chelp",
    1309                  "Ha szükséges, lent módosíthatod az utazószintet és\n" \
    1310                  "az útvonaltervet repülés közben is.\n" \
    1311                  "Ha így teszel, légy szíves a megjegyzés mezőben " \
    1312                  "ismertesd ennek okát.")
    1313         self.add("route_level", "_Utazószint:")
    1314         self.add("route_level_tooltip", "Az utazószint.")
    1315         self.add("route_route", "Út_vonal")
    1316         self.add("route_route_tooltip", "Az útvonal a szokásos formátumban.")
    1317         self.add("route_down_notams", "NOTAM-ok letöltése...")
    1318         self.add("route_down_metars", "METAR-ok letöltése...")
    1319        
    1320         self.add("briefing_title", "Eligazítás (%d/2): %s")
    1321         self.add("briefing_departure", "indulás")
    1322         self.add("briefing_arrival", "érkezés")
    1323         self.add("briefing_help",
    1324                  "Olvasd el figyelmesen a lenti NOTAM-okat és METAR-t.\n\n" \
    1325                  "Ha a szimulátor vagy hálózat más időjárást ad,\n" \
    1326                  "a METAR-t módosíthatod.")
    1327         self.add("briefing_chelp",
    1328                  "Ha a szimulátor vagy hálózat más időjárást ad,\n" \
    1329                  "a METAR-t módosíthatod.")
    1330         self.add("briefing_notams_init", "LHBP NOTAM-ok")
    1331         self.add("briefing_metar_init", "LHBP METAR")
    1332         self.add("briefing_button",
    1333                  "Elolvastam az eligazítást, és készen állok a _repülésre!")
    1334         self.add("briefing_notams_template", "%s NOTAM-ok")
    1335         self.add("briefing_metar_template", "%s _METAR")
    1336         self.add("briefing_notams_failed", "Nem tudtam letölteni a NOTAM-okat.")
    1337         self.add("briefing_notams_missing",
    1338                  "Ehhez a repülőtérhez nem találtam NOTAM-ot.")
    1339         self.add("briefing_metar_failed", "Nem tudtam letölteni a METAR-t.")
    1340        
    1341         self.add("takeoff_title", "Felszállás")
    1342         self.add("takeoff_help",
    1343                  "Írd be a felszállásra használt futópálya és SID nevét, valamint a sebességeket.")
    1344         self.add("takeoff_chelp",
    1345                  "A naplózott futópálya, SID és a sebességek lent olvashatók.")
    1346         self.add("takeoff_runway", "_Futópálya:")
    1347         self.add("takeoff_runway_tooltip",
    1348                  "A felszállásra használt futópálya.")
    1349         self.add("takeoff_sid", "_SID:")
    1350         self.add("takeoff_sid_tooltip",
    1351                  "Az alkalmazott szabványos műszeres indulási eljárás neve.")
    1352         self.add("takeoff_v1", "V<sub>_1</sub>:")
    1353         self.add("takeoff_v1_tooltip_knots", "Az elhatározási sebesség csomóban.")
    1354         self.add("takeoff_v1_tooltip_kmph", "Az elhatározási sebesség km/órában.")
    1355         self.add("label_knots", "csomó")
    1356         self.add("label_kmph", "km/h")
    1357         self.add("takeoff_vr", "V<sub>_R</sub>:")
    1358         self.add("takeoff_vr_tooltip_knots", "Az elemelkedési sebesség csomóban.")
    1359         self.add("takeoff_vr_tooltip_kmph", "Az elemelkedési sebesség km/órában.")
    1360         self.add("takeoff_v2", "V<sub>_2</sub>:")
    1361         self.add("takeoff_v2_tooltip_knots",
    1362                  "A biztonságos emelkedési sebesség csomóban.")
    1363         self.add("takeoff_v2_tooltip_kmph",
    1364                  "A biztonságos emelkedési sebesség km/órában.")
    1365        
    1366         self.add("landing_title", "Leszállás")
    1367         self.add("landing_help",
    1368                  "Írd be a tervezett STAR és/vagy bevezetési eljárás nevét,\n"
    1369                  "a használt futópályát, a megközelítés módját, és a V<sub>Ref</sub>-et.")
    1370         self.add("landing_chelp",
    1371                  "A tervezett STAR és/vagy bevezetési eljárás neve, a használt\n"
    1372                  "futópálya, a megközelítés módja és a V<sub>Ref</sub> lent olvasható.")
    1373         self.add("landing_star", "_STAR:")
    1374         self.add("landing_star_tooltip",
    1375                  "A tervezett szabványos érkezési eljárás neve.")
    1376         self.add("landing_transition", "_Bevezetés:")
    1377         self.add("landing_transition_tooltip",
    1378                  "A tervezett bevezetési eljárás neve.")
    1379         self.add("landing_runway", "_Futópálya:")
    1380         self.add("landing_runway_tooltip",
    1381                  "A leszállásra használt futópálya.")
    1382         self.add("landing_approach", "_Megközelítés típusa:")
    1383         self.add("landing_approach_tooltip",
    1384                  "A megközelítgés típusa, pl. ILS vagy VISUAL.")
    1385         self.add("landing_vref", "V<sub>_Ref</sub>:")
    1386         self.add("landing_vref_tooltip_knots",
    1387                  "A leszállási sebesség csomóban.")
    1388         self.add("landing_vref_tooltip_kmph",
    1389                  "A leszállási sebesség km/órában.")
    1390        
    1391         self.add("flighttype_scheduled", "menetrendszerinti")
    1392         self.add("flighttype_ot", "old-timer")
    1393         self.add("flighttype_vip", "VIP")
    1394         self.add("flighttype_charter", "charter")
    1395 
    1396         self.add("finish_title", "Lezárás")
    1397         self.add("finish_help",
    1398                  "Lent olvasható némi statisztika a járat teljesítéséről.\n\n" \
    1399                  "Ellenőrízd az adatokat, az előző oldalakon is, és ha\n" \
    1400                  "megfelelnek, elmentheted vagy elküldheted a PIREP-et.")
    1401         self.add("finish_rating", "Pontszám:")
    1402         self.add("finish_flight_time", "Repült idő:")
    1403         self.add("finish_block_time", "Blokk idő:")
    1404         self.add("finish_distance", "Repült táv:")
    1405         self.add("finish_fuel", "Elhasznált üzemanyag:")
    1406         self.add("finish_type", "_Típus:")
    1407         self.add("finish_type_tooltip", "Válaszd ki a repülés típusát.")
    1408         self.add("finish_online", "_Online repülés")
    1409         self.add("finish_online_tooltip",
    1410                  "Jelöld be, ha a repülésed a hálózaton történt, egyébként " \
    1411                  "szűntesd meg a kijelölést.")
    1412         self.add("finish_gate", "_Érkezési kapu:")
    1413         self.add("finish_gate_tooltip",
    1414                  "Válaszd ki azt a kaput vagy állóhelyet, ahová érkeztél LHBP-n.")
    1415         self.add("finish_newFlight", "_Új járat...")
    1416         self.add("finish_newFlight_tooltip",
    1417                  "Kattints ide egy új járat teljesítésének elkezdéséhez.")
    1418         self.add("finish_newFlight_question",
    1419                  "A PIREP-et még nem mentetted el és nem is küldted el. "
    1420                  "Biztosan új járatot szeretnél kezdeni?")
    1421         self.add("finish_save", "PIREP _mentése...")
    1422         self.add("finish_save_tooltip",
    1423                  "Kattints ide, hogy elmenthesd a PIREP-et egy fájlba a számítógépeden. " \
    1424                  "A PIREP-et később be lehet tölteni és el lehet küldeni.")
    1425         self.add("finish_save_title", "PIREP mentése")
    1426         self.add("finish_save_done", "A PIREP mentése sikerült")
    1427         self.add("finish_save_failed", "A PIREP mentése nem sikerült")
    1428         self.add("finish_save_failed_sec", "A részleteket lásd a debug naplóban.")
    1429 
    1430         # M A
    1431 
    1432         self.add("info_comments", "_Megjegyzések")
    1433         self.add("info_defects", "Hib_ajelenségek")
    1434         self.add("info_delay", "Késés kódok")
    1435 
    1436         # B V H Y R G F E P Z
    1437                  
    1438         self.add("info_delay_loading", "_Betöltési problémák")
    1439         self.add("info_delay_vatsim", "_VATSIM probléma")
    1440         self.add("info_delay_net", "_Hálózati problémák")
    1441         self.add("info_delay_atc", "Irán_yító hibája")
    1442         self.add("info_delay_system", "_Rendszer elszállás/fagyás")
    1443         self.add("info_delay_nav", "Navi_gációs probléma")
    1444         self.add("info_delay_traffic", "_Forgalmi problémák")
    1445         self.add("info_delay_apron", "_Előtér navigációs probléma")
    1446         self.add("info_delay_weather", "Időjárási _problémák")
    1447         self.add("info_delay_personal", "S_zemélyes okok")
    1448                  
    1449         self.add("statusbar_conn_tooltip",
    1450                  'A kapcsolat állapota.\n'
    1451                  '<span foreground="grey">Szürke</span>: nincs kapcsolat.\n'
    1452                  '<span foreground="red">Piros</span>: kapcsolódás folyamatban.\n'
    1453                  '<span foreground="green">Zöld</span>: a kapcsolat él.')
    1454         self.add("statusbar_stage_tooltip", "A repülés fázisa")
    1455         self.add("statusbar_time_tooltip", "A szimulátor ideje UTC-ben")
    1456         self.add("statusbar_rating_tooltip", "A repülés pontszáma")
    1457         self.add("statusbar_busy_tooltip", "A háttérfolyamatok állapota.")
    1458 
    1459         self.add("flight_stage_boarding", u"beszállás")
    1460         self.add("flight_stage_pushback and taxi", u"hátratolás és kigurulás")
    1461         self.add("flight_stage_takeoff", u"felszállás")
    1462         self.add("flight_stage_RTO", u"megszakított felszállás")
    1463         self.add("flight_stage_climb", u"emelkedés")
    1464         self.add("flight_stage_cruise", u"utazó")
    1465         self.add("flight_stage_descent", u"süllyedés")
    1466         self.add("flight_stage_landing", u"leszállás")
    1467         self.add("flight_stage_taxi", u"begurulás")
    1468         self.add("flight_stage_parking", u"parkolás")
    1469         self.add("flight_stage_go-around", u"átstartolás")
    1470         self.add("flight_stage_end", u"kész")
    1471 
    1472         self.add("statusicon_showmain", "Mutasd a főablakot")
    1473         self.add("statusicon_showmonitor", "Mutasd a monitor ablakot")
    1474         self.add("statusicon_quit", "Kilépés")
    1475         self.add("statusicon_stage", u"Fázis")
    1476         self.add("statusicon_rating", u"Pontszám")
    1477 
    1478         self.add("update_title", "Frissítés")
    1479         self.add("update_needsudo",
    1480                  "Lenne mit frissíteni, de a program hozzáférési jogok\n"
    1481                  "hiányában nem tud írni a saját könyvtárába.\n\n"
    1482                  "Kattints az OK gombra, ha el szeretnél indítani egy\n"
    1483                  "segédprogramot adminisztrátori jogokkal, amely\n"
    1484                  "befejezné a frissítést, egyébként a Mégse gombra.")
    1485         self.add("update_manifest_progress", "A manifesztum letöltése...")
    1486         self.add("update_manifest_done", "A manifesztum letöltve...")
    1487         self.add("update_files_progress", "Fájlok letöltése...")
    1488         self.add("update_files_bytes", "%d bájtot töltöttem le %d bájtból")
    1489         self.add("update_renaming", "A letöltött fájlok átnevezése...")
    1490         self.add("update_renamed", "Átneveztem a(z) %s fájlt")
    1491         self.add("update_removing", "Fájlok törlése...")
    1492         self.add("update_removed", "Letöröltem a(z) %s fájlt")
    1493         self.add("update_writing_manifest", "Az új manifesztum írása")
    1494         self.add("update_finished",
    1495                  "A frissítés sikerült. Kattints az OK-ra a program újraindításához.")
    1496         self.add("update_nothing", "Nem volt mit frissíteni")
    1497         self.add("update_failed", "Nem sikerült, a részleteket lásd a debug naplóban.")
    1498 
    1499         self.add("weighthelp_usinghelp", "_Használom a segítséget")
    1500         self.add("weighthelp_usinghelp_tooltip",
    1501                  "Ha bejelölöd, az alábbiakban kapsz egy kis segítséget "
    1502                  "a járathoz szükséges hasznos teher megállapításához. "
    1503                  "Ha igénybe veszed ezt a szolgáltatást, ez a tény "
    1504                  "a naplóba bekerül.")
    1505         self.add("weighthelp_header_calculated", "Elvárt/\nszámított")
    1506         self.add("weighthelp_header_simulator", "Szimulátor\nadatok")
    1507         self.add("weighthelp_header_simulator_tooltip",
    1508                  "Kattints erre a gombra a súlyadatoknak a szimulátortól "
    1509                  "való lekérdezéséhez. Az értékek lent jelennek meg. Ha "
    1510                  "egy érték a tűrés 10%-án belül van, akkor az "
    1511                  '<b><span foreground="darkgreen">zöld</span></b> '
    1512                  "színnel jelenik meg. Ha nem fér bele a tűrésbe, akkor "
    1513                  '<b><span foreground="red">piros</span></b>, '
    1514                  "egyébként "
    1515                  '<b><span foreground="orange">sárga</span></b> '
    1516                  "színben olvasható.")
    1517         self.add("weighthelp_crew", "Legénység (%s):")
    1518         self.add("weighthelp_pax", "Utasok (%s):")
    1519         self.add("weighthelp_baggage", "Poggyász:")
    1520         self.add("weighthelp_cargo", "Teher:")
    1521         self.add("weighthelp_mail", "Posta:")
    1522         self.add("weighthelp_payload", "Hasznos teher:")
    1523         self.add("weighthelp_dow", "DOW:")
    1524         self.add("weighthelp_zfw", "ZFW:")
    1525         self.add("weighthelp_gross", "Teljes tömeg:")
    1526         self.add("weighthelp_mzfw", "MZFW:")
    1527         self.add("weighthelp_mtow", "MTOW:")
    1528         self.add("weighthelp_mlw", "MLW:")
    1529         self.add("weighthelp_busy", "A tömegadatok lekérdezése...")
    1530 
    1531         self.add("gates_fleet_title", "_Flotta")
    1532         self.add("gates_gates_title", "LHBP kapuk")
    1533         self.add("gates_tailno", "Lajstromjel")
    1534         self.add("gates_planestatus", "Állapot")
    1535         self.add("gates_refresh", "_Adatok frissítése")
    1536         self.add("gates_refresh_tooltip",
    1537                  "Kattints erre a gombra a fenti adatok frissítéséhez")
    1538         self.add("gates_planes_tooltip",
    1539                  "Ez a táblázat tartalmazza a MAVA flottája összes "
    1540                  "repülőgépének lajstromjelét és utolsó ismert helyét. "
    1541                  "Ha egy repülőgép olyan kapun áll, amelyet másik gép is "
    1542                  "elfoglal, akkor annak a repülőgépnek az adatai "
    1543                  "<b><span foreground=\"red\">piros</span></b> "
    1544                  "színnel jelennek meg.")
    1545         self.add("gates_gates_tooltip",
    1546                  "A MAVA repülőgépei által elfoglalt kapuk száma "
    1547                  '<b><span foreground="orange">sárga</span></b> színnel,'
    1548                  "a többié feketén jelenik meg.")
    1549         self.add("gates_plane_away", "TÁVOL")
    1550         self.add("gates_plane_parking", "PARKOL")
    1551         self.add("gates_plane_unknown", "ISMERETLEN")
    1552                  
    1553         self.add("chklst_title", "Ellenőrzőlista szerkesztő")
    1554         self.add("chklst_aircraftType", "Repülőgép _típusa:")
    1555         self.add("chklst_aircraftType_tooltip",
    1556                  "Az a típus, amelyhez tartozó ellenőrzőlista "
    1557                  "szerkesztése történik.")
    1558         self.add("chklst_add", "Listához hozzá_adás")
    1559         self.add("chklst_add_tooltip",
    1560                  "A bal oldalt kiválasztott fájloknak a jobb "
    1561                  "oldali ellenőrzőlistához fűzése.")
    1562         self.add("chklst_remove", "_Törlés")
    1563         self.add("chklst_remove_tooltip",
    1564                  "A kijelölt fájl(ok) törlése az ellenőrzőlistából.")
    1565         self.add("chklst_moveUp", "Mozgatás _felfelé")
    1566         self.add("chklst_moveUp_tooltip",
    1567                  "Az ellenőrzőlistából kijelölt fájl(ok) eggyel feljebb mozgatása.")
    1568         self.add("chklst_moveDown", "Mozgatás _lefelé")
    1569         self.add("chklst_moveDown_tooltip",
    1570                  "Az ellenőrzőlistából kijelölt fájl(ok) eggyel lejjebb mozgatása.")
    1571         self.add("chklst_header", "Ellenőrzőlista fájljai")
    1572 
    1573         self.add("prefs_title", "Beállítások")
    1574         self.add("prefs_tab_general", "_Általános")
    1575         self.add("prefs_tab_general_tooltip", "Általános beállítások")
    1576         self.add("prefs_tab_messages", "_Üzenetek")
    1577         self.add("prefs_tab_message_tooltip",
    1578                  "A szimulátorba és/vagy hangjelzés általi üzenetküldés be- "
    1579                  "és kikapcsolása")
    1580         self.add("prefs_tab_sounds", "_Hangok")
    1581         self.add("prefs_tab_sounds_tooltip",
    1582                  "A repülés különféle fázisai alatt lejátszandó hangokkal "
    1583                  "kapcsolatos beállítások.")
    1584         self.add("prefs_tab_advanced", "H_aladó")
    1585         self.add("prefs_tab_advanced_tooltip",
    1586                  "Haladó beállítások: óvatosan módosítsd őket!")
    1587         self.add("prefs_language", "_Nyelv:")
    1588         self.add("prefs_language_tooltip",
    1589                  "A program által használt nyelv")
    1590         self.add("prefs_restart",
    1591                  "Újraindítás szükséges")
    1592         self.add("prefs_language_restart_sec",
    1593                  "A program nyelvének megváltoztatása csak egy újraindítást "
    1594                  "követően jut érvényre.")
    1595         self.add("prefs_lang_$system", "alapértelmezett")
    1596         self.add("prefs_lang_en_GB", "angol")
    1597         self.add("prefs_lang_hu_HU", "magyar")
    1598         self.add("prefs_hideMinimizedWindow",
    1599                  "A főablak _eltüntetése minimalizáláskor")
    1600         self.add("prefs_hideMinimizedWindow_tooltip",
    1601                  "Ha ezt kijelölöd, a főablak teljesen eltűnik, "
    1602                  "ha minimalizálod. A státuszikonra kattintással vagy annak "
    1603                  "menüje segítségével újra meg tudod jeleníteni.")
    1604         self.add("prefs_quitOnClose",
    1605                  "_Kilépés az ablakzáró gomb megnyomásakor")
    1606         self.add("prefs_quitOnClose_tooltip",
    1607                  "Ha ezt kijelölöd, a program az ablakzáró gomb megnyomására "
    1608                  "kilép, ha ebbéli szándékát megerősíted. Ha nem jelölöd "
    1609                  "ki, a főablak eltűnik, de a tálcaikon a helyén marad.")
    1610         self.add("prefs_onlineGateSystem",
    1611                  "Az Online _Gate System használata")
    1612         self.add("prefs_onlineGateSystem_tooltip",
    1613                  "Ha ezt bejelölöd, a logger lekérdezi és frissíti az "
    1614                  "LHBP Online Gate System adatait.")
    1615         self.add("prefs_onlineACARS",
    1616                  "Az Online ACA_RS rendszer használata")
    1617         self.add("prefs_onlineACARS_tooltip",
    1618                  "Ha ezt bejölöd, a logger folyamatosan közli a repülésed "
    1619                  "adatait a MAVA Online ACARS rendszerrel.")
    1620         self.add("prefs_flaretimeFromFS",
    1621                  "A ki_lebegtetés idejét vedd a szimulátorból")
    1622         self.add("prefs_flaretimeFromFS_tooltip",
    1623                  "Ha ezt bejelölöd, a kilebegtetés idejét a szimulátor "
    1624                  "által visszaadott időbélyegek alapján számolja a program.")
    1625         self.add("prefs_syncFSTime",
    1626                  "_Szinkronizáld a szimulátor idéjét a számítógépével")
    1627         self.add("prefs_syncFSTime_tooltip",
    1628                  "Ha ez bejelölöd, a szimulátor belső óráját a program "
    1629                  "szinkronban tartja a számítógép órájával.")
    1630         self.add("prefs_usingFS2Crew",
    1631                  "Használom az FS_2Crew kiegészítőt")
    1632         self.add("prefs_usingFS2Crew_tooltip",
    1633                  "Ha ezt bejelölöd, a program figyelembe veszi, "
    1634                  "hogy az FS2Crew kiegészítőt használod.")
    1635         self.add("prefs_iasSmoothingEnabled",
    1636                  "Az _IAS átlagolása ")
    1637         self.add("prefs_iasSmoothingEnabledTooltip",
    1638                  "Ha bekapcsolod, az IAS értékét a program a jelzett "
    1639                  "időtartamig átlagolja, és az egyes ellenőrzéseknél  "
    1640                  "ezt az átlagértéket hasznája.")
    1641         self.add("prefs_vsSmoothingEnabled",
    1642                  "A _vario átlagolása ")
    1643         self.add("prefs_vsSmoothingEnabledTooltip",
    1644                  "Ha bekapcsolod, a vario értékét a program a jelzett "
    1645                  "időtartamig átlagolja, és az egyes ellenőrzéseknél  "
    1646                  "ezt az átlagértéket hasznája.")
    1647         self.add("prefs_smoothing_seconds", "másodpercig.")
    1648         self.add("prefs_pirepDirectory",
    1649                  "_PIREP-ek könyvtára:")
    1650         self.add("prefs_pirepDirectory_tooltip",
    1651                  "Az itt megadott könyvtárt ajánlja majd fel a program "
    1652                  "a PIREP-ek mentésekor.")
    1653         self.add("prefs_pirepDirectory_browser_title",
    1654                  "Válaszd ki a PIREP-ek könyvtárát")
    1655         self.add("prefs_frame_gui", "Grafikus felület")
    1656         self.add("prefs_frame_online", "MAVA online rendszerek")
    1657         self.add("prefs_frame_simulator", "Szimulátor")
    1658 
    1659         self.add("prefs_sounds_frame_bg", "Háttérhangok")
    1660         self.add("prefs_sounds_enable",
    1661                  "Háttérhangok _engedélyezése")
    1662         self.add("prefs_sounds_enable_tooltip",
    1663                  "Ha a háttérhangokat engedélyezed, a logger a repülés "
    1664                  "egyes fázisai alatt különféle hangállományokat játszik le.")
    1665         self.add("prefs_sounds_pilotControls",
    1666                  "_Pilóta vezérli a hangokat")
    1667         self.add("prefs_sounds_pilotControls_tooltip",
    1668                  "Ha azt kijelölöd, a legtöbb háttérhang csak akkor hallható, "
    1669                  "ha a pilóta a lent megadott gyorsbillentyűt leüti. Egyébként "
    1670                  "a hangok maguktól, bizonyos feltételek teljesülése esetén "
    1671                  "szólalnak meg.")
    1672         self.add("prefs_sounds_pilotHotkey",
    1673                  "_Gyorsbillentyű:")
    1674         self.add("prefs_sounds_pilotHotkey_tooltip",
    1675                  "A billentyű, amit az esetlegesen megadott módosítókkal "
    1676                  "együtt le kell ütni, hogy a repülés aktuális fázisához "
    1677                  "tartozó hang megszólaljon.")
    1678         self.add("prefs_sounds_pilotHotkeyCtrl_tooltip",
    1679                  "Ha kijelölöd, a Ctrl billentyűt is le kell nyomni a "
    1680                  "főbillentyűvel együtt.")
    1681         self.add("prefs_sounds_pilotHotkeyShift_tooltip",
    1682                  "Ha kijelölöd, a Shift billentyűt is le kell nyomni a "
    1683                  "főbillentyűvel együtt.")
    1684         self.add("prefs_sounds_approachCallouts",
    1685                  "Megközelítési _bemondások engedélyezése")
    1686         self.add("prefs_sounds_approachCallouts_tooltip",
    1687                  "Ha kijelölöd, megközelítés közben egyes magasságok "
    1688                  "elérésekor a program lejátssza a megadott fájlokat.")
    1689         self.add("prefs_sounds_speedbrakeAtTD",
    1690                  "_Spoiler hang bekapcsolása leszálláskor")
    1691         self.add("prefs_sounds_speedbrakeAtTD_tooltip",
    1692                  "Ha kijelölöd, egy, a spoilerek kibocsájtását imitáló "
    1693                  "hang hallatszik földetérés után, ha a spoilerek "
    1694                  "automatikusan kinyílnak.")
    1695         self.add("prefs_sounds_frame_checklists", "Ellenőrzőlisták")
    1696         self.add("prefs_sounds_enableChecklists",
    1697                  "_Repülőgép-specifikus ellenőrzőlisták engedélyezése")
    1698         self.add("prefs_sounds_enableChecklists_tooltip",
    1699                  "Ha kijelölöd, a program a lenti gyorsbillentyű "
    1700                  "megnyomásokor a használt repülőgép típushoz tartozó "
    1701                  "ellenőrzőlista következő elemét játssza le.")
    1702         self.add("prefs_sounds_checklistHotkey",
    1703                  "E_llenörzőlista gyorsbillentyű:")
    1704         self.add("prefs_sounds_checklistHotkey_tooltip",
    1705                  "A billentyű, amit az esetlegesen megadott módosítókkal "
    1706                  "együtt le kell ütni, hogy az ellenőrzőlista következő "
    1707                  "eleme elhangozzék.")
    1708         self.add("prefs_sounds_checklistHotkeyCtrl_tooltip",
    1709                  "Ha kijelölöd, a Ctrl billentyűt is le kell nyomni a "
    1710                  "főbillentyűvel együtt.")
    1711         self.add("prefs_sounds_checklistHotkeyShift_tooltip",
    1712                  "Ha kijelölöd, a Shift billentyűt is le kell nyomni a "
    1713                  "főbillentyűvel együtt.")
    1714 
    1715         self.add("prefs_update_auto",
    1716                  "Frissítsd a programot _automatikusan")
    1717         self.add("prefs_update_auto_tooltip",
    1718                  "Ha ez be van jelölve, a program induláskor frissítést "
    1719                  "keres, és ha talál, azokat letölti és telepíti. Ez "
    1720                  "biztosítja, hogy az elküldött PIREP minden megfelel "
    1721                  "a legújabb elvárásoknak.")
    1722         self.add("prefs_update_auto_warning",
    1723                  "Az automatikus frissítés kikapcsolása azt okozhatja, "
    1724                  "hogy a program Nálad lévő verziója elavulttá válik, "
    1725                  "és a PIREP-jeidet így nem fogadják el.")
    1726         self.add("prefs_update_url", "Frissítés _URL-je:")
    1727         self.add("prefs_update_url_tooltip",
    1728                  "Az URL, ahol a frissítéseket keresi a program. Csak akkor "
    1729                  "változtasd meg, ha biztos vagy a dolgodban!")
    1730 
    1731         # A Á H M O Ü
    1732 
    1733         self.add("prefs_msgs_fs", "Szimulátorban\nmegjelenítés")
    1734         self.add("prefs_msgs_sound", "Hangjelzés")
    1735         self.add("prefs_msgs_type_loggerError", "_Logger hibaüzenetek")
    1736         self.add("prefs_msgs_type_information",
    1737                  "_Információs üzenetek\n(pl. a repülés fázisa)")
    1738         self.add("prefs_msgs_type_fault",
    1739                  "Hi_baüzenetek\n(pl. a villogó fény hiba)")
    1740         self.add("prefs_msgs_type_nogo",
    1741                  "_NO GO hibaüzenetek\n(pl. MTOW NO GO)")
    1742         self.add("prefs_msgs_type_gateSystem",
    1743                  "_Kapukezelő rendszer üzenetei\n(pl. a szabad kapuk listája)")
    1744         self.add("prefs_msgs_type_environment",
    1745                  "Kö_rnyezeti üzenetek\n(pl. \"welcome to XY aiport\")")
    1746         self.add("prefs_msgs_type_help",
    1747                  "_Segítő üzenetek\n(pl. \"don't forget to set VREF\")")
    1748         self.add("prefs_msgs_type_visibility",
    1749                  "Lá_tótávolság üzenetek")
    1750 
    1751         self.add("loadPIREP_browser_title", "Válaszd ki a betöltendő PIREP-et")
    1752         self.add("loadPIREP_failed", "Nem tudtam betölteni a PIREP-et")
    1753         self.add("loadPIREP_failed_sec",
    1754                  "A részleteket lásd a debug naplóban.")
    1755         self.add("loadPIREP_send_title", "PIREP")
    1756         self.add("loadPIREP_send_help",
    1757                  "A betöltött PIREP főbb adatai:")
    1758         self.add("loadPIREP_send_flightno", "Járatszám:")
    1759         self.add("loadPIREP_send_date", "Dátum:")
    1760         self.add("loadPIREP_send_from", "Honnan:")
    1761         self.add("loadPIREP_send_to", "Hová:")
    1762         self.add("loadPIREP_send_rating", "Pontszám:")
    1763 
    1764         self.add("sendPIREP", "PIREP _elküldése...")
    1765         self.add("sendPIREP_tooltip",
    1766                  "Kattints ide, hogy elküldd a PIREP-et a MAVA szerverére javításra.")
    1767         self.add("sendPIREP_busy", "PIREP küldése...")
    1768         self.add("sendPIREP_success",
    1769                  "A PIREP elküldése sikeres volt.")
    1770         self.add("sendPIREP_success_sec",
    1771                  "Várhatod félelmet nem ismerő PIREP javítóink alapos észrevételeit! :)")
    1772         self.add("sendPIREP_already",
    1773                  "Ehhez a járathoz már küldtél be PIREP-et!")
    1774         self.add("sendPIREP_already_sec",
    1775                  "A korábban beküldött PIREP-et törölheted a MAVA honlapján.")
    1776         self.add("sendPIREP_notavail",
    1777                  "Ez a járat már nem elérhető!")
    1778         self.add("sendPIREP_unknown",
    1779                  "A MAVA szervere ismeretlen hibaüzenettel tért vissza.")
    1780         self.add("sendPIREP_unknown_sec",
    1781                  "A debug naplóban részletesebb információt találsz.")
    1782         self.add("sendPIREP_failed",
    1783                  "Nem tudtam elküldeni a PIREP-et a MAVA szerverére.")
    1784         self.add("sendPIREP_failed_sec",
    1785                  "Lehet, hogy hálózati probléma áll fenn, amely esetben később\n" \
    1786                  "újra próbálkozhatsz. Lehet azonban hiba is a loggerben:\n" \
    1787                  "részletesebb információt találhatsz a debug naplóban.")
    1788 
    1789         self.add("viewPIREP", "PIREP meg_tekintése...")
    1790 
    1791         self.add("pirepView_title", "PIREP megtekintése")
    1792 
    1793         self.add("pirepView_tab_data", "_Adatok")
    1794         self.add("pirepView_tab_data_tooltip",
    1795                  "A járat és a repülés főbb adatai.")
    1796 
    1797         self.add("pirepView_frame_flight", "Járat")
    1798         self.add("pirepView_callsign", "Hívójel:")
    1799         self.add("pirepView_tailNumber", "Lajstromjel:")
    1800         self.add("pirepView_aircraftType", "Repülőgép:")
    1801         self.add("pirepView_departure", "Indulási repülőtér:")
    1802         self.add("pirepView_departure_time", "idő:")
    1803         self.add("pirepView_arrival", "Érkezési repülőtér:")
    1804         self.add("pirepView_arrival_time", "idő:")
    1805         self.add("pirepView_numPassengers", "Utasok:")
    1806         self.add("pirepView_numCrew", "Legénység:")
    1807         self.add("pirepView_bagWeight", "Poggyász:")
    1808         self.add("pirepView_cargoWeight", "Teher:")
    1809         self.add("pirepView_mailWeight", "Posta:")
    1810         self.add("pirepView_route", "MAVA útvonal:")
    1811 
    1812         self.add("pirepView_frame_route", "Beadott útvonal")
    1813         self.add("pirepView_filedCruiseLevel", "Repülési szint:")
    1814         self.add("pirepView_modifiedCruiseLevel", "módosítva:")
    1815 
    1816         self.add("pirepView_frame_departure", "Indulás")
    1817         self.add("pirepView_runway", "Futópálya:")
    1818         self.add("pirepView_sid", "SID:")
    1819 
    1820         self.add("pirepView_frame_arrival", "Érkezés")
    1821         self.add("pirepView_star", "STAR:")
    1822         self.add("pirepView_transition", "Bevezetés:")
    1823         self.add("pirepView_approachType", "Megközelítés:")
    1824 
    1825         self.add("pirepView_frame_statistics", "Statisztika")
    1826         self.add("pirepView_blockTimeStart", "Blokk idő kezdete:")
    1827         self.add("pirepView_blockTimeEnd", "vége:")
    1828         self.add("pirepView_flightTimeStart", "Repült idő kezdete:")
    1829         self.add("pirepView_flightTimeEnd", "vége:")
    1830         self.add("pirepView_flownDistance", "Repült táv:")
    1831         self.add("pirepView_fuelUsed", "Üzemanyag:")
    1832         self.add("pirepView_rating", "Pontszám:")
    1833 
    1834         self.add("pirepView_frame_miscellaneous", "Egyéb")
    1835         self.add("pirepView_flightType", "Típus:")
    1836         self.add("pirepView_online", "Online:")
    1837         self.add("pirepView_yes", "igen")
    1838         self.add("pirepView_no", "nem")
    1839         self.add("pirepView_delayCodes", "Késés kódok:")
    1840 
    1841         self.add("pirepView_tab_comments", "_Megjegyzések és hibák")
    1842         self.add("pirepView_tab_comments_tooltip",
    1843                  "Megjegyzések, és a repülés során előfordult hibajelenségek")
    1844 
    1845         self.add("pirepView_comments", "Megjegyzések")
    1846         self.add("pirepView_flightDefects", "Hibajelenségek")
    1847 
    1848         self.add("pirepView_tab_log", "_Napló")
    1849         self.add("pirepView_tab_log_tooltip", "A repülési napló.")
    1850 
    1851         self.add("about_website", "A projekt honlapja")
    1852 
    1853         self.add("about_license",
    1854                  "A program köztulajdonban van.")
    1855 
    1856         self.add("about_role_prog_test", "programozás, tesztelés")
    1857         self.add("about_role_negotiation", "tárgyalások")
    1858         self.add("about_role_test", "tesztelés")
    1859 
    1860         self.add("callouts_title", "Megközelítési bemondások szerkesztése")
    1861         self.add("callouts_aircraftType", "Repülőgép _típusa:")
    1862         self.add("callouts_aircraftType_tooltip",
    1863                  "Az a típus, amelyhez tartozó bemondások szerkesztése történik.")
    1864         self.add("callouts_header_altitude", "Magasság")
    1865         self.add("callouts_header_path", "Bemondás-fájl")
    1866         self.add("callouts_add", "Bemondás hozzá_adása")
    1867         self.add("callouts_add_tooltip",
    1868                  "Bemondás hangfájl hozzáadása valamilyen "
    1869                  "alapértelmezett magasságal.")
    1870         self.add("callouts_remove", "_Törlés")
    1871         self.add("callouts_remove_tooltip",
    1872                  "A kiválasztott bemondások törlése.")
    1873         self.add("callouts_altitude_clash",
    1874                  "Már tartozik bemondás ehhez a magassághoz.")
    1875         self.add("callouts_altitude_clash_sec",
    1876                  "Ennek ellenére beállítsam a megadott magasságoz? Ha "
    1877                  "így teszek, a másik bemondást egyúttal törlöm.")
    1878 
    1879 #------------------------------------------------------------------------------
    1880 
    1881 # The fallback language is English
    1882 _english = _English()
    1883 
    1884 # We also support Hungarian
    1885 _hungarian = _Hungarian()
    1886 
    1887 #------------------------------------------------------------------------------
    1888 
    1889 if __name__ == "__main__":
    1890     _hungarian.initialize()
    1891     for key in _english:
    1892         if _hungarian[key] is None:
    1893             print key
    1894 
    1895 #------------------------------------------------------------------------------
  • src/mlx/mlx.py

    r247 r276  
    6363        restart(["usedeflang"])
    6464
    65     setLanguage(config.getLanguage())
     65    setLanguage(programDirectory, config.getLanguage())
    6666   
    6767    from .gui.gui import GUI
Note: See TracChangeset for help on using the changeset viewer.