source: src/mlx/i18n.py@ 109:83b56617aec1

Last change on this file since 109:83b56617aec1 was 108:3ebb3c906fd1, checked in by István Váradi <ivaradi@…>, 13 years ago

The connection failure dialogs are now internationalized

File size: 33.3 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("tab_flight", "_Flight")
127 self.add("tab_flight_tooltip", "Flight wizard")
128 self.add("tab_flight_info", "Flight _info")
129 self.add("tab_flight_info_tooltip", "Further information regarding the flight")
130 self.add("tab_log", "_Log")
131 self.add("tab_log_tooltip",
132 "The log of your flight that will be sent to the MAVA website")
133 self.add("tab_debug_log", "_Debug log")
134 self.add("tab_help", "_Help")
135 self.add("tab_gates", "_Gates")
136
137 self.add("conn_failed", "Cannot connect to the simulator.")
138 self.add("conn_failed_sec",
139 "Rectify the situation, and press <b>Try again</b> "
140 "to try the connection again, "
141 "or <b>Cancel</b> to cancel the flight.")
142 self.add("conn_broken",
143 "The connection to the simulator failed unexpectedly.")
144 self.add("conn_broken_sec",
145 "If the simulator has crashed, restart it "
146 "and restore your flight as much as possible "
147 "to the state it was in before the crash. "
148 "Then press <b>Reconnect</b> to reconnect.\n\n"
149 "If you want to cancel the flight, press <b>Cancel</b>.")
150 self.add("button_cancel", "_Cancel")
151 self.add("button_tryagain", "_Try again")
152 self.add("button_reconnect", "_Reconnect")
153
154 self.add("login", "Login")
155 self.add("loginHelp",
156 "Enter your MAVA pilot's ID and password to\n" \
157 "log in to the MAVA website and download\n" \
158 "your booked flights.")
159 self.add("label_pilotID", "Pil_ot ID:")
160 self.add("login_pilotID_tooltip",
161 "Enter your MAVA pilot's ID. This usually starts with a "
162 "'P' followed by 3 digits.")
163 self.add("label_password", "_Password:")
164 self.add("login_password_tooltip",
165 "Enter the password for your pilot's ID")
166 self.add("remember_password", "_Remember password")
167 self.add("login_remember_tooltip",
168 "If checked, your password will be stored, so that you should "
169 "not have to enter it every time. Note, however, that the password "
170 "is stored as text, and anybody who can access your files will "
171 "be able to read it.")
172 self.add("button_login", "Logi_n")
173 self.add("login_button_tooltip", "Click to log in.")
174 self.add("login_busy", "Logging in...")
175 self.add("login_invalid", "Invalid pilot's ID or password.")
176 self.add("login_invalid_sec",
177 "Check the ID and try to reenter the password.")
178 self.add("login_failconn",
179 "Failed to connect to the MAVA website.")
180 self.add("login_failconn_sec", "Try again in a few minutes.")
181
182 self.add("button_next", "_Next")
183 self.add("button_next_tooltip", "Click to go to the next page.")
184 self.add("button_previous", "_Previous")
185 self.add("button_previous_tooltip", "Click to go to the previous page.")
186
187 self.add("flightsel_title", "Flight selection")
188 self.add("flightsel_help", "Select the flight you want to perform.")
189 self.add("flightsel_chelp", "You have selected the flight highlighted below.")
190 self.add("flightsel_no", "Flight no.")
191 self.add("flightsel_deptime", "Departure time [UTC]")
192 self.add("flightsel_from", "From")
193 self.add("flightsel_to", "To")
194
195 self.add("fleet_busy", "Retrieving fleet...")
196 self.add("fleet_failed",
197 "Failed to retrieve the information on the fleet.")
198 self.add("fleet_update_busy", "Updating plane status...")
199 self.add("fleet_update_failed",
200 "Failed to update the status of the airplane.")
201
202 self.add("gatesel_title", "LHBP gate selection")
203 self.add("gatesel_help",
204 "The airplane's gate position is invalid.\n\n" \
205 "Select the gate from which you\n" \
206 "would like to begin the flight.")
207 self.add("gatesel_conflict", "Gate conflict detected again.")
208 self.add("gatesel_conflict_sec",
209 "Try to select a different gate.")
210
211 self.add("connect_title", "Connect to the simulator")
212 self.add("connect_help",
213 "Load the aircraft below into the simulator and park it\n" \
214 "at the given airport, at the gate below, if present.\n\n" \
215 "Then press the Connect button to connect to the simulator.")
216 self.add("connect_chelp",
217 "The basic data of your flight can be read below.")
218 self.add("connect_flightno", "Flight number:")
219 self.add("connect_acft", "Aircraft:")
220 self.add("connect_tailno", "Tail number:")
221 self.add("connect_airport", "Airport:")
222 self.add("connect_gate", "Gate:")
223 self.add("button_connect", "_Connect")
224 self.add("button_connect_tooltip", "Click to connect to the simulator.")
225 self.add("connect_busy", "Connecting to the simulator...")
226
227 self.add("payload_title", "Payload")
228 self.add("payload_help",
229 "The briefing contains the weights below.\n" \
230 "Setup the cargo weight here and the payload weight "
231 "in the simulator.\n\n" \
232 "You can also check here what the simulator reports as ZFW.")
233 self.add("payload_chelp",
234 "You can see the weights in the briefing\n" \
235 "and the cargo weight you have selected below.\n\n" \
236 "You can also query the ZFW reported by the simulator.")
237 self.add("payload_crew", "Crew:")
238 self.add("payload_pax", "Passengers:")
239 self.add("payload_bag", "Baggage:")
240 self.add("payload_cargo", "_Cargo:")
241 self.add("payload_cargo_tooltip",
242 "The weight of the cargo for your flight.")
243 self.add("payload_mail", "Mail:")
244 self.add("payload_zfw", "Calculated ZFW:")
245 self.add("payload_fszfw", "_ZFW from FS:")
246 self.add("payload_fszfw_tooltip",
247 "Click here to refresh the ZFW value from the simulator.")
248 self.add("payload_zfw_busy", "Querying ZFW...")
249
250 self.add("time_title", "Time")
251 self.add("time_help",
252 "The departure and arrival times are displayed below in UTC.\n\n" \
253 "You can also query the current UTC time from the simulator.\n" \
254 "Ensure that you have enough time to properly prepare for the flight.")
255 self.add("time_chelp",
256 "The departure and arrival times are displayed below in UTC.\n\n" \
257 "You can also query the current UTC time from the simulator.\n")
258 self.add("time_departure", "Departure:")
259 self.add("time_arrival", "Arrival:")
260 self.add("time_fs", "_Time from FS:")
261 self.add("time_fs_tooltip",
262 "Click here to query the current UTC time from the simulator.")
263 self.add("time_busy", "Querying time...")
264
265 self.add("route_title", "Route")
266 self.add("route_help",
267 "Set your cruise flight level below, and\n" \
268 "if necessary, edit the flight plan.")
269 self.add("route_chelp",
270 "If necessary, you can modify the cruise level and\n" \
271 "the flight plan below during flight.\n" \
272 "If so, please, add a comment on why " \
273 "the modification became necessary.")
274 self.add("route_level", "_Cruise level:")
275 self.add("route_level_tooltip",
276 "The cruise flight level. Click on the arrows to increment "
277 "or decrement by 10, or enter the number on the keyboard.")
278 self.add("route_route", "_Route")
279 self.add("route_route_tooltip",
280 "The planned flight route in the standard format.")
281 self.add("route_down_notams", "Downloading NOTAMs...")
282 self.add("route_down_metars", "Downloading METARs...")
283
284 self.add("briefing_title", "Briefing (%d/2): %s")
285 self.add("briefing_departure", "departure")
286 self.add("briefing_arrival", "arrival")
287 self.add("briefing_help",
288 "Read carefully the NOTAMs and METAR below.\n\n" \
289 "You can edit the METAR if your simulator or network\n" \
290 "provides different weather.")
291 self.add("briefing_chelp",
292 "If your simulator or network provides a different\n" \
293 "weather, you can edit the METAR below.")
294 self.add("briefing_notams_init", "LHBP NOTAMs")
295 self.add("briefing_metar_init", "LHBP METAR")
296 self.add("briefing_button",
297 "I have read the briefing and am _ready to fly!")
298 self.add("briefing_notams_template", "%s NOTAMs")
299 self.add("briefing_metar_template", "%s _METAR")
300 self.add("briefing_notams_failed", "Could not download NOTAMs")
301 self.add("briefing_notams_missing",
302 "Could not download NOTAM for this airport")
303 self.add("briefing_metar_failed", "Could not download METAR")
304
305 self.add("takeoff_title", "Takeoff")
306 self.add("takeoff_help",
307 "Enter the runway and SID used, as well as the speeds.")
308 self.add("takeoff_chelp",
309 "The runway, SID and takeoff speeds logged can be seen below.")
310 self.add("takeoff_runway", "Run_way:")
311 self.add("takeoff_runway_tooltip",
312 "The runway the takeoff is performed from.")
313 self.add("takeoff_sid", "_SID:")
314 self.add("takeoff_sid_tooltip",
315 "The name of the Standard Instrument Deparature procedure followed.")
316 self.add("takeoff_v1", "V<sub>_1</sub>:")
317 self.add("takeoff_v1_tooltip", "The takeoff decision speed in knots.")
318 self.add("label_knots", "knots")
319 self.add("takeoff_vr", "V<sub>_R</sub>:")
320 self.add("takeoff_vr_tooltip", "The takeoff rotation speed in knots.")
321 self.add("takeoff_v2", "V<sub>_2</sub>:")
322 self.add("takeoff_v2_tooltip", "The takeoff safety speed in knots.")
323
324 self.add("landing_title", "Landing")
325 self.add("landing_help",
326 "Enter the STAR and/or transition, runway,\n" \
327 "approach type and V<sub>Ref</sub> used.")
328 self.add("landing_chelp",
329 "The STAR and/or transition, runway, approach\n" \
330 "type and V<sub>Ref</sub> logged can be seen below.")
331 self.add("landing_star", "_STAR:")
332 self.add("landing_star_tooltip",
333 "The name of Standard Terminal Arrival Route followed.")
334 self.add("landing_transition", "_Transition:")
335 self.add("landing_transition_tooltip",
336 "The name of transition executed or VECTORS if vectored by ATC.")
337 self.add("landing_runway", "Run_way:")
338 self.add("landing_runway_tooltip",
339 "The runway the landing is performed on.")
340 self.add("landing_approach", "_Approach type:")
341 self.add("landing_approach_tooltip",
342 "The type of the approach, e.g. ILS or VISUAL.")
343 self.add("landing_vref", "V<sub>_Ref</sub>:")
344 self.add("landing_vref_tooltip",
345 "The landing reference speed in knots.")
346
347 self.add("flighttype_scheduled", "scheduled")
348 self.add("flighttype_ot", "old-timer")
349 self.add("flighttype_vip", "VIP")
350 self.add("flighttype_charter", "charter")
351
352 self.add("finish_title", "Finish")
353 self.add("finish_help",
354 "There are some statistics about your flight below.\n\n" \
355 "Review the data, also on earlier pages, and if you are\n" \
356 "satisfied, you can save or send your PIREP.")
357 self.add("finish_rating", "Flight rating:")
358 self.add("finish_flight_time", "Flight time:")
359 self.add("finish_block_time", "Block time:")
360 self.add("finish_distance", "Distance flown:")
361 self.add("finish_fuel", "Fuel used:")
362 self.add("finish_type", "_Type:")
363 self.add("finish_type_tooltip", "Select the type of the flight.")
364 self.add("finish_online", "_Online flight")
365 self.add("finish_online_tooltip",
366 "Check if your flight was online, uncheck otherwise.")
367 self.add("finish_save", "S_ave PIREP...")
368 self.add("finish_save_tooltip",
369 "Click to save the PIREP into a file on your computer. " \
370 "The PIREP can be loaded and sent later.")
371 self.add("finish_send", "_Send PIREP...")
372 self.add("finish_send_tooltip",
373 "Click to send the PIREP to the MAVA website for further review.")
374 self.add("finish_send_busy", "Sending PIREP...")
375 self.add("finish_send_success",
376 "The PIREP was sent successfully.")
377 self.add("finish_send_success_sec",
378 "Await the thorough scrutiny by our fearless PIREP reviewers! :)")
379 self.add("finish_send_already",
380 "The PIREP for this flight has already been sent!")
381 self.add("finish_send_already_sec",
382 "You may clear the old PIREP on the MAVA website.")
383 self.add("finish_send_notavail",
384 "This flight is not available anymore!")
385 self.add("finish_send_unknown",
386 "The MAVA website returned with an unknown error.")
387 self.add("finish_send_unknown_sec",
388 "See the debug log for more information.")
389 self.add("finish_send_failed",
390 "Could not send the PIREP to the MAVA website.")
391 self.add("finish_send_failed_sec",
392 "This can be a network problem, in which case\n" \
393 "you may try again later. Or it can be a bug;\n" \
394 "see the debug log for more information.")
395
396#------------------------------------------------------------------------------
397
398class _Hungarian(_Strings):
399 """The strings for the Hungarian language."""
400 def __init__(self):
401 """Construct the object."""
402 super(_Hungarian, self).__init__(["hu_HU", "hu"])
403
404 def initialize(self):
405 """Initialize the strings."""
406 self.add("tab_flight", "_Járat")
407 self.add("tab_flight_tooltip", "Járat varázsló")
408 self.add("tab_flight_info", "Járat _info")
409 self.add("tab_flight_info_tooltip", "Egyéb információk a járat teljesítésével kapcsolatban")
410 self.add("tab_log", "_Napló")
411 self.add("tab_log_tooltip",
412 "A járat naplója, amit majd el lehet küldeni a MAVA szerverére")
413 self.add("tab_debug_log", "_Debug napló")
414 self.add("tab_help", "_Segítség")
415 self.add("tab_gates", "_Kapuk")
416
417 self.add("conn_failed", "Nem tudtam kapcsolódni a szimulátorhoz.")
418 self.add("conn_failed_sec",
419 "Korrigáld a problémát, majd nyomd meg az "
420 "<b>Próbáld újra</b> gombot a újrakapcsolódáshoz, "
421 "vagy a <b>Mégse</b> gombot a járat megszakításához.")
422 self.add("conn_broken",
423 "A szimulátorral való kapcsolat váratlanul megszakadt.")
424 self.add("conn_broken_sec",
425 "Ha a szimulátor elszállt, indítsd újra "
426 "és állítsd vissza a repülésed elszállás előtti "
427 "állapotát amennyire csak lehet. "
428 "Ezután nyomd meg az <b>Újrakapcsolódás</b> gombot "
429 "a kapcsolat ismételt felvételéhez.\n\n"
430 "Ha meg akarod szakítani a repülést, nyomd meg a "
431 "<b>Mégse</b> gombot.")
432 self.add("button_cancel", "_Mégse")
433 self.add("button_tryagain", "_Próbáld újra")
434 self.add("button_reconnect", "Újra_kapcsolódás")
435
436 self.add("login", "Bejelentkezés")
437 self.add("loginHelp",
438 "Írd be a MAVA pilóta azonosítódat és a\n" \
439 "bejelentkezéshez használt jelszavadat,\n" \
440 "hogy választhass a foglalt járataid közül.")
441 self.add("label_pilotID", "_Azonosító:")
442 self.add("login_pilotID_tooltip",
443 "Írd be a MAVA pilóta azonosítódat. Ez általában egy 'P' "
444 "betűvel kezdődik, melyet 3 számjegy követ.")
445 self.add("label_password", "Je_lszó:")
446 self.add("login_password_tooltip",
447 "Írd be a pilóta azonosítódhoz tartozó jelszavadat.")
448 self.add("remember_password", "_Emlékezz a jelszóra")
449 self.add("login_remember_tooltip",
450 "Ha ezt kiválasztod, a jelszavadat eltárolja a program, így "
451 "nem kell mindig újból beírnod. Vedd azonban figyelembe, "
452 "hogy a jelszót szövegként tároljuk, így bárki elolvashatja, "
453 "aki hozzáfér a fájljaidhoz.")
454 self.add("button_login", "_Bejelentkezés")
455 self.add("login_button_tooltip", "Kattints ide a bejelentkezéshez.")
456 self.add("login_busy", "Bejelentkezés...")
457 self.add("login_invalid", "Érvénytelen azonosító vagy jelszó.")
458 self.add("login_invalid_sec",
459 "Ellenőrízd az azonosítót, és próbáld meg újra beírni a jelszót.")
460 self.add("login_failconn",
461 "Nem sikerült kapcsolódni a MAVA honlaphoz.")
462 self.add("login_failconn_sec", "Próbáld meg pár perc múlva.")
463
464 self.add("button_next", "_Előre")
465 self.add("button_next_tooltip",
466 "Kattints ide, hogy a következő lapra ugorj.")
467 self.add("button_previous", "_Vissza")
468 self.add("button_previous_tooltip",
469 "Kattints ide, hogy az előző lapra ugorj.")
470
471 self.add("flightsel_title", "Járatválasztás")
472 self.add("flightsel_help", "Válaszd ki a járatot, amelyet le szeretnél repülni.")
473 self.add("flightsel_chelp", "A lent kiemelt járatot választottad.")
474 self.add("flightsel_no", "Járatszám")
475 self.add("flightsel_deptime", "Indulás ideje [UTC]")
476 self.add("flightsel_from", "Honnan")
477 self.add("flightsel_to", "Hová")
478
479 self.add("fleet_busy", "Flottaadatok letöltése...")
480 self.add("fleet_failed",
481 "Nem sikerült letöltenem a flotta adatait.")
482 self.add("fleet_update_busy", "Repülőgép pozíció frissítése...")
483 self.add("fleet_update_failed",
484 "Nem sikerült frissítenem a repülőgép pozícióját.")
485
486 self.add("gatesel_title", "LHBP kapuválasztás")
487 self.add("gatesel_help",
488 "A repülőgép kapu pozíciója érvénytelen.\n\n" \
489 "Válaszd ki azt a kaput, ahonnan\n" \
490 "el szeretnéd kezdeni a járatot.")
491 self.add("gatesel_conflict", "Ismét kapuütközés történt.")
492 self.add("gatesel_conflict_sec",
493 "Próbálj egy másik kaput választani.")
494
495 self.add("connect_title", "Kapcsolódás a szimulátorhoz")
496 self.add("connect_help",
497 "Tölsd be a lent látható repülőgépet a szimulátorba\n" \
498 "az alább megadott reptérre és kapuhoz.\n\n" \
499 "Ezután nyomd meg a Kapcsolódás gombot a kapcsolódáshoz.")
500 self.add("connect_chelp",
501 "A járat alapadatai lent olvashatók.")
502 self.add("connect_flightno", "Járatszám:")
503 self.add("connect_acft", "Típus:")
504 self.add("connect_tailno", "Lajstromjel:")
505 self.add("connect_airport", "Repülőtér:")
506 self.add("connect_gate", "Kapu:")
507 self.add("button_connect", "K_apcsolódás")
508 self.add("button_connect_tooltip",
509 "Kattints ide a szimulátorhoz való kapcsolódáshoz.")
510 self.add("connect_busy", "Kapcsolódás a szimulátorhoz...")
511
512 self.add("payload_title", "Terhelés")
513 self.add("payload_help",
514 "Az eligazítás az alábbi tömegeket tartalmazza.\n" \
515 "Allítsd be a teherszállítmány tömegét itt, a hasznos "
516 "terhet pedig a szimulátorban.\n\n" \
517 "Azt is ellenőrízheted, hogy a szimulátor milyen ZFW-t jelent.")
518 self.add("payload_chelp",
519 "Lent láthatók az eligazításban szereplő tömegek, valamint\n" \
520 "a teherszállítmány általad megadott tömege.\n\n" \
521 "Azt is ellenőrízheted, hogy a szimulátor milyen ZFW-t jelent.")
522 self.add("payload_crew", "Legénység:")
523 self.add("payload_pax", "Utasok:")
524 self.add("payload_bag", "Poggyász:")
525 self.add("payload_cargo", "_Teher:")
526 self.add("payload_cargo_tooltip",
527 "A teherszállítmány tömege.")
528 self.add("payload_mail", "Posta:")
529 self.add("payload_zfw", "Kiszámolt ZFW:")
530 self.add("payload_fszfw", "_ZFW a szimulátorból:")
531 self.add("payload_fszfw_tooltip",
532 "Kattints ide, hogy frissítsd a ZFW értékét a szimulátorból.")
533 self.add("payload_zfw_busy", "ZFW lekérdezése...")
534
535 self.add("time_title", "Menetrend")
536 self.add("time_help",
537 "Az indulás és az érkezés ideje lent látható UTC szerint.\n\n" \
538 "A szimulátor aktuális UTC szerinti idejét is lekérdezheted.\n" \
539 "Győzödj meg arról, hogy elég időd van a repülés előkészítéséhez.")
540 self.add("time_chelp",
541 "Az indulás és az érkezés ideje lent látható UTC szerint.\n\n" \
542 "A szimulátor aktuális UTC szerinti idejét is lekérdezheted.")
543 self.add("time_departure", "Indulás:")
544 self.add("time_arrival", "Érkezés:")
545 self.add("time_fs", "Idő a s_zimulátorból:")
546 self.add("time_fs_tooltip",
547 "Kattings ide, hogy frissítsd a szimulátor aktuális UTC szerint idejét.")
548 self.add("time_busy", "Idő lekérdezése...")
549
550 self.add("route_title", "Útvonal")
551 self.add("route_help",
552 "Állítsd be az utazószintet lent, és ha szükséges,\n" \
553 "módosítsd az útvonaltervet.")
554 self.add("route_chelp",
555 "Ha szükséges, lent módosíthatod az utazószintet és\n" \
556 "az útvonaltervet repülés közben is.\n" \
557 "Ha így teszel, légy szíves a megjegyzés mezőben " \
558 "ismertesd ennek okát.")
559 self.add("route_level", "_Utazószint:")
560 self.add("route_level_tooltip", "Az utazószint.")
561 self.add("route_route", "Út_vonal")
562 self.add("route_route_tooltip", "Az útvonal a szokásos formátumban.")
563 self.add("route_down_notams", "NOTAM-ok letöltése...")
564 self.add("route_down_metars", "METAR-ok letöltése...")
565
566 self.add("briefing_title", "Eligazítás (%d/2): %s")
567 self.add("briefing_departure", "indulás")
568 self.add("briefing_arrival", "érkezés")
569 self.add("briefing_help",
570 "Olvasd el figyelmesen a lenti NOTAM-okat és METAR-t.\n\n" \
571 "Ha a szimulátor vagy hálózat más időjárást ad,\n" \
572 "a METAR-t módosíthatod.")
573 self.add("briefing_chelp",
574 "Ha a szimulátor vagy hálózat más időjárást ad,\n" \
575 "a METAR-t módosíthatod.")
576 self.add("briefing_notams_init", "LHBP NOTAM-ok")
577 self.add("briefing_metar_init", "LHBP METAR")
578 self.add("briefing_button",
579 "Elolvastam az eligazítást, és készen állok a _repülésre!")
580 self.add("briefing_notams_template", "%s NOTAM-ok")
581 self.add("briefing_metar_template", "%s _METAR")
582 self.add("briefing_notams_failed", "Nem tudtam letölteni a NOTAM-okat.")
583 self.add("briefing_notams_missing",
584 "Ehhez a repülőtérhez nem találtam NOTAM-ot.")
585 self.add("briefing_metar_failed", "Nem tudtam letölteni a METAR-t.")
586
587 self.add("takeoff_title", "Felszállás")
588 self.add("takeoff_help",
589 "Írd be a felszállásra használt futópálya és SID nevét, valamint a sebességeket.")
590 self.add("takeoff_chelp",
591 "A naplózott futópálya, SID és a sebességek lent olvashatók.")
592 self.add("takeoff_runway", "_Futópálya:")
593 self.add("takeoff_runway_tooltip",
594 "A felszállásra használt futópálya.")
595 self.add("takeoff_sid", "_SID:")
596 self.add("takeoff_sid_tooltip",
597 "Az alkalmazott szabványos műszeres indulási eljárás neve.")
598 self.add("takeoff_v1", "V<sub>_1</sub>:")
599 self.add("takeoff_v1_tooltip", "Az elhatározási sebesség csomóban.")
600 self.add("label_knots", "csomó")
601 self.add("takeoff_vr", "V<sub>_R</sub>:")
602 self.add("takeoff_vr_tooltip", "Az elemelkedési sebesség csomóban.")
603 self.add("takeoff_v2", "V<sub>_2</sub>:")
604 self.add("takeoff_v2_tooltip", "A biztonságos emelkedési sebesség csomóban.")
605
606 self.add("landing_title", "Leszállás")
607 self.add("landing_help",
608 "Írd be az alkalmazott STAR és/vagy bevezetési eljárás nevét,\n"
609 "a használt futópályát, a megközelítés módját, és a V<sub>Ref</sub>-et.")
610 self.add("landing_chelp",
611 "Az alkalmazott STAR és/vagy bevezetési eljárás neve, a használt\n"
612 "futópálya, a megközelítés módja és a V<sub>Ref</sub> lent olvasható.")
613 self.add("landing_star", "_STAR:")
614 self.add("landing_star_tooltip",
615 "A követett szabványos érkezési eljárás neve.")
616 self.add("landing_transition", "_Bevezetés:")
617 self.add("landing_transition_tooltip",
618 "Az alkalmazott bevezetési eljárás neve, vagy VECTORS, "
619 "ha az irányítás vezetett be.")
620 self.add("landing_runway", "_Futópálya:")
621 self.add("landing_runway_tooltip",
622 "A leszállásra használt futópálya.")
623 self.add("landing_approach", "_Megközelítés típusa:")
624 self.add("landing_approach_tooltip",
625 "A megközelítgés típusa, pl. ILS vagy VISUAL.")
626 self.add("landing_vref", "V<sub>_Ref</sub>:")
627 self.add("landing_vref_tooltip",
628 "A leszállási sebesség csomóban.")
629
630 self.add("flighttype_scheduled", "menetrendszerinti")
631 self.add("flighttype_ot", "old-timer")
632 self.add("flighttype_vip", "VIP")
633 self.add("flighttype_charter", "charter")
634
635 self.add("finish_title", "Lezárás")
636 self.add("finish_help",
637 "Lent olvasható némi statisztika a járat teljesítéséről.\n\n" \
638 "Ellenőrízd az adatokat, az előző oldalakon is, és ha\n" \
639 "megfelelnek, elmentheted vagy elküldheted a PIREP-et.")
640 self.add("finish_rating", "Pontszám:")
641 self.add("finish_flight_time", "Repülési idő:")
642 self.add("finish_block_time", "Blokk idő:")
643 self.add("finish_distance", "Repült táv:")
644 self.add("finish_fuel", "Elhasznált üzemanyag:")
645 self.add("finish_type", "_Típus:")
646 self.add("finish_type_tooltip", "Válaszd ki a repülés típusát.")
647 self.add("finish_online", "_Online repülés")
648 self.add("finish_online_tooltip",
649 "Jelöld be, ha a repülésed a hálózaton történt, egyébként " \
650 "szűntesd meg a kijelölést.")
651 self.add("finish_save", "PIREP _mentése...")
652 self.add("finish_save_tooltip",
653 "Kattints ide, hogy elmenthesd a PIREP-et egy fájlba a számítógépeden. " \
654 "A PIREP-et később be lehet tölteni és el lehet küldeni.")
655 self.add("finish_send", "PIREP _elküldése...")
656 self.add("finish_send_tooltip",
657 "Kattints ide, hogy elküldd a PIREP-et a MAVA szerverére javításra.")
658 self.add("finish_send_busy", "PIREP küldése...")
659 self.add("finish_send_success",
660 "A PIREP elküldése sikeres volt.")
661 self.add("finish_send_success_sec",
662 "Várhatod félelmet nem ismerő PIREP javítóink alapos észrevételeit! :)")
663 self.add("finish_send_already",
664 "Ehhez a járathoz már küldtél be PIREP-et!")
665 self.add("finish_send_already_sec",
666 "A korábban beküldött PIREP-et törölheted a MAVA honlapján.")
667 self.add("finish_send_notavail",
668 "Ez a járat már nem elérhető!")
669 self.add("finish_send_unknown",
670 "A MAVA szervere ismeretlen hibaüzenettel tért vissza.")
671 self.add("finish_send_unknown_sec",
672 "A debug naplóban részletesebb információt találsz.")
673 self.add("finish_send_failed",
674 "Nem tudtam elküldeni a PIREP-et a MAVA szerverére.")
675 self.add("finish_send_failed_sec",
676 "Lehet, hogy hálózati probléma áll fenn, amely esetben később\n" \
677 "újra próbálkozhatsz. Lehet azonban hiba is a loggerben:\n" \
678 "részletesebb információt találhatsz a debug naplóban.")
679
680#------------------------------------------------------------------------------
681
682# The fallback language is English
683_English()
684
685# We also support Hungarian
686_Hungarian()
687
688#------------------------------------------------------------------------------
Note: See TracBrowser for help on using the repository browser.