summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephan Schwär2020-11-25 03:59:15 +0100
committerStephan Schwär2020-11-25 03:59:15 +0100
commitd4e18495ef9fec31ea430cf0acb1cc725292dcc1 (patch)
tree80ea1a9ccb5c80100840522e5041a8f3d172b6ae
parent[client] Remove unused code of earlier solution (diff)
downloadtutor-module-d4e18495ef9fec31ea430cf0acb1cc725292dcc1.tar.gz
tutor-module-d4e18495ef9fec31ea430cf0acb1cc725292dcc1.tar.xz
tutor-module-d4e18495ef9fec31ea430cf0acb1cc725292dcc1.zip
[client] English support for ovf convert feature
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageOvfConversionPageLayout.java19
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageOvfConversionPage.java40
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java52
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/util/ConversionTaskWorker.java18
-rw-r--r--dozentenmodul/src/main/properties/i18n/helper.properties7
-rw-r--r--dozentenmodul/src/main/properties/i18n/helper_de_DE.properties7
-rw-r--r--dozentenmodul/src/main/properties/i18n/page.properties26
-rw-r--r--dozentenmodul/src/main/properties/i18n/page_de_DE.properties22
-rw-r--r--dozentenmodul/src/main/properties/i18n/page_layout.properties12
-rw-r--r--dozentenmodul/src/main/properties/i18n/page_layout_de_DE.properties11
10 files changed, 154 insertions, 60 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageOvfConversionPageLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageOvfConversionPageLayout.java
index f9d8213c..7f42fd9d 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageOvfConversionPageLayout.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageOvfConversionPageLayout.java
@@ -11,6 +11,7 @@ import javax.swing.JTextField;
import org.openslx.dozmod.gui.control.QLabel;
import org.openslx.dozmod.gui.helper.GridManager;
+import org.openslx.dozmod.gui.helper.I18n;
import org.openslx.dozmod.gui.wizard.Wizard;
import org.openslx.dozmod.gui.wizard.WizardPage;
@@ -27,8 +28,8 @@ public abstract class ImageOvfConversionPageLayout extends WizardPage {
* Page converting an ovf to a vmx image.
*/
public ImageOvfConversionPageLayout(Wizard wizard) {
- super(wizard, "ovf konvertieren");
- setDescription("Ovf zu vmx konvertieren.");
+ super(wizard, I18n.PAGE_LAYOUT.getString("ImageOvfConversion.WizardPage.title"));
+ setDescription(I18n.PAGE_LAYOUT.getString("ImageOvfConversion.WizardPage.description"));
GridManager grid = new GridManager(this, 3);
txtInfoText = new JTextArea();
@@ -38,18 +39,17 @@ public abstract class ImageOvfConversionPageLayout extends WizardPage {
txtInfoText.setEditable(false);
txtInfoText.setFocusable(false);
txtInfoText.setOpaque(false);
- txtInfoText.setText("Mit dem Betätigen des konvertieren Buttons wird das OVF Tool von VMware gestarted.\n"
- + "Je nach Geschwindigkeit Ihres Computers "
- + "und der Größe der Virtuellen Maschine kann die Konvertierung einige Zeit in Anspruch nehmen.");
+ txtInfoText.setText(I18n.PAGE_LAYOUT.getString("ImageOvfConversion.WizardPage.InformationBox.text"));
grid.add(txtInfoText, 3).fill(true, false).expand(true, false);
grid.nextRow();
// -- Browse for ovfTool --
- QLabel imageFileCaption = new QLabel("OVF Tool Pfad");
+ QLabel imageFileCaption = new QLabel(I18n.PAGE_LAYOUT.getString("ImageOvfConversion.Toolpath.text"));
ovfToolFile = new JTextField();
ovfToolFile.setEditable(false);
- ovfToolFile.setText("Standardpfad");
- btnBrowseForOvftool = new JButton("Durchsuchen");
+ ovfToolFile.setText(I18n.PAGE_LAYOUT.getString("ImageOvfConversion.Toolpath.defaultpath.text"));
+ btnBrowseForOvftool = new JButton(
+ I18n.PAGE_LAYOUT.getString("ImageOvfConversion.Toolpath.BrowseButton.text"));
btnBrowseForOvftool.setMnemonic(KeyEvent.VK_B);
grid.add(imageFileCaption);
grid.add(ovfToolFile).fill(true, false).expand(true, false);
@@ -59,7 +59,8 @@ public abstract class ImageOvfConversionPageLayout extends WizardPage {
grid.add(Box.createVerticalGlue(), 3).expand(true, true);
grid.nextRow();
- btnStartConversion = new JButton("Konvertierung starten");
+ btnStartConversion = new JButton(
+ I18n.PAGE_LAYOUT.getString("ImageOvfConversion.Button.StartConversion.text"));
btnStartConversion.setMnemonic(KeyEvent.VK_B);
grid.add(btnStartConversion, 1).fill(false, false).expand(false, false);
grid.add(Box.createVerticalGlue(), 2).expand(false, false);
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageOvfConversionPage.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageOvfConversionPage.java
index dc4f057a..774d6a6e 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageOvfConversionPage.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageOvfConversionPage.java
@@ -17,6 +17,7 @@ import org.apache.commons.io.FilenameUtils;
import org.apache.log4j.Logger;
import org.openslx.dozmod.Config;
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.QFileChooser;
import org.openslx.dozmod.gui.wizard.Wizard;
@@ -37,7 +38,8 @@ public class ImageOvfConversionPage extends ImageOvfConversionPageLayout {
private ImageOvfConversionPage page;
private File vmxFile;
private ConversionTaskWorker worker;
- private String startConversionButtonString = "Konvertierung starten";
+ private String startConversionButtonString = I18n.PAGE
+ .getString("ImageOvfConversion.StartConversionButton.text");
public boolean conversionStarted = false;
public boolean conversionSuccessful = false;
private String ovfToolPath = "ovftool";
@@ -52,9 +54,11 @@ public class ImageOvfConversionPage extends ImageOvfConversionPageLayout {
// Linux install should have put the ovftool into the path variable.
// Try to set it for windows and macos.
if (os.toLowerCase().contains("windows")) {
- ovfToolPath = System.getenv("ProgramFiles(X86)") + "\\VMware\\VMware Workstation\\OVFTool\\ovftool.exe";
+ ovfToolPath = System.getenv("ProgramFiles(X86)")
+ + "\\VMware\\VMware Workstation\\OVFTool\\ovftool.exe";
if (!(new File(ovfToolPath).exists())) {
- ovfToolPath = System.getenv("ProgramFiles(X86)") + "\\VMware\\VMware Player\\OVFTool\\ovftool.exe";
+ ovfToolPath = System.getenv("ProgramFiles(X86)")
+ + "\\VMware\\VMware Player\\OVFTool\\ovftool.exe";
}
} else if (os.toLowerCase().contains("mac")) {
ovfToolPath = "/Applications/VMware Fusion.app/Contents/Library/VMware OVF Tool";
@@ -69,11 +73,14 @@ public class ImageOvfConversionPage extends ImageOvfConversionPageLayout {
if (worker == null) {
try {
updateConversionProgressbar(0);
- btnStartConversion.setText("Konvertierung abbrechen");
+ btnStartConversion.setText(
+ I18n.PAGE.getString("ImageOvfConversion.AbortConversionButton.text"));
convertOvfToVmx(state.descriptionFile);
} catch (Exception error) {
btnStartConversion.setEnabled(false);
- Gui.showMessageBox(page, "Konvertierung fehlgeschlagen:", MessageType.ERROR, LOGGER, error);
+ Gui.showMessageBox(page,
+ I18n.PAGE.getString("ImageOvfConversion.ErrorMessage.ConversionFailed"),
+ MessageType.ERROR, LOGGER, error);
}
} else {
page.cancelConversionWorker();
@@ -141,7 +148,8 @@ public class ImageOvfConversionPage extends ImageOvfConversionPageLayout {
}
conversionStarted = true;
Files.createDirectories(directoryFile.toPath());
- vmxFile = new File(directoryFile.getPath() + "/" + FilenameUtils.removeExtension((file.getName())) + ".vmx");
+ vmxFile = new File(
+ directoryFile.getPath() + "/" + FilenameUtils.removeExtension((file.getName())) + ".vmx");
worker = new ConversionTaskWorker(file, vmxFile, page, ovfToolPath);
worker.execute();
state.convertedDescriptionFile = vmxFile;
@@ -153,14 +161,13 @@ public class ImageOvfConversionPage extends ImageOvfConversionPageLayout {
int dialogResult;
if (!conversionStarted) {
dialogResult = JOptionPane.showConfirmDialog(this,
- "Das Verzeichnis, in welcher das konvertierte Image gespeichert werden soll existiert bereits. \n"
- + "Soll dieses ersetzt und die darin enthaltenen Dateien gelöscht werden?",
- "Verzeichnis Überschreiben?", dialogButton);
+ I18n.PAGE.getString("ImageOvfConversion.Dialog.DirectoryExists"),
+ I18n.PAGE.getString("ImageOvfConversion.Dialog.DirectoryExists.title"), dialogButton);
} else {
dialogResult = JOptionPane.showConfirmDialog(this,
- "Für die abgebrochene Konvertierung wurde ein Verzeichnis erstellt.\n"
- + "Soll dieses und dessen Inhalt wieder entfernt werden?",
- "Verzeichnis Überschreiben?", dialogButton);
+ I18n.PAGE.getString("ImageOvfConversion.Dialog.RemoveTmpDirectory"),
+ I18n.PAGE.getString("ImageOvfConversion.Dialog.RemoveTmpDirectory.title"),
+ dialogButton);
}
if (dialogResult == 0) {
FileUtils.deleteDirectory(directoryFile);
@@ -190,14 +197,11 @@ public class ImageOvfConversionPage extends ImageOvfConversionPageLayout {
protected void onPageEnter() {
if (!fileContainsKeyword(state.descriptionFile, "vmware")) {
Gui.showMessageBox(this,
- "Die ausgewählte Datei scheint kein mit VMware oder VirtualBox erstelltes Image zu sein.",
+ I18n.PAGE.getString("ImageOvfConversion.MessageBox.notAVmwareOrVboxImage"),
MessageType.WARNING, LOGGER, null);
} else if (fileContainsKeyword(state.descriptionFile, "vbox")) {
- Gui.showMessageBox(this, "Sie haben ein mit VirtualBox erstelltes Image ausgewählt.\n"
- + "Die Umwandlung von mit VirtualBox erstellten OVA"
- + " und OVF images wird momentan nocht nicht unterstützt.\n"
- + "Sie können dennoch versuchen die Konvertierung zu starten, es können aber Fehler auftreten,\n"
- + "da das Konvertierungsprogramm von VMWare verwendet wird.", MessageType.INFO, LOGGER, null);
+ Gui.showMessageBox(this, I18n.PAGE.getString("ImageOvfConversion.MessageBox.VboxDetected"),
+ MessageType.INFO, LOGGER, null);
}
updateConversionProgressbar(0);
updateConversionProgressbarText("");
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java
index f7ea5540..19ce1429 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java
@@ -53,14 +53,18 @@ public class ImageUploadPage extends ImageUploadPageLayout {
private ImageDetailsRead existingImage = null;
private final FileNameExtensionFilter allSupportedFilter;
- private final FileNameExtensionFilter vmxFilter = new FileNameExtensionFilter("VMware Virtual Machine", "vmx");
- private final FileNameExtensionFilter vboxFilter = new FileNameExtensionFilter("VirtualBox Virtual Machine",
- "vbox");
+ private final FileNameExtensionFilter vmxFilter = new FileNameExtensionFilter("VMware Virtual Machine",
+ "vmx");
+ private final FileNameExtensionFilter vboxFilter = new FileNameExtensionFilter(
+ "VirtualBox Virtual Machine", "vbox");
- private final FileNameExtensionFilter ovfFilter = new FileNameExtensionFilter("OVF Virtual Machine Format", "ovf");
- private final FileNameExtensionFilter ovaFilter = new FileNameExtensionFilter("OVA Virtual Machine Format", "ova");
+ private final FileNameExtensionFilter ovfFilter = new FileNameExtensionFilter(
+ "OVF Virtual Machine Format", "ovf");
+ private final FileNameExtensionFilter ovaFilter = new FileNameExtensionFilter(
+ "OVA Virtual Machine Format", "ova");
- public ImageUploadPage(Wizard wizard, UploadWizardState uploadWizardState, final ImageDetailsRead existingImage) {
+ public ImageUploadPage(Wizard wizard, UploadWizardState uploadWizardState,
+ final ImageDetailsRead existingImage) {
super(wizard);
setPageComplete(false);
this.canComeBack = false;
@@ -130,11 +134,8 @@ public class ImageUploadPage extends ImageUploadPageLayout {
private void askForConversion(File file) {
int dialogButton = JOptionPane.YES_NO_OPTION;
int dialogResult = JOptionPane.showConfirmDialog(this,
- "Sie haben ein Image im ovf Format ausgewählt. \n"
- + "Wenn dieses mit dem Programm VMware exportiert wurde sollte es mithilfe\n"
- + "des ovfTool von VMware in ein kompatibles vmx Image umgewandelt werden können. \n"
- + "Möchten sie das Image konvertieren? (Das original Image bleibt unverändert.)",
- "Image konvertieren?", dialogButton);
+ I18n.PAGE.getString("ImageUpload.WizardPage.dialog.OvfOvaDetected"),
+ I18n.PAGE.getString("ImageUpload.WizardPage.dialog.title"), dialogButton);
if (dialogResult == 0) {
// txtImageFile.setText(file.getAbsolutePath());
// txtImageName.setText(state.meta.getDisplayName());
@@ -177,8 +178,8 @@ public class ImageUploadPage extends ImageUploadPageLayout {
final String fileformat = state.meta.getVirtualizer().virtName;
// bail if multiple hypervisors are not supported
if (!(state.meta instanceof VmwareMetaData) && !Session.hasFeature(Feature.MULTIPLE_HYPERVISORS)) {
- setErrorMessage(
- I18n.PAGE.getString("ImageUpload.WizardPage.errorMessage.hypervisorNotSupported", fileformat));
+ setErrorMessage(I18n.PAGE.getString("ImageUpload.WizardPage.errorMessage.hypervisorNotSupported",
+ fileformat));
setPageComplete(false);
return;
}
@@ -201,7 +202,8 @@ public class ImageUploadPage extends ImageUploadPageLayout {
return;
}
if (hdds.size() > 1) {
- setErrorMessage(I18n.PAGE.getString("ImageUpload.WizardPage.errorMessage.moreThanOneHDD", fileformat));
+ setErrorMessage(
+ I18n.PAGE.getString("ImageUpload.WizardPage.errorMessage.moreThanOneHDD", fileformat));
setPageComplete(false);
return;
// Allow to continue!?
@@ -228,8 +230,9 @@ public class ImageUploadPage extends ImageUploadPageLayout {
setPageComplete(false);
return;
} catch (UnknownImageFormatException e) {
- setErrorMessage(I18n.PAGE.getString("ImageUpload.WizardPage.errorMessage.diskImageHasUnknownFormat",
- vmDiskFileInfo.getName()));
+ setErrorMessage(
+ I18n.PAGE.getString("ImageUpload.WizardPage.errorMessage.diskImageHasUnknownFormat",
+ vmDiskFileInfo.getName()));
LOGGER.debug("Selected disk file has unknown format.", e);
setPageComplete(false);
return;
@@ -237,16 +240,17 @@ public class ImageUploadPage extends ImageUploadPageLayout {
// Warn user about snapshot
if (diskImage.isSnapshot || state.meta.isMachineSnapshot()) {
- Gui.showMessageBox(
- I18n.PAGE.getString("ImageUpload.Message.warning.diskImageSnapshot", Branding.getServiceName()),
- MessageType.WARNING, null, null);
+ Gui.showMessageBox(I18n.PAGE.getString("ImageUpload.Message.warning.diskImageSnapshot",
+ Branding.getServiceName()), MessageType.WARNING, null, null);
setErrorMessage(I18n.PAGE.getString("ImageUpload.WizardPage.errorMessage.diskImageSnapshot"));
setPageComplete(false);
return;
}
if (!diskImage.isStandalone) {
- Gui.showMessageBox(I18n.PAGE.getString("ImageUpload.Message.warning.diskImageStandalone",
- diskImage.subFormat, Branding.getApplicationName()), MessageType.WARNING, null, null);
+ Gui.showMessageBox(
+ I18n.PAGE.getString("ImageUpload.Message.warning.diskImageStandalone",
+ diskImage.subFormat, Branding.getApplicationName()),
+ MessageType.WARNING, null, null);
setErrorMessage(I18n.PAGE.getString("ImageUpload.WizardPage.errorMessage.diskImageStandalone"));
setPageComplete(false);
return;
@@ -328,12 +332,14 @@ public class ImageUploadPage extends ImageUploadPageLayout {
// file, connecting for upload...
if (state.upload == null) {
try {
- state.upload = new UploadInitiator(state.uuid, state.diskFile, state.meta.getFilteredDefinition());
+ state.upload = new UploadInitiator(state.uuid, state.diskFile,
+ state.meta.getFilteredDefinition());
} catch (WrappedException e) {
ThriftError.showMessage(this, LOGGER, e.exception, e.displayMessage);
return false;
} catch (IOException e) {
- Gui.showMessageBox(this, I18n.PAGE.getString("ImageUpload.Message.error.uploadInitiatorFailed"),
+ Gui.showMessageBox(this,
+ I18n.PAGE.getString("ImageUpload.Message.error.uploadInitiatorFailed"),
MessageType.ERROR, LOGGER, e);
return false;
}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/util/ConversionTaskWorker.java b/dozentenmodul/src/main/java/org/openslx/dozmod/util/ConversionTaskWorker.java
index c643e5d0..a4e1be54 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/util/ConversionTaskWorker.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/util/ConversionTaskWorker.java
@@ -11,6 +11,7 @@ import javax.swing.SwingWorker;
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.wizard.page.ImageOvfConversionPage;
@@ -21,7 +22,7 @@ public class ConversionTaskWorker extends SwingWorker<Boolean, String> {
private File destFile;
private ImageOvfConversionPage page;
private Process process = null;
- private String conversionCancelledText = "Konvertierung abgebrochen!";
+ private String conversionCancelledText = I18n.HELPER.getString("OVFConversion.info.aborted.text");
private String ovfToolPath = "ovftool";
/**
@@ -33,7 +34,8 @@ public class ConversionTaskWorker extends SwingWorker<Boolean, String> {
* @param page: Page that creates and starts the worker
* @param ovfToolPath: Path to the OVF Tool on the system
*/
- public ConversionTaskWorker(File srcFile, File destFile, ImageOvfConversionPage page, String ovfToolPath) {
+ public ConversionTaskWorker(File srcFile, File destFile, ImageOvfConversionPage page,
+ String ovfToolPath) {
this.srcFile = srcFile;
this.destFile = destFile;
this.page = page;
@@ -44,7 +46,8 @@ public class ConversionTaskWorker extends SwingWorker<Boolean, String> {
@Override
protected Boolean doInBackground() throws Exception {
- process = new ProcessBuilder(ovfToolPath, srcFile.getAbsolutePath(), destFile.getAbsolutePath()).start();
+ process = new ProcessBuilder(ovfToolPath, srcFile.getAbsolutePath(), destFile.getAbsolutePath())
+ .start();
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
@@ -93,12 +96,11 @@ public class ConversionTaskWorker extends SwingWorker<Boolean, String> {
page.updateConversionProgressbarText(conversionCancelledText);
} catch (ExecutionException e) {
e.printStackTrace();
- Gui.showMessageBox(page,
- "Beim konvertieren ist ein Fehler aufgetreten. "
- + "Bitte vergewissern Sie sich, dass das OVF Tool korrekt ausgewählt wurde.",
- MessageType.ERROR, LOGGER, e);
+ Gui.showMessageBox(page, I18n.HELPER.getString("OVFConversion.error.text"), MessageType.ERROR,
+ LOGGER, e);
page.btnStartConversion.setEnabled(false);
- page.btnStartConversion.setText("Konvertierung starten");
+ page.btnStartConversion
+ .setText(I18n.PAGE.getString("ImageOvfConversion.StartConversionButton.text"));
}
super.done();
}
diff --git a/dozentenmodul/src/main/properties/i18n/helper.properties b/dozentenmodul/src/main/properties/i18n/helper.properties
index 91fafdad..c3aa34be 100644
--- a/dozentenmodul/src/main/properties/i18n/helper.properties
+++ b/dozentenmodul/src/main/properties/i18n/helper.properties
@@ -15,4 +15,9 @@ MessageType.questionYesNo=Question
# Language
Language.german=Deutsch
Language.english=English
-Language.turkish=Türkçe \ No newline at end of file
+Language.turkish=Türkçe
+
+# Conversion worker
+OVFConversion.info.aborted.text=Conversion aborted!
+OVFConversion.error.text=An error has occured during conversion.\n\
+ Please make sure that the path to the OVF Tool is correct. \ No newline at end of file
diff --git a/dozentenmodul/src/main/properties/i18n/helper_de_DE.properties b/dozentenmodul/src/main/properties/i18n/helper_de_DE.properties
index a19ff009..a2daebce 100644
--- a/dozentenmodul/src/main/properties/i18n/helper_de_DE.properties
+++ b/dozentenmodul/src/main/properties/i18n/helper_de_DE.properties
@@ -15,4 +15,9 @@ MessageType.questionYesNo=Frage
# Language
Language.german=Deutsch
Language.english=English
-Language.turkish=Türkçe \ No newline at end of file
+Language.turkish=Türkçe
+
+# Conversion worker
+OVFConversion.info.aborted.text=Konvertierung abgebrochen!
+OVFConversion.error.text=Beim konvertieren ist ein Fehler aufgetreten.\n\
+ Bitte vergewissern Sie sich, dass das OVF Tool korrekt ausgewählt wurde. \ No newline at end of file
diff --git a/dozentenmodul/src/main/properties/i18n/page.properties b/dozentenmodul/src/main/properties/i18n/page.properties
index 1fbefa1a..bb545488 100644
--- a/dozentenmodul/src/main/properties/i18n/page.properties
+++ b/dozentenmodul/src/main/properties/i18n/page.properties
@@ -32,6 +32,32 @@ ImageUpload.Message.yesNo.cancelLockFile=The selected VM seems to be still in us
(You should be sure what you are doing if you choose ''Yes'' here.)
ImageUpload.WizardPage.errorMessage.cancelLockFile=The selected VM is still in use
ImageUpload.Message.error.uploadInitiatorFailed=Upload initialization failed
+ImageUpload.WizardPage.dialog.OvfOvaDetected=The selected virtual machine is in the OVA/OVF format.\n\
+ If the virtual machine has been created with VMware it can be converted\n\
+ into a vmx virtual machine using the OVF Tool from VMware.\n\
+ Do you want to convert the virtual machine?\n\
+ (The original virtual machine will not be modified.)
+ImageUpload.WizardPage.dialog.title=Convert virtual machine?
+
+# ImageOvfConversionPage
+ImageOvfConversion.MessageBox.notAVmwareOrVboxImage=The selected file does not appear to be a virtual machine\n\
+ that has been created with VMware or VirtualBox.
+ImageOvfConversion.MessageBox.VboxDetected=The selected virtual machine appears to have been created with VirtualBox.\n\
+The conversion of VirtualBox virtual machine images in the OVA or OVF format is currently not supported.\n\
+You can still try to start the conversion but it may fail due to the conversion tool developed by VMware being used.\n\
+VirtualBox also supports converting OVA and OVF images by importing them into its library. The resulting image is\n\
+also compatible with the BWLehrpool Suite.
+
+ImageOvfConversion.StartConversionButton.text=Start conversion
+ImageOvfConversion.AbortConversionButton.text=Abort conversion
+ImageOvfConversion.ErrorMessage.ConversionFailed=Conversion failed:
+ImageOvfConversion.Dialog.DirectoryExists.title=Overwrite directory?
+ImageOvfConversion.Dialog.DirectoryExists=The directory being used for the converted virtual machine image already exists.\n\
+This is probably due to an earlier conversion of a virtual machine and is usually safe to delete.\n\
+Should the directory be deleted including all contained files?
+ImageOvfConversion.Dialog.RemoveTmpDirectory=A directory has been created for the aborted conversion.\n\
+Should it be deleted including all contained files?
+ImageOvfConversion.Dialog.RemoveTmpDirectory.title=Delete temporary directory?
# ImageUploadSummaryPage
ImageUploadSummary.UploadInitState.requesting=The upload process is negotiated with the server...
diff --git a/dozentenmodul/src/main/properties/i18n/page_de_DE.properties b/dozentenmodul/src/main/properties/i18n/page_de_DE.properties
index 32b885ad..1a5cf4aa 100644
--- a/dozentenmodul/src/main/properties/i18n/page_de_DE.properties
+++ b/dozentenmodul/src/main/properties/i18n/page_de_DE.properties
@@ -32,6 +32,28 @@ ImageUpload.Message.yesNo.cancelLockFile=Die gewählte VM scheint noch in Verwen
(Sie sollten sich sicher sein, was sie tun, wenn Sie hier ''Ja'' wählen.)
ImageUpload.WizardPage.errorMessage.cancelLockFile=Die gewählte VM wird noch verwendet
ImageUpload.Message.error.uploadInitiatorFailed=Upload-Initialisierung fehlgeschlagen
+ImageUpload.WizardPage.dialog.OvfOvaDetected=Sie haben ein Image im ovf Format ausgewählt. \n\
+ Wenn dieses mit dem Programm VMware exportiert wurde sollte es mithilfe\n\
+ des OVF Tool von VMware in ein kompatibles vmx Image umgewandelt werden können. \n\
+ Möchten sie das Image konvertieren? (Das original Image bleibt unverändert.)
+ImageUpload.WizardPage.dialog.title=Image konvertieren?
+
+# ImageOvfConversionPage
+ImageOvfConversion.MessageBox.notAVmwareOrVboxImage=Die ausgewählte Datei scheint kein mit VMware oder VirtualBox erstelltes Image zu sein.
+ImageOvfConversion.MessageBox.VboxDetected=Sie haben ein mit VirtualBox erstelltes Image ausgewählt.\n\
+ Die Umwandlung von mit VirtualBox erstellten OVA\
+ und OVF images wird momentan noch nicht unterstützt.\n\
+ Sie können dennoch versuchen die Konvertierung zu starten, es können aber Fehler auftreten,\n\
+ da das Konvertierungsprogramm von VMWare verwendet wird.
+ImageOvfConversion.StartConversionButton.text=Konvertierung starten
+ImageOvfConversion.AbortConversionButton.text=Konvertierung abbrechen
+ImageOvfConversion.ErrorMessage.ConversionFailed=Konvertierung fehlgeschlagen:
+ImageOvfConversion.Dialog.DirectoryExists.title=Verzeichnis Überschreiben?
+ImageOvfConversion.Dialog.DirectoryExists=Das Verzeichnis, in welcher das konvertierte Image gespeichert werden soll existiert bereits. \n\
+ Soll dieses ersetzt und die darin enthaltenen Dateien gelöscht werden?
+ImageOvfConversion.Dialog.RemoveTmpDirectory=Für die abgebrochene Konvertierung wurde ein Verzeichnis erstellt.\n\
+ Soll dieses und dessen Inhalt wieder entfernt werden?
+ImageOvfConversion.Dialog.RemoveTmpDirectory.title=Temporäres Verzeichnis löschen?
# ImageUploadSummaryPage
ImageUploadSummary.UploadInitState.requesting=Der Upload-Vorgang wird mit dem Server ausgehandelt...
diff --git a/dozentenmodul/src/main/properties/i18n/page_layout.properties b/dozentenmodul/src/main/properties/i18n/page_layout.properties
index 742d30fa..cd8a76b4 100644
--- a/dozentenmodul/src/main/properties/i18n/page_layout.properties
+++ b/dozentenmodul/src/main/properties/i18n/page_layout.properties
@@ -34,6 +34,18 @@ ImageUpload.TextArea.info.text=If you have not created your own virtual machine
open the detail view of the existing VM and select ''Upload new VM version''. \
This ensures that existing permissions and links to lectures are retained.
+# ImageOvfConversionPageLayout
+ImageOvfConversion.WizardPage.title=Convert OVF and OVA images
+ImageOvfConversion.WizardPage.description=Convert OVF and OVA format to VMX format.
+ImageOvfConversion.WizardPage.InformationBox.text=By pressing the start conversion button the BWLehrpool Suite will try to\n\
+start the OVF Tool from VMware to convert the virtual machine into the VMX format.\n\
+Depending on the performance of your computer and the size of the virtual machine\n\
+this process may take some time.
+ImageOvfConversion.Toolpath.text=OVF Tool path
+ImageOvfConversion.Toolpath.defaultpath.text=Default path
+ImageOvfConversion.Toolpath.BrowseButton.text=Select executable
+ImageOvfConversion.Button.StartConversion.text=Start conversion
+
# ImageUploadSummaryPageLayout
ImageUploadSummary.WizardPage.title=Done!
ImageUploadSummary.WizardPage.description=Wizard completed
diff --git a/dozentenmodul/src/main/properties/i18n/page_layout_de_DE.properties b/dozentenmodul/src/main/properties/i18n/page_layout_de_DE.properties
index fb72af4c..541715f9 100644
--- a/dozentenmodul/src/main/properties/i18n/page_layout_de_DE.properties
+++ b/dozentenmodul/src/main/properties/i18n/page_layout_de_DE.properties
@@ -34,6 +34,17 @@ ImageUpload.TextArea.info.text=Haben Sie noch keine eigene Virtuelle Maschine er
öffnen Sie die Detailansicht der bestehenden VM und wählen Sie ''Neue VM-Version hochladen''. \
Dadurch bleiben bestehende Berechtigungen sowie Verknüpfungen zu Veranstaltungen erhalten.
+# ImageOvfConversionPageLayout
+ImageOvfConversion.WizardPage.title=OVF und OVA konvertieren
+ImageOvfConversion.WizardPage.description=OVF und OVA zu VMX konvertieren.
+ImageOvfConversion.WizardPage.InformationBox.text=Mit dem Betätigen des konvertieren Buttons wird das OVF Tool von VMware gestarted.\n\
+ Je nach Geschwindigkeit Ihres Computers \
+ und der Größe der Virtuellen Maschine kann die Konvertierung einige Zeit in Anspruch nehmen.
+ImageOvfConversion.Toolpath.text=OVF Tool Pfad
+ImageOvfConversion.Toolpath.defaultpath.text=Standardpfad
+ImageOvfConversion.Toolpath.BrowseButton.text=Durchsuchen
+ImageOvfConversion.Button.StartConversion.text=Konvertierung starten
+
# ImageUploadSummaryPageLayout
ImageUploadSummary.WizardPage.title=Fertig!
ImageUploadSummary.WizardPage.description=Assistent abgeschlossen