1 | # Internationalization support
|
---|
2 | # -*- coding: utf-8 -*-
|
---|
3 |
|
---|
4 | #------------------------------------------------------------------------------
|
---|
5 |
|
---|
6 | _strings = None
|
---|
7 | _fallback = None
|
---|
8 |
|
---|
9 | #------------------------------------------------------------------------------
|
---|
10 |
|
---|
11 | def setLanguage(language):
|
---|
12 | """Setup the internationalization support for the given language."""
|
---|
13 | print "i18n.setLanguage", language
|
---|
14 | _Strings.set(language)
|
---|
15 |
|
---|
16 | #------------------------------------------------------------------------------
|
---|
17 |
|
---|
18 | def xstr(key):
|
---|
19 | """Get the string for the given key in the current language.
|
---|
20 |
|
---|
21 | If not found, the fallback language is searched. If that is not found
|
---|
22 | either, the key itself is returned within curly braces."""
|
---|
23 | s = _Strings.current()[key]
|
---|
24 | if s is None:
|
---|
25 | s = _Strings.fallback()[key]
|
---|
26 | return "{" + key + "}" if s is None else s
|
---|
27 |
|
---|
28 | #------------------------------------------------------------------------------
|
---|
29 |
|
---|
30 | class _Strings(object):
|
---|
31 | """A collection of strings belonging to a certain language."""
|
---|
32 | # The registry of the string collections. This is a mapping from
|
---|
33 | # language codes to the actual collection objects
|
---|
34 | _instances = {}
|
---|
35 |
|
---|
36 | # The fallback instance
|
---|
37 | _fallback = None
|
---|
38 |
|
---|
39 | # The currently used instance.
|
---|
40 | _current = None
|
---|
41 |
|
---|
42 | @staticmethod
|
---|
43 | def _find(language):
|
---|
44 | """Find an instance for the given language.
|
---|
45 |
|
---|
46 | First the language is searched for as is. If not found, it is truncated
|
---|
47 | from the end until the last underscore and that is searched for. And so
|
---|
48 | on, until no underscore remains.
|
---|
49 |
|
---|
50 | If nothing is found this way, the
|
---|
51 | """
|
---|
52 | while language:
|
---|
53 | if language in _Strings._instances:
|
---|
54 | return _Strings._instances[language]
|
---|
55 | underscoreIndex = language.rfind("_")
|
---|
56 | language = language[:underscoreIndex] if underscoreIndex>0 else ""
|
---|
57 | return _Strings._fallback
|
---|
58 |
|
---|
59 | @staticmethod
|
---|
60 | def set(language):
|
---|
61 | """Set the string for the given language.
|
---|
62 |
|
---|
63 | A String instance is searched for the given language (see
|
---|
64 | _Strings._find()). Otherwise the fallback language is used."""
|
---|
65 | strings = _Strings._find(language)
|
---|
66 | assert strings is not None
|
---|
67 | if _Strings._current is not None and \
|
---|
68 | _Strings._current is not _Strings._fallback:
|
---|
69 | _Strings._current.finalize()
|
---|
70 | if strings is not _Strings._fallback:
|
---|
71 | strings.initialize()
|
---|
72 | _Strings._current = strings
|
---|
73 |
|
---|
74 | @staticmethod
|
---|
75 | def fallback():
|
---|
76 | """Get the fallback."""
|
---|
77 | return _Strings._fallback
|
---|
78 |
|
---|
79 | @staticmethod
|
---|
80 | def current():
|
---|
81 | """Get the current."""
|
---|
82 | return _Strings._current
|
---|
83 |
|
---|
84 | def __init__(self, languages, fallback = False):
|
---|
85 | """Construct an empty strings object."""
|
---|
86 | self._strings = {}
|
---|
87 | for language in languages:
|
---|
88 | _Strings._instances[language] = self
|
---|
89 | if fallback:
|
---|
90 | _Strings._fallback = self
|
---|
91 | self.initialize()
|
---|
92 |
|
---|
93 | def initialize(self):
|
---|
94 | """Initialize the strings.
|
---|
95 |
|
---|
96 | This should be overridden in children to setup the strings."""
|
---|
97 | pass
|
---|
98 |
|
---|
99 | def finalize(self):
|
---|
100 | """Finalize the object.
|
---|
101 |
|
---|
102 | This releases the string dictionary to free space."""
|
---|
103 | self._strings = {}
|
---|
104 |
|
---|
105 | def add(self, id, s):
|
---|
106 | """Add the given text as the string with the given ID.
|
---|
107 |
|
---|
108 | If the ID is already in the object, that is an assertion failure!"""
|
---|
109 | assert id not in self._strings
|
---|
110 | self._strings[id] = s
|
---|
111 |
|
---|
112 | def __getitem__(self, key):
|
---|
113 | """Get the string with the given key."""
|
---|
114 | return self._strings[key] if key in self._strings else None
|
---|
115 |
|
---|
116 | #------------------------------------------------------------------------------
|
---|
117 |
|
---|
118 | class _English(_Strings):
|
---|
119 | """The strings for the English language."""
|
---|
120 | def __init__(self):
|
---|
121 | """Construct the object."""
|
---|
122 | super(_English, self).__init__(["en_GB", "en"], fallback = True)
|
---|
123 |
|
---|
124 | def initialize(self):
|
---|
125 | """Initialize the strings."""
|
---|
126 | self.add("menu_file", "File")
|
---|
127 | self.add("menu_file_quit", "_Quit")
|
---|
128 | self.add("menu_file_quit_key", "q")
|
---|
129 | self.add("quit_question", "Are you sure to quit the logger?")
|
---|
130 |
|
---|
131 | self.add("menu_tools", "Tools")
|
---|
132 | self.add("menu_tools_prefs", "_Preferences")
|
---|
133 | self.add("menu_tools_prefs_key", "p")
|
---|
134 |
|
---|
135 | self.add("menu_view", "View")
|
---|
136 | self.add("menu_view_monitor", "Show _monitor window")
|
---|
137 | self.add("menu_view_monitor_key", "m")
|
---|
138 | self.add("menu_view_debug", "Show _debug log")
|
---|
139 | self.add("menu_view_debug_key", "d")
|
---|
140 |
|
---|
141 | self.add("tab_flight", "_Flight")
|
---|
142 | self.add("tab_flight_tooltip", "Flight wizard")
|
---|
143 | self.add("tab_flight_info", "Flight _info")
|
---|
144 | self.add("tab_flight_info_tooltip", "Further information regarding the flight")
|
---|
145 | self.add("tab_weight_help", "_Help")
|
---|
146 | self.add("tab_weight_help_tooltip", "Help to calculate the weights")
|
---|
147 | self.add("tab_log", "_Log")
|
---|
148 | self.add("tab_log_tooltip",
|
---|
149 | "The log of your flight that will be sent to the MAVA website")
|
---|
150 | self.add("tab_gates", "_Gates")
|
---|
151 | self.add("tab_gates_tooltip", "The status of the MAVA fleet and the gates at LHBP")
|
---|
152 | self.add("tab_debug_log", "_Debug log")
|
---|
153 | self.add("tab_debug_log_tooltip", "Log with debugging information.")
|
---|
154 |
|
---|
155 | self.add("conn_failed", "Cannot connect to the simulator.")
|
---|
156 | self.add("conn_failed_sec",
|
---|
157 | "Rectify the situation, and press <b>Try again</b> "
|
---|
158 | "to try the connection again, "
|
---|
159 | "or <b>Cancel</b> to cancel the flight.")
|
---|
160 | self.add("conn_broken",
|
---|
161 | "The connection to the simulator failed unexpectedly.")
|
---|
162 | self.add("conn_broken_sec",
|
---|
163 | "If the simulator has crashed, restart it "
|
---|
164 | "and restore your flight as much as possible "
|
---|
165 | "to the state it was in before the crash. "
|
---|
166 | "Then press <b>Reconnect</b> to reconnect.\n\n"
|
---|
167 | "If you want to cancel the flight, press <b>Cancel</b>.")
|
---|
168 | self.add("button_cancel", "_Cancel")
|
---|
169 | self.add("button_tryagain", "_Try again")
|
---|
170 | self.add("button_reconnect", "_Reconnect")
|
---|
171 |
|
---|
172 | self.add("login", "Login")
|
---|
173 | self.add("loginHelp",
|
---|
174 | "Enter your MAVA pilot's ID and password to\n" \
|
---|
175 | "log in to the MAVA website and download\n" \
|
---|
176 | "your booked flights.")
|
---|
177 | self.add("label_pilotID", "Pil_ot ID:")
|
---|
178 | self.add("login_pilotID_tooltip",
|
---|
179 | "Enter your MAVA pilot's ID. This usually starts with a "
|
---|
180 | "'P' followed by 3 digits.")
|
---|
181 | self.add("label_password", "_Password:")
|
---|
182 | self.add("login_password_tooltip",
|
---|
183 | "Enter the password for your pilot's ID")
|
---|
184 | self.add("remember_password", "_Remember password")
|
---|
185 | self.add("login_remember_tooltip",
|
---|
186 | "If checked, your password will be stored, so that you should "
|
---|
187 | "not have to enter it every time. Note, however, that the password "
|
---|
188 | "is stored as text, and anybody who can access your files will "
|
---|
189 | "be able to read it.")
|
---|
190 | self.add("button_login", "Logi_n")
|
---|
191 | self.add("login_button_tooltip", "Click to log in.")
|
---|
192 | self.add("login_busy", "Logging in...")
|
---|
193 | self.add("login_invalid", "Invalid pilot's ID or password.")
|
---|
194 | self.add("login_invalid_sec",
|
---|
195 | "Check the ID and try to reenter the password.")
|
---|
196 | self.add("login_failconn",
|
---|
197 | "Failed to connect to the MAVA website.")
|
---|
198 | self.add("login_failconn_sec", "Try again in a few minutes.")
|
---|
199 |
|
---|
200 | self.add("button_next", "_Next")
|
---|
201 | self.add("button_next_tooltip", "Click to go to the next page.")
|
---|
202 | self.add("button_previous", "_Previous")
|
---|
203 | self.add("button_previous_tooltip", "Click to go to the previous page.")
|
---|
204 |
|
---|
205 | self.add("flightsel_title", "Flight selection")
|
---|
206 | self.add("flightsel_help", "Select the flight you want to perform.")
|
---|
207 | self.add("flightsel_chelp", "You have selected the flight highlighted below.")
|
---|
208 | self.add("flightsel_no", "Flight no.")
|
---|
209 | self.add("flightsel_deptime", "Departure time [UTC]")
|
---|
210 | self.add("flightsel_from", "From")
|
---|
211 | self.add("flightsel_to", "To")
|
---|
212 |
|
---|
213 | self.add("fleet_busy", "Retrieving fleet...")
|
---|
214 | self.add("fleet_failed",
|
---|
215 | "Failed to retrieve the information on the fleet.")
|
---|
216 | self.add("fleet_update_busy", "Updating plane status...")
|
---|
217 | self.add("fleet_update_failed",
|
---|
218 | "Failed to update the status of the airplane.")
|
---|
219 |
|
---|
220 | self.add("gatesel_title", "LHBP gate selection")
|
---|
221 | self.add("gatesel_help",
|
---|
222 | "The airplane's gate position is invalid.\n\n" \
|
---|
223 | "Select the gate from which you\n" \
|
---|
224 | "would like to begin the flight.")
|
---|
225 | self.add("gatesel_conflict", "Gate conflict detected again.")
|
---|
226 | self.add("gatesel_conflict_sec",
|
---|
227 | "Try to select a different gate.")
|
---|
228 |
|
---|
229 | self.add("connect_title", "Connect to the simulator")
|
---|
230 | self.add("connect_help",
|
---|
231 | "Load the aircraft below into the simulator and park it\n" \
|
---|
232 | "at the given airport, at the gate below, if present.\n\n" \
|
---|
233 | "Then press the Connect button to connect to the simulator.")
|
---|
234 | self.add("connect_chelp",
|
---|
235 | "The basic data of your flight can be read below.")
|
---|
236 | self.add("connect_flightno", "Flight number:")
|
---|
237 | self.add("connect_acft", "Aircraft:")
|
---|
238 | self.add("connect_tailno", "Tail number:")
|
---|
239 | self.add("connect_airport", "Airport:")
|
---|
240 | self.add("connect_gate", "Gate:")
|
---|
241 | self.add("button_connect", "_Connect")
|
---|
242 | self.add("button_connect_tooltip", "Click to connect to the simulator.")
|
---|
243 | self.add("connect_busy", "Connecting to the simulator...")
|
---|
244 |
|
---|
245 | self.add("payload_title", "Payload")
|
---|
246 | self.add("payload_help",
|
---|
247 | "The briefing contains the weights below.\n" \
|
---|
248 | "Setup the cargo weight here and the payload weight "
|
---|
249 | "in the simulator.\n\n" \
|
---|
250 | "You can also check here what the simulator reports as ZFW.")
|
---|
251 | self.add("payload_chelp",
|
---|
252 | "You can see the weights in the briefing\n" \
|
---|
253 | "and the cargo weight you have selected below.\n\n" \
|
---|
254 | "You can also query the ZFW reported by the simulator.")
|
---|
255 | self.add("payload_crew", "Crew:")
|
---|
256 | self.add("payload_pax", "Passengers:")
|
---|
257 | self.add("payload_bag", "Baggage:")
|
---|
258 | self.add("payload_cargo", "_Cargo:")
|
---|
259 | self.add("payload_cargo_tooltip",
|
---|
260 | "The weight of the cargo for your flight.")
|
---|
261 | self.add("payload_mail", "Mail:")
|
---|
262 | self.add("payload_zfw", "Calculated ZFW:")
|
---|
263 | self.add("payload_fszfw", "_ZFW from FS:")
|
---|
264 | self.add("payload_fszfw_tooltip",
|
---|
265 | "Click here to refresh the ZFW value from the simulator.")
|
---|
266 | self.add("payload_zfw_busy", "Querying ZFW...")
|
---|
267 |
|
---|
268 | self.add("time_title", "Time")
|
---|
269 | self.add("time_help",
|
---|
270 | "The departure and arrival times are displayed below in UTC.\n\n" \
|
---|
271 | "You can also query the current UTC time from the simulator.\n" \
|
---|
272 | "Ensure that you have enough time to properly prepare for the flight.")
|
---|
273 | self.add("time_chelp",
|
---|
274 | "The departure and arrival times are displayed below in UTC.\n\n" \
|
---|
275 | "You can also query the current UTC time from the simulator.\n")
|
---|
276 | self.add("time_departure", "Departure:")
|
---|
277 | self.add("time_arrival", "Arrival:")
|
---|
278 | self.add("time_fs", "_Time from FS:")
|
---|
279 | self.add("time_fs_tooltip",
|
---|
280 | "Click here to query the current UTC time from the simulator.")
|
---|
281 | self.add("time_busy", "Querying time...")
|
---|
282 |
|
---|
283 | self.add("route_title", "Route")
|
---|
284 | self.add("route_help",
|
---|
285 | "Set your cruise flight level below, and\n" \
|
---|
286 | "if necessary, edit the flight plan.")
|
---|
287 | self.add("route_chelp",
|
---|
288 | "If necessary, you can modify the cruise level and\n" \
|
---|
289 | "the flight plan below during flight.\n" \
|
---|
290 | "If so, please, add a comment on why " \
|
---|
291 | "the modification became necessary.")
|
---|
292 | self.add("route_level", "_Cruise level:")
|
---|
293 | self.add("route_level_tooltip",
|
---|
294 | "The cruise flight level. Click on the arrows to increment "
|
---|
295 | "or decrement by 10, or enter the number on the keyboard.")
|
---|
296 | self.add("route_route", "_Route")
|
---|
297 | self.add("route_route_tooltip",
|
---|
298 | "The planned flight route in the standard format.")
|
---|
299 | self.add("route_down_notams", "Downloading NOTAMs...")
|
---|
300 | self.add("route_down_metars", "Downloading METARs...")
|
---|
301 |
|
---|
302 | self.add("briefing_title", "Briefing (%d/2): %s")
|
---|
303 | self.add("briefing_departure", "departure")
|
---|
304 | self.add("briefing_arrival", "arrival")
|
---|
305 | self.add("briefing_help",
|
---|
306 | "Read carefully the NOTAMs and METAR below.\n\n" \
|
---|
307 | "You can edit the METAR if your simulator or network\n" \
|
---|
308 | "provides different weather.")
|
---|
309 | self.add("briefing_chelp",
|
---|
310 | "If your simulator or network provides a different\n" \
|
---|
311 | "weather, you can edit the METAR below.")
|
---|
312 | self.add("briefing_notams_init", "LHBP NOTAMs")
|
---|
313 | self.add("briefing_metar_init", "LHBP METAR")
|
---|
314 | self.add("briefing_button",
|
---|
315 | "I have read the briefing and am _ready to fly!")
|
---|
316 | self.add("briefing_notams_template", "%s NOTAMs")
|
---|
317 | self.add("briefing_metar_template", "%s _METAR")
|
---|
318 | self.add("briefing_notams_failed", "Could not download NOTAMs")
|
---|
319 | self.add("briefing_notams_missing",
|
---|
320 | "Could not download NOTAM for this airport")
|
---|
321 | self.add("briefing_metar_failed", "Could not download METAR")
|
---|
322 |
|
---|
323 | self.add("takeoff_title", "Takeoff")
|
---|
324 | self.add("takeoff_help",
|
---|
325 | "Enter the runway and SID used, as well as the speeds.")
|
---|
326 | self.add("takeoff_chelp",
|
---|
327 | "The runway, SID and takeoff speeds logged can be seen below.")
|
---|
328 | self.add("takeoff_runway", "Run_way:")
|
---|
329 | self.add("takeoff_runway_tooltip",
|
---|
330 | "The runway the takeoff is performed from.")
|
---|
331 | self.add("takeoff_sid", "_SID:")
|
---|
332 | self.add("takeoff_sid_tooltip",
|
---|
333 | "The name of the Standard Instrument Deparature procedure followed.")
|
---|
334 | self.add("takeoff_v1", "V<sub>_1</sub>:")
|
---|
335 | self.add("takeoff_v1_tooltip", "The takeoff decision speed in knots.")
|
---|
336 | self.add("label_knots", "knots")
|
---|
337 | self.add("takeoff_vr", "V<sub>_R</sub>:")
|
---|
338 | self.add("takeoff_vr_tooltip", "The takeoff rotation speed in knots.")
|
---|
339 | self.add("takeoff_v2", "V<sub>_2</sub>:")
|
---|
340 | self.add("takeoff_v2_tooltip", "The takeoff safety speed in knots.")
|
---|
341 |
|
---|
342 | self.add("landing_title", "Landing")
|
---|
343 | self.add("landing_help",
|
---|
344 | "Enter the STAR and/or transition, runway,\n" \
|
---|
345 | "approach type and V<sub>Ref</sub> used.")
|
---|
346 | self.add("landing_chelp",
|
---|
347 | "The STAR and/or transition, runway, approach\n" \
|
---|
348 | "type and V<sub>Ref</sub> logged can be seen below.")
|
---|
349 | self.add("landing_star", "_STAR:")
|
---|
350 | self.add("landing_star_tooltip",
|
---|
351 | "The name of Standard Terminal Arrival Route followed.")
|
---|
352 | self.add("landing_transition", "_Transition:")
|
---|
353 | self.add("landing_transition_tooltip",
|
---|
354 | "The name of transition executed or VECTORS if vectored by ATC.")
|
---|
355 | self.add("landing_runway", "Run_way:")
|
---|
356 | self.add("landing_runway_tooltip",
|
---|
357 | "The runway the landing is performed on.")
|
---|
358 | self.add("landing_approach", "_Approach type:")
|
---|
359 | self.add("landing_approach_tooltip",
|
---|
360 | "The type of the approach, e.g. ILS or VISUAL.")
|
---|
361 | self.add("landing_vref", "V<sub>_Ref</sub>:")
|
---|
362 | self.add("landing_vref_tooltip",
|
---|
363 | "The landing reference speed in knots.")
|
---|
364 |
|
---|
365 | self.add("flighttype_scheduled", "scheduled")
|
---|
366 | self.add("flighttype_ot", "old-timer")
|
---|
367 | self.add("flighttype_vip", "VIP")
|
---|
368 | self.add("flighttype_charter", "charter")
|
---|
369 |
|
---|
370 | self.add("finish_title", "Finish")
|
---|
371 | self.add("finish_help",
|
---|
372 | "There are some statistics about your flight below.\n\n" \
|
---|
373 | "Review the data, also on earlier pages, and if you are\n" \
|
---|
374 | "satisfied, you can save or send your PIREP.")
|
---|
375 | self.add("finish_rating", "Flight rating:")
|
---|
376 | self.add("finish_flight_time", "Flight time:")
|
---|
377 | self.add("finish_block_time", "Block time:")
|
---|
378 | self.add("finish_distance", "Distance flown:")
|
---|
379 | self.add("finish_fuel", "Fuel used:")
|
---|
380 | self.add("finish_type", "_Type:")
|
---|
381 | self.add("finish_type_tooltip", "Select the type of the flight.")
|
---|
382 | self.add("finish_online", "_Online flight")
|
---|
383 | self.add("finish_online_tooltip",
|
---|
384 | "Check if your flight was online, uncheck otherwise.")
|
---|
385 | self.add("finish_save", "S_ave PIREP...")
|
---|
386 | self.add("finish_save_tooltip",
|
---|
387 | "Click to save the PIREP into a file on your computer. " \
|
---|
388 | "The PIREP can be loaded and sent later.")
|
---|
389 | self.add("finish_send", "_Send PIREP...")
|
---|
390 | self.add("finish_send_tooltip",
|
---|
391 | "Click to send the PIREP to the MAVA website for further review.")
|
---|
392 | self.add("finish_send_busy", "Sending PIREP...")
|
---|
393 | self.add("finish_send_success",
|
---|
394 | "The PIREP was sent successfully.")
|
---|
395 | self.add("finish_send_success_sec",
|
---|
396 | "Await the thorough scrutiny by our fearless PIREP reviewers! :)")
|
---|
397 | self.add("finish_send_already",
|
---|
398 | "The PIREP for this flight has already been sent!")
|
---|
399 | self.add("finish_send_already_sec",
|
---|
400 | "You may clear the old PIREP on the MAVA website.")
|
---|
401 | self.add("finish_send_notavail",
|
---|
402 | "This flight is not available anymore!")
|
---|
403 | self.add("finish_send_unknown",
|
---|
404 | "The MAVA website returned with an unknown error.")
|
---|
405 | self.add("finish_send_unknown_sec",
|
---|
406 | "See the debug log for more information.")
|
---|
407 | self.add("finish_send_failed",
|
---|
408 | "Could not send the PIREP to the MAVA website.")
|
---|
409 | self.add("finish_send_failed_sec",
|
---|
410 | "This can be a network problem, in which case\n" \
|
---|
411 | "you may try again later. Or it can be a bug;\n" \
|
---|
412 | "see the debug log for more information.")
|
---|
413 |
|
---|
414 | # C D
|
---|
415 |
|
---|
416 | self.add("info_comments", "_Comments")
|
---|
417 | self.add("info_defects", "Flight _defects")
|
---|
418 | self.add("info_delay", "Delay codes")
|
---|
419 |
|
---|
420 | # O V N E Y T R A W P
|
---|
421 |
|
---|
422 | self.add("info_delay_loading", "L_oading problems")
|
---|
423 | self.add("info_delay_vatsim", "_VATSIM problem")
|
---|
424 | self.add("info_delay_net", "_Net problems")
|
---|
425 | self.add("info_delay_atc", "Controll_er's fault")
|
---|
426 | self.add("info_delay_system", "S_ystem crash/freeze")
|
---|
427 | self.add("info_delay_nav", "Naviga_tion problem")
|
---|
428 | self.add("info_delay_traffic", "T_raffic problems")
|
---|
429 | self.add("info_delay_apron", "_Apron navigation problem")
|
---|
430 | self.add("info_delay_weather", "_Weather problems")
|
---|
431 | self.add("info_delay_personal", "_Personal reasons")
|
---|
432 |
|
---|
433 | self.add("statusbar_conn_tooltip",
|
---|
434 | 'The state of the connection.\n'
|
---|
435 | '<span foreground="grey">Grey</span> means idle.\n'
|
---|
436 | '<span foreground="red">Red</span> means trying to connect.\n'
|
---|
437 | '<span foreground="green">Green</span> means connected.')
|
---|
438 | self.add("statusbar_stage_tooltip", "The flight stage")
|
---|
439 | self.add("statusbar_time_tooltip", "The simulator time in UTC")
|
---|
440 | self.add("statusbar_rating_tooltip", "The flight rating")
|
---|
441 | self.add("statusbar_busy_tooltip", "The status of the background tasks.")
|
---|
442 |
|
---|
443 | self.add("flight_stage_boarding", "boarding")
|
---|
444 | self.add("flight_stage_pushback and taxi", "pushback and taxi")
|
---|
445 | self.add("flight_stage_takeoff", "takeoff")
|
---|
446 | self.add("flight_stage_RTO", "RTO")
|
---|
447 | self.add("flight_stage_climb", "climb")
|
---|
448 | self.add("flight_stage_cruise", "cruise")
|
---|
449 | self.add("flight_stage_descent", "descent")
|
---|
450 | self.add("flight_stage_landing", "landing")
|
---|
451 | self.add("flight_stage_taxi", "taxi")
|
---|
452 | self.add("flight_stage_parking", "parking")
|
---|
453 | self.add("flight_stage_go-around", "go-around")
|
---|
454 | self.add("flight_stage_end", "end")
|
---|
455 |
|
---|
456 | self.add("statusicon_showmain", "Show main window")
|
---|
457 | self.add("statusicon_showmonitor", "Show monitor window")
|
---|
458 | self.add("statusicon_quit", "Quit")
|
---|
459 | self.add("statusicon_stage", "Stage:")
|
---|
460 | self.add("statusicon_rating", "Rating:")
|
---|
461 |
|
---|
462 | self.add("update_title", "Update")
|
---|
463 | self.add("update_needsudo",
|
---|
464 | "There is an update available, but the program cannot write\n"
|
---|
465 | "its directory due to insufficient privileges.\n\n"
|
---|
466 | "Click OK, if you want to run a helper program\n"
|
---|
467 | "with administrator privileges "
|
---|
468 | "to complete the update,\n"
|
---|
469 | "Cancel otherwise.")
|
---|
470 | self.add("update_manifest_progress", "Downloading manifest...")
|
---|
471 | self.add("update_manifest_done", "Downloaded manifest...")
|
---|
472 | self.add("update_files_progress", "Downloading files...")
|
---|
473 | self.add("update_files_bytes", "Downloaded %d of %d bytes")
|
---|
474 | self.add("update_renaming", "Renaming downloaded files...")
|
---|
475 | self.add("update_renamed", "Renamed %s")
|
---|
476 | self.add("update_removing", "Removing files...")
|
---|
477 | self.add("update_removed", "Removed %s")
|
---|
478 | self.add("update_writing_manifest", "Writing the new manifest")
|
---|
479 | self.add("update_finished",
|
---|
480 | "Finished updating. Press OK to restart the program.")
|
---|
481 | self.add("update_nothing", "There was nothing to update")
|
---|
482 | self.add("update_failed", "Failed, see the debug log for details.")
|
---|
483 |
|
---|
484 | self.add("weighthelp_usinghelp", "_Using help")
|
---|
485 | self.add("weighthelp_usinghelp_tooltip",
|
---|
486 | "If you check this, some help will be displayed on how "
|
---|
487 | "to calculate the payload weight for your flight. "
|
---|
488 | "Note, that the usage of this facility will be logged.")
|
---|
489 | self.add("weighthelp_header_calculated", "Requested/\ncalculated")
|
---|
490 | self.add("weighthelp_header_simulator", "Simulator\ndata")
|
---|
491 | self.add("weighthelp_header_simulator_tooltip",
|
---|
492 | "Click this button to retrieve the weight values from the "
|
---|
493 | "simulator, which will be displayed below. If a value is "
|
---|
494 | "within 10% of the tolerance, it is displayed in "
|
---|
495 | '<b><span foreground="darkgreen">green</span></b>, '
|
---|
496 | "if it is out of the tolerance, it is displayed in "
|
---|
497 | '<b><span foreground="red">red</span></b>, '
|
---|
498 | "otherwise in"
|
---|
499 | '<b><span foreground="orange">yellow</span></b>.')
|
---|
500 | self.add("weighthelp_crew", "Crew (%s):")
|
---|
501 | self.add("weighthelp_pax", "Passengers (%s):")
|
---|
502 | self.add("weighthelp_baggage", "Baggage:")
|
---|
503 | self.add("weighthelp_cargo", "Cargo:")
|
---|
504 | self.add("weighthelp_mail", "Mail:")
|
---|
505 | self.add("weighthelp_payload", "Payload:")
|
---|
506 | self.add("weighthelp_dow", "DOW:")
|
---|
507 | self.add("weighthelp_zfw", "ZFW:")
|
---|
508 | self.add("weighthelp_gross", "Gross weight:")
|
---|
509 | self.add("weighthelp_mzfw", "MZFW:")
|
---|
510 | self.add("weighthelp_mtow", "MTOW:")
|
---|
511 | self.add("weighthelp_mlw", "MLW:")
|
---|
512 | self.add("weighthelp_busy", "Querying weight data...")
|
---|
513 |
|
---|
514 | self.add("gates_fleet_title", "Fl_eet")
|
---|
515 | self.add("gates_gates_title", "LHBP gates")
|
---|
516 | self.add("gates_tailno", "Tail nr.")
|
---|
517 | self.add("gates_planestatus", "Status")
|
---|
518 | self.add("gates_refresh", "_Refresh data")
|
---|
519 | self.add("gates_refresh_tooltip",
|
---|
520 | "Click this button to refresh the status data above")
|
---|
521 | self.add("gates_planes_tooltip",
|
---|
522 | "This table lists all the planes in the MAVA fleet and their "
|
---|
523 | "last known location. If a plane is conflicting with another "
|
---|
524 | "because of occupying the same gate its data is displayed in "
|
---|
525 | "<b><span foreground=\"red\">red</span></b>.")
|
---|
526 | self.add("gates_gates_tooltip",
|
---|
527 | "The numbers of the gates occupied by MAVA planes are "
|
---|
528 | "displayed in "
|
---|
529 | '<b><span foreground="orange">yellow</span></b>, '
|
---|
530 | "while available gates in black.")
|
---|
531 | self.add("gates_plane_away", "AWAY")
|
---|
532 | self.add("gates_plane_parking", "PARKING")
|
---|
533 | self.add("gates_plane_unknown", "UNKNOWN")
|
---|
534 |
|
---|
535 | self.add("prefs_title", "Preferences")
|
---|
536 | self.add("prefs_tab_general", "_General")
|
---|
537 | self.add("prefs_tab_general_tooltip", "General preferences")
|
---|
538 | self.add("prefs_tab_advanced", "_Advanced")
|
---|
539 | self.add("prefs_tab_advanced_tooltip",
|
---|
540 | "Advanced preferences, edit with care!")
|
---|
541 | self.add("prefs_language", "_Language:")
|
---|
542 | self.add("prefs_language_tooltip",
|
---|
543 | "The language of the program")
|
---|
544 | self.add("prefs_restart",
|
---|
545 | "Restart needed")
|
---|
546 | self.add("prefs_language_restart_sec",
|
---|
547 | "If you change the language, the program should be restarted "
|
---|
548 | "so that the change has an effect.")
|
---|
549 | self.add("prefs_lang_$system", "system default")
|
---|
550 | self.add("prefs_lang_en_GB", "English")
|
---|
551 | self.add("prefs_lang_hu_HU", "Hungarian")
|
---|
552 | self.add("prefs_update_auto", "Update the program auto_matically")
|
---|
553 | self.add("prefs_update_auto_tooltip",
|
---|
554 | "If checked the program will look for updates when "
|
---|
555 | "it is starting, and if new updates are found, they "
|
---|
556 | "will be downloaded and installed. This ensures that "
|
---|
557 | "the PIREP you send will always conform to the latest "
|
---|
558 | "expectations of the airline.")
|
---|
559 | self.add("prefs_update_auto_warning",
|
---|
560 | "Disabling automatic updates may result in "
|
---|
561 | "your version of the program becoming out of date "
|
---|
562 | "and your PIREPs not being accepted.")
|
---|
563 | self.add("prefs_update_url", "Update _URL:")
|
---|
564 | self.add("prefs_update_url_tooltip",
|
---|
565 | "The URL from which to download the updates. Change this "
|
---|
566 | "only if you know what you are doing!")
|
---|
567 |
|
---|
568 | #------------------------------------------------------------------------------
|
---|
569 |
|
---|
570 | class _Hungarian(_Strings):
|
---|
571 | """The strings for the Hungarian language."""
|
---|
572 | def __init__(self):
|
---|
573 | """Construct the object."""
|
---|
574 | super(_Hungarian, self).__init__(["hu_HU", "hu"])
|
---|
575 |
|
---|
576 | def initialize(self):
|
---|
577 | """Initialize the strings."""
|
---|
578 | self.add("menu_file", "Fájl")
|
---|
579 | self.add("menu_file_quit", "_Kilépés")
|
---|
580 | self.add("menu_file_quit_key", "k")
|
---|
581 | self.add("quit_question", "Biztosan ki akarsz lépni?")
|
---|
582 |
|
---|
583 | self.add("menu_tools", "Eszközök")
|
---|
584 | self.add("menu_tools_prefs", "_Beállítások")
|
---|
585 | self.add("menu_tools_prefs_key", "b")
|
---|
586 |
|
---|
587 | self.add("menu_view", "Nézet")
|
---|
588 | self.add("menu_view_monitor", "Mutasd a _monitor ablakot")
|
---|
589 | self.add("menu_view_monitor_key", "m")
|
---|
590 | self.add("menu_view_debug", "Mutasd a _debug naplót")
|
---|
591 | self.add("menu_view_debug_key", "d")
|
---|
592 |
|
---|
593 | self.add("tab_flight", "_Járat")
|
---|
594 | self.add("tab_flight_tooltip", "Járat varázsló")
|
---|
595 | self.add("tab_flight_info", "Járat _info")
|
---|
596 | self.add("tab_flight_info_tooltip", "Egyéb információk a járat teljesítésével kapcsolatban")
|
---|
597 | self.add("tab_weight_help", "_Segítség")
|
---|
598 | self.add("tab_weight_help_tooltip", "Segítség a súlyszámításhoz")
|
---|
599 | self.add("tab_log", "_Napló")
|
---|
600 | self.add("tab_log_tooltip",
|
---|
601 | "A járat naplója, amit majd el lehet küldeni a MAVA szerverére")
|
---|
602 | self.add("tab_gates", "_Kapuk")
|
---|
603 | self.add("tab_gates_tooltip", "A MAVA flotta és LHBP kapuinak állapota")
|
---|
604 | self.add("tab_debug_log", "_Debug napló")
|
---|
605 | self.add("tab_debug_log_tooltip",
|
---|
606 | "Hibakereséshez használható információkat tartalmazó napló.")
|
---|
607 |
|
---|
608 | self.add("conn_failed", "Nem tudtam kapcsolódni a szimulátorhoz.")
|
---|
609 | self.add("conn_failed_sec",
|
---|
610 | "Korrigáld a problémát, majd nyomd meg az "
|
---|
611 | "<b>Próbáld újra</b> gombot a újrakapcsolódáshoz, "
|
---|
612 | "vagy a <b>Mégse</b> gombot a járat megszakításához.")
|
---|
613 | self.add("conn_broken",
|
---|
614 | "A szimulátorral való kapcsolat váratlanul megszakadt.")
|
---|
615 | self.add("conn_broken_sec",
|
---|
616 | "Ha a szimulátor elszállt, indítsd újra "
|
---|
617 | "és állítsd vissza a repülésed elszállás előtti "
|
---|
618 | "állapotát amennyire csak lehet. "
|
---|
619 | "Ezután nyomd meg az <b>Újrakapcsolódás</b> gombot "
|
---|
620 | "a kapcsolat ismételt felvételéhez.\n\n"
|
---|
621 | "Ha meg akarod szakítani a repülést, nyomd meg a "
|
---|
622 | "<b>Mégse</b> gombot.")
|
---|
623 | self.add("button_cancel", "_Mégse")
|
---|
624 | self.add("button_tryagain", "_Próbáld újra")
|
---|
625 | self.add("button_reconnect", "Újra_kapcsolódás")
|
---|
626 |
|
---|
627 | self.add("login", "Bejelentkezés")
|
---|
628 | self.add("loginHelp",
|
---|
629 | "Írd be a MAVA pilóta azonosítódat és a\n" \
|
---|
630 | "bejelentkezéshez használt jelszavadat,\n" \
|
---|
631 | "hogy választhass a foglalt járataid közül.")
|
---|
632 | self.add("label_pilotID", "_Azonosító:")
|
---|
633 | self.add("login_pilotID_tooltip",
|
---|
634 | "Írd be a MAVA pilóta azonosítódat. Ez általában egy 'P' "
|
---|
635 | "betűvel kezdődik, melyet 3 számjegy követ.")
|
---|
636 | self.add("label_password", "Je_lszó:")
|
---|
637 | self.add("login_password_tooltip",
|
---|
638 | "Írd be a pilóta azonosítódhoz tartozó jelszavadat.")
|
---|
639 | self.add("remember_password", "_Emlékezz a jelszóra")
|
---|
640 | self.add("login_remember_tooltip",
|
---|
641 | "Ha ezt kiválasztod, a jelszavadat eltárolja a program, így "
|
---|
642 | "nem kell mindig újból beírnod. Vedd azonban figyelembe, "
|
---|
643 | "hogy a jelszót szövegként tároljuk, így bárki elolvashatja, "
|
---|
644 | "aki hozzáfér a fájljaidhoz.")
|
---|
645 | self.add("button_login", "_Bejelentkezés")
|
---|
646 | self.add("login_button_tooltip", "Kattints ide a bejelentkezéshez.")
|
---|
647 | self.add("login_busy", "Bejelentkezés...")
|
---|
648 | self.add("login_invalid", "Érvénytelen azonosító vagy jelszó.")
|
---|
649 | self.add("login_invalid_sec",
|
---|
650 | "Ellenőrízd az azonosítót, és próbáld meg újra beírni a jelszót.")
|
---|
651 | self.add("login_failconn",
|
---|
652 | "Nem sikerült kapcsolódni a MAVA honlaphoz.")
|
---|
653 | self.add("login_failconn_sec", "Próbáld meg pár perc múlva.")
|
---|
654 |
|
---|
655 | self.add("button_next", "_Előre")
|
---|
656 | self.add("button_next_tooltip",
|
---|
657 | "Kattints ide, hogy a következő lapra ugorj.")
|
---|
658 | self.add("button_previous", "_Vissza")
|
---|
659 | self.add("button_previous_tooltip",
|
---|
660 | "Kattints ide, hogy az előző lapra ugorj.")
|
---|
661 |
|
---|
662 | self.add("flightsel_title", "Járatválasztás")
|
---|
663 | self.add("flightsel_help", "Válaszd ki a járatot, amelyet le szeretnél repülni.")
|
---|
664 | self.add("flightsel_chelp", "A lent kiemelt járatot választottad.")
|
---|
665 | self.add("flightsel_no", "Járatszám")
|
---|
666 | self.add("flightsel_deptime", "Indulás ideje [UTC]")
|
---|
667 | self.add("flightsel_from", "Honnan")
|
---|
668 | self.add("flightsel_to", "Hová")
|
---|
669 |
|
---|
670 | self.add("fleet_busy", "Flottaadatok letöltése...")
|
---|
671 | self.add("fleet_failed",
|
---|
672 | "Nem sikerült letöltenem a flotta adatait.")
|
---|
673 | self.add("fleet_update_busy", "Repülőgép pozíció frissítése...")
|
---|
674 | self.add("fleet_update_failed",
|
---|
675 | "Nem sikerült frissítenem a repülőgép pozícióját.")
|
---|
676 |
|
---|
677 | self.add("gatesel_title", "LHBP kapuválasztás")
|
---|
678 | self.add("gatesel_help",
|
---|
679 | "A repülőgép kapu pozíciója érvénytelen.\n\n" \
|
---|
680 | "Válaszd ki azt a kaput, ahonnan\n" \
|
---|
681 | "el szeretnéd kezdeni a járatot.")
|
---|
682 | self.add("gatesel_conflict", "Ismét kapuütközés történt.")
|
---|
683 | self.add("gatesel_conflict_sec",
|
---|
684 | "Próbálj egy másik kaput választani.")
|
---|
685 |
|
---|
686 | self.add("connect_title", "Kapcsolódás a szimulátorhoz")
|
---|
687 | self.add("connect_help",
|
---|
688 | "Tölsd be a lent látható repülőgépet a szimulátorba\n" \
|
---|
689 | "az alább megadott reptérre és kapuhoz.\n\n" \
|
---|
690 | "Ezután nyomd meg a Kapcsolódás gombot a kapcsolódáshoz.")
|
---|
691 | self.add("connect_chelp",
|
---|
692 | "A járat alapadatai lent olvashatók.")
|
---|
693 | self.add("connect_flightno", "Járatszám:")
|
---|
694 | self.add("connect_acft", "Típus:")
|
---|
695 | self.add("connect_tailno", "Lajstromjel:")
|
---|
696 | self.add("connect_airport", "Repülőtér:")
|
---|
697 | self.add("connect_gate", "Kapu:")
|
---|
698 | self.add("button_connect", "K_apcsolódás")
|
---|
699 | self.add("button_connect_tooltip",
|
---|
700 | "Kattints ide a szimulátorhoz való kapcsolódáshoz.")
|
---|
701 | self.add("connect_busy", "Kapcsolódás a szimulátorhoz...")
|
---|
702 |
|
---|
703 | self.add("payload_title", "Terhelés")
|
---|
704 | self.add("payload_help",
|
---|
705 | "Az eligazítás az alábbi tömegeket tartalmazza.\n" \
|
---|
706 | "Allítsd be a teherszállítmány tömegét itt, a hasznos "
|
---|
707 | "terhet pedig a szimulátorban.\n\n" \
|
---|
708 | "Azt is ellenőrízheted, hogy a szimulátor milyen ZFW-t jelent.")
|
---|
709 | self.add("payload_chelp",
|
---|
710 | "Lent láthatók az eligazításban szereplő tömegek, valamint\n" \
|
---|
711 | "a teherszállítmány általad megadott tömege.\n\n" \
|
---|
712 | "Azt is ellenőrízheted, hogy a szimulátor milyen ZFW-t jelent.")
|
---|
713 | self.add("payload_crew", "Legénység:")
|
---|
714 | self.add("payload_pax", "Utasok:")
|
---|
715 | self.add("payload_bag", "Poggyász:")
|
---|
716 | self.add("payload_cargo", "_Teher:")
|
---|
717 | self.add("payload_cargo_tooltip",
|
---|
718 | "A teherszállítmány tömege.")
|
---|
719 | self.add("payload_mail", "Posta:")
|
---|
720 | self.add("payload_zfw", "Kiszámolt ZFW:")
|
---|
721 | self.add("payload_fszfw", "_ZFW a szimulátorból:")
|
---|
722 | self.add("payload_fszfw_tooltip",
|
---|
723 | "Kattints ide, hogy frissítsd a ZFW értékét a szimulátorból.")
|
---|
724 | self.add("payload_zfw_busy", "ZFW lekérdezése...")
|
---|
725 |
|
---|
726 | self.add("time_title", "Menetrend")
|
---|
727 | self.add("time_help",
|
---|
728 | "Az indulás és az érkezés ideje lent látható UTC szerint.\n\n" \
|
---|
729 | "A szimulátor aktuális UTC szerinti idejét is lekérdezheted.\n" \
|
---|
730 | "Győzödj meg arról, hogy elég időd van a repülés előkészítéséhez.")
|
---|
731 | self.add("time_chelp",
|
---|
732 | "Az indulás és az érkezés ideje lent látható UTC szerint.\n\n" \
|
---|
733 | "A szimulátor aktuális UTC szerinti idejét is lekérdezheted.")
|
---|
734 | self.add("time_departure", "Indulás:")
|
---|
735 | self.add("time_arrival", "Érkezés:")
|
---|
736 | self.add("time_fs", "Idő a s_zimulátorból:")
|
---|
737 | self.add("time_fs_tooltip",
|
---|
738 | "Kattings ide, hogy frissítsd a szimulátor aktuális UTC szerint idejét.")
|
---|
739 | self.add("time_busy", "Idő lekérdezése...")
|
---|
740 |
|
---|
741 | self.add("route_title", "Útvonal")
|
---|
742 | self.add("route_help",
|
---|
743 | "Állítsd be az utazószintet lent, és ha szükséges,\n" \
|
---|
744 | "módosítsd az útvonaltervet.")
|
---|
745 | self.add("route_chelp",
|
---|
746 | "Ha szükséges, lent módosíthatod az utazószintet és\n" \
|
---|
747 | "az útvonaltervet repülés közben is.\n" \
|
---|
748 | "Ha így teszel, légy szíves a megjegyzés mezőben " \
|
---|
749 | "ismertesd ennek okát.")
|
---|
750 | self.add("route_level", "_Utazószint:")
|
---|
751 | self.add("route_level_tooltip", "Az utazószint.")
|
---|
752 | self.add("route_route", "Út_vonal")
|
---|
753 | self.add("route_route_tooltip", "Az útvonal a szokásos formátumban.")
|
---|
754 | self.add("route_down_notams", "NOTAM-ok letöltése...")
|
---|
755 | self.add("route_down_metars", "METAR-ok letöltése...")
|
---|
756 |
|
---|
757 | self.add("briefing_title", "Eligazítás (%d/2): %s")
|
---|
758 | self.add("briefing_departure", "indulás")
|
---|
759 | self.add("briefing_arrival", "érkezés")
|
---|
760 | self.add("briefing_help",
|
---|
761 | "Olvasd el figyelmesen a lenti NOTAM-okat és METAR-t.\n\n" \
|
---|
762 | "Ha a szimulátor vagy hálózat más időjárást ad,\n" \
|
---|
763 | "a METAR-t módosíthatod.")
|
---|
764 | self.add("briefing_chelp",
|
---|
765 | "Ha a szimulátor vagy hálózat más időjárást ad,\n" \
|
---|
766 | "a METAR-t módosíthatod.")
|
---|
767 | self.add("briefing_notams_init", "LHBP NOTAM-ok")
|
---|
768 | self.add("briefing_metar_init", "LHBP METAR")
|
---|
769 | self.add("briefing_button",
|
---|
770 | "Elolvastam az eligazítást, és készen állok a _repülésre!")
|
---|
771 | self.add("briefing_notams_template", "%s NOTAM-ok")
|
---|
772 | self.add("briefing_metar_template", "%s _METAR")
|
---|
773 | self.add("briefing_notams_failed", "Nem tudtam letölteni a NOTAM-okat.")
|
---|
774 | self.add("briefing_notams_missing",
|
---|
775 | "Ehhez a repülőtérhez nem találtam NOTAM-ot.")
|
---|
776 | self.add("briefing_metar_failed", "Nem tudtam letölteni a METAR-t.")
|
---|
777 |
|
---|
778 | self.add("takeoff_title", "Felszállás")
|
---|
779 | self.add("takeoff_help",
|
---|
780 | "Írd be a felszállásra használt futópálya és SID nevét, valamint a sebességeket.")
|
---|
781 | self.add("takeoff_chelp",
|
---|
782 | "A naplózott futópálya, SID és a sebességek lent olvashatók.")
|
---|
783 | self.add("takeoff_runway", "_Futópálya:")
|
---|
784 | self.add("takeoff_runway_tooltip",
|
---|
785 | "A felszállásra használt futópálya.")
|
---|
786 | self.add("takeoff_sid", "_SID:")
|
---|
787 | self.add("takeoff_sid_tooltip",
|
---|
788 | "Az alkalmazott szabványos műszeres indulási eljárás neve.")
|
---|
789 | self.add("takeoff_v1", "V<sub>_1</sub>:")
|
---|
790 | self.add("takeoff_v1_tooltip", "Az elhatározási sebesség csomóban.")
|
---|
791 | self.add("label_knots", "csomó")
|
---|
792 | self.add("takeoff_vr", "V<sub>_R</sub>:")
|
---|
793 | self.add("takeoff_vr_tooltip", "Az elemelkedési sebesség csomóban.")
|
---|
794 | self.add("takeoff_v2", "V<sub>_2</sub>:")
|
---|
795 | self.add("takeoff_v2_tooltip", "A biztonságos emelkedési sebesség csomóban.")
|
---|
796 |
|
---|
797 | self.add("landing_title", "Leszállás")
|
---|
798 | self.add("landing_help",
|
---|
799 | "Írd be az alkalmazott STAR és/vagy bevezetési eljárás nevét,\n"
|
---|
800 | "a használt futópályát, a megközelítés módját, és a V<sub>Ref</sub>-et.")
|
---|
801 | self.add("landing_chelp",
|
---|
802 | "Az alkalmazott STAR és/vagy bevezetési eljárás neve, a használt\n"
|
---|
803 | "futópálya, a megközelítés módja és a V<sub>Ref</sub> lent olvasható.")
|
---|
804 | self.add("landing_star", "_STAR:")
|
---|
805 | self.add("landing_star_tooltip",
|
---|
806 | "A követett szabványos érkezési eljárás neve.")
|
---|
807 | self.add("landing_transition", "_Bevezetés:")
|
---|
808 | self.add("landing_transition_tooltip",
|
---|
809 | "Az alkalmazott bevezetési eljárás neve, vagy VECTORS, "
|
---|
810 | "ha az irányítás vezetett be.")
|
---|
811 | self.add("landing_runway", "_Futópálya:")
|
---|
812 | self.add("landing_runway_tooltip",
|
---|
813 | "A leszállásra használt futópálya.")
|
---|
814 | self.add("landing_approach", "_Megközelítés típusa:")
|
---|
815 | self.add("landing_approach_tooltip",
|
---|
816 | "A megközelítgés típusa, pl. ILS vagy VISUAL.")
|
---|
817 | self.add("landing_vref", "V<sub>_Ref</sub>:")
|
---|
818 | self.add("landing_vref_tooltip",
|
---|
819 | "A leszállási sebesség csomóban.")
|
---|
820 |
|
---|
821 | self.add("flighttype_scheduled", "menetrendszerinti")
|
---|
822 | self.add("flighttype_ot", "old-timer")
|
---|
823 | self.add("flighttype_vip", "VIP")
|
---|
824 | self.add("flighttype_charter", "charter")
|
---|
825 |
|
---|
826 | self.add("finish_title", "Lezárás")
|
---|
827 | self.add("finish_help",
|
---|
828 | "Lent olvasható némi statisztika a járat teljesítéséről.\n\n" \
|
---|
829 | "Ellenőrízd az adatokat, az előző oldalakon is, és ha\n" \
|
---|
830 | "megfelelnek, elmentheted vagy elküldheted a PIREP-et.")
|
---|
831 | self.add("finish_rating", "Pontszám:")
|
---|
832 | self.add("finish_flight_time", "Repülési idő:")
|
---|
833 | self.add("finish_block_time", "Blokk idő:")
|
---|
834 | self.add("finish_distance", "Repült táv:")
|
---|
835 | self.add("finish_fuel", "Elhasznált üzemanyag:")
|
---|
836 | self.add("finish_type", "_Típus:")
|
---|
837 | self.add("finish_type_tooltip", "Válaszd ki a repülés típusát.")
|
---|
838 | self.add("finish_online", "_Online repülés")
|
---|
839 | self.add("finish_online_tooltip",
|
---|
840 | "Jelöld be, ha a repülésed a hálózaton történt, egyébként " \
|
---|
841 | "szűntesd meg a kijelölést.")
|
---|
842 | self.add("finish_save", "PIREP _mentése...")
|
---|
843 | self.add("finish_save_tooltip",
|
---|
844 | "Kattints ide, hogy elmenthesd a PIREP-et egy fájlba a számítógépeden. " \
|
---|
845 | "A PIREP-et később be lehet tölteni és el lehet küldeni.")
|
---|
846 | self.add("finish_send", "PIREP _elküldése...")
|
---|
847 | self.add("finish_send_tooltip",
|
---|
848 | "Kattints ide, hogy elküldd a PIREP-et a MAVA szerverére javításra.")
|
---|
849 | self.add("finish_send_busy", "PIREP küldése...")
|
---|
850 | self.add("finish_send_success",
|
---|
851 | "A PIREP elküldése sikeres volt.")
|
---|
852 | self.add("finish_send_success_sec",
|
---|
853 | "Várhatod félelmet nem ismerő PIREP javítóink alapos észrevételeit! :)")
|
---|
854 | self.add("finish_send_already",
|
---|
855 | "Ehhez a járathoz már küldtél be PIREP-et!")
|
---|
856 | self.add("finish_send_already_sec",
|
---|
857 | "A korábban beküldött PIREP-et törölheted a MAVA honlapján.")
|
---|
858 | self.add("finish_send_notavail",
|
---|
859 | "Ez a járat már nem elérhető!")
|
---|
860 | self.add("finish_send_unknown",
|
---|
861 | "A MAVA szervere ismeretlen hibaüzenettel tért vissza.")
|
---|
862 | self.add("finish_send_unknown_sec",
|
---|
863 | "A debug naplóban részletesebb információt találsz.")
|
---|
864 | self.add("finish_send_failed",
|
---|
865 | "Nem tudtam elküldeni a PIREP-et a MAVA szerverére.")
|
---|
866 | self.add("finish_send_failed_sec",
|
---|
867 | "Lehet, hogy hálózati probléma áll fenn, amely esetben később\n" \
|
---|
868 | "újra próbálkozhatsz. Lehet azonban hiba is a loggerben:\n" \
|
---|
869 | "részletesebb információt találhatsz a debug naplóban.")
|
---|
870 |
|
---|
871 | # M A
|
---|
872 |
|
---|
873 | self.add("info_comments", "_Megjegyzések")
|
---|
874 | self.add("info_defects", "Hib_ajelenségek")
|
---|
875 | self.add("info_delay", "Késés kódok")
|
---|
876 |
|
---|
877 | # B V H Y R G F E P Z
|
---|
878 |
|
---|
879 | self.add("info_delay_loading", "_Betöltési problémák")
|
---|
880 | self.add("info_delay_vatsim", "_VATSIM probléma")
|
---|
881 | self.add("info_delay_net", "_Hálózati problémák")
|
---|
882 | self.add("info_delay_atc", "Irán_yító hibája")
|
---|
883 | self.add("info_delay_system", "_Rendszer elszállás/fagyás")
|
---|
884 | self.add("info_delay_nav", "Navi_gációs probléma")
|
---|
885 | self.add("info_delay_traffic", "_Forgalmi problémák")
|
---|
886 | self.add("info_delay_apron", "_Előtér navigációs probléma")
|
---|
887 | self.add("info_delay_weather", "Időjárási _problémák")
|
---|
888 | self.add("info_delay_personal", "S_zemélyes okok")
|
---|
889 |
|
---|
890 | self.add("statusbar_conn_tooltip",
|
---|
891 | 'A kapcsolat állapota.\n'
|
---|
892 | '<span foreground="grey">Szürke</span>: nincs kapcsolat.\n'
|
---|
893 | '<span foreground="red">Piros</span>: kapcsolódás folyamatban.\n'
|
---|
894 | '<span foreground="green">Zöld</span>: a kapcsolat él.')
|
---|
895 | self.add("statusbar_stage_tooltip", "A repülés fázisa")
|
---|
896 | self.add("statusbar_time_tooltip", "A szimulátor ideje UTC-ben")
|
---|
897 | self.add("statusbar_rating_tooltip", "A repülés pontszáma")
|
---|
898 | self.add("statusbar_busy_tooltip", "A háttérfolyamatok állapota.")
|
---|
899 |
|
---|
900 | self.add("flight_stage_boarding", u"beszállás")
|
---|
901 | self.add("flight_stage_pushback and taxi", u"hátratolás és kigurulás")
|
---|
902 | self.add("flight_stage_takeoff", u"felszállás")
|
---|
903 | self.add("flight_stage_RTO", u"megszakított felszállás")
|
---|
904 | self.add("flight_stage_climb", u"emelkedés")
|
---|
905 | self.add("flight_stage_cruise", u"utazó")
|
---|
906 | self.add("flight_stage_descent", u"süllyedés")
|
---|
907 | self.add("flight_stage_landing", u"leszállás")
|
---|
908 | self.add("flight_stage_taxi", u"begurulás")
|
---|
909 | self.add("flight_stage_parking", u"parkolás")
|
---|
910 | self.add("flight_stage_go-around", u"átstartolás")
|
---|
911 | self.add("flight_stage_end", u"kész")
|
---|
912 |
|
---|
913 | self.add("statusicon_showmain", "Mutasd a főablakot")
|
---|
914 | self.add("statusicon_showmonitor", "Mutasd a monitor ablakot")
|
---|
915 | self.add("statusicon_quit", "Kilépés")
|
---|
916 | self.add("statusicon_stage", "Fázis:")
|
---|
917 | self.add("statusicon_rating", "Pontszám:")
|
---|
918 |
|
---|
919 | self.add("update_title", "Frissítés")
|
---|
920 | self.add("update_needsudo",
|
---|
921 | "Lenne mit frissíteni, de a program hozzáférési jogok\n"
|
---|
922 | "hiányában nem tud írni a saját könyvtárába.\n\n"
|
---|
923 | "Kattints az OK gombra, ha el szeretnél indítani egy\n"
|
---|
924 | "segédprogramot adminisztrátori jogokkal, amely\n"
|
---|
925 | "befejezné a frissítést, egyébként a Mégse gombra.")
|
---|
926 | self.add("update_manifest_progress", "A manifesztum letöltése...")
|
---|
927 | self.add("update_manifest_done", "A manifesztum letöltve...")
|
---|
928 | self.add("update_files_progress", "Fájlok letöltése...")
|
---|
929 | self.add("update_files_bytes", "%d bájtot töltöttem le %d bájtból")
|
---|
930 | self.add("update_renaming", "A letöltött fájlok átnevezése...")
|
---|
931 | self.add("update_renamed", "Átneveztem a(z) %s fájlt")
|
---|
932 | self.add("update_removing", "Fájlok törlése...")
|
---|
933 | self.add("update_removed", "Letöröltem a(z) %s fájlt")
|
---|
934 | self.add("update_writing_manifest", "Az új manifesztum írása")
|
---|
935 | self.add("update_finished",
|
---|
936 | "A frissítés sikerült. Kattints az OK-ra a program újraindításához.")
|
---|
937 | self.add("update_nothing", "Nem volt mit frissíteni")
|
---|
938 | self.add("update_failed", "Nem sikerült, a részleteket lásd a debug naplóban.")
|
---|
939 |
|
---|
940 | self.add("weighthelp_usinghelp", "_Használom a segítséget")
|
---|
941 | self.add("weighthelp_usinghelp_tooltip",
|
---|
942 | "Ha bejelölöd, az alábbiakban kapsz egy kis segítséget "
|
---|
943 | "a járathoz szükséges hasznos teher megállapításához. "
|
---|
944 | "Ha igénybe veszed ezt a szolgáltatást, ez a tény "
|
---|
945 | "a naplóba bekerül.")
|
---|
946 | self.add("weighthelp_header_calculated", "Elvárt/\nszámított")
|
---|
947 | self.add("weighthelp_header_simulator", "Szimulátor\nadatok")
|
---|
948 | self.add("weighthelp_header_simulator_tooltip",
|
---|
949 | "Kattints erre a gombra a súlyadatoknak a szimulátortól "
|
---|
950 | "való lekérdezéséhez. Az értékek lent jelennek meg. Ha "
|
---|
951 | "egy érték a tűrés 10%-án belül van, akkor az "
|
---|
952 | '<b><span foreground="darkgreen">zöld</span></b> '
|
---|
953 | "színnel jelenik meg. Ha nem fér bele a tűrésbe, akkor "
|
---|
954 | '<b><span foreground="red">piros</span></b>, '
|
---|
955 | "egyébként "
|
---|
956 | '<b><span foreground="orange">sárga</span></b> '
|
---|
957 | "színben olvasható.")
|
---|
958 | self.add("weighthelp_crew", "Legénység (%s):")
|
---|
959 | self.add("weighthelp_pax", "Utasok (%s):")
|
---|
960 | self.add("weighthelp_baggage", "Poggyász:")
|
---|
961 | self.add("weighthelp_cargo", "Teher:")
|
---|
962 | self.add("weighthelp_mail", "Posta:")
|
---|
963 | self.add("weighthelp_payload", "Hasznos teher:")
|
---|
964 | self.add("weighthelp_dow", "DOW:")
|
---|
965 | self.add("weighthelp_zfw", "ZFW:")
|
---|
966 | self.add("weighthelp_gross", "Teljes tömeg:")
|
---|
967 | self.add("weighthelp_mzfw", "MZFW:")
|
---|
968 | self.add("weighthelp_mtow", "MTOW:")
|
---|
969 | self.add("weighthelp_mlw", "MLW:")
|
---|
970 | self.add("weighthelp_busy", "A tömegadatok lekérdezése...")
|
---|
971 |
|
---|
972 | self.add("gates_fleet_title", "_Flotta")
|
---|
973 | self.add("gates_gates_title", "LHBP kapuk")
|
---|
974 | self.add("gates_tailno", "Lajstromjel")
|
---|
975 | self.add("gates_planestatus", "Állapot")
|
---|
976 | self.add("gates_refresh", "_Adatok frissítése")
|
---|
977 | self.add("gates_refresh_tooltip",
|
---|
978 | "Kattints erre a gombra a fenti adatok frissítéséhez")
|
---|
979 | self.add("gates_planes_tooltip",
|
---|
980 | "Ez a táblázat tartalmazza a MAVA flottája összes "
|
---|
981 | "repülőgépének lajstromjelét és utolsó ismert helyét. "
|
---|
982 | "Ha egy repülőgép olyan kapun áll, amelyet másik gép is "
|
---|
983 | "elfoglal, akkor annak a repülőgépnek az adatai "
|
---|
984 | "<b><span foreground=\"red\">piros</span></b> "
|
---|
985 | "színnel jelennek meg.")
|
---|
986 | self.add("gates_gates_tooltip",
|
---|
987 | "A MAVA repülőgépei által elfoglalt kapuk száma "
|
---|
988 | '<b><span foreground="orange">sárga</span></b> színnel,'
|
---|
989 | "a többié feketén jelenik meg.")
|
---|
990 | self.add("gates_plane_away", "TÁVOL")
|
---|
991 | self.add("gates_plane_parking", "PARKOL")
|
---|
992 | self.add("gates_plane_unknown", "ISMERETLEN")
|
---|
993 |
|
---|
994 | self.add("prefs_title", "Beállítások")
|
---|
995 | self.add("prefs_tab_general", "_Általános")
|
---|
996 | self.add("prefs_tab_general_tooltip", "Általános beállítások")
|
---|
997 | self.add("prefs_tab_advanced", "_Haladó")
|
---|
998 | self.add("prefs_tab_advanced_tooltip",
|
---|
999 | "Haladó beállítások: óvatosan módosítsd őket!")
|
---|
1000 | self.add("prefs_language", "_Nyelv:")
|
---|
1001 | self.add("prefs_language_tooltip",
|
---|
1002 | "A program által használt nyelv")
|
---|
1003 | self.add("prefs_restart",
|
---|
1004 | "Újraindítás szükséges")
|
---|
1005 | self.add("prefs_language_restart_sec",
|
---|
1006 | "A program nyelvének megváltoztatása csak egy újraindítást "
|
---|
1007 | "követően jut érvényre.")
|
---|
1008 | self.add("prefs_lang_$system", "alapértelmezett")
|
---|
1009 | self.add("prefs_lang_en_GB", "angol")
|
---|
1010 | self.add("prefs_lang_hu_HU", "magyar")
|
---|
1011 | self.add("prefs_update_auto",
|
---|
1012 | "Frissítsd a programot _automatikusan")
|
---|
1013 | self.add("prefs_update_auto_tooltip",
|
---|
1014 | "Ha ez be van jelölve, a program induláskor frissítést "
|
---|
1015 | "keres, és ha talál, azokat letölti és telepíti. Ez "
|
---|
1016 | "biztosítja, hogy az elküldött PIREP minden megfelel "
|
---|
1017 | "a legújabb elvárásoknak.")
|
---|
1018 | self.add("prefs_update_auto_warning",
|
---|
1019 | "Az automatikus frissítés kikapcsolása azt okozhatja, "
|
---|
1020 | "hogy a program Nálad lévő verziója elavulttá válik, "
|
---|
1021 | "és a PIREP-jeidet így nem fogadják el.")
|
---|
1022 | self.add("prefs_update_url", "Frissítés _URL-je:")
|
---|
1023 | self.add("prefs_update_url_tooltip",
|
---|
1024 | "Az URL, ahol a frissítéseket keresi a program. Csak akkor "
|
---|
1025 | "változtasd meg, ha biztos vagy a dolgodban!")
|
---|
1026 |
|
---|
1027 | #------------------------------------------------------------------------------
|
---|
1028 |
|
---|
1029 | # The fallback language is English
|
---|
1030 | _English()
|
---|
1031 |
|
---|
1032 | # We also support Hungarian
|
---|
1033 | _Hungarian()
|
---|
1034 |
|
---|
1035 | #------------------------------------------------------------------------------
|
---|