source: src/mlx/i18n.py@ 121:5ce72e33e807

Last change on this file since 121:5ce72e33e807 was 118:aaa1bc00131b, checked in by István Váradi <ivaradi@…>, 13 years ago

Implemented the gates tab

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