source: src/mlx/i18n.py@ 116:d2b6481a2857

Last change on this file since 116:d2b6481a2857 was 115:fa8178825b29, checked in by István Váradi <ivaradi@…>, 13 years ago

Internationalized the automatic update window

File size: 41.6 KB
Line 
1# Internationalization support
2# -*- coding: utf-8 -*-
3
4#------------------------------------------------------------------------------
5
6_strings = None
7_fallback = None
8
9#------------------------------------------------------------------------------
10
11def setLanguage(language):
12 """Setup the internationalization support for the given language."""
13 print "i18n.setLanguage", language
14 _Strings.set(language)
15
16#------------------------------------------------------------------------------
17
18def 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
30class _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
118class _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_view", "View")
132 self.add("menu_view_monitor", "Show _monitor window")
133 self.add("menu_view_monitor_key", "m")
134 self.add("menu_view_debug", "Show _debug log")
135 self.add("menu_view_debug_key", "d")
136
137 self.add("tab_flight", "_Flight")
138 self.add("tab_flight_tooltip", "Flight wizard")
139 self.add("tab_flight_info", "Flight _info")
140 self.add("tab_flight_info_tooltip", "Further information regarding the flight")
141 self.add("tab_log", "_Log")
142 self.add("tab_log_tooltip",
143 "The log of your flight that will be sent to the MAVA website")
144 self.add("tab_debug_log", "_Debug log")
145 self.add("tab_debug_log_tooltip", "Log with debugging information.")
146 self.add("tab_help", "_Help")
147 self.add("tab_gates", "_Gates")
148
149 self.add("conn_failed", "Cannot connect to the simulator.")
150 self.add("conn_failed_sec",
151 "Rectify the situation, and press <b>Try again</b> "
152 "to try the connection again, "
153 "or <b>Cancel</b> to cancel the flight.")
154 self.add("conn_broken",
155 "The connection to the simulator failed unexpectedly.")
156 self.add("conn_broken_sec",
157 "If the simulator has crashed, restart it "
158 "and restore your flight as much as possible "
159 "to the state it was in before the crash. "
160 "Then press <b>Reconnect</b> to reconnect.\n\n"
161 "If you want to cancel the flight, press <b>Cancel</b>.")
162 self.add("button_cancel", "_Cancel")
163 self.add("button_tryagain", "_Try again")
164 self.add("button_reconnect", "_Reconnect")
165
166 self.add("login", "Login")
167 self.add("loginHelp",
168 "Enter your MAVA pilot's ID and password to\n" \
169 "log in to the MAVA website and download\n" \
170 "your booked flights.")
171 self.add("label_pilotID", "Pil_ot ID:")
172 self.add("login_pilotID_tooltip",
173 "Enter your MAVA pilot's ID. This usually starts with a "
174 "'P' followed by 3 digits.")
175 self.add("label_password", "_Password:")
176 self.add("login_password_tooltip",
177 "Enter the password for your pilot's ID")
178 self.add("remember_password", "_Remember password")
179 self.add("login_remember_tooltip",
180 "If checked, your password will be stored, so that you should "
181 "not have to enter it every time. Note, however, that the password "
182 "is stored as text, and anybody who can access your files will "
183 "be able to read it.")
184 self.add("button_login", "Logi_n")
185 self.add("login_button_tooltip", "Click to log in.")
186 self.add("login_busy", "Logging in...")
187 self.add("login_invalid", "Invalid pilot's ID or password.")
188 self.add("login_invalid_sec",
189 "Check the ID and try to reenter the password.")
190 self.add("login_failconn",
191 "Failed to connect to the MAVA website.")
192 self.add("login_failconn_sec", "Try again in a few minutes.")
193
194 self.add("button_next", "_Next")
195 self.add("button_next_tooltip", "Click to go to the next page.")
196 self.add("button_previous", "_Previous")
197 self.add("button_previous_tooltip", "Click to go to the previous page.")
198
199 self.add("flightsel_title", "Flight selection")
200 self.add("flightsel_help", "Select the flight you want to perform.")
201 self.add("flightsel_chelp", "You have selected the flight highlighted below.")
202 self.add("flightsel_no", "Flight no.")
203 self.add("flightsel_deptime", "Departure time [UTC]")
204 self.add("flightsel_from", "From")
205 self.add("flightsel_to", "To")
206
207 self.add("fleet_busy", "Retrieving fleet...")
208 self.add("fleet_failed",
209 "Failed to retrieve the information on the fleet.")
210 self.add("fleet_update_busy", "Updating plane status...")
211 self.add("fleet_update_failed",
212 "Failed to update the status of the airplane.")
213
214 self.add("gatesel_title", "LHBP gate selection")
215 self.add("gatesel_help",
216 "The airplane's gate position is invalid.\n\n" \
217 "Select the gate from which you\n" \
218 "would like to begin the flight.")
219 self.add("gatesel_conflict", "Gate conflict detected again.")
220 self.add("gatesel_conflict_sec",
221 "Try to select a different gate.")
222
223 self.add("connect_title", "Connect to the simulator")
224 self.add("connect_help",
225 "Load the aircraft below into the simulator and park it\n" \
226 "at the given airport, at the gate below, if present.\n\n" \
227 "Then press the Connect button to connect to the simulator.")
228 self.add("connect_chelp",
229 "The basic data of your flight can be read below.")
230 self.add("connect_flightno", "Flight number:")
231 self.add("connect_acft", "Aircraft:")
232 self.add("connect_tailno", "Tail number:")
233 self.add("connect_airport", "Airport:")
234 self.add("connect_gate", "Gate:")
235 self.add("button_connect", "_Connect")
236 self.add("button_connect_tooltip", "Click to connect to the simulator.")
237 self.add("connect_busy", "Connecting to the simulator...")
238
239 self.add("payload_title", "Payload")
240 self.add("payload_help",
241 "The briefing contains the weights below.\n" \
242 "Setup the cargo weight here and the payload weight "
243 "in the simulator.\n\n" \
244 "You can also check here what the simulator reports as ZFW.")
245 self.add("payload_chelp",
246 "You can see the weights in the briefing\n" \
247 "and the cargo weight you have selected below.\n\n" \
248 "You can also query the ZFW reported by the simulator.")
249 self.add("payload_crew", "Crew:")
250 self.add("payload_pax", "Passengers:")
251 self.add("payload_bag", "Baggage:")
252 self.add("payload_cargo", "_Cargo:")
253 self.add("payload_cargo_tooltip",
254 "The weight of the cargo for your flight.")
255 self.add("payload_mail", "Mail:")
256 self.add("payload_zfw", "Calculated ZFW:")
257 self.add("payload_fszfw", "_ZFW from FS:")
258 self.add("payload_fszfw_tooltip",
259 "Click here to refresh the ZFW value from the simulator.")
260 self.add("payload_zfw_busy", "Querying ZFW...")
261
262 self.add("time_title", "Time")
263 self.add("time_help",
264 "The departure and arrival times are displayed below in UTC.\n\n" \
265 "You can also query the current UTC time from the simulator.\n" \
266 "Ensure that you have enough time to properly prepare for the flight.")
267 self.add("time_chelp",
268 "The departure and arrival times are displayed below in UTC.\n\n" \
269 "You can also query the current UTC time from the simulator.\n")
270 self.add("time_departure", "Departure:")
271 self.add("time_arrival", "Arrival:")
272 self.add("time_fs", "_Time from FS:")
273 self.add("time_fs_tooltip",
274 "Click here to query the current UTC time from the simulator.")
275 self.add("time_busy", "Querying time...")
276
277 self.add("route_title", "Route")
278 self.add("route_help",
279 "Set your cruise flight level below, and\n" \
280 "if necessary, edit the flight plan.")
281 self.add("route_chelp",
282 "If necessary, you can modify the cruise level and\n" \
283 "the flight plan below during flight.\n" \
284 "If so, please, add a comment on why " \
285 "the modification became necessary.")
286 self.add("route_level", "_Cruise level:")
287 self.add("route_level_tooltip",
288 "The cruise flight level. Click on the arrows to increment "
289 "or decrement by 10, or enter the number on the keyboard.")
290 self.add("route_route", "_Route")
291 self.add("route_route_tooltip",
292 "The planned flight route in the standard format.")
293 self.add("route_down_notams", "Downloading NOTAMs...")
294 self.add("route_down_metars", "Downloading METARs...")
295
296 self.add("briefing_title", "Briefing (%d/2): %s")
297 self.add("briefing_departure", "departure")
298 self.add("briefing_arrival", "arrival")
299 self.add("briefing_help",
300 "Read carefully the NOTAMs and METAR below.\n\n" \
301 "You can edit the METAR if your simulator or network\n" \
302 "provides different weather.")
303 self.add("briefing_chelp",
304 "If your simulator or network provides a different\n" \
305 "weather, you can edit the METAR below.")
306 self.add("briefing_notams_init", "LHBP NOTAMs")
307 self.add("briefing_metar_init", "LHBP METAR")
308 self.add("briefing_button",
309 "I have read the briefing and am _ready to fly!")
310 self.add("briefing_notams_template", "%s NOTAMs")
311 self.add("briefing_metar_template", "%s _METAR")
312 self.add("briefing_notams_failed", "Could not download NOTAMs")
313 self.add("briefing_notams_missing",
314 "Could not download NOTAM for this airport")
315 self.add("briefing_metar_failed", "Could not download METAR")
316
317 self.add("takeoff_title", "Takeoff")
318 self.add("takeoff_help",
319 "Enter the runway and SID used, as well as the speeds.")
320 self.add("takeoff_chelp",
321 "The runway, SID and takeoff speeds logged can be seen below.")
322 self.add("takeoff_runway", "Run_way:")
323 self.add("takeoff_runway_tooltip",
324 "The runway the takeoff is performed from.")
325 self.add("takeoff_sid", "_SID:")
326 self.add("takeoff_sid_tooltip",
327 "The name of the Standard Instrument Deparature procedure followed.")
328 self.add("takeoff_v1", "V<sub>_1</sub>:")
329 self.add("takeoff_v1_tooltip", "The takeoff decision speed in knots.")
330 self.add("label_knots", "knots")
331 self.add("takeoff_vr", "V<sub>_R</sub>:")
332 self.add("takeoff_vr_tooltip", "The takeoff rotation speed in knots.")
333 self.add("takeoff_v2", "V<sub>_2</sub>:")
334 self.add("takeoff_v2_tooltip", "The takeoff safety speed in knots.")
335
336 self.add("landing_title", "Landing")
337 self.add("landing_help",
338 "Enter the STAR and/or transition, runway,\n" \
339 "approach type and V<sub>Ref</sub> used.")
340 self.add("landing_chelp",
341 "The STAR and/or transition, runway, approach\n" \
342 "type and V<sub>Ref</sub> logged can be seen below.")
343 self.add("landing_star", "_STAR:")
344 self.add("landing_star_tooltip",
345 "The name of Standard Terminal Arrival Route followed.")
346 self.add("landing_transition", "_Transition:")
347 self.add("landing_transition_tooltip",
348 "The name of transition executed or VECTORS if vectored by ATC.")
349 self.add("landing_runway", "Run_way:")
350 self.add("landing_runway_tooltip",
351 "The runway the landing is performed on.")
352 self.add("landing_approach", "_Approach type:")
353 self.add("landing_approach_tooltip",
354 "The type of the approach, e.g. ILS or VISUAL.")
355 self.add("landing_vref", "V<sub>_Ref</sub>:")
356 self.add("landing_vref_tooltip",
357 "The landing reference speed in knots.")
358
359 self.add("flighttype_scheduled", "scheduled")
360 self.add("flighttype_ot", "old-timer")
361 self.add("flighttype_vip", "VIP")
362 self.add("flighttype_charter", "charter")
363
364 self.add("finish_title", "Finish")
365 self.add("finish_help",
366 "There are some statistics about your flight below.\n\n" \
367 "Review the data, also on earlier pages, and if you are\n" \
368 "satisfied, you can save or send your PIREP.")
369 self.add("finish_rating", "Flight rating:")
370 self.add("finish_flight_time", "Flight time:")
371 self.add("finish_block_time", "Block time:")
372 self.add("finish_distance", "Distance flown:")
373 self.add("finish_fuel", "Fuel used:")
374 self.add("finish_type", "_Type:")
375 self.add("finish_type_tooltip", "Select the type of the flight.")
376 self.add("finish_online", "_Online flight")
377 self.add("finish_online_tooltip",
378 "Check if your flight was online, uncheck otherwise.")
379 self.add("finish_save", "S_ave PIREP...")
380 self.add("finish_save_tooltip",
381 "Click to save the PIREP into a file on your computer. " \
382 "The PIREP can be loaded and sent later.")
383 self.add("finish_send", "_Send PIREP...")
384 self.add("finish_send_tooltip",
385 "Click to send the PIREP to the MAVA website for further review.")
386 self.add("finish_send_busy", "Sending PIREP...")
387 self.add("finish_send_success",
388 "The PIREP was sent successfully.")
389 self.add("finish_send_success_sec",
390 "Await the thorough scrutiny by our fearless PIREP reviewers! :)")
391 self.add("finish_send_already",
392 "The PIREP for this flight has already been sent!")
393 self.add("finish_send_already_sec",
394 "You may clear the old PIREP on the MAVA website.")
395 self.add("finish_send_notavail",
396 "This flight is not available anymore!")
397 self.add("finish_send_unknown",
398 "The MAVA website returned with an unknown error.")
399 self.add("finish_send_unknown_sec",
400 "See the debug log for more information.")
401 self.add("finish_send_failed",
402 "Could not send the PIREP to the MAVA website.")
403 self.add("finish_send_failed_sec",
404 "This can be a network problem, in which case\n" \
405 "you may try again later. Or it can be a bug;\n" \
406 "see the debug log for more information.")
407
408 # C D
409
410 self.add("info_comments", "_Comments")
411 self.add("info_defects", "Flight _defects")
412 self.add("info_delay", "Delay codes")
413
414 # O V N E Y T R A W P
415
416 self.add("info_delay_loading", "L_oading problems")
417 self.add("info_delay_vatsim", "_VATSIM problem")
418 self.add("info_delay_net", "_Net problems")
419 self.add("info_delay_atc", "Controll_er's fault")
420 self.add("info_delay_system", "S_ystem crash/freeze")
421 self.add("info_delay_nav", "Naviga_tion problem")
422 self.add("info_delay_traffic", "T_raffic problems")
423 self.add("info_delay_apron", "_Apron navigation problem")
424 self.add("info_delay_weather", "_Weather problems")
425 self.add("info_delay_personal", "_Personal reasons")
426
427 self.add("statusbar_conn_tooltip",
428 'The state of the connection.\n'
429 '<span foreground="grey">Grey</span> means idle.\n'
430 '<span foreground="red">Red</span> means trying to connect.\n'
431 '<span foreground="green">Green</span> means connected.')
432 self.add("statusbar_stage_tooltip", "The flight stage")
433 self.add("statusbar_time_tooltip", "The simulator time in UTC")
434 self.add("statusbar_rating_tooltip", "The flight rating")
435 self.add("statusbar_busy_tooltip", "The status of the background tasks.")
436
437 self.add("flight_stage_boarding", "boarding")
438 self.add("flight_stage_pushback and taxi", "pushback and taxi")
439 self.add("flight_stage_takeoff", "takeoff")
440 self.add("flight_stage_RTO", "RTO")
441 self.add("flight_stage_climb", "climb")
442 self.add("flight_stage_cruise", "cruise")
443 self.add("flight_stage_descent", "descent")
444 self.add("flight_stage_landing", "landing")
445 self.add("flight_stage_taxi", "taxi")
446 self.add("flight_stage_parking", "parking")
447 self.add("flight_stage_go-around", "go-around")
448 self.add("flight_stage_end", "end")
449
450 self.add("statusicon_showmain", "Show main window")
451 self.add("statusicon_showmonitor", "Show monitor window")
452 self.add("statusicon_quit", "Quit")
453 self.add("statusicon_stage", "Stage:")
454 self.add("statusicon_rating", "Rating:")
455
456 self.add("update_title", "Update")
457 self.add("update_needsudo",
458 "There is an update available, but the program cannot write\n"
459 "its directory due to insufficient privileges.\n\n"
460 "Click OK, if you want to run a helper program\n"
461 "with administrator privileges "
462 "to complete the update,\n"
463 "Cancel otherwise.")
464 self.add("update_manifest_progress", "Downloading manifest...")
465 self.add("update_manifest_done", "Downloaded manifest...")
466 self.add("update_files_progress", "Downloading files...")
467 self.add("update_files_bytes", "Downloaded %d of %d bytes")
468 self.add("update_renaming", "Renaming downloaded files...")
469 self.add("update_renamed", "Renamed %s")
470 self.add("update_removing", "Removing files...")
471 self.add("update_removed", "Removed %s")
472 self.add("update_writing_manifest", "Writing the new manifest")
473 self.add("update_finished",
474 "Finished updating. Press OK to restart the program.")
475 self.add("update_nothing", "There was nothing to update")
476 self.add("update_failed", "Failed, see the debug log for details.")
477
478#------------------------------------------------------------------------------
479
480class _Hungarian(_Strings):
481 """The strings for the Hungarian language."""
482 def __init__(self):
483 """Construct the object."""
484 super(_Hungarian, self).__init__(["hu_HU", "hu"])
485
486 def initialize(self):
487 """Initialize the strings."""
488 self.add("menu_file", "Fájl")
489 self.add("menu_file_quit", "_Kilépés")
490 self.add("menu_file_quit_key", "k")
491 self.add("quit_question", "Biztosan ki akarsz lépni?")
492
493 self.add("menu_view", "Nézet")
494 self.add("menu_view_monitor", "Mutasd a _monitor ablakot")
495 self.add("menu_view_monitor_key", "m")
496 self.add("menu_view_debug", "Mutasd a _debug naplót")
497 self.add("menu_view_debug_key", "d")
498
499 self.add("tab_flight", "_Járat")
500 self.add("tab_flight_tooltip", "Járat varázsló")
501 self.add("tab_flight_info", "Járat _info")
502 self.add("tab_flight_info_tooltip", "Egyéb információk a járat teljesítésével kapcsolatban")
503 self.add("tab_log", "_Napló")
504 self.add("tab_log_tooltip",
505 "A járat naplója, amit majd el lehet küldeni a MAVA szerverére")
506 self.add("tab_debug_log", "_Debug napló")
507 self.add("tab_debug_log_tooltip",
508 "Hibakereséshez használható információkat tartalmazó napló.")
509 self.add("tab_help", "_Segítség")
510 self.add("tab_gates", "_Kapuk")
511
512 self.add("conn_failed", "Nem tudtam kapcsolódni a szimulátorhoz.")
513 self.add("conn_failed_sec",
514 "Korrigáld a problémát, majd nyomd meg az "
515 "<b>Próbáld újra</b> gombot a újrakapcsolódáshoz, "
516 "vagy a <b>Mégse</b> gombot a járat megszakításához.")
517 self.add("conn_broken",
518 "A szimulátorral való kapcsolat váratlanul megszakadt.")
519 self.add("conn_broken_sec",
520 "Ha a szimulátor elszállt, indítsd újra "
521 "és állítsd vissza a repülésed elszállás előtti "
522 "állapotát amennyire csak lehet. "
523 "Ezután nyomd meg az <b>Újrakapcsolódás</b> gombot "
524 "a kapcsolat ismételt felvételéhez.\n\n"
525 "Ha meg akarod szakítani a repülést, nyomd meg a "
526 "<b>Mégse</b> gombot.")
527 self.add("button_cancel", "_Mégse")
528 self.add("button_tryagain", "_Próbáld újra")
529 self.add("button_reconnect", "Újra_kapcsolódás")
530
531 self.add("login", "Bejelentkezés")
532 self.add("loginHelp",
533 "Írd be a MAVA pilóta azonosítódat és a\n" \
534 "bejelentkezéshez használt jelszavadat,\n" \
535 "hogy választhass a foglalt járataid közül.")
536 self.add("label_pilotID", "_Azonosító:")
537 self.add("login_pilotID_tooltip",
538 "Írd be a MAVA pilóta azonosítódat. Ez általában egy 'P' "
539 "betűvel kezdődik, melyet 3 számjegy követ.")
540 self.add("label_password", "Je_lszó:")
541 self.add("login_password_tooltip",
542 "Írd be a pilóta azonosítódhoz tartozó jelszavadat.")
543 self.add("remember_password", "_Emlékezz a jelszóra")
544 self.add("login_remember_tooltip",
545 "Ha ezt kiválasztod, a jelszavadat eltárolja a program, így "
546 "nem kell mindig újból beírnod. Vedd azonban figyelembe, "
547 "hogy a jelszót szövegként tároljuk, így bárki elolvashatja, "
548 "aki hozzáfér a fájljaidhoz.")
549 self.add("button_login", "_Bejelentkezés")
550 self.add("login_button_tooltip", "Kattints ide a bejelentkezéshez.")
551 self.add("login_busy", "Bejelentkezés...")
552 self.add("login_invalid", "Érvénytelen azonosító vagy jelszó.")
553 self.add("login_invalid_sec",
554 "Ellenőrízd az azonosítót, és próbáld meg újra beírni a jelszót.")
555 self.add("login_failconn",
556 "Nem sikerült kapcsolódni a MAVA honlaphoz.")
557 self.add("login_failconn_sec", "Próbáld meg pár perc múlva.")
558
559 self.add("button_next", "_Előre")
560 self.add("button_next_tooltip",
561 "Kattints ide, hogy a következő lapra ugorj.")
562 self.add("button_previous", "_Vissza")
563 self.add("button_previous_tooltip",
564 "Kattints ide, hogy az előző lapra ugorj.")
565
566 self.add("flightsel_title", "Járatválasztás")
567 self.add("flightsel_help", "Válaszd ki a járatot, amelyet le szeretnél repülni.")
568 self.add("flightsel_chelp", "A lent kiemelt járatot választottad.")
569 self.add("flightsel_no", "Járatszám")
570 self.add("flightsel_deptime", "Indulás ideje [UTC]")
571 self.add("flightsel_from", "Honnan")
572 self.add("flightsel_to", "Hová")
573
574 self.add("fleet_busy", "Flottaadatok letöltése...")
575 self.add("fleet_failed",
576 "Nem sikerült letöltenem a flotta adatait.")
577 self.add("fleet_update_busy", "Repülőgép pozíció frissítése...")
578 self.add("fleet_update_failed",
579 "Nem sikerült frissítenem a repülőgép pozícióját.")
580
581 self.add("gatesel_title", "LHBP kapuválasztás")
582 self.add("gatesel_help",
583 "A repülőgép kapu pozíciója érvénytelen.\n\n" \
584 "Válaszd ki azt a kaput, ahonnan\n" \
585 "el szeretnéd kezdeni a járatot.")
586 self.add("gatesel_conflict", "Ismét kapuütközés történt.")
587 self.add("gatesel_conflict_sec",
588 "Próbálj egy másik kaput választani.")
589
590 self.add("connect_title", "Kapcsolódás a szimulátorhoz")
591 self.add("connect_help",
592 "Tölsd be a lent látható repülőgépet a szimulátorba\n" \
593 "az alább megadott reptérre és kapuhoz.\n\n" \
594 "Ezután nyomd meg a Kapcsolódás gombot a kapcsolódáshoz.")
595 self.add("connect_chelp",
596 "A járat alapadatai lent olvashatók.")
597 self.add("connect_flightno", "Járatszám:")
598 self.add("connect_acft", "Típus:")
599 self.add("connect_tailno", "Lajstromjel:")
600 self.add("connect_airport", "Repülőtér:")
601 self.add("connect_gate", "Kapu:")
602 self.add("button_connect", "K_apcsolódás")
603 self.add("button_connect_tooltip",
604 "Kattints ide a szimulátorhoz való kapcsolódáshoz.")
605 self.add("connect_busy", "Kapcsolódás a szimulátorhoz...")
606
607 self.add("payload_title", "Terhelés")
608 self.add("payload_help",
609 "Az eligazítás az alábbi tömegeket tartalmazza.\n" \
610 "Allítsd be a teherszállítmány tömegét itt, a hasznos "
611 "terhet pedig a szimulátorban.\n\n" \
612 "Azt is ellenőrízheted, hogy a szimulátor milyen ZFW-t jelent.")
613 self.add("payload_chelp",
614 "Lent láthatók az eligazításban szereplő tömegek, valamint\n" \
615 "a teherszállítmány általad megadott tömege.\n\n" \
616 "Azt is ellenőrízheted, hogy a szimulátor milyen ZFW-t jelent.")
617 self.add("payload_crew", "Legénység:")
618 self.add("payload_pax", "Utasok:")
619 self.add("payload_bag", "Poggyász:")
620 self.add("payload_cargo", "_Teher:")
621 self.add("payload_cargo_tooltip",
622 "A teherszállítmány tömege.")
623 self.add("payload_mail", "Posta:")
624 self.add("payload_zfw", "Kiszámolt ZFW:")
625 self.add("payload_fszfw", "_ZFW a szimulátorból:")
626 self.add("payload_fszfw_tooltip",
627 "Kattints ide, hogy frissítsd a ZFW értékét a szimulátorból.")
628 self.add("payload_zfw_busy", "ZFW lekérdezése...")
629
630 self.add("time_title", "Menetrend")
631 self.add("time_help",
632 "Az indulás és az érkezés ideje lent látható UTC szerint.\n\n" \
633 "A szimulátor aktuális UTC szerinti idejét is lekérdezheted.\n" \
634 "Győzödj meg arról, hogy elég időd van a repülés előkészítéséhez.")
635 self.add("time_chelp",
636 "Az indulás és az érkezés ideje lent látható UTC szerint.\n\n" \
637 "A szimulátor aktuális UTC szerinti idejét is lekérdezheted.")
638 self.add("time_departure", "Indulás:")
639 self.add("time_arrival", "Érkezés:")
640 self.add("time_fs", "Idő a s_zimulátorból:")
641 self.add("time_fs_tooltip",
642 "Kattings ide, hogy frissítsd a szimulátor aktuális UTC szerint idejét.")
643 self.add("time_busy", "Idő lekérdezése...")
644
645 self.add("route_title", "Útvonal")
646 self.add("route_help",
647 "Állítsd be az utazószintet lent, és ha szükséges,\n" \
648 "módosítsd az útvonaltervet.")
649 self.add("route_chelp",
650 "Ha szükséges, lent módosíthatod az utazószintet és\n" \
651 "az útvonaltervet repülés közben is.\n" \
652 "Ha így teszel, légy szíves a megjegyzés mezőben " \
653 "ismertesd ennek okát.")
654 self.add("route_level", "_Utazószint:")
655 self.add("route_level_tooltip", "Az utazószint.")
656 self.add("route_route", "Út_vonal")
657 self.add("route_route_tooltip", "Az útvonal a szokásos formátumban.")
658 self.add("route_down_notams", "NOTAM-ok letöltése...")
659 self.add("route_down_metars", "METAR-ok letöltése...")
660
661 self.add("briefing_title", "Eligazítás (%d/2): %s")
662 self.add("briefing_departure", "indulás")
663 self.add("briefing_arrival", "érkezés")
664 self.add("briefing_help",
665 "Olvasd el figyelmesen a lenti NOTAM-okat és METAR-t.\n\n" \
666 "Ha a szimulátor vagy hálózat más időjárást ad,\n" \
667 "a METAR-t módosíthatod.")
668 self.add("briefing_chelp",
669 "Ha a szimulátor vagy hálózat más időjárást ad,\n" \
670 "a METAR-t módosíthatod.")
671 self.add("briefing_notams_init", "LHBP NOTAM-ok")
672 self.add("briefing_metar_init", "LHBP METAR")
673 self.add("briefing_button",
674 "Elolvastam az eligazítást, és készen állok a _repülésre!")
675 self.add("briefing_notams_template", "%s NOTAM-ok")
676 self.add("briefing_metar_template", "%s _METAR")
677 self.add("briefing_notams_failed", "Nem tudtam letölteni a NOTAM-okat.")
678 self.add("briefing_notams_missing",
679 "Ehhez a repülőtérhez nem találtam NOTAM-ot.")
680 self.add("briefing_metar_failed", "Nem tudtam letölteni a METAR-t.")
681
682 self.add("takeoff_title", "Felszállás")
683 self.add("takeoff_help",
684 "Írd be a felszállásra használt futópálya és SID nevét, valamint a sebességeket.")
685 self.add("takeoff_chelp",
686 "A naplózott futópálya, SID és a sebességek lent olvashatók.")
687 self.add("takeoff_runway", "_Futópálya:")
688 self.add("takeoff_runway_tooltip",
689 "A felszállásra használt futópálya.")
690 self.add("takeoff_sid", "_SID:")
691 self.add("takeoff_sid_tooltip",
692 "Az alkalmazott szabványos műszeres indulási eljárás neve.")
693 self.add("takeoff_v1", "V<sub>_1</sub>:")
694 self.add("takeoff_v1_tooltip", "Az elhatározási sebesség csomóban.")
695 self.add("label_knots", "csomó")
696 self.add("takeoff_vr", "V<sub>_R</sub>:")
697 self.add("takeoff_vr_tooltip", "Az elemelkedési sebesség csomóban.")
698 self.add("takeoff_v2", "V<sub>_2</sub>:")
699 self.add("takeoff_v2_tooltip", "A biztonságos emelkedési sebesség csomóban.")
700
701 self.add("landing_title", "Leszállás")
702 self.add("landing_help",
703 "Írd be az alkalmazott STAR és/vagy bevezetési eljárás nevét,\n"
704 "a használt futópályát, a megközelítés módját, és a V<sub>Ref</sub>-et.")
705 self.add("landing_chelp",
706 "Az alkalmazott STAR és/vagy bevezetési eljárás neve, a használt\n"
707 "futópálya, a megközelítés módja és a V<sub>Ref</sub> lent olvasható.")
708 self.add("landing_star", "_STAR:")
709 self.add("landing_star_tooltip",
710 "A követett szabványos érkezési eljárás neve.")
711 self.add("landing_transition", "_Bevezetés:")
712 self.add("landing_transition_tooltip",
713 "Az alkalmazott bevezetési eljárás neve, vagy VECTORS, "
714 "ha az irányítás vezetett be.")
715 self.add("landing_runway", "_Futópálya:")
716 self.add("landing_runway_tooltip",
717 "A leszállásra használt futópálya.")
718 self.add("landing_approach", "_Megközelítés típusa:")
719 self.add("landing_approach_tooltip",
720 "A megközelítgés típusa, pl. ILS vagy VISUAL.")
721 self.add("landing_vref", "V<sub>_Ref</sub>:")
722 self.add("landing_vref_tooltip",
723 "A leszállási sebesség csomóban.")
724
725 self.add("flighttype_scheduled", "menetrendszerinti")
726 self.add("flighttype_ot", "old-timer")
727 self.add("flighttype_vip", "VIP")
728 self.add("flighttype_charter", "charter")
729
730 self.add("finish_title", "Lezárás")
731 self.add("finish_help",
732 "Lent olvasható némi statisztika a járat teljesítéséről.\n\n" \
733 "Ellenőrízd az adatokat, az előző oldalakon is, és ha\n" \
734 "megfelelnek, elmentheted vagy elküldheted a PIREP-et.")
735 self.add("finish_rating", "Pontszám:")
736 self.add("finish_flight_time", "Repülési idő:")
737 self.add("finish_block_time", "Blokk idő:")
738 self.add("finish_distance", "Repült táv:")
739 self.add("finish_fuel", "Elhasznált üzemanyag:")
740 self.add("finish_type", "_Típus:")
741 self.add("finish_type_tooltip", "Válaszd ki a repülés típusát.")
742 self.add("finish_online", "_Online repülés")
743 self.add("finish_online_tooltip",
744 "Jelöld be, ha a repülésed a hálózaton történt, egyébként " \
745 "szűntesd meg a kijelölést.")
746 self.add("finish_save", "PIREP _mentése...")
747 self.add("finish_save_tooltip",
748 "Kattints ide, hogy elmenthesd a PIREP-et egy fájlba a számítógépeden. " \
749 "A PIREP-et később be lehet tölteni és el lehet küldeni.")
750 self.add("finish_send", "PIREP _elküldése...")
751 self.add("finish_send_tooltip",
752 "Kattints ide, hogy elküldd a PIREP-et a MAVA szerverére javításra.")
753 self.add("finish_send_busy", "PIREP küldése...")
754 self.add("finish_send_success",
755 "A PIREP elküldése sikeres volt.")
756 self.add("finish_send_success_sec",
757 "Várhatod félelmet nem ismerő PIREP javítóink alapos észrevételeit! :)")
758 self.add("finish_send_already",
759 "Ehhez a járathoz már küldtél be PIREP-et!")
760 self.add("finish_send_already_sec",
761 "A korábban beküldött PIREP-et törölheted a MAVA honlapján.")
762 self.add("finish_send_notavail",
763 "Ez a járat már nem elérhető!")
764 self.add("finish_send_unknown",
765 "A MAVA szervere ismeretlen hibaüzenettel tért vissza.")
766 self.add("finish_send_unknown_sec",
767 "A debug naplóban részletesebb információt találsz.")
768 self.add("finish_send_failed",
769 "Nem tudtam elküldeni a PIREP-et a MAVA szerverére.")
770 self.add("finish_send_failed_sec",
771 "Lehet, hogy hálózati probléma áll fenn, amely esetben később\n" \
772 "újra próbálkozhatsz. Lehet azonban hiba is a loggerben:\n" \
773 "részletesebb információt találhatsz a debug naplóban.")
774
775 # M A
776
777 self.add("info_comments", "_Megjegyzések")
778 self.add("info_defects", "Hib_ajelenségek")
779 self.add("info_delay", "Késés kódok")
780
781 # B V H Y R G F E P Z
782
783 self.add("info_delay_loading", "_Betöltési problémák")
784 self.add("info_delay_vatsim", "_VATSIM probléma")
785 self.add("info_delay_net", "_Hálózati problémák")
786 self.add("info_delay_atc", "Irán_yító hibája")
787 self.add("info_delay_system", "_Rendszer elszállás/fagyás")
788 self.add("info_delay_nav", "Navi_gációs probléma")
789 self.add("info_delay_traffic", "_Forgalmi problémák")
790 self.add("info_delay_apron", "_Előtér navigációs probléma")
791 self.add("info_delay_weather", "Időjárási _problémák")
792 self.add("info_delay_personal", "S_zemélyes okok")
793
794 self.add("statusbar_conn_tooltip",
795 'A kapcsolat állapota.\n'
796 '<span foreground="grey">Szürke</span>: nincs kapcsolat.\n'
797 '<span foreground="red">Piros</span>: kapcsolódás folyamatban.\n'
798 '<span foreground="green">Zöld</span>: a kapcsolat él.')
799 self.add("statusbar_stage_tooltip", "A repülés fázisa")
800 self.add("statusbar_time_tooltip", "A szimulátor ideje UTC-ben")
801 self.add("statusbar_rating_tooltip", "A repülés pontszáma")
802 self.add("statusbar_busy_tooltip", "A háttérfolyamatok állapota.")
803
804 self.add("flight_stage_boarding", u"beszállás")
805 self.add("flight_stage_pushback and taxi", u"hátratolás és kigurulás")
806 self.add("flight_stage_takeoff", u"felszállás")
807 self.add("flight_stage_RTO", u"megszakított felszállás")
808 self.add("flight_stage_climb", u"emelkedés")
809 self.add("flight_stage_cruise", u"utazó")
810 self.add("flight_stage_descent", u"süllyedés")
811 self.add("flight_stage_landing", u"leszállás")
812 self.add("flight_stage_taxi", u"begurulás")
813 self.add("flight_stage_parking", u"parkolás")
814 self.add("flight_stage_go-around", u"átstartolás")
815 self.add("flight_stage_end", u"kész")
816
817 self.add("statusicon_showmain", "Mutasd a főablakot")
818 self.add("statusicon_showmonitor", "Mutasd a monitor ablakot")
819 self.add("statusicon_quit", "Kilépés")
820 self.add("statusicon_stage", "Fázis:")
821 self.add("statusicon_rating", "Pontszám:")
822
823 self.add("update_title", "Frissítés")
824 self.add("update_needsudo",
825 "Lenne mit frissíteni, de a program hozzáférési jogok\n"
826 "hiányában nem tud írni a saját könyvtárába.\n\n"
827 "Kattints az OK gombra, ha el szeretnél indítani egy\n"
828 "segédprogramot adminisztrátori jogokkal, amely\n"
829 "befejezné a frissítést, egyébként a Mégse gombra.")
830 self.add("update_manifest_progress", "A manifesztum letöltése...")
831 self.add("update_manifest_done", "A manifesztum letöltve...")
832 self.add("update_files_progress", "Fájlok letöltése...")
833 self.add("update_files_bytes", "%d bájtot töltöttem le %d bájtból")
834 self.add("update_renaming", "A letöltött fájlok átnevezése...")
835 self.add("update_renamed", "Átneveztem a(z) %s fájlt")
836 self.add("update_removing", "Fájlok törlése...")
837 self.add("update_removed", "Letöröltem a(z) %s fájlt")
838 self.add("update_writing_manifest", "Az új manifesztum írása")
839 self.add("update_finished",
840 "A frissítés sikerült. Kattints az OK-ra a program újraindításához.")
841 self.add("update_nothing", "Nem volt mit frissíteni")
842 self.add("update_failed", "Nem sikerült, a részleteket lásd a debug naplóban.")
843
844#------------------------------------------------------------------------------
845
846# The fallback language is English
847_English()
848
849# We also support Hungarian
850_Hungarian()
851
852#------------------------------------------------------------------------------
Note: See TracBrowser for help on using the repository browser.