diff options
author | Mürsel Türk | 2020-07-07 12:06:02 +0200 |
---|---|---|
committer | Mürsel Türk | 2020-07-07 12:06:02 +0200 |
commit | 42953d4f03816ea466d0d3161d93e4c3545b5741 (patch) | |
tree | cb9784e44d8099b9c4f4257c8703c3ffffd42d16 /dozentenmodul/src/main | |
parent | [client] Add resource bundle files for window/layout classes. Update the wind... (diff) | |
download | tutor-module-42953d4f03816ea466d0d3161d93e4c3545b5741.tar.gz tutor-module-42953d4f03816ea466d0d3161d93e4c3545b5741.tar.xz tutor-module-42953d4f03816ea466d0d3161d93e4c3545b5741.zip |
[client] Add resource bundle files for window classes. Update the window classes accordingly.
Diffstat (limited to 'dozentenmodul/src/main')
16 files changed, 440 insertions, 146 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/BwIdmLinkWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/BwIdmLinkWindow.java index d24378ab..9e804812 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/BwIdmLinkWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/BwIdmLinkWindow.java @@ -21,6 +21,7 @@ import org.openslx.dozmod.Branding; import org.openslx.dozmod.authentication.ShibbolethEcp; import org.openslx.dozmod.gui.Gui; import org.openslx.dozmod.gui.helper.GridManager; +import org.openslx.dozmod.gui.helper.I18n; import org.openslx.dozmod.gui.helper.UiFeedback; import org.openslx.dozmod.util.DesktopEnvironment; @@ -29,11 +30,6 @@ import org.openslx.dozmod.util.DesktopEnvironment; */ @SuppressWarnings("serial") public class BwIdmLinkWindow extends JDialog implements UiFeedback { - private static final String title = "Registrierung erforderlich"; - private static final String infoText = "<html><body style='width:100%'>" - + "Sie sind nicht bei " + Branding.getServiceName() + " registriert. " - + "Bitte rufen Sie die angegebene Seite auf um sich zu registrieren und versuchen Sie es erneut." - + "</body></html>"; protected JButton btnLink; protected JButton OkButton; @@ -44,8 +40,8 @@ public class BwIdmLinkWindow extends JDialog implements UiFeedback { * Don't use this, use static function open instead! */ public BwIdmLinkWindow(Frame modalParent) { - super(modalParent, title, modalParent != null ? ModalityType.APPLICATION_MODAL - : ModalityType.MODELESS); + super(modalParent, I18n.WINDOW.getString("BwIdmLink.Dialog.title", Branding.getServiceName()), + modalParent != null ? ModalityType.APPLICATION_MODAL : ModalityType.MODELESS); final BwIdmLinkWindow me = this; setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); @@ -57,13 +53,13 @@ public class BwIdmLinkWindow extends JDialog implements UiFeedback { GridManager grid = new GridManager(contentPanel, 1); // infotext - JLabel infoLabel = new JLabel(infoText); - infoLabel.setBorder(BorderFactory.createTitledBorder("Hinweis")); + JLabel infoLabel = new JLabel(I18n.WINDOW.getString("BwIdmLink.Label.info.text")); + infoLabel.setBorder(BorderFactory.createTitledBorder(I18n.WINDOW.getString("BwIdmLink.Label.info.title"))); grid.add(infoLabel).fill(true, true).expand(true, true).anchor(GridBagConstraints.CENTER); grid.nextRow(); // button for opening the link - btnLink = new JButton("Seite im Browser öffnen"); + btnLink = new JButton(I18n.WINDOW.getString("BwIdmLink.Button.link.text")); btnLink.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { @@ -92,7 +88,7 @@ public class BwIdmLinkWindow extends JDialog implements UiFeedback { bottomPane.add(Box.createHorizontalGlue()); // close/ok button - OkButton = new JButton("Schließen"); + OkButton = new JButton(I18n.WINDOW.getString("BwIdmLink.Button.ok.text")); OkButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ConfigWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ConfigWindow.java index c8c0d9d0..73bfe4a0 100755 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ConfigWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ConfigWindow.java @@ -18,6 +18,7 @@ import org.openslx.dozmod.Config; import org.openslx.dozmod.Config.ProxyMode; import org.openslx.dozmod.gui.Gui; import org.openslx.dozmod.gui.MainWindow; +import org.openslx.dozmod.gui.helper.I18n; import org.openslx.dozmod.gui.helper.MessageType; import org.openslx.dozmod.gui.helper.UiFeedback; import org.openslx.dozmod.gui.window.layout.ConfigWindowLayout; @@ -66,7 +67,7 @@ public class ConfigWindow extends ConfigWindowLayout implements UiFeedback, Acti chkSendMeMail.setSelected(false); } chkSendMeMail.addActionListener(this); - lblYourAddress.setText("Ihre Adresse ist " + Session.getEMail()); + lblYourAddress.setText(I18n.WINDOW.getString("Config.Label.yourAddress.text", Session.getEMail())); } // -- END USER CONFIG -- @@ -167,7 +168,7 @@ public class ConfigWindow extends ConfigWindowLayout implements UiFeedback, Acti userConfig = ThriftManager.getSatClient().getUserConfig(Session.getSatelliteToken()); } catch (TException e) { ThriftError.showMessage(this, LOGGER, e, - "Konnte die benutzerspezifische Konfiguration nicht vom Satelliten holen"); + I18n.WINDOW.getString("Config.Message.error.couldNotGetUserConfFromSat")); } return userConfig; } @@ -181,7 +182,7 @@ public class ConfigWindow extends ConfigWindowLayout implements UiFeedback, Acti userConfig = config; } catch (TException e) { ThriftError.showMessage(this, LOGGER, e, - "Konnte die benutzerspezifische Konfiguration nicht auf dem Satelliten speichern"); + I18n.WINDOW.getString("Config.Message.error.couldNotSaveUserConfOnSat")); return false; } return true; @@ -223,7 +224,7 @@ public class ConfigWindow extends ConfigWindowLayout implements UiFeedback, Acti if (restartRequired) { // let the user know he needs to restart for the changes to apply - Gui.showMessageBox(this, "Die Änderungen werden erst nach einem Programmneustart wirksam.", + Gui.showMessageBox(this, I18n.WINDOW.getString("Config.Message.info.restartNeededToApplyChanges"), MessageType.INFO, null, null); } } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/GenericNoticeWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/GenericNoticeWindow.java index 94492d7f..09b22948 100755 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/GenericNoticeWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/GenericNoticeWindow.java @@ -13,6 +13,7 @@ import javax.swing.JScrollBar; import org.apache.log4j.Logger; import org.openslx.dozmod.gui.Gui; +import org.openslx.dozmod.gui.helper.I18n; import org.openslx.dozmod.gui.helper.MessageType; import org.openslx.dozmod.gui.helper.UiFeedback; import org.openslx.dozmod.gui.window.layout.GenericNoticeWindowLayout; @@ -50,7 +51,7 @@ public abstract class GenericNoticeWindow extends GenericNoticeWindowLayout impl }); if (!shouldBeShown) { chkAgreeBox.setVisible(false); - btnContinue.setText("Schließen"); + btnContinue.setText(I18n.WINDOW.getString("GenericNotice.Button.continue.text")); btnContinue.setEnabled(true); } else { disclaimerPanel.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener() { @@ -86,10 +87,8 @@ public abstract class GenericNoticeWindow extends GenericNoticeWindowLayout impl */ private void closeWindow() { if (shouldBeShown) { - if (Gui.showMessageBox(me, - "Wenn diesen rechtlichen Hinweis nicht akzeptieren, können Sie die Software nicht verwenden! " - + "Sind Sie sicher, dass sie abbrechen wollen?", MessageType.QUESTION_YESNO, - LOGGER, null)) { + if (Gui.showMessageBox(me, I18n.WINDOW.getString("GenericNotice.Message.yesNo.closeWindow"), + MessageType.QUESTION_YESNO, LOGGER, null)) { System.exit(ABORT); } } else { diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java index 211ff1b7..17b9b3db 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java @@ -46,11 +46,7 @@ import org.openslx.dozmod.gui.MainWindow; import org.openslx.dozmod.gui.changemonitor.AbstractControlWrapper; import org.openslx.dozmod.gui.changemonitor.DialogChangeMonitor; import org.openslx.dozmod.gui.changemonitor.DialogChangeMonitor.TextNotEmptyConstraint; -import org.openslx.dozmod.gui.helper.DateTimeHelper; -import org.openslx.dozmod.gui.helper.ExpiryDateChooser; -import org.openslx.dozmod.gui.helper.MessageType; -import org.openslx.dozmod.gui.helper.PopupMenu; -import org.openslx.dozmod.gui.helper.UiFeedback; +import org.openslx.dozmod.gui.helper.*; import org.openslx.dozmod.gui.window.UserListWindow.UserAddedCallback; import org.openslx.dozmod.gui.window.layout.ImageDetailsWindowLayout; import org.openslx.dozmod.gui.wizard.ImageUpdateWizard; @@ -125,11 +121,11 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe /** * Popup menu items */ - private final JMenuItem mnuNewLecture = new JMenuItem("Neue Veranstaltung"); - private final JMenuItem mnuDownload = new JMenuItem("Download"); - private final JMenuItem mnuVmConfig = new JMenuItem("VM-Konfiguration"); - private final JMenuItem mnuDelete = new JMenuItem("Löschen"); - private final JMenuItem mnuExtendExpiryDate = new JMenuItem("Ablaufzeitpunkt verlängern"); + private final JMenuItem mnuNewLecture = new JMenuItem(I18n.WINDOW.getString("ImageDetails.MenuItem.newLecture.text")); + private final JMenuItem mnuDownload = new JMenuItem(I18n.WINDOW.getString("ImageDetails.MenuItem.download.text")); + private final JMenuItem mnuVmConfig = new JMenuItem(I18n.WINDOW.getString("ImageDetails.MenuItem.vmConfig.text")); + private final JMenuItem mnuDelete = new JMenuItem(I18n.WINDOW.getString("ImageDetails.MenuItem.delete.text")); + private final JMenuItem mnuExtendExpiryDate = new JMenuItem(I18n.WINDOW.getString("ImageDetails.MenuItem.extendExpirationDate.text")); private DialogChangeMonitor changeMonitor; @@ -220,13 +216,12 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe public void userAdded(UserInfo user, UserListWindow window) { window.dispose(); if (Gui.showMessageBox(me, - "Sind Sie sicher, dass sie die Besitzerrechte an " - + "einen anderen Benutzer übertragen wollen?", + I18n.WINDOW.getString("ImageDetails.Message.yesNo.changeOwner"), MessageType.QUESTION_YESNO, LOGGER, null)) setImageOwner(user); } - }, "Besitzer festlegen", image.ownerId); + }, I18n.WINDOW.getString("ImageDetails.Button.changeOwner.caption"), image.ownerId); } }); @@ -337,16 +332,17 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe tblVersions.addMouseListener(ma); // add controls to change monitor to handle user actions - changeMonitor.add(txtTitle).addConstraint(new TextNotEmptyConstraint("Name darf nicht leer sein")); - changeMonitor.add(txtDescription) - .addConstraint(new TextNotEmptyConstraint("Beschreibung darf nicht leer sein")); + changeMonitor.add(txtTitle).addConstraint(new TextNotEmptyConstraint( + I18n.WINDOW.getString("ImageDetails.TextField.title.error"))); + changeMonitor.add(txtDescription).addConstraint(new TextNotEmptyConstraint( + I18n.WINDOW.getString("ImageDetails.TextField.description.error"))); changeMonitor.add(txtTags); changeMonitor.addFixedCombo(cboOperatingSystem, Comparators.operatingSystem) .addConstraint(new DialogChangeMonitor.ValidationConstraint<OperatingSystem>() { public String checkStateValid(OperatingSystem userInput) { if (userInput != null && MetaDataCache.getOsById(userInput.osId) != null) // validating OS coming from the cache makes no sense? return null; - return "Ungültiges Betriebssystem ausgewählt!"; + return I18n.WINDOW.getString("ImageDetails.ComboBox.OS.error"); } }); changeMonitor.addFixedCombo(cboShareMode, null) @@ -354,7 +350,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe public String checkStateValid(ShareMode userInput) { if (userInput != null) return null; - return "Ungültiges Betriebssystem ausgewählt!"; + return I18n.WINDOW.getString("ImageDetails.ComboBox.shareMode.error"); } }); changeMonitor.add(chkIsTemplate); @@ -415,8 +411,9 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe @Override public void run() { if (machineDescription == null) { - Gui.showMessageBox("Konnte VM-Konfiguration nicht abrufen.", MessageType.ERROR, - LOGGER, null); + Gui.showMessageBox( + I18n.WINDOW.getString("ImageDetails.Message.error.couldNotRetrieveVMConfig"), + MessageType.ERROR, LOGGER, null); return; } @@ -482,8 +479,9 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe if (!actionHandler.setImageOwner(image.getImageBaseId(), user)) { return; } - Gui.showMessageBox(me, "Besitzrechte übertragen an " + FormatHelper.userName(user), MessageType.INFO, - null, null); + Gui.showMessageBox(me, + I18n.WINDOW.getString("ImageDetails.Message.info.setImageOwner", FormatHelper.userName(user)), + MessageType.INFO, null, null); makeEditable(false); refresh(true); } @@ -496,13 +494,13 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe // 04.2018: bail if we the user tries to publish a non-vmware image. if (Session.hasFeature(Feature.MULTIPLE_HYPERVISORS) && !TConst.VIRT_VMWARE.equals(image.virtId)) { Gui.showMessageBox( - MetaDataCache.getVirtualizerById(image.virtId).virtName - + " ist derzeit nicht für den öffentlichen Austausch freigegeben.", + I18n.WINDOW.getString("ImageDetails.Message.error.publishNonVMWareImage", + MetaDataCache.getVirtualizerById(image.virtId).virtName), MessageType.ERROR, null, null); return; } if (changeMonitor.isCurrentlyModified()) { - if (Gui.showMessageBox("Sie haben unspeicherte Änderungen, wollen Sie diese erst speichern?", + if (Gui.showMessageBox(I18n.WINDOW.getString("ImageDetails.Message.yesNo.currentlyModified"), MessageType.QUESTION_YESNO, null, null)) { if (!saveChangesInternal()) { return; @@ -510,7 +508,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe } } // let the user confirm or abort - if (!Gui.showMessageBox("Wollen Sie diese VM wirklich landesweit veröffentlichen?", + if (!Gui.showMessageBox(I18n.WINDOW.getString("ImageDetails.Message.yesNo.confirmOrAbort"), MessageType.QUESTION_YESNO, null, null)) return; // start upload to masterserver @@ -523,10 +521,8 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe image.latestVersionId); } catch (TException e1) { ThriftError.showMessage(me, LOGGER, e1, - "Upload der VM auf den Masterserver fehlgeschlagen." - + " Prüfen Sie, ob Sie bei der Registrierung dem landesweiten VM-Austausch zugestimmt haben.\n" - + " Sie können dies hier überprüfen:\n" - + DesktopEnvironment.Link.REGISTER_BWIDM.uri.toString() + "\n\n"); + I18n.WINDOW.getString("ImageDetails.Message.error.uploadFailed", + DesktopEnvironment.Link.REGISTER_BWIDM.uri.toString())); return; } Gui.asyncExec(new Runnable() { @@ -535,10 +531,8 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe MainWindow.addPassiveTransfer(transferId, image.imageName, true); // Inform user Gui.showMessageBox(ImageDetailsWindow.this, - "Die Übertragung läuft direkt zwischen Satellitenserver und" - + " dem " + Branding.getServiceName() + " Zentral-Server.\n" - + "Wenn Sie die " + Branding.getApplicationName() + " schließen, wird der Transfer trotzdem" - + "weiterlaufen.", + I18n.WINDOW.getString("ImageDetails.Message.info.passiveTransfer", + Branding.getServiceName(), Branding.getApplicationName()), MessageType.INFO, null, null); } }); @@ -591,7 +585,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe LOGGER.info("Successfully saved new metadata"); } catch (TException e) { ThriftError.showMessage(me, LOGGER, e, - "Konnte aktualisierte Metadaten nicht an den Server übermitteln"); + I18n.WINDOW.getString("ImageDetails.Message.error.saveChangesInternal")); return false; } @@ -617,7 +611,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe LOGGER.info("Successfully saved new custom permissions"); } catch (TException e) { ThriftError.showMessage(me, LOGGER, e, - "Konnte geänderte Berechtigungen nicht an den Server übermitteln"); + I18n.WINDOW.getString("ImageDetails.Message.error.saveCustomPermissions")); return false; } return true; @@ -630,7 +624,8 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe */ private void performImageDownload(ImageVersionDetails selected) { if (selected.getVersionId() == null) { - Gui.showMessageBox(this, "Ausgewählte Version ist ungültig", MessageType.ERROR, null, null); + Gui.showMessageBox(this, I18n.WINDOW.getString("ImageDetails.Message.error.performImageDownload"), + MessageType.ERROR, null, null); return; } // using actionHandler here is not needed, as this ThriftAction works for downloads @@ -698,12 +693,12 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe count++; } catch (TException e) { ThriftError.showMessage(this, LOGGER, e, - "Konnte Ablaufdatum der Version " + img.versionId + " nicht verlängern."); + I18n.WINDOW.getString("ImageDetails.Message.error.extendVersionExpiry", img.versionId)); } } if (count > 0) { - Gui.showMessageBox(this, "Erfolgreich verlängerte Abbilder: " + count, MessageType.INFO, null, - null); + Gui.showMessageBox(this, I18n.WINDOW.getString("ImageDetails.Message.info.extendVersionExpiry", count), + MessageType.INFO, null, null); refresh(true); } } @@ -882,7 +877,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe */ private boolean safeClose() { if (changeMonitor.isCurrentlyModified() - && !Gui.showMessageBox(me, "Änderungen werden verworfen, wollen Sie wirklich schließen?", + && !Gui.showMessageBox(me, I18n.WINDOW.getString("ImageDetails.Message.yesNo.safeClose"), MessageType.QUESTION_YESNO, null, null)) return false; dispose(); diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java index 50034bf0..b2904280 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java @@ -24,6 +24,7 @@ import org.openslx.bwlp.thrift.iface.ImageSummaryRead; import org.openslx.dozmod.gui.Gui; import org.openslx.dozmod.gui.MainWindow; import org.openslx.dozmod.gui.control.table.ImageTable; +import org.openslx.dozmod.gui.helper.I18n; import org.openslx.dozmod.gui.helper.MessageType; import org.openslx.dozmod.gui.helper.PopupMenu; import org.openslx.dozmod.gui.window.ImageDetailsWindow.ImageUpdatedCallback; @@ -62,10 +63,10 @@ public class ImageListWindow extends ImageListWindowLayout implements DownloadCa /** * Popup menu items */ - private final JMenuItem popupItemNewLecture = new JMenuItem("Neue Veranstaltung"); - private final JMenuItem popupItemEdit = new JMenuItem("Detailansicht"); - private final JMenuItem popupItemDelete = new JMenuItem("Löschen"); - private final JMenuItem popupItemDownload = new JMenuItem("Download"); + private final JMenuItem popupItemNewLecture = new JMenuItem(I18n.WINDOW.getString("ImageList.MenuItem.newLecture.text")); + private final JMenuItem popupItemEdit = new JMenuItem(I18n.WINDOW.getString("ImageList.MenuItem.edit.text")); + private final JMenuItem popupItemDelete = new JMenuItem(I18n.WINDOW.getString("ImageList.MenuItem.delete.text")); + private final JMenuItem popupItemDownload = new JMenuItem(I18n.WINDOW.getString("ImageList.MenuItem.download.text")); /** * Constructor @@ -251,7 +252,7 @@ public class ImageListWindow extends ImageListWindowLayout implements DownloadCa if (image == null) return false; if (image.getLatestVersionId() == null) { - Gui.showMessageBox(me, "Die gewählte VM besitzt keine gültige Image-Version", + Gui.showMessageBox(me, I18n.WINDOW.getString("ImageList.Message.error.hasLatestVersion"), MessageType.ERROR, null, null); return false; } @@ -379,7 +380,7 @@ public class ImageListWindow extends ImageListWindowLayout implements DownloadCa } } if (failedToDeleteAll) { - Gui.showMessageBox("Folgende images konnten nicht gelöscht werden: " + builder.toString(), + Gui.showMessageBox(I18n.WINDOW.getString("ImageList.Message.info.deleteImages", builder.toString()), MessageType.INFO, LOGGER, null); } ctlImageListViewer.refreshList(deletedAtLeastOne, 1000); diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImagePublishedWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImagePublishedWindow.java index b02b5cf7..079329c7 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImagePublishedWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImagePublishedWindow.java @@ -31,6 +31,7 @@ import org.openslx.dozmod.Branding; import org.openslx.dozmod.gui.Gui; import org.openslx.dozmod.gui.MainWindow; import org.openslx.dozmod.gui.control.table.ListTable.ListModel; +import org.openslx.dozmod.gui.helper.I18n; import org.openslx.dozmod.gui.helper.MessageType; import org.openslx.dozmod.gui.helper.TextChangeListener; import org.openslx.dozmod.gui.helper.UiFeedback; @@ -113,15 +114,14 @@ public class ImagePublishedWindow extends ImagePublishedWindowLayout implements transferToken = ThriftManager.getSatClient() .requestImageReplication(Session.getSatelliteToken(), item.latestVersionId); } catch (TException ex) { - ThriftError.showMessage(me, LOGGER, ex, "Could not start download"); + ThriftError.showMessage(me, LOGGER, ex, + I18n.WINDOW.getString("ImagePublished.Message.error.satDownload")); return; } MainWindow.addPassiveTransfer(transferToken, item.imageName, false); Gui.showMessageBox(ImagePublishedWindow.this, - "Die Übertragung läuft direkt zwischen Satellitenserver und" - + " dem " + Branding.getServiceName() + " Zentral-Server.\n" - + "Wenn Sie die " + Branding.getApplicationName() + " schließen, wird der Transfer trotzdem" - + "weiterlaufen.", + I18n.WINDOW.getString("ImagePublished.Message.info.satDownload", Branding.getServiceName(), + Branding.getApplicationName()), MessageType.INFO, null, null); } }); diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureChangeImage.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureChangeImage.java index a2654896..41532b6f 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureChangeImage.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureChangeImage.java @@ -19,6 +19,7 @@ import org.openslx.dozmod.gui.Gui; import org.openslx.dozmod.gui.changemonitor.DialogChangeMonitor; import org.openslx.dozmod.gui.changemonitor.GenericControlWindow; import org.openslx.dozmod.gui.control.table.ImageTable; +import org.openslx.dozmod.gui.helper.I18n; import org.openslx.dozmod.gui.helper.MessageType; import org.openslx.dozmod.gui.helper.UiFeedback; import org.openslx.dozmod.gui.window.layout.LectureChangeImageLayout; @@ -78,10 +79,12 @@ public class LectureChangeImage extends LectureChangeImageLayout implements UiFe dispose(); } else { if (!image.isValid) { - Gui.showMessageBox(LectureChangeImage.this, "Ausgewählte VM ist ungültig!", MessageType.ERROR, - LOGGER, null); + Gui.showMessageBox(LectureChangeImage.this, + I18n.WINDOW.getString("LectureChangeImage.Message.error.imageInvalid"), + MessageType.ERROR, LOGGER, null); } else { - Gui.showMessageBox(LectureChangeImage.this, "Keine Rechte zum Verlinken auf die ausgewählte VM.", + Gui.showMessageBox(LectureChangeImage.this, + I18n.WINDOW.getString("LectureChangeImage.Message.error.canNotLinkToVM"), MessageType.ERROR, LOGGER, null); } } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java index 19e30fff..62cf10cc 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java @@ -41,6 +41,7 @@ import org.openslx.dozmod.gui.changemonitor.DialogChangeMonitor.ValidationConstr import org.openslx.dozmod.gui.configurator.NetrulesConfigurator.StateWrapper; import org.openslx.dozmod.gui.configurator.StartupConfigurator.StartupSettings; import org.openslx.dozmod.gui.helper.DateTimeHelper; +import org.openslx.dozmod.gui.helper.I18n; import org.openslx.dozmod.gui.helper.MessageType; import org.openslx.dozmod.gui.helper.UiFeedback; import org.openslx.dozmod.gui.window.UserListWindow.UserAddedCallback; @@ -149,7 +150,7 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements public String checkStateValid(ImageVersionDetails userInput) { if (userInput != null && userInput.isValid) return null; - return "Keine/Ungültige VM-Version ausgewählt"; + return I18n.WINDOW.getString("LectureDetails.ComboBox.versions.error"); } }); // Create constraint for date start/end @@ -162,9 +163,10 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements Date start = DateTimeHelper.getDateFrom(dtpStartDate, spnStartTime); Date end = DateTimeHelper.getDateFrom(dtpEndDate, spnEndTime); if (!end.after(start)) - return "Enddatum darf nicht vor dem Startdatum liegen"; + return I18n.WINDOW.getString("LectureDetails.Message.error.endAfterStart"); if (end.after(maxValidity)) - return "Enddatum liegt nach dem " + FormatHelper.shortDate(maxValidity); + return I18n.WINDOW.getString("LectureDetails.Message.error.endAfterMaxValidity", + FormatHelper.shortDate(maxValidity)); return null; } }; @@ -175,13 +177,16 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements changeMonitor.add(chkIsActive); changeMonitor.add(chkCustomPermAdmin); changeMonitor.add(chkCustomPermEdit); - changeMonitor.add(txtTitle).addConstraint(new TextNotEmptyConstraint("Veranstaltungsname darf nicht leer sein")); - changeMonitor.add(txtDescription).addConstraint(new TextNotEmptyConstraint("Beschreibung darf nicht leer sein")); + changeMonitor.add(txtTitle).addConstraint(new TextNotEmptyConstraint( + I18n.WINDOW.getString("LectureDetails.TextField.title.error"))); + changeMonitor.add(txtDescription).addConstraint(new TextNotEmptyConstraint( + I18n.WINDOW.getString("LectureDetails.TextField.description.error"))); changeMonitor.add(dtpEndDate).addConstraint(dateRangeValidator); changeMonitor.add(dtpStartDate).addConstraint(dateRangeValidator); changeMonitor.add(spnEndTime).addConstraint(dateRangeValidator); changeMonitor.add(spnStartTime).addConstraint(dateRangeValidator); - changeMonitor.add(ctlNetrulesConfigurator).addConstraint(new NotNullConstraint<StateWrapper>("Fehlerhafte Netzwerkregeln")); + changeMonitor.add(ctlNetrulesConfigurator).addConstraint(new NotNullConstraint<StateWrapper>( + I18n.WINDOW.getString("LectureDetails.NetRulesConfigurator.error"))); changeListenerPermissions = changeMonitor.add(ctlPermissionManager); ctlLocationSelector.addToChangeMonitor(changeMonitor); ctlRunscriptConfigurator.addToChangeMonitor(changeMonitor); @@ -252,12 +257,11 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements @Override public void userAdded(UserInfo user, UserListWindow window) { window.dispose(); - if (Gui.showMessageBox(me, "Sind Sie sicher, dass sie die Besitzerrechte an " - + "einen anderen Account übertragen wollen?", MessageType.QUESTION_YESNO, - LOGGER, null)) + if (Gui.showMessageBox(me, I18n.WINDOW.getString("LectureDetails.Message.yesNo.changeOwner"), + MessageType.QUESTION_YESNO, LOGGER, null)) setLectureOwner(user); } - }, "Besitzer festlegen", lecture.ownerId); + }, I18n.WINDOW.getString("LectureDetails.Button.changeOwner.caption"), lecture.ownerId); } }); @@ -386,7 +390,7 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements // now enable the tabs the user can see given its permissions toggleEditable(true); // and always switch to the "About" tab - pnlTabs.setSelectedIndex(pnlTabs.indexOfTab("Übersicht")); + pnlTabs.setSelectedIndex(pnlTabs.indexOfTab(I18n.WINDOW_LAYOUT.getString("LectureDetails.Tab.info.title"))); setVisible(true); changeMonitor.reset(); } @@ -435,8 +439,9 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements return; } // success - Gui.showMessageBox(me, "Besitzrechte übertragen an " + FormatHelper.userName(user), MessageType.INFO, - null, null); + Gui.showMessageBox(me, + I18n.WINDOW.getString("LectureDetails.Message.info.setLectureOwner", FormatHelper.userName(user)), + MessageType.INFO, null, null); toggleEditable(false); String lectureId = lecture.getLectureId(); synchronized (me) { @@ -451,7 +456,8 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements */ private void performImageDownload() { if (image == null) { - Gui.showMessageBox(this, "VM ungültig.", MessageType.ERROR, null, null); + Gui.showMessageBox(this, I18n.WINDOW.getString("LectureDetails.Message.error.imageInvalid"), + MessageType.ERROR, null, null); return; } btnDownloadImage.setEnabled(false); @@ -459,7 +465,8 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements for (ImageVersionDetails version : image.versions) { if (version.versionId.equals(lecture.imageVersionId)) { if (!version.isValid) { - Gui.showMessageBox(this, "Ungültige VM-Version gewählt", MessageType.ERROR, null, null); + Gui.showMessageBox(this, I18n.WINDOW.getString("LectureDetails.Message.error.imageVersionInvalid"), + MessageType.ERROR, null, null); return; } versionSize = version.fileSize; @@ -467,8 +474,8 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements } } if (versionSize == 0) { - Gui.showMessageBox(this, "Fehler bei der Abfrage der Größe des VM-Abbildes.", MessageType.ERROR, null, - null); + Gui.showMessageBox(this, I18n.WINDOW.getString("LectureDetails.Message.error.imageVersionFileSizeInvalid"), + MessageType.ERROR, null, null); return; } ThriftActions.initDownload(JOptionPane.getFrameForComponent(this), lecture.imageVersionId, @@ -552,7 +559,7 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements LOGGER.info("Successfully saved new metadata"); } catch (TException e) { ThriftError.showMessage(JOptionPane.getFrameForComponent(this), LOGGER, e, - "Fehler beim Speichern der Veranstaltung!"); + I18n.WINDOW.getString("LectureDetails.Message.error.saveChangesInternal")); return false; } @@ -578,7 +585,7 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements return true; } catch (TException e) { ThriftError.showMessage(JOptionPane.getFrameForComponent(this), LOGGER, e, - "Fehler beim Übertragen der Berechtigungen!"); + I18n.WINDOW.getString("LectureDetails.Message.error.saveCustomPermissions")); } return false; } @@ -599,10 +606,9 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements // analyse time stuff to see if its valid if (end > start) return true; - String msg = "Start der Veranstaltung ist nach dem Enddatum!"; + String msg = I18n.WINDOW.getString("LectureDetails.Message.error.isPeriodValid"); if (feedback) { - Gui.showMessageBox(me, msg, MessageType.ERROR, - LOGGER, null); + Gui.showMessageBox(me, msg, MessageType.ERROR, LOGGER, null); } lblError.setText(msg); return false; @@ -683,7 +689,7 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements */ private void safeClose() { if (changeMonitor.isCurrentlyModified() - && !Gui.showMessageBox(me, "Änderungen werden verworfen, wollen Sie wirklich schließen?", + && !Gui.showMessageBox(me, I18n.WINDOW.getString("LectureDetails.Message.yesNo.safeClose"), MessageType.QUESTION_YESNO, null, null)) return; synchronized(me) { diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureListWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureListWindow.java index 31ff7702..b89de75a 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureListWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureListWindow.java @@ -35,6 +35,7 @@ import org.openslx.bwlp.thrift.iface.UserInfo; import org.openslx.dozmod.gui.Gui; import org.openslx.dozmod.gui.MainWindow; import org.openslx.dozmod.gui.control.table.ListTable.ListModel; +import org.openslx.dozmod.gui.helper.I18n; import org.openslx.dozmod.gui.helper.MessageType; import org.openslx.dozmod.gui.helper.PopupMenu; import org.openslx.dozmod.gui.helper.TextChangeListener; @@ -65,32 +66,32 @@ public class LectureListWindow extends LectureListWindowLayout { // Filter types as an enum public enum FilterType { - ALL("Alle anzeigen", null), - OWN("Nur eigene/zugewiesene anzeigen", new RowFilter<ListModel<LectureSummary>, Integer>() { + ALL(I18n.WINDOW.getString("LectureList.FilterType.all"), null), + OWN(I18n.WINDOW.getString("LectureList.FilterType.own"), new RowFilter<ListModel<LectureSummary>, Integer>() { public boolean include(Entry<? extends ListModel<LectureSummary>, ? extends Integer> entry) { LectureSummary lecture = entry.getModel().getModelRow(entry.getIdentifier()); return lecture.userPermissions.admin || lecture.ownerId.equals(Session.getUserId()); } }), - ACTIVE("Nur aktive anzeigen", new RowFilter<ListModel<LectureSummary>, Integer>() { + ACTIVE(I18n.WINDOW.getString("LectureList.FilterType.active"), new RowFilter<ListModel<LectureSummary>, Integer>() { public boolean include(Entry<? extends ListModel<LectureSummary>, ? extends Integer> entry) { LectureSummary lecture = entry.getModel().getModelRow(entry.getIdentifier()); return lecture.isEnabled && lecture.endTime > Util.unixTime(); } }), - EDITABLE("Nur editierbare anzeigen", new RowFilter<ListModel<LectureSummary>, Integer>() { + EDITABLE(I18n.WINDOW.getString("LectureList.FilterType.editable"), new RowFilter<ListModel<LectureSummary>, Integer>() { public boolean include(Entry<? extends ListModel<LectureSummary>, ? extends Integer> entry) { LectureSummary lecture = entry.getModel().getModelRow(entry.getIdentifier()); return LecturePerms.canEdit(lecture); } }), - EXPIRING("Bald auslaufende anzeigen", new RowFilter<ListModel<LectureSummary>, Integer>() { + EXPIRING(I18n.WINDOW.getString("LectureList.FilterType.expiring"), new RowFilter<ListModel<LectureSummary>, Integer>() { public boolean include(Entry<? extends ListModel<LectureSummary>, ? extends Integer> entry) { LectureSummary lecture = entry.getModel().getModelRow(entry.getIdentifier()); return Math.abs(lecture.endTime - Util.unixTime()) < 86400 * 7; } }), - EXAMS("Prüfungsveranstaltungen anzeigen", new RowFilter<ListModel<LectureSummary>, Integer>() { + EXAMS(I18n.WINDOW.getString("LectureList.FilterType.exams"), new RowFilter<ListModel<LectureSummary>, Integer>() { public boolean include(Entry<? extends ListModel<LectureSummary>, ? extends Integer> entry) { LectureSummary lecture = entry.getModel().getModelRow(entry.getIdentifier()); return lecture.isExam; @@ -135,11 +136,11 @@ public class LectureListWindow extends LectureListWindowLayout { /** * Popup menu items */ - private JMenuItem popupItemNew = new JMenuItem("Neu"); - private JMenuItem popupItemEdit = new JMenuItem("Detailansicht"); - private JMenuItem popupItemLinked = new JMenuItem("VM-Details anzeigen"); - private JMenuItem popupItemDownload = new JMenuItem("Verlinkte VM herunterladen"); - private JMenuItem popupItemDelete = new JMenuItem("Löschen"); + private JMenuItem popupItemNew = new JMenuItem(I18n.WINDOW.getString("LectureList.MenuItem.new.text")); + private JMenuItem popupItemEdit = new JMenuItem(I18n.WINDOW.getString("LectureList.MenuItem.edit.text")); + private JMenuItem popupItemLinked = new JMenuItem(I18n.WINDOW.getString("LectureList.MenuItem.linked.text")); + private JMenuItem popupItemDownload = new JMenuItem(I18n.WINDOW.getString("LectureList.MenuItem.download.text")); + private JMenuItem popupItemDelete = new JMenuItem(I18n.WINDOW.getString("LectureList.MenuItem.delete.text")); public LectureListWindow() { super(); @@ -212,8 +213,7 @@ public class LectureListWindow extends LectureListWindowLayout { if (lecture == null) return; if (e.getSource().equals(popupItemNew)) { - if (Gui.showMessageBox(me, "Um eine Veranstaltung zu erstellen, " - + "müssen Sie eine VM auswählen. Zur VM-Auswahl wechseln?", + if (Gui.showMessageBox(me, I18n.WINDOW.getString("LectureList.Message.yesNo.switchView"), MessageType.QUESTION_YESNO, LOGGER, null)) { MainWindow.showPage(ImageListWindow.class); } @@ -263,7 +263,8 @@ public class LectureListWindow extends LectureListWindowLayout { public void mouseClicked(MouseEvent e) { if (SwingUtilities.isLeftMouseButton(e) && e.getClickCount() == 2) { if (!Session.canListImages()) { - Gui.showMessageBox("Ihnen fehlen die benötigten Berechtigungen.", MessageType.ERROR, LOGGER, null); + Gui.showMessageBox(I18n.WINDOW.getString("LectureList.Message.error.canNotListImages"), + MessageType.ERROR, LOGGER, null); return; } openLectureDetails(tblLectures.getSelectedItem()); @@ -402,12 +403,13 @@ public class LectureListWindow extends LectureListWindowLayout { for (LectureSummary lecture : fLectures.keySet()) { builder.append("\n\n"); builder.append(lecture.lectureName + " \n" ); - builder.append("Begründung: " + fLectures.get(lecture).getLocalizedMessage()); + builder.append(I18n.WINDOW.getString("LectureList.Message.error.deleteLecture", + fLectures.get(lecture).getLocalizedMessage())); LOGGER.error("Couldn't delete lecture " + lecture.lectureName + ", reason:", fLectures.get(lecture) ); // TODO Should the exception be printed in the debugger or is this to much information? } - Gui.showMessageBox("Folgende Veranstaltungen konnten nicht gelöscht werden: " - + builder.toString(), MessageType.INFO, LOGGER, null); + Gui.showMessageBox(I18n.WINDOW.getString("LectureList.Message.info.deleteLectures", + builder.toString()), MessageType.INFO, LOGGER, null); } } }); diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LocationSelectionWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LocationSelectionWindow.java index bf818cf5..b8eb653d 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LocationSelectionWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LocationSelectionWindow.java @@ -9,6 +9,7 @@ import org.openslx.dozmod.gui.Gui; import org.openslx.dozmod.gui.Gui.GuiCallable; import org.openslx.dozmod.gui.control.JCheckBoxTree.CheckChangeEvent; import org.openslx.dozmod.gui.control.JCheckBoxTree.CheckChangeEventListener; +import org.openslx.dozmod.gui.helper.I18n; import org.openslx.dozmod.gui.helper.MessageType; import org.openslx.dozmod.gui.helper.UiFeedback; import org.openslx.dozmod.gui.window.layout.LocationSelectionWindowLayout; @@ -56,7 +57,7 @@ public class LocationSelectionWindow extends LocationSelectionWindowLayout imple if (tempIntList != null && tempIntList.size() > Session.getSatelliteConfig().maxLocationsPerLecture) { ctlLocationSelector.setSelectedLocationsAsIds(tempIntList); - Gui.showMessageBox("Bitten reduzieren Sie die Anzahl gewählter Orte", + Gui.showMessageBox(I18n.WINDOW.getString("LocationSelection.Message.warning.saveChanges"), MessageType.WARNING, null, null); return; } @@ -73,7 +74,7 @@ public class LocationSelectionWindow extends LocationSelectionWindowLayout imple if (tempIntList != null) { if (tempIntList.size() > Session.getSatelliteConfig().maxLocationsPerLecture) { // add error - lblError.setText("Zu viele Orte ausgewählt!"); + lblError.setText(I18n.WINDOW.getString("LocationSelection.Message.error.locationSelector")); } else { lblError.setText(""); } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LoginWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LoginWindow.java index a6601ea7..94ee10e4 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LoginWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LoginWindow.java @@ -36,6 +36,7 @@ import org.openslx.dozmod.authentication.TestAccountAuthenticator; import org.openslx.dozmod.gui.Gui; import org.openslx.dozmod.gui.MainWindow; import org.openslx.dozmod.gui.activity.UpdatePanel; +import org.openslx.dozmod.gui.helper.I18n; import org.openslx.dozmod.gui.helper.MessageType; import org.openslx.dozmod.gui.helper.TextChangeListener; import org.openslx.dozmod.gui.window.layout.LoginWindowLayout; @@ -74,9 +75,6 @@ public class LoginWindow extends LoginWindowLayout { // authentication method to use for login attempts protected LoginType loginType = null; - // text constants - private final String NO_USERNAME = "Kein Benutzername angegeben!"; - private final String NO_PASSWORD = "Kein Passwort angegeben!"; private boolean forceCustomSatellite = false; @@ -298,12 +296,12 @@ public class LoginWindow extends LoginWindowLayout { private void doLogin() { // sanity check on loginType. if (loginType == null) { - Gui.showMessageBox(this, "Bitte wählen Sie eine Authentifizierungsart.", MessageType.ERROR, - LOGGER, null); + Gui.showMessageBox(this, I18n.WINDOW.getString("Login.Message.error.noLoginType"), + MessageType.ERROR, LOGGER, null); return; } if (loginType == LoginType.ECP && cboOrganization.getSelectedIndex() == -1) { - Gui.showMessageBox(this, "Bitte wählen Sie ihre Organisation als 'Identity Provider'.", + Gui.showMessageBox(this, I18n.WINDOW.getString("Login.Message.error.noOrganization"), MessageType.ERROR, LOGGER, null); cboOrganization.requestFocusInWindow(); return; @@ -313,11 +311,11 @@ public class LoginWindow extends LoginWindowLayout { final String password = String.copyValueOf(txtPassword.getPassword()); // login clicked, lets first read the fields if (username.isEmpty()) { - Gui.showMessageBox(this, NO_USERNAME, MessageType.ERROR, LOGGER, null); + Gui.showMessageBox(this, I18n.WINDOW.getString("Login.Message.error.noUsername"), MessageType.ERROR, LOGGER, null); return; } if (password.isEmpty()) { - Gui.showMessageBox(this, NO_PASSWORD, MessageType.ERROR, LOGGER, null); + Gui.showMessageBox(this, I18n.WINDOW.getString("Login.Message.error.noPassword"), MessageType.ERROR, LOGGER, null); return; } @@ -342,30 +340,32 @@ public class LoginWindow extends LoginWindowLayout { }); return; case IDENTITY_PROVIDER_ERROR: - Gui.showMessageBox(me, "IdP Error", MessageType.ERROR, LOGGER, null); + Gui.showMessageBox(me, I18n.WINDOW.getString("Login.Message.error.authIdentityProvider"), + MessageType.ERROR, LOGGER, null); break; case SERVICE_PROVIDER_ERROR: // here if we have t != null then we have not received a token // if we have t, then the token is invalid. - Gui.showMessageBox(me, "Invalid token from the service provider!", MessageType.ERROR, - LOGGER, t); + Gui.showMessageBox(me, I18n.WINDOW.getString("Login.Message.error.authServiceProvider"), + MessageType.ERROR, LOGGER, t); break; case UNREGISTERED_ERROR: LOGGER.error("User not registered!"); BwIdmLinkWindow.open((JFrame) SwingUtilities.getWindowAncestor(me)); break; case INVALID_URL_ERROR: - Gui.showMessageBox(me, "ECP Authenticator says: Invalid URL.", MessageType.ERROR, LOGGER, - t); + Gui.showMessageBox(me, I18n.WINDOW.getString("Login.Message.error.authInvalidURL"), + MessageType.ERROR, LOGGER, t); break; case GENERIC_ERROR: default: if (t == null || !t.getClass().equals(RuntimeException.class)) { - Gui.showMessageBox(me, "Internal error!", MessageType.ERROR, null, t); + Gui.showMessageBox(me, I18n.WINDOW.getString("Login.Message.error.authInternal"), + MessageType.ERROR, null, t); } else { - Gui.showMessageBox(me, "Der Masterserver hat den Loginversuch mit der" - + " folgenden Nachricht abgewiesen:\n\n" - + t.getMessage(), MessageType.ERROR, null, null); + Gui.showMessageBox(me, + I18n.WINDOW.getString("Login.Message.error.authMasterServer", t.getMessage()), + MessageType.ERROR, null, null); } break; } @@ -383,10 +383,12 @@ public class LoginWindow extends LoginWindowLayout { authenticator = new TestAccountAuthenticator(); break; case DIRECT_CONNECT: - Gui.showMessageBox(this, "Not yet implemented", MessageType.ERROR, LOGGER, null); + Gui.showMessageBox(this, I18n.WINDOW.getString("Login.Message.error.loginTypeDirectConnect"), + MessageType.ERROR, LOGGER, null); return; default: - Gui.showMessageBox(this, "No login type selected!", MessageType.ERROR, LOGGER, null); + Gui.showMessageBox(this, I18n.WINDOW.getString("Login.Message.error.loginTypeDefault"), + MessageType.ERROR, LOGGER, null); return; } @@ -401,10 +403,11 @@ public class LoginWindow extends LoginWindowLayout { authenticator.login(finalUsername, password, authenticatorCallback); return; } catch (TException e) { - ThriftError.showMessage(LoginWindow.this, LOGGER, e, "Anmeldung fehlgeschlagen"); + ThriftError.showMessage(LoginWindow.this, LOGGER, e, + I18n.WINDOW.getString("Login.Message.error.loginFailed")); } catch (Exception e) { - Gui.showMessageBox(LoginWindow.this, "Anmeldung fehlgeschlagen", MessageType.ERROR, - LOGGER, e); + Gui.showMessageBox(LoginWindow.this, I18n.WINDOW.getString("Login.Message.error.loginFailed"), + MessageType.ERROR, LOGGER, e); } enableLogin(true); } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/SatelliteListWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/SatelliteListWindow.java index e3f68295..2674dc9a 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/SatelliteListWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/SatelliteListWindow.java @@ -17,6 +17,7 @@ import org.openslx.bwlp.thrift.iface.UserInfo; import org.openslx.dozmod.Config; import org.openslx.dozmod.gui.Gui; import org.openslx.dozmod.gui.Gui.GuiCallable; +import org.openslx.dozmod.gui.helper.I18n; import org.openslx.dozmod.gui.helper.MessageType; import org.openslx.dozmod.gui.helper.UiFeedback; import org.openslx.dozmod.gui.window.layout.SatelliteListWindowLayout; @@ -108,7 +109,8 @@ public class SatelliteListWindow extends SatelliteListWindowLayout implements Ui } dispose(); } else { - Gui.showMessageBox(rootPane, "Kein Satellit ausgewählt", MessageType.ERROR, null, null); + Gui.showMessageBox(rootPane, I18n.WINDOW.getString("SatelliteList.Message.error.noSatellite"), + MessageType.ERROR, null, null); } } }); diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtConfigEditorWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtConfigEditorWindow.java index 36bea427..cb207d34 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtConfigEditorWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtConfigEditorWindow.java @@ -15,6 +15,7 @@ import java.util.TreeSet; import org.apache.log4j.Logger; import org.openslx.dozmod.gui.Gui; +import org.openslx.dozmod.gui.helper.I18n; import org.openslx.dozmod.gui.helper.MessageType; import org.openslx.dozmod.gui.helper.TextChangeListener; import org.openslx.dozmod.gui.helper.UiFeedback; @@ -115,13 +116,13 @@ public class VirtConfigEditorWindow extends VirtConfigEditorWindowLayout impleme if (!filteredSet.equals(unfilteredSet)) { unfilteredSet.removeAll(filteredSet); // not equals, means there was some invalid input - String errorText = "Invalide Eingaben:\n"; + String errorText = I18n.WINDOW.getString("VirtConfigEditor.Message.error.invalidInputTitle"); for (String s : unfilteredSet) { errorText += s + "\n"; } // TODO: Somehow this always triggers for vbox errorText += System.lineSeparator() - + "Wollen Sie trotzdem speichern? (Die invaliden Zeilen werden dabei automatisch gelöscht.)"; + + I18n.WINDOW.getString("VirtConfigEditor.Message.error.invalidInputText"); if (!Gui.showMessageBox(errorText, MessageType.ERROR_RETRY, LOGGER, null)) return; } @@ -163,7 +164,7 @@ public class VirtConfigEditorWindow extends VirtConfigEditorWindowLayout impleme private void safeClose() { if (originalMachineDescription.equals(pnlEditor.getText()) || Gui.showMessageBox(me, - "Ihre Änderungen, in diesem Fenster, werden verloren gehen, wollen Sie trotzdem abbrechen?", + I18n.WINDOW.getString("VirtConfigEditor.Message.yesNo.safeClose"), MessageType.QUESTION_YESNO, null, null)) dispose(); } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtDropDownConfigEditorWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtDropDownConfigEditorWindow.java index 072d648e..b6584b8e 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtDropDownConfigEditorWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtDropDownConfigEditorWindow.java @@ -9,6 +9,7 @@ import java.nio.ByteBuffer; import org.apache.log4j.Logger; import org.openslx.dozmod.gui.Gui; +import org.openslx.dozmod.gui.helper.I18n; import org.openslx.dozmod.gui.helper.MessageType; import org.openslx.dozmod.gui.helper.UiFeedback; import org.openslx.dozmod.gui.window.layout.VirtDropDownConfigEditorWindowLayout; @@ -187,8 +188,7 @@ public class VirtDropDownConfigEditorWindow extends VirtDropDownConfigEditorWind cboMaxUsbSpeed.setSelectedItem(usbSpeed); } catch (IllegalArgumentException e) { // TODO improve user message - Gui.showMessageBox("Sie haben beim letzten Konfigurieren \n" - + "einen falschen Eintrag eingespeichert. \n" + "Die VM wird nicht starten!", + Gui.showMessageBox(I18n.WINDOW.getString("VirtDropDownConfigEditor.Message.warning.initializeComboBoxes"), MessageType.WARNING, null, e); } } @@ -220,7 +220,7 @@ public class VirtDropDownConfigEditorWindow extends VirtDropDownConfigEditorWind private void safeClose() { if (!hasChanged() || Gui.showMessageBox(me, - "Wollen Sie wirklich abbrechen?\n" + "Ihre Änderungen werden verworfen.", + I18n.WINDOW.getString("VirtDropDownConfigEditor.Message.yesNo.safeClose"), MessageType.QUESTION_YESNO, null, null)) { dispose(); } diff --git a/dozentenmodul/src/main/properties/i18n/window.properties b/dozentenmodul/src/main/properties/i18n/window.properties new file mode 100644 index 00000000..a37f4b8c --- /dev/null +++ b/dozentenmodul/src/main/properties/i18n/window.properties @@ -0,0 +1,142 @@ +# BwIdmLinkWindow +BwIdmLink.Dialog.title=Registrierung erforderlich +BwIdmLink.Label.info.title=Hinweis +BwIdmLink.Label.info.text=<html><body style='width:100%'>\ + Sie sind nicht bei {0} registriert. \ + Bitte rufen Sie die angegebene Seite auf um sich zu registrieren und versuchen Sie es erneut.\ + </body></html> +BwIdmLink.Button.link.text=Seite im Browser öffnen +BwIdmLink.Button.ok.text=Schließen + +# ConfigWindow +Config.Label.yourAddress.text=Ihre Adresse ist {0} +Config.Message.error.couldNotGetUserConfFromSat=Konnte die benutzerspezifische Konfiguration nicht \ + vom Satelliten holen +Config.Message.error.couldNotSaveUserConfOnSat=Konnte die benutzerspezifische Konfiguration nicht \ + auf dem Satelliten speichern +Config.Message.info.restartNeededToApplyChanges=Die Änderungen werden erst nach einem Programmneustart wirksam. + +# GenericNoticeWindow +GenericNotice.Button.continue.text=Schließen +GenericNotice.Message.yesNo.closeWindow=Wenn Sie diesen rechtlichen Hinweis nicht akzeptieren, \ + können Sie die Software nicht verwenden! \ + Sind Sie sicher, dass Sie abbrechen wollen? + +# ImageDetailsWindow +ImageDetails.MenuItem.newLecture.text=Neue Veranstaltung +ImageDetails.MenuItem.download.text=Download +ImageDetails.MenuItem.vmConfig.text=VM-Konfiguration +ImageDetails.MenuItem.delete.text=Löschen +ImageDetails.MenuItem.extendExpirationDate.text=Ablaufzeitpunkt verlängern +ImageDetails.Message.yesNo.changeOwner=Sind Sie sicher, dass sie die Besitzerrechte an \ + einen anderen Benutzer übertragen wollen? +ImageDetails.Button.changeOwner.caption=Besitzer festlegen +ImageDetails.TextField.title.error=Name darf nicht leer sein +ImageDetails.TextField.description.error=Beschreibung darf nicht leer sein +ImageDetails.ComboBox.OS.error=Ungültiges Betriebssystem ausgewählt! +ImageDetails.ComboBox.shareMode.error=Ungültiges Betriebssystem ausgewählt! +ImageDetails.Message.error.couldNotRetrieveVMConfig=Konnte VM-Konfiguration nicht abrufen. +ImageDetails.Message.info.setImageOwner=Besitzrechte übertragen an {0} +ImageDetails.Message.error.publishNonVMWareImage={0} ist derzeit nicht für den öffentlichen Austausch freigegeben. +ImageDetails.Message.yesNo.currentlyModified=Sie haben unspeicherte Änderungen, wollen Sie diese erst speichern? +ImageDetails.Message.yesNo.confirmOrAbort=Wollen Sie diese VM wirklich landesweit veröffentlichen? +ImageDetails.Message.error.uploadFailed=Upload der VM auf den Masterserver fehlgeschlagen. \ + Prüfen Sie, ob Sie bei der Registrierung dem landesweiten VM-Austausch zugestimmt haben.\n \ + Sie können dies hier überprüfen:\n \ + {0} \n\n +ImageDetails.Message.info.passiveTransfer=Die Übertragung läuft direkt zwischen Satellitenserver und \ + dem {0} Zentral-Server.\n Wenn Sie die {1} schließen, wird der Transfer trotzdem weiterlaufen. +ImageDetails.Message.error.saveChangesInternal=Konnte aktualisierte Metadaten nicht an den Server übermitteln +ImageDetails.Message.error.saveCustomPermissions=Konnte geänderte Berechtigungen nicht an den Server übermitteln +ImageDetails.Message.error.performImageDownload=Ausgewählte Version ist ungültig +ImageDetails.Message.error.extendVersionExpiry=Konnte Ablaufdatum der Version {0} nicht verlängern. +ImageDetails.Message.info.extendVersionExpiry=Erfolgreich verlängerte Abbilder: {0} +ImageDetails.Message.yesNo.safeClose=Änderungen werden verworfen, wollen Sie wirklich schließen? + +# ImageListWindow +ImageList.MenuItem.newLecture.text=Neue Veranstaltung +ImageList.MenuItem.edit.text=Detailansicht +ImageList.MenuItem.delete.text=Löschen +ImageList.MenuItem.download.text=Download +ImageList.Message.error.hasLatestVersion=Die gewählte VM besitzt keine gültige Image-Version +ImageList.Message.info.deleteImages=Folgende images konnten nicht gelöscht werden: {0} + +# ImagePublishedWindow +ImagePublished.Message.error.satDownload=Could not start download +ImagePublished.Message.info.satDownload=Die Übertragung läuft direkt zwischen Satellitenserver und \ + dem {0} Zentral-Server.\n Wenn Sie die {1} schließen, wird der Transfer trotzdem weiterlaufen. + +# LectureChangeImage +LectureChangeImage.Message.error.imageInvalid=Ausgewählte VM ist ungültig! +LectureChangeImage.Message.error.canNotLinkToVM=Keine Rechte zum Verlinken auf die ausgewählte VM. + +# LectureDetailsWindow +LectureDetails.ComboBox.versions.error=Keine/Ungültige VM-Version ausgewählt +LectureDetails.Message.error.endAfterStart=Enddatum darf nicht vor dem Startdatum liegen +LectureDetails.Message.error.endAfterMaxValidity=Enddatum liegt nach dem {0} +LectureDetails.TextField.title.error=Veranstaltungsname darf nicht leer sein +LectureDetails.TextField.description.error=Beschreibung darf nicht leer sein +LectureDetails.NetRulesConfigurator.error=Fehlerhafte Netzwerkregeln +LectureDetails.Message.yesNo.changeOwner=Sind Sie sicher, dass sie die Besitzerrechte an \ + einen anderen Account übertragen wollen? +LectureDetails.Button.changeOwner.caption=Besitzer festlegen +LectureDetails.Message.info.setLectureOwner=Besitzrechte übertragen an {0} +LectureDetails.Message.error.imageInvalid=VM ungültig. +LectureDetails.Message.error.imageVersionInvalid=Ungültige VM-Version gewählt +LectureDetails.Message.error.imageVersionFileSizeInvalid=Fehler bei der Abfrage der Größe des VM-Abbildes. +LectureDetails.Message.error.saveChangesInternal=Fehler beim Speichern der Veranstaltung! +LectureDetails.Message.error.saveCustomPermissions=Fehler beim Übertragen der Berechtigungen! +LectureDetails.Message.error.isPeriodValid=Start der Veranstaltung ist nach dem Enddatum! +LectureDetails.Message.yesNo.safeClose=Änderungen werden verworfen, wollen Sie wirklich schließen? + +# LectureListWindow +LectureList.FilterType.all=Alle anzeigen +LectureList.FilterType.own=Nur eigene/zugewiesene anzeigen +LectureList.FilterType.active=Nur aktive anzeigen +LectureList.FilterType.editable=Nur editierbare anzeigen +LectureList.FilterType.expiring=Bald auslaufende anzeigen +LectureList.FilterType.exams=Prüfungsveranstaltungen anzeigen +LectureList.MenuItem.new.text=Neu +LectureList.MenuItem.edit.text=Detailansicht +LectureList.MenuItem.linked.text=VM-Details anzeigen +LectureList.MenuItem.download.text=Verlinkte VM herunterladen +LectureList.MenuItem.delete.text=Löschen +LectureList.Message.yesNo.switchView=Um eine Veranstaltung zu erstellen, \ + müssen Sie eine VM auswählen. Zur VM-Auswahl wechseln? +LectureList.Message.error.canNotListImages=Ihnen fehlen die benötigten Berechtigungen. +LectureList.Message.error.deleteLecture=Begründung: {0} +LectureList.Message.info.deleteLectures=Folgende Veranstaltungen konnten nicht gelöscht werden: {0} + +# LocationSelectionWindow +LocationSelection.Message.warning.saveChanges=Bitten reduzieren Sie die Anzahl gewählter Orte +LocationSelection.Message.error.locationSelector=Zu viele Orte ausgewählt! + +# LoginWindow +Login.Message.error.noLoginType=Bitte wählen Sie eine Authentifizierungsart. +Login.Message.error.noOrganization=Bitte wählen Sie ihre Organisation als 'Identity Provider'. +Login.Message.error.noUsername=Kein Benutzername angegeben! +Login.Message.error.noPassword=Kein Passwort angegeben! +Login.Message.error.authIdentityProvider=IdP Error +Login.Message.error.authServiceProvider=Invalid token from the service provider! +Login.Message.error.authInvalidURL=ECP Authenticator says: Invalid URL. +Login.Message.error.authInternal=Internal error! +Login.Message.error.authMasterServer=Der Masterserver hat den Loginversuch mit der \ + folgenden Nachricht abgewiesen:\n\n{0} +Login.Message.error.loginTypeDirectConnect=Not yet implemented +Login.Message.error.loginTypeDefault=No login type selected! +Login.Message.error.loginFailed=Anmeldung fehlgeschlagen + +# SatelliteListWindow +SatelliteList.Message.error.noSatellite=Kein Satellit ausgewählt + +# VirtConfigEditorWindow +VirtConfigEditor.Message.error.invalidInputTitle=Invalide Eingaben:\n +VirtConfigEditor.Message.error.invalidInputText=Wollen Sie trotzdem speichern? (Die invaliden Zeilen werden \ + dabei automatisch gelöscht.) +VirtConfigEditor.Message.yesNo.safeClose=Ihre Änderungen, in diesem Fenster, werden verloren gehen, \ + wollen Sie trotzdem abbrechen? + +# VirtDropDownConfigEditorWindow +VirtDropDownConfigEditor.Message.warning.initializeComboBoxes=Sie haben beim letzten Konfigurieren \n\ + einen falschen Eintrag eingespeichert. \nDie VM wird nicht starten! +VirtDropDownConfigEditor.Message.yesNo.safeClose=Wollen Sie wirklich abbrechen?\nIhre Änderungen werden verworfen.
\ No newline at end of file diff --git a/dozentenmodul/src/main/properties/i18n/window_en_US.properties b/dozentenmodul/src/main/properties/i18n/window_en_US.properties new file mode 100644 index 00000000..b2a762ad --- /dev/null +++ b/dozentenmodul/src/main/properties/i18n/window_en_US.properties @@ -0,0 +1,142 @@ +# BwIdmLinkWindow +BwIdmLink.Dialog.title=Registration required +BwIdmLink.Label.info.title=Note +BwIdmLink.Label.info.text=<html><body style='width:100%'>\ + You are not registered at {0}. \ + Please go to the specified page to register and try again.\ + </body></html> +BwIdmLink.Button.link.text=Open page in browser +BwIdmLink.Button.ok.text=Close + +# ConfigWindow +Config.Label.yourAddress.text=Your address is {0} +Config.Message.error.couldNotGetUserConfFromSat=Could not get the user specific configuration \ + from the satellite +Config.Message.error.couldNotSaveUserConfOnSat=Could not save the user specific configuration \ + on the satellite +Config.Message.info.restartNeededToApplyChanges=The changes only become effective after a program restart. + +# GenericNoticeWindow +GenericNotice.Button.continue.text=Close +GenericNotice.Message.yesNo.closeWindow=If you do not accept this legal notice, \ + you cannot use the software! \ + Are you sure you want to cancel? + +# ImageDetailsWindow +ImageDetails.MenuItem.newLecture.text=New lecture +ImageDetails.MenuItem.download.text=Download +ImageDetails.MenuItem.vmConfig.text=VM Configuration +ImageDetails.MenuItem.delete.text=Delete +ImageDetails.MenuItem.extendExpirationDate.text=Extend expiry date +ImageDetails.Message.yesNo.changeOwner=Are you sure you want to transfer \ + the owner rights to another user? +ImageDetails.Button.changeOwner.caption=Set owner +ImageDetails.TextField.title.error=Name must not be empty +ImageDetails.TextField.description.error=Description must not be empty +ImageDetails.ComboBox.OS.error=Invalid operating system selected! +ImageDetails.ComboBox.shareMode.error=Invalid operating system selected! +ImageDetails.Message.error.couldNotRetrieveVMConfig=Could not retrieve VM configuration. +ImageDetails.Message.info.setImageOwner=Transfer ownership rights to {0} +ImageDetails.Message.error.publishNonVMWareImage={0} is currently not released for public exchange. +ImageDetails.Message.yesNo.currentlyModified=You have unsaved changes, do you want to save them first? +ImageDetails.Message.yesNo.confirmOrAbort=Do you really want to publish this VM nationwide? +ImageDetails.Message.error.uploadFailed=Upload of the VM to the master server failed. \ + Please check whether you agreed to the nationwide VM exchange when registering.\n \ + You can check this here:\n \ + {0} \n\n +ImageDetails.Message.info.passiveTransfer=The transfer runs directly between the satellite server and \ + the {0} central server.\n If you close the {1}, the transfer will continue anyway. +ImageDetails.Message.error.saveChangesInternal=Could not submit updated metadata to the server +ImageDetails.Message.error.saveCustomPermissions=Could not submit changed permissions to the server +ImageDetails.Message.error.performImageDownload=Selected version is invalid +ImageDetails.Message.error.extendVersionExpiry=Could not extend expiry date of version {0}. +ImageDetails.Message.info.extendVersionExpiry=Successfully extended images: {0} +ImageDetails.Message.yesNo.safeClose=Changes will be discarded, do you really want to close? + +# ImageListWindow +ImageList.MenuItem.newLecture.text=New lecture +ImageList.MenuItem.edit.text=Detail view +ImageList.MenuItem.delete.text=Delete +ImageList.MenuItem.download.text=Download +ImageList.Message.error.hasLatestVersion=The selected VM has no valid image version +ImageList.Message.info.deleteImages=The following images could not be deleted: {0} + +# ImagePublishedWindow +ImagePublished.Message.error.satDownload=Could not start download +ImagePublished.Message.info.satDownload=The transfer runs directly between the satellite server and \ + the {0} central server.\n If you close the {1}, the transfer will continue anyway. + +# LectureChangeImage +LectureChangeImage.Message.error.imageInvalid=Selected VM is invalid! +LectureChangeImage.Message.error.canNotLinkToVM=No permissions to link to the selected VM. + +# LectureDetailsWindow +LectureDetails.ComboBox.versions.error=No/invalid VM version selected +LectureDetails.Message.error.endAfterStart=End date must not be before the start date +LectureDetails.Message.error.endAfterMaxValidity=End date is after the {0} +LectureDetails.TextField.title.error=Lecture name must not be empty +LectureDetails.TextField.description.error=Description must not be empty +LectureDetails.NetRulesConfigurator.error=Incorrect network rules +LectureDetails.Message.yesNo.changeOwner=Are you sure you want to transfer \ + the owner rights to another user? +LectureDetails.Button.changeOwner.caption=Set owner +LectureDetails.Message.info.setLectureOwner=Transfer ownership rights to {0} +LectureDetails.Message.error.imageInvalid=VM invalid. +LectureDetails.Message.error.imageVersionInvalid=Invalid VM version selected +LectureDetails.Message.error.imageVersionFileSizeInvalid=Error while querying the size of the VM image. +LectureDetails.Message.error.saveChangesInternal=Error while saving the lecture! +LectureDetails.Message.error.saveCustomPermissions=Error while transferring of permissions! +LectureDetails.Message.error.isPeriodValid=Start of the lecture is after the end date! +LectureDetails.Message.yesNo.safeClose=Changes will be discarded, do you really want to close? + +# LectureListWindow +LectureList.FilterType.all=Show all +LectureList.FilterType.own=Show only own/assigned ones +LectureList.FilterType.active=Show active only +LectureList.FilterType.editable=Show editable only +LectureList.FilterType.expiring=Show soon expiring +LectureList.FilterType.exams=Show exams +LectureList.MenuItem.new.text=New +LectureList.MenuItem.edit.text=Detail view +LectureList.MenuItem.linked.text=Show VM Details +LectureList.MenuItem.download.text=Download linked VM +LectureList.MenuItem.delete.text=Delete +LectureList.Message.yesNo.switchView=To create a lecture, \ + you have to select a VM. Switch to VM selection? +LectureList.Message.error.canNotListImages=You do not have the required permissions. +LectureList.Message.error.deleteLecture=Reason: {0} +LectureList.Message.info.deleteLectures=The following lectures could not be deleted: {0} + +# LocationSelectionWindow +LocationSelection.Message.warning.saveChanges=Please reduce the number of selected locations +LocationSelection.Message.error.locationSelector=Too many places selected! + +# LoginWindow +Login.Message.error.noLoginType=Please select an authentication type. +Login.Message.error.noOrganization=Please select your organization as 'Identity Provider'. +Login.Message.error.noUsername=No username given! +Login.Message.error.noPassword=No password given! +Login.Message.error.authIdentityProvider=IdP Error +Login.Message.error.authServiceProvider=Invalid token from the service provider! +Login.Message.error.authInvalidURL=ECP Authenticator says: Invalid URL. +Login.Message.error.authInternal=Internal error! +Login.Message.error.authMasterServer=The master server has rejected the login attempt \ + with the following message:\n\n{0} +Login.Message.error.loginTypeDirectConnect=Not yet implemented +Login.Message.error.loginTypeDefault=No login type selected! +Login.Message.error.loginFailed=Login failed + +# SatelliteListWindow +SatelliteList.Message.error.noSatellite=No satellite selected + +# VirtConfigEditorWindow +VirtConfigEditor.Message.error.invalidInputTitle=Invalid inputs:\n +VirtConfigEditor.Message.error.invalidInputText=Do you still want to save? (The invalid lines will be \ + deleted automatically.) +VirtConfigEditor.Message.yesNo.safeClose=Your changes in this window will be lost, \ + do you still want to cancel? + +# VirtDropDownConfigEditorWindow +VirtDropDownConfigEditor.Message.warning.initializeComboBoxes=You saved an incorrect entry \n\ + during the last configuration. \nThe VM will not start! +VirtDropDownConfigEditor.Message.yesNo.safeClose=Do you really want to cancel?\nYour changes will be discarded.
\ No newline at end of file |