source: dcdatagen.py@ 1145:d3e8867b8b31

python3
Last change on this file since 1145:d3e8867b8b31 was 1145:d3e8867b8b31, checked in by István Váradi <ivaradi@…>, 12 days ago

Updated the delay code table (re #386)

  • Property exe set to *
File size: 38.4 KB
Line 
1#!/usr/bin/env python3
2# -*- coding: utf-8 -*-
3
4# Script that generates the delay code data files from a common data base
5#
6# It generates the following files:
7# - src/mlx/gui/dcdata.py: a Python module that contains the data structures
8# describing the delay code information for each aircraft type.
9# - locale/en/mlx_delay.po, local/hu/mlx_delay.po: PO files containing the
10# delay code texts. Those texts are referred to from dcdata.py
11
12#----------------------------------------------------------------------------
13
14import os
15
16#----------------------------------------------------------------------------
17
18# The list of language codes. The strings should be arrays of at least this
19# length
20languageCodes = ["en", "hu"]
21
22#----------------------------------------------------------------------------
23
24# Row type: a caption
25CAPTION = 1
26
27# Row type: an actual delay code
28DELAYCODE = 2
29
30#----------------------------------------------------------------------------
31
32# Prefixes for the generated tables
33tablePrefixes = [ "common" ]
34
35# Type groups
36typeGroups = [ ["B736", "B737", "B738", "B738C", "B733", "B734", "B735",
37 "DH8D", "B762", "B763", "CRJ2", "F70", "B462",
38 "DC3", "T134", "T154", "YK40"] ]
39
40#----------------------------------------------------------------------------
41
42# The associated row or column is for the common case
43FOR_COMMON = 1
44
45#----------------------------------------------------------------------------
46
47# The complete delay code table
48table = (("info_delay_",
49 "lambda row: row[0].strip()"),
50 [ ["MA", "MA"], ["IATA", "IATA"],
51 ["Name", "Név"],["Description", "Leírás" ] ],
52 [ FOR_COMMON, FOR_COMMON, FOR_COMMON, FOR_COMMON ],
53 [ (CAPTION, FOR_COMMON,
54 ["Others", "Egyebek"] ),
55 (DELAYCODE, FOR_COMMON,
56 ["061", ("06", "OA"),
57 ["NO GATES/STAND AVAILABLE", "NINCS SZABAD KAPU/ÁLLÓHELY"],
58 ["Due to own airline activity",
59 "Saját tevékenység miatt"]]),
60 (DELAYCODE, FOR_COMMON,
61 ["091", ("09", "SG"),
62 ["SCHEDULED GROUND TIME", "ÜTEMEZETT FORDULÓ IDŐ"],
63 ["Planned turnaround time less than declared minimum",
64 "A tervezett forduló idő rövidebb a minimálisnál"]]),
65
66 (CAPTION, FOR_COMMON,
67 ["Passenger and baggage",
68 "Utas és poggyászkezelés"] ),
69 (DELAYCODE, FOR_COMMON,
70 ["111", ("11", "PD"),
71 ["LATE CHECK-IN", "KÉSEI JEGYKEZELÉS"],
72 ["Check-in reopened for late passengers",
73 "Check-in járatzárás után"]]),
74 (DELAYCODE, FOR_COMMON,
75 ["121", ("12", "PL"),
76 ["LATE CHECK-IN", "KÉSEI JEGYKEZELÉS"],
77 ["Check-in not completed by flight closure time",
78 "Torlódás az indulási csarnokban"]]),
79 (DELAYCODE, FOR_COMMON,
80 ["132", ("13", "PE"),
81 ["CHECK-IN ERROR", "JEGYKEZELÉSI HIBA"],
82 ["Error with passenger or baggage details",
83 "Téves utas és poggyászfelvétel"]]),
84 (DELAYCODE, FOR_COMMON,
85 ["142", ("14", "PO"),
86 ["OVERSALES", "TÚLKÖNYVELÉS"],
87 ["Booking errors – not resolved at check-in",
88 "Téves könyvelés, a jegykezelés során nem megoldott"]]),
89 (DELAYCODE, FOR_COMMON,
90 ["151", ("15", "PH"),
91 ["BOARDING", "BESZÁLLÍTÁS"],
92 ["Boarding discrepancies due to the passenger's fault",
93 "Beszállítási rendellenesség utas hibájából"]]),
94 (DELAYCODE, FOR_COMMON,
95 ["152", ("15", "PH"),
96 ["BOARDING", "BESZÁLLÍTÁS"],
97 ["Boarding discrepancies due to the tranzit's fault",
98 "Beszállítási rendellenesség tranzit hibájából"]]),
99 (DELAYCODE, FOR_COMMON,
100 ["161", ("16", "PS"),
101 ["COMMERCIAL PUBLICITY/\nPASSENGER CONVENIENCE",
102 "NYILVÁNOS FOGADÁS/\nUTASKÉNYELMI SZEMPONTOK"],
103 ["Local decision to delay for VIP or press; \ndelay due to offload of passengers following family bereavement",
104 "Késleltetés helyi döntés alapján reptérzár,\nbetegség/halál, VIP, sajtó, TV miatt"]]),
105 (DELAYCODE, FOR_COMMON,
106 ["171", ("17", "PC"),
107 ["CATERING ORDER", "CATERING MEGRENDELÉS"],
108 ["Late or incorrect order given to supplier",
109 "Kései vagy téves megrendelés leadása a szállítónak"]]),
110 (DELAYCODE, FOR_COMMON,
111 ["172", ("17", "PC"),
112 ["CATERING ORDER", "CATERING MEGRENDELÉS"],
113 ["Late catering order due to negligence",
114 "Kései catering megrendelés gondatlanságból"]]),
115 (DELAYCODE, FOR_COMMON,
116 ["181", ("18", "PD"),
117 ["BAGGAGE PROCESSING", "POGGYÁSZKEZELÉS"],
118 ["Late or incorrectly sorted baggage",
119 "Késő vagy tévesen szortírozott poggyász"]]),
120
121 (CAPTION, FOR_COMMON,
122 ["Cargo and mail",
123 "Áru és postakezelés"] ),
124 (DELAYCODE, FOR_COMMON,
125 ["212", ("21", "CD"),
126 ["DOCUMENTATION", "DOKUMENTÁCIÓ"],
127 ["Late or incorrect documentation for booked cargo",
128 "Hibás vagy kései áruokmányolás"]]),
129 (DELAYCODE, FOR_COMMON,
130 ["221", ("22", "CP"),
131 ["LATE POSITIONING", "KÉSEI SZÁLLÍTÁS"],
132 ["Late delivery of booked cargo to airport/aircraft",
133 "Szállítmány kései érkezése a repülőtérre"]]),
134 (DELAYCODE, FOR_COMMON,
135 ["232", ("23", "CC"),
136 ["LATE ACCEPTANCE", "KÉSEI ÁTVÉTEL"],
137 ["Acceptance of cargo after deadline",
138 "Kereskedelmi döntés, áru és posta járatzárás utáni elfogadása"]]),
139 (DELAYCODE, FOR_COMMON,
140 ["242", ("24", "CI"),
141 ["INADEQUATE PACKING", "NEM MEGFELELŐ CSOMAGOLÁS"],
142 ["Repackaging and/or re-labelling of booked cargo",
143 "Az áru újracsomagolása és/vagy -címkézése"]]),
144 (DELAYCODE, FOR_COMMON,
145 ["252", ("25", "CO"),
146 ["OVERSALES", "ÁRUTÚLKÖNYVELÉS"],
147 ["Booked load in excess of saleable load capacity\n"
148 "(weight or volume), resulting in reloading or off-load",
149 "A könyvelt terhelés meghaladja az eladható (tömeg\n"
150 "vagy térfogat) kapacitást."]]),
151 (DELAYCODE, FOR_COMMON,
152 ["261", ("26", "CU"),
153 ["LATE PREPARATION", "KÉESI ELŐKÉSZÍTÉS"],
154 ["Late preparation in warehouse.",
155 "Szállítmány kései előkészítése a raktárban"]]),
156
157 (CAPTION, FOR_COMMON,
158 ["Mail only",
159 "Postakezelés"] ),
160 (DELAYCODE, FOR_COMMON,
161 ["271", ("27", "CE"),
162 ["DOCUMENTATION, PACKING", "DOKUMENTÁCIÓ, CSOMAGOLÁS"],
163 ["Incomplete and/or inaccurate documentation",
164 "Hiányos és/vagy pontatlan dokumentáció"]]),
165 (DELAYCODE, FOR_COMMON,
166 ["281", ("28", "CL"),
167 ["LATE POSITIONING", "KÉSEI SZÁLLÍTÁS"],
168 ["Late delivery of mail to airport / aircraft",
169 "Posta kései érkezése a repülőtérre"]]),
170 (DELAYCODE, FOR_COMMON,
171 ["291", ("29", "CA"),
172 ["LATE ACCEPTANCE", "KÉSEI ÁTVÉTEL"],
173 ["Acceptance of mail after deadline",
174 "Posta járatázárás utáni átvétele"]]),
175
176 (CAPTION, FOR_COMMON,
177 ["Aircraft and Ramp Handling",
178 "Repülőgép-kiszolgálás"] ),
179 (DELAYCODE, FOR_COMMON,
180 ["312", ("31", "GD"),
181 ["LATE/INACCURATE\nAIRCRAFT DOCUMENTATION",
182 "KÉSEI/PONTATLAN\nFEDÉLZETI OKMÁNYOK"],
183 ["Late or inaccurate mass and balance documentation, \n"
184 "general declaration, passenger manifest",
185 "Fedélzeti okmányok elégtelensége, kései kiállítása"]]),
186 (DELAYCODE, FOR_COMMON,
187 ["322", ("32", "GL"),
188 ["LOADING/UNLOADING", "BE- ÉS KIRAKODÁS"],
189 ["Bulky items, special load, lack of loading staff",
190 "Különleges, súlyos vagy nagy terjedelmű áru,\n"
191 "rakodószemélyzet hiánya miatt"]]),
192 (DELAYCODE, FOR_COMMON,
193 ["324", ("32", "GL"),
194 ["LOADING/UNLOADING", "BE- ÉS KIRAKODÁS"],
195 ["Lack of loading staff",
196 "Rakodószemélyzet hiánya miatt"]]),
197 (DELAYCODE, FOR_COMMON,
198 ["332", ("33", "GE"),
199 ["LOADING EQUIPMENT", "RAKODÓBERENDEZÉSEK"],
200 ["Lack of and/or breakdown; lack of operating staff",
201 "Hiányuk vagy üzemképtelenségük, működtető személyzet hiánya"]]),
202 (DELAYCODE, FOR_COMMON,
203 ["342", ("34", "GS"),
204 ["SERVICING EQUIPMENT", "KISZOLGÁLÓ ESZKÖZÖK"],
205 ["Lack of and/or breakdown; lack of operating staff",
206 "Hiányuk vagy üzemképtelenségük, működtető személyzet hiánya"]]),
207 (DELAYCODE, FOR_COMMON,
208 ["352", ("35", "GC"),
209 ["AIRCRAFT CLEANING", "REPÜLŐGÉP TAKARÍTÁS"],
210 ["Late completion of aircraft cleaning",
211 "Késedelme vagy elhúzódása"]]),
212 (DELAYCODE, FOR_COMMON,
213 ["362", ("36", "GF"),
214 ["FUELLING/DEFUELLING", "ÜZEMANYAG TÖLTÉS/LESZÍVÁS"],
215 ["Late delivery of fuel; excludes late request",
216 "Üzemanyag kései szállítása, kivéva, ha az igénylés késett"]]),
217 (DELAYCODE, FOR_COMMON,
218 ["372", ("37", "GB"),
219 ["CATERING", "CATERING"],
220 ["Late and/or incomplete delivery; late loading",
221 "Catering kései szállítása, berakása"]]),
222 (DELAYCODE, FOR_COMMON,
223 ["381", ("38", "GU"),
224 ["ULD", "ULD"],
225 ["Lack of and/or unserviceable ULD's or pallets",
226 "Üzemképes konténerek és raklapok hiánya"]]),
227 (DELAYCODE, FOR_COMMON,
228 ["391", ("39", "GT"),
229 ["TECHNICAL EQUIPMENT", "BERENDEZÉSEK"],
230 ["Lack and/or breakdown; lack of operating staff;\n"
231 "includes GPU, air start, pushback tug, de-icing",
232 "Hiánya és/vagy elromlása, működtető személyzet hiánya\n"
233 "ide tartozik a földi áramellátó, a hajtómű indító,\n"
234 "a repülőgép-vontató és a jégtelenítő"]]),
235
236 (CAPTION, FOR_COMMON,
237 ["Technical and Aircraft Equipment",
238 "Műszaki előkészítés"] ),
239 (DELAYCODE, FOR_COMMON,
240 ["411", ("41", "TD"),
241 ["TECHNICAL DEFECTS", "REPÜLŐGÉP HIBÁK"],
242 ["Aircraft arrived with defects from abroad",
243 "Külföldről hibával érkezett repülőgép"]]),
244 (DELAYCODE, FOR_COMMON,
245 ["412", ("41", "TD"),
246 ["TECHNICAL DEFECTS", "REPÜLŐGÉP HIBÁK"],
247 ["Departing aircraft with defects",
248 "Hibásan kiállított induló repülőgép"]]),
249 (DELAYCODE, FOR_COMMON,
250 ["421", ("42", "TM"),
251 ["SCHEDULED MAINTENANCE", "TERVEZETT KARBANTARTÁS"],
252 ["Late release from maintenance due to lack of parts",
253 "Betervezett karbantartás kései befejezése alkatrészhiány miatt"]]),
254 (DELAYCODE, FOR_COMMON,
255 ["422", ("42", "TM"),
256 ["SCHEDULED MAINTENANCE", "TERVEZETT KARBANTARTÁS"],
257 ["Late release from maintenance due to bad management\n"
258 "or other internal deficiencies",
259 "Betervezett karbantartás kései befejezése rossz\n"
260 "szervezés vagy egyéb belső hiányosság miatt"]]),
261 (DELAYCODE, FOR_COMMON,
262 ["431", ("43", "TN"),
263 ["NON-SCHEDULED\nMAINTENANCE", "RENDKÍVÜLI KARBANTARTÁS"],
264 ["Special checks in an ad-hoc manner",
265 "Különleges ellenőrzések ad hoc jelleggel"]]),
266 (DELAYCODE, FOR_COMMON,
267 ["432", ("43", "TN"),
268 ["NON-SCHEDULED\nMAINTENANCE", "RENDKÍVÜLI KARBANTARTÁS"],
269 ["Lack of earlier scheduled checks",
270 "Korábbi tervezett ellenőrzések elmaradása"]]),
271 (DELAYCODE, FOR_COMMON,
272 ["441", ("44", "TS"),
273 ["SPARES AND MAINTENANCE", "PÓTALKATRÉSZEK ÉS\nKARBANTARTÁS"],
274 ["Lack of spares and equipment due to external factors",
275 "Repülőgép berendezések és alkatrészek hiánya külső okokból"]]),
276 (DELAYCODE, FOR_COMMON,
277 ["442", ("44", "TS"),
278 ["SPARES AND MAINTENANCE", "PÓTALKATRÉSZEK ÉS\nKARBANTARTÁS"],
279 ["Lack of spares and equipment due to failing to order",
280 "Repülőgép berendezések és alkatrészek hiánya\n"
281 "megrendelés hiányából"]]),
282 (DELAYCODE, FOR_COMMON,
283 ["451", ("45", "TA"),
284 ["AOG SPARES", "AOG PÓTALKATRÉSZEK"],
285 ["Awaiting AOG spare(s) to be carried to another station",
286 "Alkatrész szállítás más állomásokra, külföldi meghibásodás\n"
287 "(külföldön leragadt saját gép) esetén"]]),
288 (DELAYCODE, FOR_COMMON,
289 ["461", ("46", "TC"),
290 ["AIRCRAFT CHANGE", "REPÜLŐGÉPCSERE"],
291 ["If the reason is: 411",
292 "Ha az ok: 411"]]),
293 (DELAYCODE, FOR_COMMON,
294 ["462", ("46", "TC"),
295 ["AIRCRAFT CHANGE", "REPÜLŐGÉPCSERE"],
296 ["If the reason is: 412",
297 "Ha az ok: 412"]]),
298 (DELAYCODE, FOR_COMMON,
299 ["471", ("47", "TL"),
300 ["STANDBY AIRCRAFT", "TARTALÉK REPÜLŐGÉP"],
301 ["Standby aircraft unavailable for technical reasons",
302 "Csere repülőgép nem áll rendelkezésre, ha az ok: 411 / 461"]]),
303 (DELAYCODE, FOR_COMMON,
304 ["472", ("47", "TL"),
305 ["STANDBY AIRCRAFT", "TARTALÉK REPÜLŐGÉP"],
306 ["Standby aircraft unavailable for technical reasons",
307 "Csere repülőgép nem áll rendelkezésre, ha az ok: 412 / 462"]]),
308 (DELAYCODE, FOR_COMMON,
309 ["481", ("47", "TV"),
310 ["CABIN CONFIGURATION", "UTASTÉR KONFIGURÁCIÓ"],
311 ["Scheduled cabin configuration and version adjustments",
312 "Tervezett átszékezés"]]),
313
314 (CAPTION, FOR_COMMON,
315 ["Damage to Aircraft &amp; EDP Automated Equipment Failure",
316 "Repülőgép sérülése és számítógépes rendszerek hibái"] ),
317 (DELAYCODE, FOR_COMMON,
318 ["511", ("51", "DF"),
319 ["DAMAGE DURING\nFLIGHT OPERATIONS", "REPÜLÉS KÖZBENI SÉRÜLÉS"],
320 ["Bird or lightning strike, turbulence",
321 "Madár, villámcsapás, turbulencia"]]),
322 (DELAYCODE, FOR_COMMON,
323 ["512", ("51", "DF"),
324 ["DAMAGE DURING\nFLIGHT OPERATIONS", "REPÜLÉS KÖZBENI SÉRÜLÉS"],
325 ["Overweight landing, collisions during taxiing",
326 "Leszállási túlsúly, gurulás közbeni ütközés"]]),
327 (DELAYCODE, FOR_COMMON,
328 ["521", ("52", "DG"),
329 ["DAMAGE DURING\nGROUND OPERATIONS", "SÉRÜLÉS A FÖLDÖN"],
330 ["Not during taxiing, extreme weather conditions",
331 "Nem gurulás közben, időjárás következtében"]]),
332 (DELAYCODE, FOR_COMMON,
333 ["522", ("52", "DG"),
334 ["DAMAGE DURING\nGROUND OPERATIONS", "SÉRÜLÉS A FÖLDÖN"],
335 ["Loading/offloading damage, towing other collisions",
336 "Ki- vagy berakodásnál, vontatásnál vagy egyéb ütközések miatt"]]),
337
338 (DELAYCODE, FOR_COMMON,
339 ["551", ("55", "ED"),
340 ["DEPARTURE CONTROL", "INDULÁS-IRÁNYÍTÁS"],
341 ["System failure due to transmission errors",
342 "Rendszerleállás vonalhiba, átviteli hiba miatt"]]),
343 (DELAYCODE, FOR_COMMON,
344 ["552", ("55", "ED"),
345 ["DEPARTURE CONTROL", "INDULÁS-IRÁNYÍTÁS"],
346 ["System failure due to operator error",
347 "Rendszerleállás kezelői hiba miatt"]]),
348 (DELAYCODE, FOR_COMMON,
349 ["561", ("56", "EC"),
350 ["CARGO PREPARATION\nDOCUMENTATION", "ÁRUDOKUMENTÁCIÓ"],
351 ["System failure due to transmission errors",
352 "Rendszerleállás vonalhiba, átviteli hiba miatt"]]),
353 (DELAYCODE, FOR_COMMON,
354 ["562", ("56", "EC"),
355 ["CARGO PREPARATION\nDOCUMENTATION", "ÁRUDOKUMENTÁCIÓ"],
356 ["System failure due to operator error",
357 "Rendszerleállás kezelői hiba miatt"]]),
358 (DELAYCODE, FOR_COMMON,
359 ["571", ("57", "EF"),
360 ["FLIGHT PLANS", "REPÜLÉSI TERVEK"],
361 ["Failure of automated flight plan systems",
362 "A repülési terveket kezelő rendszerek meghibásodása"]]),
363 (DELAYCODE, FOR_COMMON,
364 ["581", ("58", "EO"),
365 ["OTHER AUTOMATED SYSTEM", "EGYÉB AUTOMATA RENDSZER"],
366 ["",
367 "Egyéb automata rendszer meghibásodása / leállása"]]),
368
369 (CAPTION, FOR_COMMON,
370 ["Flight Operations and Crewing",
371 "Repülés üzemeltetés, személyzet"] ),
372 (DELAYCODE, FOR_COMMON,
373 ["612", ("61", "FP"),
374 ["FLIGHT PLAN", "REPÜLÉSI TERV"],
375 ["Late completion of or change to flight plan",
376 "Repülési terv kései benyújtása vagy módosítása"]]),
377 (DELAYCODE, FOR_COMMON,
378 ["622", ("62", "FF"),
379 ["OPERATIONAL REQUIREMENT", "ÜZEMELTETÉSI IGÉNYEK"],
380 ["Late alteration to fuel or payload",
381 "Üzemanyag mennyiség vagy hasznos teher\n"
382 "kései módosítása"]]),
383 (DELAYCODE, FOR_COMMON,
384 ["632", ("63", "FT"),
385 ["LATE CREW BOARDING\nOR DEPARTURE PROCEDURES",
386 "SZEMÉLYZET KÉSEI MEGJELENÉSE\nVAGY ELHÚZÓDÓ INDULÁS"],
387 ["Late flight deck, or entire crew, other than standby;\n"
388 "late completion of flight deck crew checks",
389 "A repülő- vagy a teljes, nem készenléti személyzet\n"
390 "késése, az ellenőrzések elhúzódása"]]),
391 (DELAYCODE, FOR_COMMON,
392 ["642", ("64", "FS"),
393 ["FLIGHT DECK\nCREW SHORTAGE", "REPÜLŐSZEMÉLYZET\nLÉTSZÁMHIÁNYA"],
394 ["Sickness, awaiting standby, flight time limitations,\n"
395 "valid visa, health documents, etc.",
396 "Betegség, készenlét, a repülési idő korlátozásai,\n"
397 "érvényes vízum, egészségügyi papírok hiánya, stb."]]),
398 (DELAYCODE, FOR_COMMON,
399 ["652", ("65", "FR"),
400 ["FLIGHT DECK CREW\nSPECIAL REQUEST",
401 "SZEMÉLYZET KÜLÖNLEGES IGÉNYE"],
402 ["Requests not within operational requirements",
403 "Az üzemeltetési feltételeken kívül eső igények"]]),
404 (DELAYCODE, FOR_COMMON,
405 ["661", ("66", "FL"),
406 ["LATE CABIN CREW BOARDING\nOR DEPARTURE PROCEDURES",
407 "UTASKÍSÉRŐK KÉSEI MEGJELENÉSE\nVAGY ELHÚZÓDÓ INDULÁS"],
408 ["Late cabin crew other than standby; late completion\n"
409 "of cabin crew checks",
410 "Utaskísérők késése, kivéve csatlakozást vagy tartalék\n"
411 "behívást; utaskísérői ellenőrzések késése"]]),
412 (DELAYCODE, FOR_COMMON,
413 ["662", ("66", "FL"),
414 ["LATE CABIN CREW BOARDING\nOR DEPARTURE PROCEDURES",
415 "UTASKÍSÉRŐK KÉSEI MEGJELENÉSE\nVAGY ELHÚZÓDÓ INDULÁS"],
416 ["Late cabin crew other than standby; late completion\n"
417 "of cabin crew checks",
418 "Forgalmi (földi) döntés, útvonal módosítás, járatösszevonás,\n"
419 "járattörlés kereskedelmi okból"]]),
420 (DELAYCODE, FOR_COMMON,
421 ["672", ("67", "FC"),
422 ["CABIN CREW SHORTAGE", "UTASKÍSÉRŐK HIÁNYA"],
423 ["Sickness, awaiting standby, flight time limitations,\n"
424 "valid visa, health documents",
425 "Utaskísérők hiánya hibás tervezés miatt"]]),
426 (DELAYCODE, FOR_COMMON,
427 ["682", ("68", "FA"),
428 ["CABIN CREW ERROR OR\nSPECIAL REQUEST",
429 "UTASKÍSÉRŐK HIBÁJA\nVAGY KÜLÖNLEGES IGÉNYE"],
430 ["Requests not within operational requirements",
431 "Az üzemeltetési feltételeken kívül eső igények"]]),
432 (DELAYCODE, FOR_COMMON,
433 ["692", ("69", "FB"),
434 ["CAPTAIN REQUEST FOR\nSECURITY CHECK",
435 "KAPITÁNY KÉRÉSÉRE\nBIZTONSÁGI ELLENŐRZÉS"],
436 ["Extraordinary requests outside mandatory requirements",
437 "Kapitány kérésére biztonsági ellenőrzés (gép alatt)"]]),
438
439
440 (CAPTION, FOR_COMMON,
441 ["Weather", "Időjárás"] ),
442 (DELAYCODE, FOR_COMMON,
443 ["711", ("71", "WO"),
444 ["DEPARTURE STATION", "INDULÓ ÁLLOMÁS"],
445 ["Below operating limits",
446 "Kedvezőtlen/minimum alatti időjárás"]]),
447 (DELAYCODE, FOR_COMMON,
448 ["721", ("72", "WT"),
449 ["DESTINATION STATION", "CÉLÁLLOMÁS"],
450 ["Below operating limits",
451 "Kedvezőtlen/minimum alatti időjárás"]]),
452 (DELAYCODE, FOR_COMMON,
453 ["731", ("73", "WR"),
454 ["EN-ROUTE OR ALTERNATE", "ÚTVONAL VAGY\nKITÉRŐ REPÜLŐTÉR"],
455 ["Below operating limits",
456 "Kedvezőtlen/minimum alatti időjárás"]]),
457 (DELAYCODE, FOR_COMMON,
458 ["751", ("75", "WI"),
459 ["DE-ICING OF AIRCRAFT", "JÉGTELENÍTÉS"],
460 ["Removal of ice and/or snow; excludes\n"
461 "equipment – lack of or breakdown",
462 "Jég és hó eltakarítás, ha az nem a berendezések\n"
463 "hiánya vagy meghibásodása miatt késik"]]),
464 (DELAYCODE, FOR_COMMON,
465 ["752", ("75", "WI"),
466 ["DE-ICING OF AIRCRAFT", "JÉGTELENÍTÉS"],
467 ["Bad management, technology or the lack of\n"
468 "de-icing liquid",
469 "Rossz munkaszervezés, rossz technológia vagy a\n"
470 "jégtelenító folyadék hiánya miatt"]]),
471 (DELAYCODE, FOR_COMMON,
472 ["761", ("76", "WS"),
473 ["REMOVAL OF SNOW, ICE,\nWATER, AND SAND FROM\nAIRPORT",
474 "HÓ, JÉG, VÍZ ÉS\nHOMOK ELTAKARÍTÁSA\nA REPÜLŐTÉREN"],
475 ["Runway, taxiway conditions",
476 "A futópályák, gurulóutak állapota"]]),
477 (DELAYCODE, FOR_COMMON,
478 ["771", ("77", "WG"),
479 ["GROUND HANDLING\nIMPAIRED BY ADVERSE\nWEATHER CONDITIONS",
480 "AZ IDŐJÁRÁS AKADÁLYOZTA\nFÖLDI KISZOLGÁLÁST"],
481 ["High winds, heavy rain, blizzards, monsoons etc.",
482 "Erős szél, heves esőzés, hóvihar, monszun, stb."]]),
483
484 (CAPTION, FOR_COMMON,
485 ["Air Traffic Flow Management Restrictions",
486 "Légiforgalom áramlásszervezési korlátozások"] ),
487 (DELAYCODE, FOR_COMMON,
488 ["811", ("81", "AT"),
489 ["ATFM DUE TO ATC\nENROUTE DEMAND/CAPACITY",
490 "ÚTVONAL TERHELTSÉG/KAPACITÁS"],
491 ["Standard demand/capacity problems",
492 "A szokványos terheltségi és kapacitás problémák"]]),
493 (DELAYCODE, FOR_COMMON,
494 ["821", ("82", "AX"),
495 ["ATFM DUE TO ATC STAFF/\nEQUIPMENT ENROUTE",
496 "ÚTVONAL ÁTERESZTŐKÉPESSÉG\nELÉGTELENSÉGE"],
497 ["Reduced capacity caused by industrial\n"
498 "action or staff shortage, equipment failure,\n"
499 "military exercise or extraordinary demand\n"
500 "due to capacity reduction in neighbouring area",
501 "Csökkent kapacitás sztrájk vagy munkaerőhiány,\n"
502 "berendezések meghibásodása, hadgyakorlat vagy\n"
503 "egy szomszédos terület kapacitáscsökkenési miatti\n"
504 "megnövekedett leterheltség"]]),
505 (DELAYCODE, FOR_COMMON,
506 ["835", ("83", "AE"),
507 ["ATFM DUE TO\nRESTRICTION AT\nDESTINATION AIRPORT",
508 "KORLÁTOZÁSOK A\nCÉLÁLLOMÁSON"],
509 ["Airport and/or runway closed due to obstruction,\n"
510 "industrial action, staff shortage, political unrest,\n"
511 "noise abatement, night curfew, special flights",
512 "A repülőtér és/vagy a futopálya bezárt akadály,\n"
513 "sztrájk, munkaerőhiány, politikai megmozdulások\n"
514 "zajcsökkentés, kijárási tilalom, kölönleges járatok miatt"]]),
515 (DELAYCODE, FOR_COMMON,
516 ["841", ("84", "AW"),
517 ["ATFM DUE TO WEATHER\n AT DESTINATION",
518 "ÁRAMLÁSSZERVESÉS A\nCÉLÁLLOMÁS IDŐJÁRÁSA MIATT"],
519 ["", ""]]),
520
521 (CAPTION, FOR_COMMON,
522 ["Airport and state authorities",
523 "Repülőtéri és állami hatóságok"] ),
524 (DELAYCODE, FOR_COMMON,
525 ["851", ("85", "AS"),
526 ["MANDATORY SECURITY", "BIZTONSÁGI ELLENŐRZÉS" ],
527 ["Passengers, baggage, crew, etc.",
528 "Utasok, poggyász, személyzet, stb."]]),
529 (DELAYCODE, FOR_COMMON,
530 ["852", ("85", "AS"),
531 ["MANDATORY SECURITY", "BOMBARIADÓ" ],
532 ["Passengers, baggage, crew, etc.",
533 "Bombariadó."]]),
534 (DELAYCODE, FOR_COMMON,
535 ["861", ("86", "AG"),
536 ["IMMIGRATION, CUSTOMS,\nHEALTH",
537 "VÁMHATÓSÁGI ELLENŐRZÉSEK" ],
538 ["Passengers, crew",
539 "Vámhatósági ellenőrzések"]]),
540 (DELAYCODE, FOR_COMMON,
541 ["862", ("86", "AG"),
542 ["IMMIGRATION, CUSTOMS,\nHEALTH",
543 "HATÁRRENDÉSZETI ELLENŐRZÉSEK" ],
544 ["Passengers, crew",
545 "Határrendészeti ellenőrzések"]]),
546 (DELAYCODE, FOR_COMMON,
547 ["863", ("86", "AG"),
548 ["IMMIGRATION, CUSTOMS,\nHEALTH",
549 "EGÉSZSÉGÜGYI ELLENŐRZÉSEK" ],
550 ["Passengers, crew",
551 "Egészségügyi ellenőrzések"]]),
552 (DELAYCODE, FOR_COMMON,
553 ["871", ("87", "AF"),
554 ["AIRPORT FACILITIES", "REPÜLŐTÉRI LÉTESÍTMÉNYEK" ],
555 ["Parking stands, ramp congestion, lighting,\n"
556 "buildings, gate limitations etc.",
557 "Repülőtéri befogadó és áteresztőképességének\n"
558 "elégtelensége, állóhely (lépcső stb.) hiánya,\n"
559 "torlódás az előtéren, kijáratok zsúfoltsága."]]),
560 (DELAYCODE, FOR_COMMON,
561 ["881", ("88", "AD"),
562 ["RESTRICTIONS AT\nDESTINATION AIRPORT",
563 "KORLÁTOZÁSOK A\nCÉLÁLLOMÁSON" ],
564 ["Airport and/or runway closed due to obstruction,\n"
565 "industrial action, staff shortage, political unrest,\n"
566 "noise abatement, night curfew, special flights",
567 "Korlátozások a repülőtéren, leszállópályazárlat,\n"
568 "sztrájk, politikai esemény vagy zajvédelem miatt"]]),
569 (DELAYCODE, FOR_COMMON,
570 ["891", ("89", "AM"),
571 ["RESTRICTIONS AT\nAIRPORT OF DEPARTURE\n"
572 "WITH OR WITHOUT ATFM RESTRICTIONS",
573 "KORLÁTOZÁSOK AZ INDULÓ\n"
574 "ÁLLOMÁSON ÁRAMLÁS-SZERVEZÉSI\n"
575 "KORLÁTOZÁSOKKALVAGY\nAZOK NÉLKÜL"],
576 ["Including air traffic services, start-up and pushback,\n"
577 "airport and/or runway closed due to obstruction or weather\n"
578 "(restriction due to weather in case of ATFM only) industrial\n"
579 "action, staff shortage, political unrest, noise abatement,\n"
580 "night curfew, special flights",
581 "Repülőtéri befogadó és áteresztőképességének elégtelensége,\n",
582 "állóhely (lépcső stb.) hiánya, torlódás az előtéren,\n"
583 "kijáratok zsúfoltsága, leszállópályazárlat, sztrájk,\n"
584 "politikai esemény vagy zajvédelem miatt"]]),
585
586 (CAPTION, FOR_COMMON,
587 ["Reactionary", "Visszahatások"] ),
588
589 (DELAYCODE, FOR_COMMON,
590 ["911", ("91", "RL"),
591 ["LOAD CONNECTION", "HASZNOS TEHER\nCSATLAKOZÁSA"],
592 ["Awaiting load from another flight",
593 "Csatlakozásra várás más járatról, utas és áru"]]),
594 (DELAYCODE, FOR_COMMON,
595 ["921", ("91", "RT"),
596 ["THROUGH CHECK-IN ERROR", "JEGYKEZELÉSI HIBA"],
597 ["Passenger or baggage check-in error at originating station",
598 "Utas- vagy csomagkezelési hiba az induló állomáson"]]),
599 (DELAYCODE, FOR_COMMON,
600 ["931", ("93", "RA"),
601 ["AIRCRAFT ROTATION", "REPÜLŐGÉP ROTÁCIÓ"],
602 ["Late arrival of aircraft from another flight or previous sector",
603 "Repülőgép kései érkezése előző járatról\n"
604 "(nem vállalati okok miatt)"]]),
605 (DELAYCODE, FOR_COMMON,
606 ["932", ("93", "RA"),
607 ["AIRCRAFT ROTATION", "REPÜLŐGÉP ROTÁCIÓ"],
608 ["Late arrival of aircraft from another flight or previous sector",
609 "Repülőgép kései érkezése előző járatról\n"
610 "(vállalati okok miatt)"]]),
611 (DELAYCODE, FOR_COMMON,
612 ["941", ("94", "RS"),
613 ["CABIN CREW ROTATION", "UTASKÍSÉRŐ ROTÁCIÓ"],
614 ["Awaiting cabin crew from another flight",
615 "Utaskísérők kései érkezése előző járatról"]]),
616 (DELAYCODE, FOR_COMMON,
617 ["951", ("95", "RC"),
618 ["CREW ROTATION", "SZEMÉLYZET ROTÁCIÓ"],
619 ["Awaiting flight deck, or entire crew, from another flight",
620 "Teljes személyzet kései érkezése előző járatról"]]),
621 (DELAYCODE, FOR_COMMON,
622 ["961", ("96", "RO"),
623 ["OPERATIONS CONTROL", "ÜZEMELTETÉS"],
624 ["Re-routing, diversion, consolidation, aircraft change\n"
625 "for reasons other than technical",
626 "Útvonalváltoztatás, repülőgép cseréje nem műszaki okokból"]]),
627
628 (CAPTION, FOR_COMMON,
629 ["Miscellaneous", "Egyéb"] ),
630 (DELAYCODE, FOR_COMMON,
631 ["971", ("97", "MI"),
632 ["INDUSTRIAL ACTION\nWITHIN OWN AIRLINE",
633 "MUNKAÜGYI AKCIÓ SAJÁT\nLÉGITÁRSASÁGON BELÜL"],
634 ["",
635 "Sztrájk, lassító sztrájk vállalaton belül"]]),
636 (DELAYCODE, FOR_COMMON,
637 ["981", ("98", "MO"),
638 ["INDUSTRIAL ACTION\nOUTSIDE OWN AIRLINE",
639 "MUNKAÜGYI AKCIÓ SAJÁT\nLÉGITÁRSASÁGON KÍVÜL"],
640 ["Industrial action (except Air Traffic Control Services)",
641 "Sztrájk, lassító sztrájk vállalaton kívül"]]),
642 (DELAYCODE, FOR_COMMON,
643 ["991", ("99", "MX"),
644 ["MISCELLANEOUS", "EGYÉB"],
645 ["No suitable code; explain reason(s) in plain text",
646 "A táblázatban nem szereplő egyéb ok (szöveges indoklást igényel)"]])
647 ])
648
649#-------------------------------------------------------------------------------
650
651def generateMsgStr(file, text):
652 """Generate an 'msgstr' entry for the given text."""
653 lines = text.splitlines()
654 numLines = len(lines)
655 if numLines==0:
656 print("msgstr \" \"", file=file)
657 elif numLines==1:
658 print("msgstr \"%s\"" % (lines[0]), file=file)
659 else:
660 print("msgstr \"\"", file=file)
661 for i in range(0, numLines):
662 print("\"%s%s\"" % (lines[i], "" if i==(numLines-1) else "\\n"), file=file)
663 print(file=file)
664
665#-------------------------------------------------------------------------------
666
667def generateFiles(baseDir):
668 """Generate the various files."""
669 dcdata = None
670 poFiles = []
671
672 try:
673 dcdataPath = os.path.join(baseDir, "src", "mlx", "gui", "dcdata.py")
674 dcdata = open(dcdataPath, "wt")
675
676 numLanguages = len(languageCodes)
677 for language in languageCodes:
678 poPath = os.path.join(baseDir, "locale", language, "mlx_delay.po")
679 poFile = open(poPath, "wt")
680 poFiles.append(poFile)
681 print("msgid \"\"", file=poFile)
682 print("msgstr \"\"", file=poFile)
683 print("\"Content-Type: text/plain; charset=utf-8\\n\"", file=poFile)
684 print("\"Content-Transfer-Encoding: 8bit\\n\"", file=poFile)
685
686 (baseData, headings, headingFlags, rows) = table
687 (poPrefix, extractor) = baseData
688
689 for i in range(0, len(headings)):
690 heading = headings[i]
691 for j in range(0, numLanguages):
692 poFile = poFiles[j]
693 print("msgid \"%sheading%d\"" % (poPrefix, i), file=poFile)
694 generateMsgStr(poFile, heading[j])
695
696
697 rowIndex = 0
698 for (type, _tableMask, columns) in rows:
699 if type==CAPTION:
700 for i in range(0, numLanguages):
701 poFile = poFiles[i]
702 print("msgid \"%srow%d\"" % (poPrefix, rowIndex), file=poFile)
703 generateMsgStr(poFile, columns[i])
704 elif type==DELAYCODE:
705 columnIndex = 0
706 for column in columns:
707 if isinstance(column, list):
708 for i in range(0, numLanguages):
709 if any(column):
710 poFile = poFiles[i]
711 print("msgid \"%srow%d_col%d\"" % \
712 (poPrefix, rowIndex, columnIndex), file=poFile)
713 generateMsgStr(poFile, column[i])
714 columnIndex += 1
715 rowIndex += 1
716
717 print("import mlx.const as const", file=dcdata)
718 print("from mlx.i18n import xstr", file=dcdata)
719 print(file=dcdata)
720 print("CAPTION = 1", file=dcdata)
721 print("DELAYCODE = 2", file=dcdata)
722 print(file=dcdata)
723
724 tableMask = 1
725 for i in range(0, len(tablePrefixes)):
726 print("_%s_code2meaning = {" % (tablePrefixes[i],), file=dcdata)
727
728 columnIndexes = []
729 for j in range(0, len(headings)):
730 if ( (headingFlags[j]&tableMask)==tableMask ):
731 columnIndexes.append(j)
732
733 codeIndex = columnIndexes[0]
734 meaningIndex = columnIndexes[2]
735
736 rowIndex = 0
737 for (type, mask, columns) in rows:
738 if (mask&tableMask)!=tableMask:
739 continue
740
741 if type==DELAYCODE:
742 print(" \"%s\": \"%s\"," % \
743 (str(columns[codeIndex]).strip(), columns[meaningIndex][0].replace("\n", "")), file=dcdata)
744
745 print("}", file=dcdata)
746 print(file=dcdata)
747
748 tableMask <<= 1
749
750 print("def _extract(table, row):", file=dcdata)
751 print(" code = row[0].strip()", file=dcdata)
752 print(" meaning = table[code] if code in table else None", file=dcdata)
753 print(" return code", file=dcdata)
754 print(file=dcdata)
755
756 tableMask = 1
757 for i in range(0, len(tablePrefixes)):
758
759 print("_%s_data = (" % (tablePrefixes[i],), file=dcdata)
760 print(" lambda row: _extract(_%s_code2meaning, row)," % \
761 (tablePrefixes[i],), file=dcdata)
762 print(" [", end=' ', file=dcdata)
763
764 columnIndexes = []
765 for j in range(0, len(headings)):
766 if ( (headingFlags[j]&tableMask)==tableMask ):
767 if columnIndexes:
768 print(",", end=' ', file=dcdata)
769 print("xstr(\"%sheading%d\")" % (poPrefix, j), end=' ', file=dcdata)
770 columnIndexes.append(j)
771
772 print("],", file=dcdata)
773
774 print(" [", file=dcdata)
775
776 rowIndex = 0
777 for (type, mask, columns) in rows:
778 if (mask&tableMask)!=tableMask:
779 rowIndex += 1
780 continue
781
782 if type==CAPTION:
783 print(" (CAPTION, xstr(\"%srow%d\"))," % \
784 (poPrefix, rowIndex), file=dcdata)
785 elif type==DELAYCODE:
786 print(" (DELAYCODE, [", file=dcdata)
787 for j in columnIndexes:
788 column = columns[j]
789 if j!=columnIndexes[0]:
790 print(",", file=dcdata)
791 if isinstance(column, list):
792 if any(column):
793 print(" xstr(\"%srow%d_col%d\")" % \
794 (poPrefix, rowIndex, j), end=' ', file=dcdata)
795 else:
796 print(" \"\"", end=' ', file=dcdata)
797 elif isinstance(column, tuple) and len(column)==2:
798 print(" \"%s (%s)\"" % \
799 (column[0], column[1]), end = ' ', file = dcdata)
800 else:
801 print(" \"%s\"" % \
802 (column,), end=' ', file=dcdata)
803 print("] ),", file=dcdata)
804 rowIndex += 1
805
806 print(" ]", file=dcdata)
807
808 print(")", file=dcdata)
809 print(file=dcdata)
810
811 tableMask <<= 1
812
813 print("def getTable(aircraftType):", file=dcdata)
814 first = True
815 for i in range(0, len(tablePrefixes)):
816 tablePrefix = tablePrefixes[i]
817 for typeSuffix in typeGroups[i]:
818 print(" %s aircraftType==const.AIRCRAFT_%s:" % \
819 ("if" if first else "elif", typeSuffix), file=dcdata)
820 print(" return _%s_data" % (tablePrefix,), file=dcdata)
821 first = False
822
823 print(" else:", file=dcdata)
824 print(" return None", file=dcdata)
825 finally:
826 for poFile in poFiles:
827 poFile.close()
828 if dcdata is not None:
829 dcdata.close()
830
831#-------------------------------------------------------------------------------
832
833if __name__ == "__main__":
834 generateFiles(os.path.dirname(__file__))
Note: See TracBrowser for help on using the repository browser.