Changeset 107:35310bf5309c for src/mlx/gui
- Timestamp:
- 04/24/12 19:02:56 (13 years ago)
- Branch:
- default
- Phase:
- public
- Location:
- src/mlx/gui
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/mlx/gui/flight.py
r106 r107 8 8 import mlx.util as util 9 9 from mlx.pirep import PIREP 10 from mlx.i18n import xstr 10 11 11 12 import datetime … … 121 122 self._mainAlignment.add(widget) 122 123 123 def addButton(self, label, default = False): 124 def addButton(self, label, default = False, sensitive = True, 125 tooltip = None, clicked = None): 124 126 """Add a button with the given label. 125 127 … … 131 133 button.set_can_default(True) 132 134 self._defaultButton = button 135 button.set_sensitive(sensitive) 136 if tooltip is not None: 137 button.set_tooltip_text(tooltip) 138 if clicked is not None: 139 button.connect("clicked", clicked) 133 140 return button 141 142 def addPreviousButton(self, sensitive = True, clicked = None): 143 """Add the 'Next' button to the page.""" 144 return self.addButton(xstr("button_previous"), 145 sensitive = sensitive, 146 tooltip = xstr("button_previous_tooltip"), 147 clicked = clicked) 148 149 def addNextButton(self, default = True, sensitive = True, 150 clicked = None): 151 """Add the 'Next' button to the page.""" 152 return self.addButton(xstr("button_next"), 153 default = default, 154 sensitive = sensitive, 155 tooltip = xstr("button_next_tooltip"), 156 clicked = clicked) 134 157 135 158 def initialize(self): … … 184 207 def __init__(self, wizard): 185 208 """Construct the login page.""" 186 help = "Enter your MAVA pilot's ID and password to\n" \ 187 "log in to the MAVA website and download\n" \ 188 "your booked flights." 189 super(LoginPage, self).__init__(wizard, "Login", help) 209 super(LoginPage, self).__init__(wizard, xstr("login"), 210 xstr("loginHelp")) 190 211 191 212 alignment = gtk.Alignment(xalign = 0.5, yalign = 0.5, … … 198 219 self.setMainWidget(alignment) 199 220 200 labelAlignment = gtk.Alignment(xalign=1.0, xscale=0.0) 201 label = gtk.Label("Pilot _ID:") 221 labelAlignment = gtk.Alignment(xalign = 1.0, yalign = 0.5, 222 xscale = 0.0, yscale = 0.0) 223 label = gtk.Label(xstr("label_pilotID")) 202 224 label.set_use_underline(True) 203 225 labelAlignment.add(label) … … 206 228 self._pilotID = gtk.Entry() 207 229 self._pilotID.connect("changed", self._setLoginButton) 208 self._pilotID.set_tooltip_text("Enter your MAVA pilot's ID. This " 209 "usually starts with a " 210 "'P' followed by 3 digits.") 230 self._pilotID.set_tooltip_text(xstr("login_pilotID_tooltip")) 211 231 table.attach(self._pilotID, 1, 2, 0, 1) 212 232 label.set_mnemonic_widget(self._pilotID) 213 233 214 labelAlignment = gtk.Alignment(xalign=1.0, xscale=0.0) 215 label = gtk.Label("_Password:") 234 labelAlignment = gtk.Alignment(xalign = 1.0, yalign = 0.5, 235 xscale = 0.0, yscale = 0.0) 236 label = gtk.Label(xstr("label_password")) 216 237 label.set_use_underline(True) 217 238 labelAlignment.add(label) … … 221 242 self._password.set_visibility(False) 222 243 self._password.connect("changed", self._setLoginButton) 223 self._password.set_tooltip_text( "Enter the password for your pilot's ID")244 self._password.set_tooltip_text(xstr("login_password_tooltip")) 224 245 table.attach(self._password, 1, 2, 1, 2) 225 246 label.set_mnemonic_widget(self._password) 226 247 227 self._rememberButton = gtk.CheckButton( "_Remember password")248 self._rememberButton = gtk.CheckButton(xstr("remember_password")) 228 249 self._rememberButton.set_use_underline(True) 229 self._rememberButton.set_tooltip_text("If checked, your password will " 230 "be stored, so that you should " 231 "not have to enter it every time. " 232 "Note, however, that the password " 233 "is stored as text, and anybody " 234 "who can access your files will " 235 "be able to read it.") 250 self._rememberButton.set_tooltip_text(xstr("login_remember_tooltip")) 236 251 table.attach(self._rememberButton, 1, 2, 2, 3, ypadding = 8) 237 252 238 self._loginButton = self.addButton( "_Login", default = True)253 self._loginButton = self.addButton(xstr("button_login"), default = True) 239 254 self._loginButton.set_sensitive(False) 240 255 self._loginButton.connect("clicked", self._loginClicked) 241 self._loginButton.set_tooltip_text( "Click to log in.")256 self._loginButton.set_tooltip_text(xstr("login_button_tooltip")) 242 257 243 258 def activate(self): … … 260 275 self._loginButton.set_sensitive(False) 261 276 gui = self._wizard.gui 262 gui.beginBusy( "Logging in...")277 gui.beginBusy(xstr("login_busy")) 263 278 gui.webHandler.login(self._loginResultCallback, 264 279 self._pilotID.get_text(), … … 292 307 type = MESSAGETYPE_ERROR, 293 308 buttons = BUTTONSTYPE_OK, 294 message_format = 295 "Invalid pilot's ID or password.") 309 message_format = xstr("login_invalid")) 296 310 dialog.set_title(WINDOW_TITLE_BASE) 297 dialog.format_secondary_markup("Check the ID and try to reenter" 298 " the password.") 311 dialog.format_secondary_markup(xstr("login_invalid_sec")) 299 312 dialog.run() 300 313 dialog.hide() … … 303 316 type = MESSAGETYPE_ERROR, 304 317 buttons = BUTTONSTYPE_OK, 305 message_format = 306 "Failed to connect to the MAVA website.") 318 message_format = xstr("login_failconn")) 307 319 dialog.set_title(WINDOW_TITLE_BASE) 308 dialog.format_secondary_markup("Try again in a few minutes.") 320 dialog.format_secondary_markup(xstr("login_failconn_sec")) 321 309 322 dialog.run() 310 323 dialog.hide() … … 316 329 def __init__(self, wizard): 317 330 """Construct the flight selection page.""" 318 help = "Select the flight you want to perform."319 completedHelp = "You have selected the flight highlighted below."320 super(FlightSelectionPage, self).__init__(wizard, "Flight selection",331 help = xstr("flightsel_help") 332 completedHelp = xstr("flightsel_chelp") 333 super(FlightSelectionPage, self).__init__(wizard, xstr("flightsel_title"), 321 334 help, completedHelp = completedHelp) 322 335 … … 324 337 self._listStore = gtk.ListStore(str, str, str, str) 325 338 self._flightList = gtk.TreeView(self._listStore) 326 column = gtk.TreeViewColumn( "Flight no.", gtk.CellRendererText(),339 column = gtk.TreeViewColumn(xstr("flightsel_no"), gtk.CellRendererText(), 327 340 text = 1) 328 341 column.set_expand(True) 329 342 self._flightList.append_column(column) 330 column = gtk.TreeViewColumn( "Departure time [UTC]", gtk.CellRendererText(),343 column = gtk.TreeViewColumn(xstr("flightsel_deptime"), gtk.CellRendererText(), 331 344 text = 0) 332 345 column.set_expand(True) 333 346 self._flightList.append_column(column) 334 column = gtk.TreeViewColumn( "From", gtk.CellRendererText(),347 column = gtk.TreeViewColumn(xstr("flightsel_from"), gtk.CellRendererText(), 335 348 text = 2) 336 349 column.set_expand(True) 337 350 self._flightList.append_column(column) 338 column = gtk.TreeViewColumn( "To", gtk.CellRendererText(),351 column = gtk.TreeViewColumn(xstr("flightsel_to"), gtk.CellRendererText(), 339 352 text = 3) 340 353 column.set_expand(True) … … 359 372 self.setMainWidget(alignment) 360 373 361 self._button = self.addButton(gtk.STOCK_GO_FORWARD, default = True) 362 self._button.set_use_stock(True) 363 self._button.set_sensitive(False) 364 self._button.connect("clicked", self._forwardClicked) 374 self._button = self.addNextButton(sensitive = False, 375 clicked = self._forwardClicked) 365 376 366 377 def activate(self): … … 432 443 class GateSelectionPage(Page): 433 444 """Page to select a free gate at LHBP. 434 435 445 This page should be displayed only if we have fleet information!.""" 436 446 def __init__(self, wizard): 437 447 """Construct the gate selection page.""" 438 help = "The airplane's gate position is invalid.\n\n" \ 439 "Select the gate from which you\n" \ 440 "would like to begin the flight." 441 super(GateSelectionPage, self).__init__(wizard, 442 "LHBP gate selection", 443 help) 444 448 super(GateSelectionPage, self).__init__(wizard, xstr("gatesel_title"), 449 xstr("gatesel_help")) 450 445 451 self._listStore = gtk.ListStore(str) 446 452 self._gateList = gtk.TreeView(self._listStore) … … 469 475 self.setMainWidget(alignment) 470 476 471 button = self.addButton(gtk.STOCK_GO_BACK) 472 button.set_use_stock(True) 473 button.connect("clicked", self._backClicked) 474 475 self._button = self.addButton(gtk.STOCK_GO_FORWARD, default = True) 476 self._button.set_use_stock(True) 477 self._button.set_sensitive(False) 478 self._button.connect("clicked", self._forwardClicked) 477 self.addPreviousButton(clicked = self._backClicked) 478 479 self._button = self.addNextButton(sensitive = False, 480 clicked = self._forwardClicked) 479 481 480 482 def activate(self): … … 523 525 type = MESSAGETYPE_ERROR, 524 526 buttons = BUTTONSTYPE_OK, 525 message_format = "Gate conflict detected again")527 message_format = xstr("gatesel_conflict")) 526 528 dialog.set_title(WINDOW_TITLE_BASE) 527 dialog.format_secondary_markup( "Try to select a different gate.")529 dialog.format_secondary_markup(xstr("gatesel_conflict_sec")) 528 530 dialog.run() 529 531 dialog.hide() … … 548 550 "Then press the Connect button to connect to the simulator." 549 551 completedHelp = "The basic data of your flight can be read below." 550 super(ConnectPage, self).__init__(wizard, 551 "Connect to the simulator",552 help, completedHelp = completedHelp)552 super(ConnectPage, self).__init__(wizard, xstr("connect_title"), 553 xstr("connect_help"), 554 completedHelp = xstr("connect_chelp")) 553 555 554 556 alignment = gtk.Alignment(xalign = 0.5, yalign = 0.5, … … 563 565 564 566 labelAlignment = gtk.Alignment(xalign=1.0, xscale=0.0) 565 label = gtk.Label( "Flight number:")567 label = gtk.Label(xstr("connect_flightno")) 566 568 labelAlignment.add(label) 567 569 table.attach(labelAlignment, 0, 1, 0, 1) … … 575 577 576 578 labelAlignment = gtk.Alignment(xalign=1.0, xscale=0.0) 577 label = gtk.Label( "Aircraft:")579 label = gtk.Label(xstr("connect_acft")) 578 580 labelAlignment.add(label) 579 581 table.attach(labelAlignment, 0, 1, 1, 2) … … 587 589 588 590 labelAlignment = gtk.Alignment(xalign=1.0, xscale=0.0) 589 label = gtk.Label( "Tail number:")591 label = gtk.Label(xstr("connect_tailno")) 590 592 labelAlignment.add(label) 591 593 table.attach(labelAlignment, 0, 1, 2, 3) … … 599 601 600 602 labelAlignment = gtk.Alignment(xalign=1.0, xscale=0.0) 601 label = gtk.Label( "Airport:")603 label = gtk.Label(xstr("connect_airport")) 602 604 labelAlignment.add(label) 603 605 table.attach(labelAlignment, 0, 1, 3, 4) … … 611 613 612 614 labelAlignment = gtk.Alignment(xalign=1.0, xscale=0.0) 613 label = gtk.Label( "Gate:")615 label = gtk.Label(xstr("connect_gate")) 614 616 labelAlignment.add(label) 615 617 table.attach(labelAlignment, 0, 1, 4, 5) … … 622 624 table.attach(labelAlignment, 1, 2, 4, 5) 623 625 624 button = self.addButton(gtk.STOCK_GO_BACK) 625 button.set_use_stock(True) 626 button.connect("clicked", self._backClicked) 627 628 self._button = self.addButton("_Connect", default = True) 629 self._button.set_use_underline(True) 626 self.addPreviousButton(clicked = self._backClicked) 627 628 self._button = self.addButton(xstr("button_connect"), default = True, 629 tooltip = xstr("button_connect_tooltip")) 630 630 self._clickedID = self._button.connect("clicked", self._connectClicked) 631 631 632 632 def activate(self): 633 633 """Setup the departure information.""" 634 self._button.set_label( "_Connect")634 self._button.set_label(xstr("button_connect")) 635 635 self._button.set_use_underline(True) 636 self._button.set_tooltip_text(xstr("button_connect_tooltip")) 636 637 self._button.disconnect(self._clickedID) 637 638 self._clickedID = self._button.connect("clicked", self._connectClicked) … … 655 656 def finalize(self): 656 657 """Finalize the page.""" 657 self._button.set_label(gtk.STOCK_GO_FORWARD) 658 self._button.set_use_stock(True) 658 self._button.set_label(xstr("button_next")) 659 self._button.set_use_underline(True) 660 self._button.set_tooltip_text(xstr("button_next_tooltip")) 659 661 self._button.disconnect(self._clickedID) 660 662 self._clickedID = self._button.connect("clicked", self._forwardClicked) … … 678 680 def __init__(self, wizard): 679 681 """Construct the page.""" 680 help = "The briefing contains the weights below.\n" \ 681 "Setup the cargo weight here and the payload weight in the simulator.\n\n" \ 682 "You can also check here what the simulator reports as ZFW." 683 completedHelp = "You can see the weights in the briefing\n" \ 684 "and the cargo weight you have selected below.\n\n" \ 685 "You can also query the ZFW reported by the simulator." 686 super(PayloadPage, self).__init__(wizard, "Payload", help, 687 completedHelp = completedHelp) 682 super(PayloadPage, self).__init__(wizard, xstr("payload_title"), 683 xstr("payload_help"), 684 completedHelp = xstr("payload_chelp")) 688 685 689 686 alignment = gtk.Alignment(xalign = 0.5, yalign = 0.5, … … 697 694 self.setMainWidget(alignment) 698 695 699 label = gtk.Label( "Crew:")696 label = gtk.Label(xstr("payload_crew")) 700 697 label.set_alignment(0.0, 0.5) 701 698 table.attach(label, 0, 1, 0, 1) … … 706 703 table.attach(self._numCrew, 1, 2, 0, 1) 707 704 708 label = gtk.Label( "Passengers:")705 label = gtk.Label(xstr("payload_pax")) 709 706 label.set_alignment(0.0, 0.5) 710 707 table.attach(label, 0, 1, 1, 2) … … 715 712 table.attach(self._numPassengers, 1, 2, 1, 2) 716 713 717 label = gtk.Label( "Baggage:")714 label = gtk.Label(xstr("payload_bag")) 718 715 label.set_alignment(0.0, 0.5) 719 716 table.attach(label, 0, 1, 2, 3) … … 726 723 table.attach(gtk.Label("kg"), 2, 3, 2, 3) 727 724 728 label = gtk.Label( "_Cargo:")725 label = gtk.Label(xstr("payload_cargo")) 729 726 label.set_use_underline(True) 730 727 label.set_alignment(0.0, 0.5) … … 734 731 self._cargoWeight.set_width_chars(6) 735 732 self._cargoWeight.connect("integer-changed", self._cargoWeightChanged) 736 self._cargoWeight.set_tooltip_text( "The weight of the cargo for your flight.")733 self._cargoWeight.set_tooltip_text(xstr("payload_cargo_tooltip")) 737 734 table.attach(self._cargoWeight, 1, 2, 3, 4) 738 735 label.set_mnemonic_widget(self._cargoWeight) … … 740 737 table.attach(gtk.Label("kg"), 2, 3, 3, 4) 741 738 742 label = gtk.Label( "Mail:")739 label = gtk.Label(xstr("payload_mail")) 743 740 label.set_alignment(0.0, 0.5) 744 741 table.attach(label, 0, 1, 4, 5) … … 751 748 table.attach(gtk.Label("kg"), 2, 3, 4, 5) 752 749 753 label = gtk.Label("<b> Calculated ZFW:</b>")750 label = gtk.Label("<b>" + xstr("payload_zfw") + "</b>") 754 751 label.set_alignment(0.0, 0.5) 755 752 label.set_use_markup(True) … … 763 760 table.attach(gtk.Label("kg"), 2, 3, 5, 6) 764 761 765 self._zfwButton = gtk.Button( "_ZFW from FS:")762 self._zfwButton = gtk.Button(xstr("payload_fszfw")) 766 763 self._zfwButton.set_use_underline(True) 767 764 self._zfwButton.connect("clicked", self._zfwRequested) 765 self._zfwButton.set_tooltip_text(xstr("payload_fszfw_tooltip")) 768 766 table.attach(self._zfwButton, 0, 1, 6, 7) 769 767 … … 776 774 table.attach(gtk.Label("kg"), 2, 3, 6, 7) 777 775 778 self._backButton = self.addButton(gtk.STOCK_GO_BACK) 779 self._backButton.set_use_stock(True) 780 self._backButton.connect("clicked", self._backClicked) 781 782 self._button = self.addButton(gtk.STOCK_GO_FORWARD, default = True) 783 self._button.set_use_stock(True) 784 self._button.connect("clicked", self._forwardClicked) 776 self._backButton = self.addPreviousButton(clicked = self._backClicked) 777 self._button = self.addNextButton(clicked = self._forwardClicked) 785 778 786 779 @property … … 839 832 self._button.set_sensitive(False) 840 833 gui = self._wizard.gui 841 gui.beginBusy( "Querying ZFW...")834 gui.beginBusy(xstr("payload_zfw_busy")) 842 835 gui.simulator.requestZFW(self._handleZFW) 843 836 … … 870 863 current time from the flight simulator.""" 871 864 def __init__(self, wizard): 872 help = "The departure and arrival times are displayed below in UTC.\n\n" \ 873 "You can also query the current UTC time from the simulator.\n" \ 874 "Ensure that you have enough time to properly prepare for the flight." 875 completedHelp = "The departure and arrival times are displayed below in UTC.\n\n" \ 876 "You can also query the current UTC time from the simulator.\n" 877 super(TimePage, self).__init__(wizard, "Time", help, 878 completedHelp = completedHelp) 865 super(TimePage, self).__init__(wizard, xstr("time_title"), 866 xstr("time_help"), 867 completedHelp = xstr("time_chelp")) 879 868 880 869 alignment = gtk.Alignment(xalign = 0.5, yalign = 0.5, … … 888 877 self.setMainWidget(alignment) 889 878 890 label = gtk.Label( "Departure:")879 label = gtk.Label(xstr("time_departure")) 891 880 label.set_alignment(0.0, 0.5) 892 881 table.attach(label, 0, 1, 0, 1) … … 896 885 table.attach(self._departure, 1, 2, 0, 1) 897 886 898 label = gtk.Label( "Arrival:")887 label = gtk.Label(xstr("time_arrival")) 899 888 label.set_alignment(0.0, 0.5) 900 889 table.attach(label, 0, 1, 1, 2) … … 904 893 table.attach(self._arrival, 1, 2, 1, 2) 905 894 906 self._timeButton = gtk.Button( "_Time from FS:")895 self._timeButton = gtk.Button(xstr("time_fs")) 907 896 self._timeButton.set_use_underline(True) 897 self._timeButton.set_tooltip_text(xstr("time_fs_tooltip")) 908 898 self._timeButton.connect("clicked", self._timeRequested) 909 899 table.attach(self._timeButton, 0, 1, 2, 3) … … 913 903 table.attach(self._simulatorTime, 1, 2, 2, 3) 914 904 915 self._backButton = self.addButton(gtk.STOCK_GO_BACK) 916 self._backButton.set_use_stock(True) 917 self._backButton.connect("clicked", self._backClicked) 918 919 self._button = self.addButton(gtk.STOCK_GO_FORWARD, default = True) 920 self._button.set_use_stock(True) 921 self._button.connect("clicked", self._forwardClicked) 905 self._backButton = self.addPreviousButton(clicked = self._backClicked) 906 self._button = self.addNextButton(clicked = self._forwardClicked) 922 907 923 908 def activate(self): … … 934 919 self._backButton.set_sensitive(False) 935 920 self._button.set_sensitive(False) 936 self._wizard.gui.beginBusy( "Querying time...")921 self._wizard.gui.beginBusy(xstr("time_busy")) 937 922 self._wizard.gui.simulator.requestTime(self._handleTime) 938 923 … … 980 965 """The page containing the route and the flight level.""" 981 966 def __init__(self, wizard): 982 help = "Set your cruise flight level below, and\n" \ 983 "if necessary, edit the flight plan." 984 completedHelp = "If necessary, you can modify the cruise level and\n" \ 985 "the flight plan below during flight.\n" \ 986 "If so, please, add a comment on why " \ 987 "the modification became necessary." 988 super(RoutePage, self).__init__(wizard, "Route", help, 989 completedHelp = completedHelp) 967 super(RoutePage, self).__init__(wizard, xstr("route_title"), 968 xstr("route_help"), 969 completedHelp = xstr("route_chelp")) 990 970 991 971 alignment = gtk.Alignment(xalign = 0.5, yalign = 0.5, … … 998 978 levelBox = gtk.HBox() 999 979 1000 label = gtk.Label( "_Cruise level")980 label = gtk.Label(xstr("route_level")) 1001 981 label.set_use_underline(True) 1002 982 levelBox.pack_start(label, True, True, 0) … … 1005 985 self._cruiseLevel.set_increments(step = 10, page = 100) 1006 986 self._cruiseLevel.set_range(min = 50, max = 500) 1007 self._cruiseLevel.set_tooltip_text( "The cruise flight level.")987 self._cruiseLevel.set_tooltip_text(xstr("route_level_tooltip")) 1008 988 self._cruiseLevel.set_numeric(True) 1009 989 self._cruiseLevel.connect("value-changed", self._cruiseLevelChanged) … … 1024 1004 alignment = gtk.Alignment(xalign = 0.0, yalign = 0.5, 1025 1005 xscale = 0.0, yscale = 0.0) 1026 label = gtk.Label( "_Route")1006 label = gtk.Label(xstr("route_route")) 1027 1007 label.set_use_underline(True) 1028 1008 alignment.add(label) … … 1039 1019 1040 1020 self._route = gtk.TextView() 1041 self._route.set_tooltip_text( "The planned flight route.")1021 self._route.set_tooltip_text(xstr("route_route_tooltip")) 1042 1022 self._route.get_buffer().connect("changed", self._routeChanged) 1043 1023 routeWindow.add(self._route) … … 1048 1028 mainBox.pack_start(routeBox, True, True, 8) 1049 1029 1050 self._backButton = self.addButton(gtk.STOCK_GO_BACK) 1051 self._backButton.set_use_stock(True) 1052 self._backButton.connect("clicked", self._backClicked) 1053 1054 self._button = self.addButton(gtk.STOCK_GO_FORWARD, default = True) 1055 self._button.set_use_stock(True) 1056 self._button.connect("clicked", self._forwardClicked) 1030 self._backButton = self.addPreviousButton(clicked = self._backClicked) 1031 self._button = self.addNextButton(clicked = self._forwardClicked) 1057 1032 1058 1033 @property … … 1108 1083 bookedFlight = self._wizard._bookedFlight 1109 1084 self._filedCruiseLevel = self.cruiseLevel 1110 self._wizard.gui.beginBusy( "Downloading NOTAMs...")1085 self._wizard.gui.beginBusy(xstr("route_down_notams")) 1111 1086 self._wizard.gui.webHandler.getNOTAMs(self._notamsCallback, 1112 1087 bookedFlight.departureICAO, … … 1127 1102 1128 1103 bookedFlight = self._wizard._bookedFlight 1129 self._wizard.gui.beginBusy( "Downloading METARs...")1104 self._wizard.gui.beginBusy(xstr("route_down_metars")) 1130 1105 self._wizard.gui.webHandler.getMETARs(self._metarsCallback, 1131 1106 [bookedFlight.departureICAO, … … 1160 1135 self._departure = departure 1161 1136 1162 title = "Briefing (%d/2): %s" % (1 if departure else 2, 1163 "departure" if departure 1164 else "arrival") 1165 1166 help = "Read carefully the NOTAMs and METAR below.\n\n" \ 1167 "You can edit the METAR if your simulator or network\n" \ 1168 "provides different weather." 1169 completedHelp = "If your simulator or network provides a different\n" \ 1170 "weather, you can edit the METAR below." 1171 super(BriefingPage, self).__init__(wizard, title, help, 1172 completedHelp = completedHelp) 1137 title = xstr("briefing_title") % (1 if departure else 2, 1138 xstr("briefing_departure") 1139 if departure 1140 else xstr("briefing_arrival")) 1141 super(BriefingPage, self).__init__(wizard, title, xstr("briefing_help"), 1142 completedHelp = xstr("briefing_chelp")) 1173 1143 1174 1144 alignment = gtk.Alignment(xalign = 0.5, yalign = 0.5, … … 1180 1150 1181 1151 self._notamsFrame = gtk.Frame() 1182 self._notamsFrame.set_label( "LHBP NOTAMs")1152 self._notamsFrame.set_label(xstr("briefing_notams_init")) 1183 1153 scrolledWindow = gtk.ScrolledWindow() 1184 1154 scrolledWindow.set_size_request(-1, 128) … … 1202 1172 1203 1173 self._metarFrame = gtk.Frame() 1204 self._metarFrame.set_label( "LHBP METAR")1174 self._metarFrame.set_label(xstr("briefing_metar_init")) 1205 1175 scrolledWindow = gtk.ScrolledWindow() 1206 1176 scrolledWindow.set_size_request(-1, 32) … … 1223 1193 self.metarEdited = False 1224 1194 1225 button = self.addButton(gtk.STOCK_GO_BACK) 1226 button.set_use_stock(True) 1227 button.connect("clicked", self._backClicked) 1228 1229 self._button = self.addButton(gtk.STOCK_GO_FORWARD, default = True) 1230 self._button.set_use_stock(True) 1231 self._button.connect("clicked", self._forwardClicked) 1195 self.addPreviousButton(clicked = self._backClicked) 1196 self._button = self.addNextButton(clicked = self._forwardClicked) 1232 1197 1233 1198 @property … … 1246 1211 """Activate the page.""" 1247 1212 if not self._departure: 1248 self._button.set_label("I have read the briefing and am ready to fly!") 1213 self._button.set_label(xstr("briefing_button")) 1214 self._button.set_has_tooltip(False) 1249 1215 self._button.set_use_stock(False) 1250 1216 … … 1258 1224 else self._wizard._arrivalMETAR 1259 1225 1260 self._notamsFrame.set_label( icao + " NOTAMs")1226 self._notamsFrame.set_label(xstr("briefing_notams_template") % (icao,)) 1261 1227 buffer = self._notams.get_buffer() 1262 1228 if notams is None: 1263 buffer.set_text( "Could not download NOTAMs")1229 buffer.set_text(xstr("briefing_notams_failed")) 1264 1230 elif not notams: 1265 buffer.set_text( "Could not download NOTAM for this airport")1231 buffer.set_text(xstr("briefing_notams_missing")) 1266 1232 else: 1267 1233 s = "" … … 1279 1245 buffer.set_text(s) 1280 1246 1281 self._metarFrame.set_label( icao + " METAR")1247 self._metarFrame.set_label(xstr("briefing_metar_template") % (icao,)) 1282 1248 buffer = self._metar.get_buffer() 1283 1249 if metar is None: 1284 buffer.set_text( "Could not download METAR")1250 buffer.set_text(xstr("briefing_metar_failed")) 1285 1251 else: 1286 1252 buffer.set_text(metar) 1253 1254 label = self._metarFrame.get_label_widget() 1255 label.set_use_underline(True) 1256 label.set_mnemonic_widget(self._metar) 1287 1257 1288 1258 self.metarEdited = False … … 1297 1267 if not self._completed: 1298 1268 self._wizard.gui.startMonitoring() 1299 self._button.set_ use_stock(True)1300 self._button.set_ label(gtk.STOCK_GO_FORWARD)1269 self._button.set_label(xstr("button_next")) 1270 self._button.set_tooltip_text(xstr("button_next_tooltip")) 1301 1271 self.complete() 1302 1272 … … 1316 1286 def __init__(self, wizard): 1317 1287 """Construct the takeoff page.""" 1318 help = "Enter the runway and SID used, as well as the speeds." 1319 completedHelp = "The runway, SID and takeoff speeds logged can be seen below." 1320 1321 super(TakeoffPage, self).__init__(wizard, "Takeoff", help, 1322 completedHelp = completedHelp) 1288 super(TakeoffPage, self).__init__(wizard, xstr("takeoff_title"), 1289 xstr("takeoff_help"), 1290 completedHelp = xstr("takeoff_chelp")) 1323 1291 1324 1292 self._forwardAllowed = False … … 1334 1302 self.setMainWidget(alignment) 1335 1303 1336 label = gtk.Label( "Run_way:")1304 label = gtk.Label(xstr("takeoff_runway")) 1337 1305 label.set_use_underline(True) 1338 1306 label.set_alignment(0.0, 0.5) … … 1341 1309 self._runway = gtk.Entry() 1342 1310 self._runway.set_width_chars(10) 1343 self._runway.set_tooltip_text( "The runway the takeoff is performed from.")1311 self._runway.set_tooltip_text(xstr("takeoff_runway_tooltip")) 1344 1312 self._runway.connect("changed", self._valueChanged) 1345 1313 table.attach(self._runway, 1, 3, 0, 1) 1346 1314 label.set_mnemonic_widget(self._runway) 1347 1315 1348 label = gtk.Label( "_SID:")1316 label = gtk.Label(xstr("takeoff_sid")) 1349 1317 label.set_use_underline(True) 1350 1318 label.set_alignment(0.0, 0.5) … … 1353 1321 self._sid = gtk.Entry() 1354 1322 self._sid.set_width_chars(10) 1355 self._sid.set_tooltip_text( "The name of the Standard Instrument Deparature procedure followed.")1323 self._sid.set_tooltip_text(xstr("takeoff_sid_tooltip")) 1356 1324 self._sid.connect("changed", self._valueChanged) 1357 1325 table.attach(self._sid, 1, 3, 1, 2) 1358 1326 label.set_mnemonic_widget(self._sid) 1359 1327 1360 label = gtk.Label( "V<sub>_1</sub>:")1328 label = gtk.Label(xstr("takeoff_v1")) 1361 1329 label.set_use_markup(True) 1362 1330 label.set_use_underline(True) … … 1366 1334 self._v1 = IntegerEntry() 1367 1335 self._v1.set_width_chars(4) 1368 self._v1.set_tooltip_markup( "The takeoff decision speed in knots.")1336 self._v1.set_tooltip_markup(xstr("takeoff_v1_tooltip")) 1369 1337 self._v1.connect("integer-changed", self._valueChanged) 1370 1338 table.attach(self._v1, 2, 3, 2, 3) 1371 1339 label.set_mnemonic_widget(self._v1) 1372 1340 1373 table.attach(gtk.Label( "knots"), 3, 4, 2, 3)1374 1375 label = gtk.Label( "V<sub>_R</sub>:")1341 table.attach(gtk.Label(xstr("label_knots")), 3, 4, 2, 3) 1342 1343 label = gtk.Label(xstr("takeoff_vr")) 1376 1344 label.set_use_markup(True) 1377 1345 label.set_use_underline(True) … … 1381 1349 self._vr = IntegerEntry() 1382 1350 self._vr.set_width_chars(4) 1383 self._vr.set_tooltip_markup( "The takeoff rotation speed in knots.")1351 self._vr.set_tooltip_markup(xstr("takeoff_vr_tooltip")) 1384 1352 self._vr.connect("integer-changed", self._valueChanged) 1385 1353 table.attach(self._vr, 2, 3, 3, 4) 1386 1354 label.set_mnemonic_widget(self._vr) 1387 1355 1388 table.attach(gtk.Label( "knots"), 3, 4, 3, 4)1389 1390 label = gtk.Label( "V<sub>_2</sub>:")1356 table.attach(gtk.Label(xstr("label_knots")), 3, 4, 3, 4) 1357 1358 label = gtk.Label(xstr("takeoff_v2")) 1391 1359 label.set_use_markup(True) 1392 1360 label.set_use_underline(True) … … 1396 1364 self._v2 = IntegerEntry() 1397 1365 self._v2.set_width_chars(4) 1398 self._v2.set_tooltip_markup( "The takeoff safety speed in knots.")1366 self._v2.set_tooltip_markup(xstr("takeoff_v2_tooltip")) 1399 1367 self._v2.connect("integer-changed", self._valueChanged) 1400 1368 table.attach(self._v2, 2, 3, 4, 5) 1401 1369 label.set_mnemonic_widget(self._v2) 1402 1370 1403 table.attach(gtk.Label("knots"), 3, 4, 4, 5) 1404 1405 button = self.addButton(gtk.STOCK_GO_BACK) 1406 button.set_use_stock(True) 1407 button.connect("clicked", self._backClicked) 1408 1409 self._button = self.addButton(gtk.STOCK_GO_FORWARD, default = True) 1410 self._button.set_use_stock(True) 1411 self._button.connect("clicked", self._forwardClicked) 1371 table.attach(gtk.Label(xstr("label_knots")), 3, 4, 4, 5) 1372 1373 self.addPreviousButton(clicked = self._backClicked) 1374 1375 self._button = self.addNextButton(clicked = self._forwardClicked) 1412 1376 1413 1377 @property … … 1494 1458 def __init__(self, wizard): 1495 1459 """Construct the landing page.""" 1496 help = "Enter the STAR and/or transition, runway,\n" \ 1497 "approach type and V<sub>Ref</sub> used." 1498 completedHelp = "The STAR and/or transition, runway, approach\n" \ 1499 "type and V<sub>Ref</sub> logged can be seen below." 1500 1501 super(LandingPage, self).__init__(wizard, "Landing", help, 1502 completedHelp = completedHelp) 1460 super(LandingPage, self).__init__(wizard, xstr("landing_title"), 1461 xstr("landing_help"), 1462 completedHelp = xstr("landing_chelp")) 1503 1463 1504 1464 self._flightEnded = False … … 1518 1478 table.attach(self._starButton, 0, 1, 0, 1) 1519 1479 1520 label = gtk.Label( "_STAR:")1480 label = gtk.Label(xstr("landing_star")) 1521 1481 label.set_use_underline(True) 1522 1482 label.set_alignment(0.0, 0.5) … … 1525 1485 self._star = gtk.Entry() 1526 1486 self._star.set_width_chars(10) 1527 self._star.set_tooltip_text( "The name of Standard Terminal Arrival Route followed.")1487 self._star.set_tooltip_text(xstr("landing_star_tooltip")) 1528 1488 self._star.connect("changed", self._updateForwardButton) 1529 1489 self._star.set_sensitive(False) … … 1535 1495 table.attach(self._transitionButton, 0, 1, 1, 2) 1536 1496 1537 label = gtk.Label( "_Transition:")1497 label = gtk.Label(xstr("landing_transition")) 1538 1498 label.set_use_underline(True) 1539 1499 label.set_alignment(0.0, 0.5) … … 1542 1502 self._transition = gtk.Entry() 1543 1503 self._transition.set_width_chars(10) 1544 self._transition.set_tooltip_text( "The name of transition executed or VECTORS if vectored by ATC.")1504 self._transition.set_tooltip_text(xstr("landing_transition_tooltip")) 1545 1505 self._transition.connect("changed", self._updateForwardButton) 1546 1506 self._transition.set_sensitive(False) … … 1548 1508 label.set_mnemonic_widget(self._transitionButton) 1549 1509 1550 label = gtk.Label( "Run_way:")1510 label = gtk.Label(xstr("landing_runway")) 1551 1511 label.set_use_underline(True) 1552 1512 label.set_alignment(0.0, 0.5) … … 1555 1515 self._runway = gtk.Entry() 1556 1516 self._runway.set_width_chars(10) 1557 self._runway.set_tooltip_text( "The runway the landing is performed on.")1517 self._runway.set_tooltip_text(xstr("landing_runway_tooltip")) 1558 1518 self._runway.connect("changed", self._updateForwardButton) 1559 1519 table.attach(self._runway, 2, 4, 2, 3) 1560 1520 label.set_mnemonic_widget(self._runway) 1561 1521 1562 label = gtk.Label( "_Approach type:")1522 label = gtk.Label(xstr("landing_approach")) 1563 1523 label.set_use_underline(True) 1564 1524 label.set_alignment(0.0, 0.5) … … 1567 1527 self._approachType = gtk.Entry() 1568 1528 self._approachType.set_width_chars(10) 1569 self._approachType.set_tooltip_text( "The type of the approach, e.g. ILS or VISUAL.")1529 self._approachType.set_tooltip_text(xstr("landing_approach_tooltip")) 1570 1530 self._approachType.connect("changed", self._updateForwardButton) 1571 1531 table.attach(self._approachType, 2, 4, 3, 4) 1572 1532 label.set_mnemonic_widget(self._approachType) 1573 1533 1574 label = gtk.Label( "V<sub>_Ref</sub>:")1534 label = gtk.Label(xstr("landing_vref")) 1575 1535 label.set_use_markup(True) 1576 1536 label.set_use_underline(True) … … 1580 1540 self._vref = IntegerEntry() 1581 1541 self._vref.set_width_chars(5) 1582 self._vref.set_tooltip_markup( "The approach reference speed in knots.")1542 self._vref.set_tooltip_markup(xstr("landing_vref_tooltip")) 1583 1543 self._vref.connect("integer-changed", self._vrefChanged) 1584 1544 table.attach(self._vref, 3, 4, 5, 6) 1585 1545 label.set_mnemonic_widget(self._vref) 1586 1546 1587 table.attach(gtk.Label("knots"), 4, 5, 5, 6) 1588 1589 button = self.addButton(gtk.STOCK_GO_BACK) 1590 button.set_use_stock(True) 1591 button.connect("clicked", self._backClicked) 1592 1593 self._button = self.addButton(gtk.STOCK_GO_FORWARD, default = True) 1594 self._button.set_use_stock(True) 1595 self._button.connect("clicked", self._forwardClicked) 1547 table.attach(gtk.Label(xstr("label_knots")), 4, 5, 5, 6) 1548 1549 self.addPreviousButton(clicked = self._backClicked) 1550 1551 self._button = self.addNextButton(clicked = self._forwardClicked) 1596 1552 1597 1553 # These are needed for correct size calculations … … 1715 1671 class FinishPage(Page): 1716 1672 """Flight finish page.""" 1717 _flightTypes = [ (" scheduled", const.FLIGHTTYPE_SCHEDULED),1718 (" old-timer", const.FLIGHTTYPE_OLDTIMER),1719 (" VIP", const.FLIGHTTYPE_VIP),1720 (" charter", const.FLIGHTTYPE_CHARTER) ]1673 _flightTypes = [ ("flighttype_scheduled", const.FLIGHTTYPE_SCHEDULED), 1674 ("flighttype_ot", const.FLIGHTTYPE_OLDTIMER), 1675 ("flighttype_vip", const.FLIGHTTYPE_VIP), 1676 ("flighttype_charter", const.FLIGHTTYPE_CHARTER) ] 1721 1677 1722 1678 def __init__(self, wizard): 1723 1679 """Construct the finish page.""" 1724 help = "There are some statistics about your flight below.\n\n" \ 1725 "Review the data, also on earlier pages, and if you are\n" \ 1726 "satisfied, you can save or send your PIREP." 1727 1728 super(FinishPage, self).__init__(wizard, "Finish", help) 1680 super(FinishPage, self).__init__(wizard, xstr("finish_title"), 1681 xstr("finish_help")) 1729 1682 1730 1683 alignment = gtk.Alignment(xalign = 0.5, yalign = 0.5, … … 1739 1692 1740 1693 labelAlignment = gtk.Alignment(xalign=1.0, xscale=0.0) 1741 label = gtk.Label( "Flight rating:")1694 label = gtk.Label(xstr("finish_rating")) 1742 1695 labelAlignment.add(label) 1743 1696 table.attach(labelAlignment, 0, 1, 0, 1) … … 1752 1705 1753 1706 labelAlignment = gtk.Alignment(xalign=1.0, xscale=0.0) 1754 label = gtk.Label( "Flight time:")1707 label = gtk.Label(xstr("finish_flight_time")) 1755 1708 labelAlignment.add(label) 1756 1709 table.attach(labelAlignment, 0, 1, 1, 2) … … 1765 1718 1766 1719 labelAlignment = gtk.Alignment(xalign=1.0, xscale=0.0) 1767 label = gtk.Label( "Block time:")1720 label = gtk.Label(xstr("finish_block_time")) 1768 1721 labelAlignment.add(label) 1769 1722 table.attach(labelAlignment, 0, 1, 2, 3) … … 1778 1731 1779 1732 labelAlignment = gtk.Alignment(xalign=1.0, xscale=0.0) 1780 label = gtk.Label( "Distance flown:")1733 label = gtk.Label(xstr("finish_distance")) 1781 1734 labelAlignment.add(label) 1782 1735 table.attach(labelAlignment, 0, 1, 3, 4) … … 1791 1744 1792 1745 labelAlignment = gtk.Alignment(xalign=1.0, xscale=0.0) 1793 label = gtk.Label( "Fuel used:")1746 label = gtk.Label(xstr("finish_fuel")) 1794 1747 labelAlignment.add(label) 1795 1748 table.attach(labelAlignment, 0, 1, 4, 5) … … 1803 1756 table.attach(labelAlignment, 1, 2, 4, 5) 1804 1757 1805 labelAlignment = gtk.Alignment(xalign=1.0, xscale=0.0) 1806 label = gtk.Label("_Type:") 1758 labelAlignment = gtk.Alignment(xalign = 1.0, xscale = 0.0, 1759 yalign = 0.5, yscale = 0.0) 1760 label = gtk.Label(xstr("finish_type")) 1807 1761 label.set_use_underline(True) 1808 1762 labelAlignment.add(label) … … 1811 1765 flightTypeModel = gtk.ListStore(str, int) 1812 1766 for (name, type) in FinishPage._flightTypes: 1813 flightTypeModel.append([ name, type])1767 flightTypeModel.append([xstr(name), type]) 1814 1768 1815 1769 self._flightType = gtk.ComboBox(model = flightTypeModel) … … 1817 1771 self._flightType.pack_start(renderer, True) 1818 1772 self._flightType.add_attribute(renderer, "text", 0) 1819 self._flightType.set_tooltip_text( "Select the type of the flight.")1773 self._flightType.set_tooltip_text(xstr("finish_type_tooltip")) 1820 1774 self._flightType.set_active(0) 1821 1775 self._flightType.connect("changed", self._flightTypeChanged) … … 1825 1779 label.set_mnemonic_widget(self._flightType) 1826 1780 1827 self._onlineFlight = gtk.CheckButton( "_Online flight")1781 self._onlineFlight = gtk.CheckButton(xstr("finish_online")) 1828 1782 self._onlineFlight.set_use_underline(True) 1829 self._onlineFlight.set_tooltip_text( "Check if your flight was online, uncheck otherwise.")1783 self._onlineFlight.set_tooltip_text(xstr("finish_online_tooltip")) 1830 1784 onlineFlightAlignment = gtk.Alignment(xalign=0.0, xscale=0.0) 1831 1785 onlineFlightAlignment.add(self._onlineFlight) 1832 1786 table.attach(onlineFlightAlignment, 1, 2, 6, 7) 1833 1787 1834 button = self.addButton(gtk.STOCK_GO_BACK) 1835 button.set_use_stock(True) 1836 button.connect("clicked", self._backClicked) 1837 1838 self._saveButton = self.addButton("S_ave PIREP...") 1839 self._saveButton.set_use_underline(True) 1840 self._saveButton.set_sensitive(False) 1841 #self._saveButton.connect("clicked", self._saveClicked) 1842 1843 self._sendButton = self.addButton("_Send PIREP...", True) 1844 self._sendButton.set_use_underline(True) 1845 self._sendButton.set_sensitive(False) 1846 self._sendButton.connect("clicked", self._sendClicked) 1788 self.addPreviousButton(clicked = self._backClicked) 1789 1790 self._saveButton = self.addButton(xstr("finish_save"), 1791 sensitive = False, 1792 tooltip = xstr("finish_send_tooltip")) 1793 1794 self._sendButton = self.addButton(xstr("finish_send"), default = True, 1795 sensitive = False, 1796 clicked = self._sendClicked, 1797 tooltip = xstr("finish_send_tooltip")) 1847 1798 1848 1799 @property … … 1898 1849 pirep = PIREP(self._wizard.gui) 1899 1850 gui = self._wizard.gui 1900 gui.beginBusy( "Sending PIREP...")1851 gui.beginBusy(xstr("finish_send_busy")) 1901 1852 gui.webHandler.sendPIREP(self._pirepSentCallback, pirep) 1902 1853 … … 1913 1864 if result.success: 1914 1865 type = MESSAGETYPE_INFO 1915 messageFormat = "The PIREP was sent successfully."1916 secondaryMarkup = "Await the thorough scrutiny by our fearless PIREP correctors! :)"1866 messageFormat = xstr("finish_send_success") 1867 secondaryMarkup = xstr("finish_send_success_sec") 1917 1868 elif result.alreadyFlown: 1918 messageFormat = "The PIREP for this flight has already been sent!"1919 secondaryMarkup = "You may clear the old PIREP on the MAVA website."1869 messageFormat = xstr("finish_send_already") 1870 secondaryMarkup = xstr("finish_send_already_sec") 1920 1871 elif result.notAvailable: 1921 messageFormat = "This flight is not available anymore!"1872 messageFormat = xstr("finish_send_notavail") 1922 1873 else: 1923 messageFormat = "The MAVA website returned with an unknown error."1924 secondaryMarkup = "See the debug log for more information."1874 messageFormat = xstr("finish_send_unknown") 1875 secondaryMarkup = xstr("finish_send_unknown_sec") 1925 1876 else: 1926 1877 print "PIREP sending failed", result 1927 messageFormat = "Could not send the PIREP to the MAVA website." 1928 secondaryMarkup = "This can be a network problem, in which case\n" \ 1929 "you may try again later. Or it can be a bug;\n" \ 1930 "see the debug log for more information." 1878 messageFormat = xstr("finish_send_failed") 1879 secondaryMarkup = xstr("finish_send_failed_sec") 1931 1880 1932 1881 dialog = gtk.MessageDialog(parent = self._wizard.gui.mainWindow, … … 2178 2127 callback(self._fleet) 2179 2128 2180 self.gui.beginBusy( "Retrieving fleet...")2129 self.gui.beginBusy(xstr("fleet_busy")) 2181 2130 self._fleetCallback = callback 2182 2131 self.gui.webHandler.getFleet(self._fleetResultCallback) … … 2197 2146 type = MESSAGETYPE_ERROR, 2198 2147 buttons = BUTTONSTYPE_OK, 2199 message_format = 2200 "Failed to retrieve the information on " 2201 "the fleet.") 2148 message_format = xstr("fleet_failed")) 2202 2149 dialog.set_title(WINDOW_TITLE_BASE) 2203 2150 dialog.run() … … 2208 2155 def _updatePlane(self, callback, tailNumber, status, gateNumber = None): 2209 2156 """Update the given plane's gate information.""" 2210 self.gui.beginBusy( "Updating plane status...")2157 self.gui.beginBusy(xstr("fleet_update_busy")) 2211 2158 self._updatePlaneCallback = callback 2212 2159 self.gui.webHandler.updatePlane(self._updatePlaneResultCallback, … … 2229 2176 buttons = BUTTONSTYPE_OK, 2230 2177 message_format = 2231 "Failed to update the statuis of " 2232 "the airplane.") 2178 xstr("fleet_update_failed")) 2233 2179 dialog.set_title(WINDOW_TITLE_BASE) 2234 2180 dialog.run() -
src/mlx/gui/gui.py
r105 r107 15 15 import mlx.acft as acft 16 16 import mlx.web as web 17 from mlx.i18n import xstr 17 18 18 19 import time … … 75 76 76 77 self._wizard = Wizard(self) 77 label = gtk.Label( "Fligh_t")78 label = gtk.Label(xstr("tab_flight")) 78 79 label.set_use_underline(True) 79 80 label.set_tooltip_text("Flight wizard") … … 81 82 82 83 self._flightInfo = FlightInfo(self) 83 label = gtk.Label( "Flight _info")84 label = gtk.Label(xstr("tab_flight_info")) 84 85 label.set_use_underline(True) 85 86 label.set_tooltip_text("Flight information") … … 88 89 89 90 (logWidget, self._logView) = self._buildLogWidget() 90 label = gtk.Label( "_Log")91 label = gtk.Label(xstr("tab_log")) 91 92 label.set_use_underline(True) 92 93 label.set_tooltip_text("The log of your flight that will be sent to the MAVA website") … … 307 308 dialog.hide() 308 309 if result == 1: 309 self.beginBusy( "Connecting to the simulator.")310 self.beginBusy(xstr("connect_busy")) 310 311 self._simulator.reconnect() 311 312 else: … … 569 570 self._flight.simulator = self._simulator 570 571 571 self.beginBusy( "Connecting to the simulator...")572 self.beginBusy(xstr("connect_busy")) 572 573 self._statusbar.updateConnection(self._connecting, self._connected) 573 574 … … 635 636 """Toggle the debug log.""" 636 637 if menuItem.get_active(): 637 label = gtk.Label( "_Debug log")638 label = gtk.Label(xstr("tab_debug_log")) 638 639 label.set_use_underline(True) 639 640 label.set_tooltip_text("Log with debugging information.")
Note:
See TracChangeset
for help on using the changeset viewer.