diff --git a/main/commons/src/main/java/org/cryptomator/common/settings/UiTheme.java b/main/commons/src/main/java/org/cryptomator/common/settings/UiTheme.java index a8b66c65c..8df1e7f89 100644 --- a/main/commons/src/main/java/org/cryptomator/common/settings/UiTheme.java +++ b/main/commons/src/main/java/org/cryptomator/common/settings/UiTheme.java @@ -1,11 +1,21 @@ package org.cryptomator.common.settings; -public enum UiTheme { - LIGHT("preferences.general.theme.light"), - DARK("preferences.general.theme.dark"); - // CUSTOM("Custom (%s)"); +import org.apache.commons.lang3.SystemUtils; - private String displayName; +public enum UiTheme { + LIGHT("preferences.general.theme.light"), // + DARK("preferences.general.theme.dark"), // + AUTOMATIC("preferences.general.theme.automatic"); + + public static UiTheme[] applicableValues() { + if (SystemUtils.IS_OS_MAC) { + return values(); + } else { + return new UiTheme[]{LIGHT, DARK}; + } + } + + private final String displayName; UiTheme(String displayName) { this.displayName = displayName; diff --git a/main/commons/src/main/java/org/cryptomator/common/settings/VaultSettings.java b/main/commons/src/main/java/org/cryptomator/common/settings/VaultSettings.java index f702cff9f..baf63ce1f 100644 --- a/main/commons/src/main/java/org/cryptomator/common/settings/VaultSettings.java +++ b/main/commons/src/main/java/org/cryptomator/common/settings/VaultSettings.java @@ -38,7 +38,7 @@ public class VaultSettings { public static final int DEFAULT_FILENAME_LENGTH_LIMIT = -1; public static final WhenUnlocked DEFAULT_ACTION_AFTER_UNLOCK = WhenUnlocked.ASK; - private static final Random RNG = new Random(); + private static final Random RNG = new Random(); private final String id; private final ObjectProperty path = new SimpleObjectProperty(); @@ -63,12 +63,18 @@ public class VaultSettings { return new Observable[]{path, mountName, winDriveLetter, unlockAfterStartup, revealAfterMount, useCustomMountPath, customMountPath, usesReadOnlyMode, mountFlags, filenameLengthLimit, actionAfterUnlock}; } - private void deriveMountNameFromPathOrUseDefault(Path path) { - if (StringUtils.isBlank(mountName.get())) { - if (path != null && path.getFileName() != null) { - mountName.set(normalizeMountName(path.getFileName().toString())); - } else { - mountName.set(DEFAULT_MOUNT_NAME); + private void deriveMountNameFromPathOrUseDefault(Path newPath) { + final boolean mountNameSet = !StringUtils.isBlank(mountName.get()); + final boolean dirnameExists = (newPath != null) && (newPath.getFileName() != null); + + if (!mountNameSet && dirnameExists) { + mountName.set(normalizeMountName(newPath.getFileName().toString())); + } else if (!mountNameSet && !dirnameExists) { + mountName.set(DEFAULT_MOUNT_NAME + id); + } else if (mountNameSet && dirnameExists) { + if (mountName.get().equals(DEFAULT_MOUNT_NAME + id)) { + //this is okay, since this function is only executed if the path changes (aka, the vault is created or added) + mountName.set(newPath.getFileName().toString()); } } } @@ -159,7 +165,7 @@ public class VaultSettings { public StringProperty mountFlags() { return mountFlags; } - + public IntegerProperty filenameLengthLimit() { return filenameLengthLimit; } diff --git a/main/pom.xml b/main/pom.xml index 5f0d7e5ea..2637067c1 100644 --- a/main/pom.xml +++ b/main/pom.xml @@ -25,14 +25,14 @@ 1.9.12 - 2.2.2 + 2.2.3 1.2.3 1.1.15 - 1.0.11 + 1.0.12 14 - 3.10 + 3.11 1.0.0 3.10.3 1.0.3 @@ -168,7 +168,7 @@ secret-service ${secret-service.version} - + com.auth0 diff --git a/main/ui/src/main/java/org/cryptomator/ui/changepassword/ChangePasswordController.java b/main/ui/src/main/java/org/cryptomator/ui/changepassword/ChangePasswordController.java index 7a641b1e7..2d9998fb1 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/changepassword/ChangePasswordController.java +++ b/main/ui/src/main/java/org/cryptomator/ui/changepassword/ChangePasswordController.java @@ -53,9 +53,10 @@ public class ChangePasswordController implements FxController { @FXML public void initialize() { - BooleanBinding hasNotConfirmedCheckbox = finalConfirmationCheckbox.selectedProperty().not(); - BooleanBinding isInvalidNewPassword = Bindings.createBooleanBinding(() -> newPassword.get() == null || newPassword.get().length() == 0, newPassword); - finishButton.disableProperty().bind(hasNotConfirmedCheckbox.or(isInvalidNewPassword)); + BooleanBinding checkboxNotConfirmed = finalConfirmationCheckbox.selectedProperty().not(); + BooleanBinding oldPasswordFieldEmpty = oldPasswordField.textProperty().isEmpty(); + BooleanBinding newPasswordInvalid = Bindings.createBooleanBinding(() -> newPassword.get() == null || newPassword.get().length() == 0, newPassword); + finishButton.disableProperty().bind(checkboxNotConfirmed.or(oldPasswordFieldEmpty).or(newPasswordInvalid)); } @FXML @@ -96,5 +97,5 @@ public class ChangePasswordController implements FxController { public Vault getVault() { return vault; } - + } diff --git a/main/ui/src/main/java/org/cryptomator/ui/common/NewPasswordController.java b/main/ui/src/main/java/org/cryptomator/ui/common/NewPasswordController.java index 2d0c424eb..24f3ac8db 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/common/NewPasswordController.java +++ b/main/ui/src/main/java/org/cryptomator/ui/common/NewPasswordController.java @@ -26,6 +26,7 @@ public class NewPasswordController implements FxController { public Label passwordStrengthLabel; public Label passwordMatchLabel; public FontAwesome5IconView checkmark; + public FontAwesome5IconView warning; public FontAwesome5IconView cross; public NewPasswordController(ResourceBundle resourceBundle, PasswordStrengthUtil strengthRater, ObjectProperty password) { @@ -36,11 +37,13 @@ public class NewPasswordController implements FxController { @FXML public void initialize() { + passwordStrength.bind(Bindings.createIntegerBinding(() -> strengthRater.computeRate(passwordField.getCharacters()), passwordField.textProperty())); + + passwordStrengthLabel.graphicProperty().bind(Bindings.createObjectBinding(this::getIconViewForPasswordStrengthLabel, passwordField.textProperty(), passwordStrength)); + passwordStrengthLabel.textProperty().bind(EasyBind.map(passwordStrength, strengthRater::getStrengthDescription)); + BooleanBinding passwordsMatch = Bindings.createBooleanBinding(this::hasSamePasswordInBothFields, passwordField.textProperty(), reenterField.textProperty()); BooleanBinding reenterFieldNotEmpty = reenterField.textProperty().isNotEmpty(); - passwordStrength.bind(Bindings.createIntegerBinding(() -> strengthRater.computeRate(passwordField.getCharacters()), passwordField.textProperty())); - passwordStrengthLabel.textProperty().bind(EasyBind.map(passwordStrength, strengthRater::getStrengthDescription)); - passwordMatchLabel.visibleProperty().bind(reenterFieldNotEmpty); passwordMatchLabel.graphicProperty().bind(Bindings.when(passwordsMatch.and(reenterFieldNotEmpty)).then(checkmark).otherwise(cross)); passwordMatchLabel.textProperty().bind(Bindings.when(passwordsMatch.and(reenterFieldNotEmpty)).then(resourceBundle.getString("newPassword.passwordsMatch")).otherwise(resourceBundle.getString("newPassword.passwordsDoNotMatch"))); @@ -49,6 +52,18 @@ public class NewPasswordController implements FxController { reenterField.textProperty().addListener(this::passwordsDidChange); } + private FontAwesome5IconView getIconViewForPasswordStrengthLabel() { + if (passwordField.getCharacters().length() == 0) { + return null; + } else if (passwordStrength.intValue() <= -1) { + return cross; + } else if (passwordStrength.intValue() < 3) { + return warning; + } else { + return checkmark; + } + } + private void passwordsDidChange(@SuppressWarnings("unused") Observable observable) { if (hasSamePasswordInBothFields() && strengthRater.fulfillsMinimumRequirements(passwordField.getCharacters())) { password.set(passwordField.getCharacters()); diff --git a/main/ui/src/main/java/org/cryptomator/ui/controls/FontAwesome5Icon.java b/main/ui/src/main/java/org/cryptomator/ui/controls/FontAwesome5Icon.java index 7334b69da..f4d0d058a 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/controls/FontAwesome5Icon.java +++ b/main/ui/src/main/java/org/cryptomator/ui/controls/FontAwesome5Icon.java @@ -6,11 +6,13 @@ package org.cryptomator.ui.controls; public enum FontAwesome5Icon { ANCHOR("\uF13D"), // ARROW_UP("\uF062"), // + BUG("\uF188"), // CHECK("\uF00C"), // COG("\uF013"), // COGS("\uF085"), // COPY("\uF0C5"), // CROWN("\uF521"), // + EDIT("\uF044"), // EXCLAMATION("\uF12A"), // EXCLAMATION_CIRCLE("\uF06A"), // EXCLAMATION_TRIANGLE("\uF071"), // @@ -37,6 +39,7 @@ public enum FontAwesome5Icon { SPINNER("\uF110"), // SYNC("\uF021"), // TIMES("\uF00D"), // + TRASH("\uF1F8"), // UNLINK("\uf127"), // WRENCH("\uF0AD"), // WINDOW_MINIMIZE("\uF2D1"), // diff --git a/main/ui/src/main/java/org/cryptomator/ui/fxapp/FxApplication.java b/main/ui/src/main/java/org/cryptomator/ui/fxapp/FxApplication.java index 3172b6288..4d80a3451 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/fxapp/FxApplication.java +++ b/main/ui/src/main/java/org/cryptomator/ui/fxapp/FxApplication.java @@ -6,7 +6,6 @@ import javafx.application.Platform; import javafx.beans.binding.Bindings; import javafx.beans.binding.BooleanBinding; import javafx.beans.value.ObservableValue; -import javafx.collections.FXCollections; import javafx.collections.ObservableSet; import javafx.stage.Stage; import org.cryptomator.common.LicenseHolder; @@ -46,6 +45,8 @@ public class FxApplication extends Application { private final LicenseHolder licenseHolder; private final BooleanBinding hasVisibleStages; + private Optional macApperanceObserverIdentifier = Optional.empty(); + @Inject FxApplication(Settings settings, Lazy mainWindow, Lazy preferencesWindow, Provider unlockWindowBuilderProvider, Provider quitWindowBuilderProvider, Optional macFunctions, VaultService vaultService, LicenseHolder licenseHolder, ObservableSet visibleStages) { this.settings = settings; @@ -115,21 +116,44 @@ public class FxApplication extends Application { } private void themeChanged(@SuppressWarnings("unused") ObservableValue observable, @SuppressWarnings("unused") UiTheme oldValue, UiTheme newValue) { + if (macApperanceObserverIdentifier.isPresent()) { + macFunctions.map(MacFunctions::uiAppearance).ifPresent(uiAppearance -> uiAppearance.removeListener(macApperanceObserverIdentifier.get())); + macApperanceObserverIdentifier = Optional.empty(); + } loadSelectedStyleSheet(newValue); } private void loadSelectedStyleSheet(UiTheme desiredTheme) { UiTheme theme = licenseHolder.isValidLicense() ? desiredTheme : UiTheme.LIGHT; switch (theme) { - case DARK -> { - Application.setUserAgentStylesheet(getClass().getResource("/css/dark_theme.css").toString()); - macFunctions.map(MacFunctions::uiAppearance).ifPresent(JniException.ignore(MacApplicationUiAppearance::setToDarkAqua)); - } - case LIGHT -> { - Application.setUserAgentStylesheet(getClass().getResource("/css/light_theme.css").toString()); - macFunctions.map(MacFunctions::uiAppearance).ifPresent(JniException.ignore(MacApplicationUiAppearance::setToAqua)); + case LIGHT -> setToLightTheme(); + case DARK -> setToDarkTheme(); + case AUTOMATIC -> { + macFunctions.map(MacFunctions::uiAppearance).ifPresent(uiAppearance -> { + macApperanceObserverIdentifier = Optional.of(uiAppearance.addListener(this::macInterfaceThemeChanged)); + }); + macInterfaceThemeChanged(); } } } + private void macInterfaceThemeChanged() { + macFunctions.map(MacFunctions::uiAppearance).ifPresent(uiAppearance -> { + switch (uiAppearance.getCurrentInterfaceStyle()) { + case LIGHT -> setToLightTheme(); + case DARK -> setToDarkTheme(); + } + }); + } + + private void setToLightTheme() { + Application.setUserAgentStylesheet(getClass().getResource("/css/light_theme.css").toString()); + macFunctions.map(MacFunctions::uiAppearance).ifPresent(JniException.ignore(MacApplicationUiAppearance::setToAqua)); + } + + private void setToDarkTheme() { + Application.setUserAgentStylesheet(getClass().getResource("/css/dark_theme.css").toString()); + macFunctions.map(MacFunctions::uiAppearance).ifPresent(JniException.ignore(MacApplicationUiAppearance::setToDarkAqua)); + } + } diff --git a/main/ui/src/main/java/org/cryptomator/ui/mainwindow/MainWindowTitleController.java b/main/ui/src/main/java/org/cryptomator/ui/mainwindow/MainWindowTitleController.java index 53044e00a..1f8fbc271 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/mainwindow/MainWindowTitleController.java +++ b/main/ui/src/main/java/org/cryptomator/ui/mainwindow/MainWindowTitleController.java @@ -1,10 +1,12 @@ package org.cryptomator.ui.mainwindow; +import javafx.beans.binding.Bindings; import javafx.beans.binding.BooleanBinding; import javafx.fxml.FXML; import javafx.scene.layout.HBox; import javafx.stage.Stage; import org.cryptomator.common.LicenseHolder; +import org.cryptomator.common.settings.Settings; import org.cryptomator.ui.common.FxController; import org.cryptomator.ui.fxapp.FxApplication; import org.cryptomator.ui.fxapp.UpdateChecker; @@ -30,12 +32,14 @@ public class MainWindowTitleController implements FxController { private final UpdateChecker updateChecker; private final BooleanBinding updateAvailable; private final LicenseHolder licenseHolder; + private final Settings settings; + private final BooleanBinding debugModeEnabled; private double xOffset; private double yOffset; @Inject - MainWindowTitleController(AppLifecycleListener appLifecycle, @MainWindow Stage window, FxApplication application, @Named("trayMenuSupported") boolean minimizeToSysTray, UpdateChecker updateChecker, LicenseHolder licenseHolder) { + MainWindowTitleController(AppLifecycleListener appLifecycle, @MainWindow Stage window, FxApplication application, @Named("trayMenuSupported") boolean minimizeToSysTray, UpdateChecker updateChecker, LicenseHolder licenseHolder, Settings settings) { this.appLifecycle = appLifecycle; this.window = window; this.application = application; @@ -43,6 +47,8 @@ public class MainWindowTitleController implements FxController { this.updateChecker = updateChecker; this.updateAvailable = updateChecker.latestVersionProperty().isNotNull(); this.licenseHolder = licenseHolder; + this.settings = settings; + this.debugModeEnabled = Bindings.createBooleanBinding(this::isDebugModeEnabled, settings.debugMode()); } @FXML @@ -82,6 +88,11 @@ public class MainWindowTitleController implements FxController { application.showPreferencesWindow(SelectedPreferencesTab.ANY); } + @FXML + public void showGeneralPreferences() { + application.showPreferencesWindow(SelectedPreferencesTab.GENERAL); + } + @FXML public void showDonationKeyPreferences() { application.showPreferencesWindow(SelectedPreferencesTab.DONATION_KEY); @@ -104,4 +115,12 @@ public class MainWindowTitleController implements FxController { public boolean isMinimizeToSysTray() { return minimizeToSysTray; } + + public BooleanBinding debugModeEnabledProperty() { + return debugModeEnabled; + } + + public boolean isDebugModeEnabled() { + return settings.debugMode().get(); + } } diff --git a/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailMissingVaultController.java b/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailMissingVaultController.java index f54bc447b..095743490 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailMissingVaultController.java +++ b/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailMissingVaultController.java @@ -1,26 +1,55 @@ package org.cryptomator.ui.mainwindow; import javafx.beans.property.ObjectProperty; -import javafx.beans.property.ReadOnlyObjectProperty; import javafx.fxml.FXML; +import javafx.stage.FileChooser; +import javafx.stage.Stage; import org.cryptomator.common.vaults.Vault; import org.cryptomator.common.vaults.VaultListManager; import org.cryptomator.ui.common.FxController; +import org.cryptomator.ui.removevault.RemoveVaultComponent; import javax.inject.Inject; +import java.io.File; +import java.util.ResourceBundle; @MainWindowScoped public class VaultDetailMissingVaultController implements FxController { - private final ReadOnlyObjectProperty vault; + private final ObjectProperty vault; + private final RemoveVaultComponent.Builder removeVault; + private final ResourceBundle resourceBundle; + private final Stage window; + @Inject - public VaultDetailMissingVaultController(ObjectProperty vault) { + public VaultDetailMissingVaultController(ObjectProperty vault, RemoveVaultComponent.Builder removeVault, ResourceBundle resourceBundle, @MainWindow Stage window) { this.vault = vault; + this.removeVault = removeVault; + this.resourceBundle = resourceBundle; + this.window = window; } @FXML public void recheck() { VaultListManager.redetermineVaultState(vault.get()); } + + @FXML + void didClickRemoveVault() { + removeVault.vault(vault.get()).build().showRemoveVault(); + } + + @FXML + void changeLocation() { + // copied from ChooseExistingVaultController class + FileChooser fileChooser = new FileChooser(); + fileChooser.setTitle(resourceBundle.getString("addvaultwizard.existing.filePickerTitle")); + fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("Cryptomator Masterkey", "*.cryptomator")); + File masterkeyFile = fileChooser.showOpenDialog(window); + if (masterkeyFile != null) { + vault.get().getVaultSettings().path().setValue(masterkeyFile.toPath().toAbsolutePath().getParent()); + recheck(); + } + } } diff --git a/main/ui/src/main/java/org/cryptomator/ui/preferences/DonationKeyPreferencesController.java b/main/ui/src/main/java/org/cryptomator/ui/preferences/DonationKeyPreferencesController.java index 476887b26..21a2d3d9a 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/preferences/DonationKeyPreferencesController.java +++ b/main/ui/src/main/java/org/cryptomator/ui/preferences/DonationKeyPreferencesController.java @@ -5,23 +5,27 @@ import javafx.beans.value.ObservableValue; import javafx.fxml.FXML; import javafx.scene.control.TextArea; import org.cryptomator.common.LicenseHolder; +import org.cryptomator.common.settings.Settings; +import org.cryptomator.common.settings.UiTheme; import org.cryptomator.ui.common.FxController; import javax.inject.Inject; @PreferencesScoped public class DonationKeyPreferencesController implements FxController { - + private static final String DONATION_URI = "https://store.cryptomator.org/desktop"; private final Application application; private final LicenseHolder licenseHolder; + private final Settings settings; public TextArea donationKeyField; @Inject - DonationKeyPreferencesController(Application application, LicenseHolder licenseHolder) { + DonationKeyPreferencesController(Application application, LicenseHolder licenseHolder, Settings settings) { this.application = application; this.licenseHolder = licenseHolder; + this.settings = settings; } @FXML @@ -32,6 +36,9 @@ public class DonationKeyPreferencesController implements FxController { private void registrationKeyChanged(@SuppressWarnings("unused") ObservableValue observable, @SuppressWarnings("unused") String oldValue, String newValue) { licenseHolder.validateAndStoreLicense(newValue); + if (!licenseHolder.isValidLicense()) { + settings.theme().set(UiTheme.LIGHT); + } } @FXML diff --git a/main/ui/src/main/java/org/cryptomator/ui/preferences/GeneralPreferencesController.java b/main/ui/src/main/java/org/cryptomator/ui/preferences/GeneralPreferencesController.java index 30f06b166..fdec00d62 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/preferences/GeneralPreferencesController.java +++ b/main/ui/src/main/java/org/cryptomator/ui/preferences/GeneralPreferencesController.java @@ -1,5 +1,6 @@ package org.cryptomator.ui.preferences; +import javafx.application.Application; import javafx.application.Platform; import javafx.beans.property.ObjectProperty; import javafx.beans.value.ObservableValue; @@ -12,11 +13,10 @@ import javafx.scene.control.RadioButton; import javafx.scene.control.Toggle; import javafx.scene.control.ToggleGroup; import javafx.util.StringConverter; -import javafx.application.Application; +import org.cryptomator.common.Environment; import org.cryptomator.common.LicenseHolder; import org.cryptomator.common.settings.Settings; import org.cryptomator.common.settings.UiTheme; -import org.cryptomator.common.Environment; import org.cryptomator.ui.common.FxController; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -64,7 +64,10 @@ public class GeneralPreferencesController implements FxController { @FXML public void initialize() { - themeChoiceBox.getItems().addAll(UiTheme.values()); + themeChoiceBox.getItems().addAll(UiTheme.applicableValues()); + if (!themeChoiceBox.getItems().contains(settings.theme().get())) { + settings.theme().set(UiTheme.LIGHT); + } themeChoiceBox.valueProperty().bindBidirectional(settings.theme()); themeChoiceBox.setConverter(new UiThemeConverter(resourceBundle)); @@ -122,7 +125,7 @@ public class GeneralPreferencesController implements FxController { } @FXML - public void showLogfileDirectory(){ + public void showLogfileDirectory() { environment.getLogDir().ifPresent(logDirPath -> application.getHostServices().showDocument(logDirPath.toUri().toString())); } diff --git a/main/ui/src/main/java/org/cryptomator/ui/preferences/VolumePreferencesController.java b/main/ui/src/main/java/org/cryptomator/ui/preferences/VolumePreferencesController.java index 9dd1bef82..5faf5b694 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/preferences/VolumePreferencesController.java +++ b/main/ui/src/main/java/org/cryptomator/ui/preferences/VolumePreferencesController.java @@ -25,7 +25,7 @@ public class VolumePreferencesController implements FxController { private final Settings settings; private final BooleanBinding showWebDavSettings; private final BooleanBinding showWebDavScheme; - public ChoiceBox volumeTypeChoicBox; + public ChoiceBox volumeTypeChoiceBox; public TextField webDavPortField; public Button changeWebDavPortButton; public ChoiceBox webDavUrlSchemeChoiceBox; @@ -38,9 +38,12 @@ public class VolumePreferencesController implements FxController { } public void initialize() { - volumeTypeChoicBox.getItems().addAll(Volume.getCurrentSupportedAdapters()); - volumeTypeChoicBox.valueProperty().bindBidirectional(settings.preferredVolumeImpl()); - volumeTypeChoicBox.setConverter(new VolumeImplConverter()); + volumeTypeChoiceBox.getItems().addAll(Volume.getCurrentSupportedAdapters()); + if (!volumeTypeChoiceBox.getItems().contains(settings.preferredVolumeImpl().get())) { + settings.preferredVolumeImpl().set(VolumeImpl.WEBDAV); + } + volumeTypeChoiceBox.valueProperty().bindBidirectional(settings.preferredVolumeImpl()); + volumeTypeChoiceBox.setConverter(new VolumeImplConverter()); webDavPortField.setText(String.valueOf(settings.port().get())); changeWebDavPortButton.visibleProperty().bind(settings.port().asString().isNotEqualTo(webDavPortField.textProperty())); diff --git a/main/ui/src/main/java/org/cryptomator/ui/traymenu/TrayIconController.java b/main/ui/src/main/java/org/cryptomator/ui/traymenu/TrayIconController.java index 78c5cfe62..13183a36e 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/traymenu/TrayIconController.java +++ b/main/ui/src/main/java/org/cryptomator/ui/traymenu/TrayIconController.java @@ -47,7 +47,7 @@ public class TrayIconController { trayMenuController.initTrayMenu(); } - public void macInterfaceThemeChanged() { + private void macInterfaceThemeChanged() { trayIcon.setImage(imageFactory.loadImage()); } diff --git a/main/ui/src/main/resources/css/dark_theme.css b/main/ui/src/main/resources/css/dark_theme.css index 6f8022beb..b6ab94b9b 100644 --- a/main/ui/src/main/resources/css/dark_theme.css +++ b/main/ui/src/main/resources/css/dark_theme.css @@ -143,6 +143,10 @@ -fx-fill: RED_5; } +.glyph-icon-orange { + -fx-fill: ORANGE_5; +} + /******************************************************************************* * * * Main Window * diff --git a/main/ui/src/main/resources/css/light_theme.css b/main/ui/src/main/resources/css/light_theme.css index 42f93bfbf..b650b6e17 100644 --- a/main/ui/src/main/resources/css/light_theme.css +++ b/main/ui/src/main/resources/css/light_theme.css @@ -143,6 +143,10 @@ -fx-fill: RED_5; } +.glyph-icon-orange { + -fx-fill: ORANGE_5; +} + /******************************************************************************* * * * Main Window * diff --git a/main/ui/src/main/resources/fxml/main_window_title.fxml b/main/ui/src/main/resources/fxml/main_window_title.fxml index 31965fea0..031e48b07 100644 --- a/main/ui/src/main/resources/fxml/main_window_title.fxml +++ b/main/ui/src/main/resources/fxml/main_window_title.fxml @@ -32,6 +32,14 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/main/ui/src/main/resources/i18n/strings.properties b/main/ui/src/main/resources/i18n/strings.properties index 920fc1a39..8dddb7feb 100644 --- a/main/ui/src/main/resources/i18n/strings.properties +++ b/main/ui/src/main/resources/i18n/strings.properties @@ -132,6 +132,7 @@ preferences.title=Preferences ## General preferences.general=General preferences.general.theme=Look & Feel +preferences.general.theme.automatic=Automatic preferences.general.theme.light=Light preferences.general.theme.dark=Dark preferences.general.unlockThemes=Unlock dark mode @@ -165,13 +166,14 @@ preferences.about=About main.closeBtn.tooltip=Close main.minimizeBtn.tooltip=Minimize main.preferencesBtn.tooltip=Preferences +main.debugModeEnabled.tooltip=Debug mode is enabled main.donationKeyMissing.tooltip=Please consider donating ## Drag 'n' Drop main.dropZone.dropVault=Add this vault main.dropZone.unknownDragboardContent=If you want to add a vault, drag it to this window ## Vault List main.vaultlist.emptyList.onboardingInstruction=Click here to add a vault -main.vaultlist.contextMenu.remove=Remove Vault +main.vaultlist.contextMenu.remove=Remove Vault… main.vaultlist.addVaultBtn=Add Vault ## Vault Detail ### Welcome @@ -195,6 +197,8 @@ main.vaultDetail.throughput.mbps=%.1f MiB/s ### Missing main.vaultDetail.missing.info=Cryptomator could not find a vault at this path. main.vaultDetail.missing.recheck=Recheck +main.vaultDetail.missing.remove=Remove from Vault List… +main.vaultDetail.missing.changeLocation=Change Vault Location… ### Needs Migration main.vaultDetail.migrateButton=Upgrade Vault main.vaultDetail.migratePrompt=Your vault needs to be upgraded to a new format, before you can access it diff --git a/main/ui/src/main/resources/i18n/strings_ar.properties b/main/ui/src/main/resources/i18n/strings_ar.properties index ef2935aea..959bee104 100644 --- a/main/ui/src/main/resources/i18n/strings_ar.properties +++ b/main/ui/src/main/resources/i18n/strings_ar.properties @@ -169,7 +169,6 @@ main.dropZone.dropVault=أضف هذا المخزن main.dropZone.unknownDragboardContent=إذا كنت ترغب في إضافة مخزن، قم بسحبه إلى هذه النافذة ## Vault List main.vaultlist.emptyList.onboardingInstruction=انقر هنا لإضافة خزنة -main.vaultlist.contextMenu.remove=احذف الحافظة main.vaultlist.addVaultBtn=أضِف مخزنًا ## Vault Detail ### Welcome @@ -192,6 +191,8 @@ main.vaultDetail.throughput.kbps=%.1f كيلوبايت/ث main.vaultDetail.throughput.mbps=%.1f ميجابايت/ث ### Missing main.vaultDetail.missing.info=لم يتمكن Cryptomator من العثور على خزنة في هذا المسار. +main.vaultDetail.missing.recheck=إعادة الفحص +main.vaultDetail.missing.changeLocation=تغيير موقع الخزنة… ### Needs Migration main.vaultDetail.migrateButton=ترقية الحافظة main.vaultDetail.migratePrompt=يجب ترقية المخزن الخاص بك إلى تنسيق جديد، قبل أن تتمكن من الوصول إليه diff --git a/main/ui/src/main/resources/i18n/strings_ca.properties b/main/ui/src/main/resources/i18n/strings_ca.properties index 6846d5b5e..87a6fa52e 100644 --- a/main/ui/src/main/resources/i18n/strings_ca.properties +++ b/main/ui/src/main/resources/i18n/strings_ca.properties @@ -168,7 +168,6 @@ main.dropZone.dropVault=Afegeix aquesta caixa forta main.dropZone.unknownDragboardContent=Si voleu afegir una caixa forta, arrossegueu-la a aquesta finestra ## Vault List main.vaultlist.emptyList.onboardingInstruction=Feu clic aquí per afegir una caixa forta -main.vaultlist.contextMenu.remove=Elimina la caixa forta main.vaultlist.addVaultBtn=Afegir una caixa forta ## Vault Detail ### Welcome diff --git a/main/ui/src/main/resources/i18n/strings_cs.properties b/main/ui/src/main/resources/i18n/strings_cs.properties index 66c0ecb5f..30c550120 100644 --- a/main/ui/src/main/resources/i18n/strings_cs.properties +++ b/main/ui/src/main/resources/i18n/strings_cs.properties @@ -130,6 +130,7 @@ preferences.title=Nastavení ## General preferences.general=Obecné preferences.general.theme=Vzhled +preferences.general.theme.automatic=Automaticky preferences.general.theme.light=Světlý preferences.general.theme.dark=Tmavý preferences.general.unlockThemes=Odemknout tmavý režim @@ -169,7 +170,7 @@ main.dropZone.dropVault=Přidat tento trezor main.dropZone.unknownDragboardContent=Pokud chcete přidat trezor, přetáhněte jej do tohoto okna ## Vault List main.vaultlist.emptyList.onboardingInstruction=Klikněte zde pro přidání nového trezoru -main.vaultlist.contextMenu.remove=Odstranit trezor +main.vaultlist.contextMenu.remove=Odstranit trezor… main.vaultlist.addVaultBtn=Přidat trezor ## Vault Detail ### Welcome @@ -192,6 +193,9 @@ main.vaultDetail.throughput.kbps=%.1f kiB/s main.vaultDetail.throughput.mbps=%.1f MiB/s ### Missing main.vaultDetail.missing.info=Cryptomator nemohl najít trezor na této cestě. +main.vaultDetail.missing.recheck=Znovu zkontrolovat +main.vaultDetail.missing.remove=Odebrat ze seznamu trezorů… +main.vaultDetail.missing.changeLocation=Změnit umístění trezoru… ### Needs Migration main.vaultDetail.migrateButton=Upgrade trezoru main.vaultDetail.migratePrompt=Váš trezor musí být aktualizován na nový formát, než k němu budete mít přístup diff --git a/main/ui/src/main/resources/i18n/strings_de.properties b/main/ui/src/main/resources/i18n/strings_de.properties index bd6bbc797..a2f1f6afc 100644 --- a/main/ui/src/main/resources/i18n/strings_de.properties +++ b/main/ui/src/main/resources/i18n/strings_de.properties @@ -131,6 +131,7 @@ preferences.title=Einstellungen ## General preferences.general=Allgemein preferences.general.theme=Erscheinungsbild +preferences.general.theme.automatic=Automatisch preferences.general.theme.light=Hell preferences.general.theme.dark=Dunkel preferences.general.unlockThemes=Dunklen Modus freischalten @@ -170,7 +171,7 @@ main.dropZone.dropVault=Diesen Tresor hinzufügen main.dropZone.unknownDragboardContent=Wenn Sie einen Tresor hinzufügen möchten, ziehen Sie ihn in dieses Fenster ## Vault List main.vaultlist.emptyList.onboardingInstruction=Klicke hier, um einen Tresor hinzuzufügen -main.vaultlist.contextMenu.remove=Tresor entfernen +main.vaultlist.contextMenu.remove=Tresor entfernen… main.vaultlist.addVaultBtn=Tresor hinzufügen ## Vault Detail ### Welcome @@ -193,6 +194,9 @@ main.vaultDetail.throughput.kbps=%.1f kiB/s main.vaultDetail.throughput.mbps=%.1f MiB/s ### Missing main.vaultDetail.missing.info=Mit diesem Pfad konnte Cryptomator keinen Tresor finden. +main.vaultDetail.missing.recheck=Erneut prüfen +main.vaultDetail.missing.remove=Aus Tresorliste entfernen… +main.vaultDetail.missing.changeLocation=Speicherort des Tresors ändern… ### Needs Migration main.vaultDetail.migrateButton=Tresor aktualisieren main.vaultDetail.migratePrompt=Dein Tresor muss auf ein neues Format aktualisiert werden, bevor du auf ihn zugreifen kannst diff --git a/main/ui/src/main/resources/i18n/strings_el.properties b/main/ui/src/main/resources/i18n/strings_el.properties index 9dd62095b..0dbee5286 100644 --- a/main/ui/src/main/resources/i18n/strings_el.properties +++ b/main/ui/src/main/resources/i18n/strings_el.properties @@ -39,7 +39,7 @@ addvaultwizard.new.locationInstruction=Που θα αποθηκεύσει το C addvaultwizard.new.locationLabel=Θέση αποθήκευσης addvaultwizard.new.locationPrompt=… addvaultwizard.new.directoryPickerLabel=Προσαρμοσμένη τοποθεσία -addvaultwizard.new.directoryPickerButton=Επιλογή +addvaultwizard.new.directoryPickerButton=Επιλογή… addvaultwizard.new.directoryPickerTitle=Επιλογή φακέλου addvaultwizard.new.fileAlreadyExists=Το vault δεν μπορεί να δημιουργηθεί σε αυτό το μονοπάτι καθώς κάποια αντικείμενα υπάρχουν ήδη. addvaultwizard.new.locationDoesNotExist=Το vault δεν μπορεί να δημιουργηθεί σε αυτό το μονοπάτι καθώς τουλάχιστον ένα στοιχείο του μονοπατιού δεν υπάρχει. @@ -68,7 +68,7 @@ addvault.new.readme.accessLocation.3=Κάθε αρχείο που θα προσ addvault.new.readme.accessLocation.4=Μπορείτε ελεύθερα να αφαιρέσετε το αρχείο. ## Existing addvaultwizard.existing.instruction=Επιλέξτε το αρχείο "masterkey.cryptomator" του υπάρχοντος vault σας. -addvaultwizard.existing.chooseBtn=Επιλογή +addvaultwizard.existing.chooseBtn=Επιλογή… addvaultwizard.existing.filePickerTitle=Επιλέξτε το αρχείο Masterkey ## Success addvaultwizard.success.nextStepsInstructions=Προστέθηκε το vault "%s".\nΠρέπει να ξεκλειδώσετε αυτό το vault για να έχετε πρόσβαση ή να προσθέσετε περιεχόμενο. Εναλλακτικά μπορείτε να το ξεκλειδώσετε κάποια άλλη στιγμή. @@ -130,6 +130,7 @@ preferences.title=Προτιμήσεις ## General preferences.general=Γενικά preferences.general.theme=Εμφάνιση +preferences.general.theme.automatic=Αυτόματα preferences.general.theme.light=Ανοιχτό preferences.general.theme.dark=Σκούρο preferences.general.unlockThemes=Ξεκλείδωσε το σκούρο θέμα @@ -166,10 +167,10 @@ main.preferencesBtn.tooltip=Προτιμήσεις main.donationKeyMissing.tooltip=Παρακαλώ σκεφτείτε τη δωρεά ## Drag 'n' Drop main.dropZone.dropVault=Προσθήκη vault -main.dropZone.unknownDragboardContent=Αν θέλετε να προσθέσετε ένα vault, σύρτε το σε αυτό το παράθυρο +main.dropZone.unknownDragboardContent=Αν θέλετε να προσθέσετε ένα vault, σύρετε το σε αυτό το παράθυρο ## Vault List main.vaultlist.emptyList.onboardingInstruction=Κάντε κλικ εδώ για να προσθέσετε ένα vault -main.vaultlist.contextMenu.remove=Διαγραφή Vault +main.vaultlist.contextMenu.remove=Διαγραφή Vault… main.vaultlist.addVaultBtn=Προσθήκη Vault ## Vault Detail ### Welcome @@ -192,6 +193,9 @@ main.vaultDetail.throughput.kbps=%.1f kiB/s main.vaultDetail.throughput.mbps=%.1f MiB/s ### Missing main.vaultDetail.missing.info=Cryptomator δεν βρήκε vault σε αυτόν τον κατάλογο. +main.vaultDetail.missing.recheck=Επανέλεγχος +main.vaultDetail.missing.remove=Κατάργηση από την λίστα των Vault… +main.vaultDetail.missing.changeLocation=Αλλαγή τοποθεσίας Vault… ### Needs Migration main.vaultDetail.migrateButton=Αναβάθμιση Vault main.vaultDetail.migratePrompt=Το vault σας πρέπει να αναβαθμιστεί σε νέα μορφή, προτού να έχετε πρόσβαση σε αυτό @@ -224,7 +228,7 @@ vaultOptions.mount.mountPoint=Σημείο προσάρτησης vaultOptions.mount.mountPoint.auto=Επιλογή κατάλληλης τοποθεσίας αυτόματα vaultOptions.mount.mountPoint.driveLetter=Χρήση επιλεγμένου γράμματος δίσκου vaultOptions.mount.mountPoint.custom=Προσαρμοσμένη διαδρομή -vaultOptions.mount.mountPoint.directoryPickerButton=Επιλογή +vaultOptions.mount.mountPoint.directoryPickerButton=Επιλογή… vaultOptions.mount.mountPoint.directoryPickerTitle=Επιλέξτε ένα άδειο φάκελο ## Master Key vaultOptions.masterkey=Κωδικός πρόσβασης diff --git a/main/ui/src/main/resources/i18n/strings_es.properties b/main/ui/src/main/resources/i18n/strings_es.properties index 393c35882..58095b4e1 100644 --- a/main/ui/src/main/resources/i18n/strings_es.properties +++ b/main/ui/src/main/resources/i18n/strings_es.properties @@ -130,6 +130,7 @@ preferences.title=Preferencias ## General preferences.general=General preferences.general.theme=Apariencia +preferences.general.theme.automatic=Automático preferences.general.theme.light=Claro preferences.general.theme.dark=Oscuro preferences.general.unlockThemes=Desbloquear el modo oscuro @@ -169,7 +170,7 @@ main.dropZone.dropVault=Añadir esta bóveda main.dropZone.unknownDragboardContent=Si desea añadir una bóveda, arrástrela a esta ventana ## Vault List main.vaultlist.emptyList.onboardingInstruction=Hacer clic aquí para añadir una bóveda -main.vaultlist.contextMenu.remove=Eliminar bóveda +main.vaultlist.contextMenu.remove=Eliminar bóveda… main.vaultlist.addVaultBtn=Añadir bóveda ## Vault Detail ### Welcome @@ -192,6 +193,9 @@ main.vaultDetail.throughput.kbps=%.1f kiB/s main.vaultDetail.throughput.mbps=%.1f MiB/s ### Missing main.vaultDetail.missing.info=Cryptomator no pudo encontrar una bóveda en esta ruta. +main.vaultDetail.missing.recheck=Volver a comprobar +main.vaultDetail.missing.remove=Eliminar de la lista de bóveda… +main.vaultDetail.missing.changeLocation=Cambiar ubicación de la bóveda… ### Needs Migration main.vaultDetail.migrateButton=Mejorar bóveda main.vaultDetail.migratePrompt=Su bóveda necesita ser actualizada a un formato nuevo antes de poder acceder a ella diff --git a/main/ui/src/main/resources/i18n/strings_fr.properties b/main/ui/src/main/resources/i18n/strings_fr.properties index beb9ed55c..ddd560419 100644 --- a/main/ui/src/main/resources/i18n/strings_fr.properties +++ b/main/ui/src/main/resources/i18n/strings_fr.properties @@ -130,6 +130,7 @@ preferences.title=Préférences ## General preferences.general=Général preferences.general.theme=Apparence +preferences.general.theme.automatic=Automatique preferences.general.theme.light=Clair preferences.general.theme.dark=Sombre preferences.general.unlockThemes=Débloquer le mode nuit @@ -169,7 +170,7 @@ main.dropZone.dropVault=Ajouter ce coffre main.dropZone.unknownDragboardContent=Si vous voulez ajouter un coffre, faites-le glisser dans cette fenêtre ## Vault List main.vaultlist.emptyList.onboardingInstruction=Cliquez ici pour ajouter un coffre -main.vaultlist.contextMenu.remove=Supprimer le coffre +main.vaultlist.contextMenu.remove=Supprimer le coffre… main.vaultlist.addVaultBtn=Ajouter un coffre ## Vault Detail ### Welcome @@ -192,6 +193,9 @@ main.vaultDetail.throughput.kbps=%.1fkB/s main.vaultDetail.throughput.mbps=%.1fMB/s ### Missing main.vaultDetail.missing.info=Cryptomateur n'a pas pu trouver de coffre-fort dans ce chemin d'accès. +main.vaultDetail.missing.recheck=Revérifier +main.vaultDetail.missing.remove=Retirer de la liste des coffres… +main.vaultDetail.missing.changeLocation=Changer l'Emplacement du Coffre… ### Needs Migration main.vaultDetail.migrateButton=Mettre à jour le coffre main.vaultDetail.migratePrompt=Votre coffre doit être converti dans un nouveau format avant d'y accéder diff --git a/main/ui/src/main/resources/i18n/strings_it.properties b/main/ui/src/main/resources/i18n/strings_it.properties index 09a9295c5..674171dc9 100644 --- a/main/ui/src/main/resources/i18n/strings_it.properties +++ b/main/ui/src/main/resources/i18n/strings_it.properties @@ -130,6 +130,7 @@ preferences.title=Impostazioni ## General preferences.general=Generali preferences.general.theme=Aspetto +preferences.general.theme.automatic=Automatico preferences.general.theme.light=Chiaro preferences.general.theme.dark=Scuro preferences.general.unlockThemes=Sblocca modalità scura @@ -169,7 +170,7 @@ main.dropZone.dropVault=Aggiungi questa cassaforte main.dropZone.unknownDragboardContent=Se vuoi aggiungere una cassaforte, trascinala in questa finestra ## Vault List main.vaultlist.emptyList.onboardingInstruction=Clicca qui per aggiungere una cassaforte -main.vaultlist.contextMenu.remove=Rimuovi Cassaforte +main.vaultlist.contextMenu.remove=Rimuovi Cassaforte… main.vaultlist.addVaultBtn=Aggiungi Cassaforte ## Vault Detail ### Welcome @@ -192,6 +193,9 @@ main.vaultDetail.throughput.kbps=%.1f kiB/s main.vaultDetail.throughput.mbps=%.1f MiB/s ### Missing main.vaultDetail.missing.info=Cryptomator non ha potuto trovare una cassaforte in questo percorso. +main.vaultDetail.missing.recheck=Ricontrollare +main.vaultDetail.missing.remove=Rimuovi dalla Lista Cassaforte… +main.vaultDetail.missing.changeLocation=Cambia posizione della Cassaforte… ### Needs Migration main.vaultDetail.migrateButton=Aggiorna la cassaforte main.vaultDetail.migratePrompt=Prima di potervi accedere la tua cassaforte deve essere aggiornata al nuovo formato diff --git a/main/ui/src/main/resources/i18n/strings_ja.properties b/main/ui/src/main/resources/i18n/strings_ja.properties index 2f7d28058..4c2e2985a 100644 --- a/main/ui/src/main/resources/i18n/strings_ja.properties +++ b/main/ui/src/main/resources/i18n/strings_ja.properties @@ -130,6 +130,7 @@ preferences.title=設定 ## General preferences.general=基本設定 preferences.general.theme=外見 & 操作性 +preferences.general.theme.automatic=自動 preferences.general.theme.light=ライト preferences.general.theme.dark=ダーク preferences.general.unlockThemes=ダークモードの解錠 @@ -169,7 +170,6 @@ main.dropZone.dropVault=この金庫を追加 main.dropZone.unknownDragboardContent=このウィンドウにドラッグして、金庫を追加 ## Vault List main.vaultlist.emptyList.onboardingInstruction=ここをクリックして金庫を追加 -main.vaultlist.contextMenu.remove=金庫を削除 main.vaultlist.addVaultBtn=金庫を追加 ## Vault Detail ### Welcome @@ -192,6 +192,8 @@ main.vaultDetail.throughput.kbps=%.1f kiB/s main.vaultDetail.throughput.mbps=%.1f MiB/s ### Missing main.vaultDetail.missing.info=Cryptomator はこのパスの金庫を見つけることができませんでした。 +main.vaultDetail.missing.recheck=再確認 +main.vaultDetail.missing.changeLocation=金庫の場所を変更... ### Needs Migration main.vaultDetail.migrateButton=金庫をアップグレード main.vaultDetail.migratePrompt=金庫にアクセスする前に、 金庫を新しい形式にアップグレードする必要があります diff --git a/main/ui/src/main/resources/i18n/strings_ko.properties b/main/ui/src/main/resources/i18n/strings_ko.properties index 8d2267136..55a733504 100644 --- a/main/ui/src/main/resources/i18n/strings_ko.properties +++ b/main/ui/src/main/resources/i18n/strings_ko.properties @@ -130,6 +130,7 @@ preferences.title=환경설정 ## General preferences.general=일반 preferences.general.theme=테마설정 +preferences.general.theme.automatic=자동 preferences.general.theme.light=밝게 preferences.general.theme.dark=어둡게 preferences.general.unlockThemes=다크모드 해제 @@ -169,7 +170,7 @@ main.dropZone.dropVault=이 Vault를 추가 main.dropZone.unknownDragboardContent=Vault를 추가하려면, 이 창에 드래그 하십시요. ## Vault List main.vaultlist.emptyList.onboardingInstruction=Vault를 추가하기 위해 이곳을 클릭합니다. -main.vaultlist.contextMenu.remove=Vault 제거 +main.vaultlist.contextMenu.remove=Vault 제거... main.vaultlist.addVaultBtn=Vault 추가 ## Vault Detail ### Welcome @@ -192,6 +193,9 @@ main.vaultDetail.throughput.kbps=%.1f kiB/s main.vaultDetail.throughput.mbps=%.1f MiB/s ### Missing main.vaultDetail.missing.info=Cryptomator가 이 경로에 있는 Vault를 찾지 못했습니다. +main.vaultDetail.missing.recheck=다시 시도 +main.vaultDetail.missing.remove=Vault 목록에서 제거... +main.vaultDetail.missing.changeLocation=Vault 위치 변경 ### Needs Migration main.vaultDetail.migrateButton=Vault 업그레이드 main.vaultDetail.migratePrompt=Vault에 접근하기 전, 새로운 포멧으로 업그레이드가 필요합니다. diff --git a/main/ui/src/main/resources/i18n/strings_lv.properties b/main/ui/src/main/resources/i18n/strings_lv.properties index 131a5dbd8..8882ac5b7 100644 --- a/main/ui/src/main/resources/i18n/strings_lv.properties +++ b/main/ui/src/main/resources/i18n/strings_lv.properties @@ -162,7 +162,6 @@ main.dropZone.dropVault=Pievienot šo glabātuvi main.dropZone.unknownDragboardContent=Ja jūs vēlaties pievienot glabātuvi, velciet to uz šo logu ## Vault List main.vaultlist.emptyList.onboardingInstruction=Spied šeit, lai pievienotu glabātuvi -main.vaultlist.contextMenu.remove=Noņemt glabātuvi main.vaultlist.addVaultBtn=Pievienot glabātuvi ## Vault Detail ### Welcome diff --git a/main/ui/src/main/resources/i18n/strings_nb.properties b/main/ui/src/main/resources/i18n/strings_nb.properties index 924af01e0..99ab81a8a 100644 --- a/main/ui/src/main/resources/i18n/strings_nb.properties +++ b/main/ui/src/main/resources/i18n/strings_nb.properties @@ -169,7 +169,6 @@ main.dropZone.dropVault=Legg til dette hvelvet main.dropZone.unknownDragboardContent=Hvis du vil legge til et hvelv, kan du dra det til dette vinduet ## Vault List main.vaultlist.emptyList.onboardingInstruction=Klikk her for å legge til et hvelv -main.vaultlist.contextMenu.remove=Fjern hvelvet main.vaultlist.addVaultBtn=Legg til hvelv ## Vault Detail ### Welcome @@ -192,6 +191,7 @@ main.vaultDetail.throughput.kbps=%.1f kiB/s main.vaultDetail.throughput.mbps=%.1f MiB/s ### Missing main.vaultDetail.missing.info=Cryptomator kunne ikke finne et hvelv på denne søkestien. +main.vaultDetail.missing.recheck=Kontroller igjen ### Needs Migration main.vaultDetail.migrateButton=Oppgrader hvelv main.vaultDetail.migratePrompt=Hvelvet ditt må oppgraderes til et nytt format før du kan få tilgang til det diff --git a/main/ui/src/main/resources/i18n/strings_nl.properties b/main/ui/src/main/resources/i18n/strings_nl.properties index c4405fc7c..7c54b5362 100644 --- a/main/ui/src/main/resources/i18n/strings_nl.properties +++ b/main/ui/src/main/resources/i18n/strings_nl.properties @@ -158,7 +158,6 @@ main.dropZone.dropVault=Voeg deze kluis toe main.dropZone.unknownDragboardContent=Als u een kluis wilt toevoegen, sleep deze dan naar dit venster ## Vault List main.vaultlist.emptyList.onboardingInstruction=Klik hier om een kluis toe te voegen -main.vaultlist.contextMenu.remove=Verwijder Kluis main.vaultlist.addVaultBtn=Kluis toevoegen ## Vault Detail ### Welcome diff --git a/main/ui/src/main/resources/i18n/strings_nn.properties b/main/ui/src/main/resources/i18n/strings_nn.properties index f9c88c993..e760ae3ab 100644 --- a/main/ui/src/main/resources/i18n/strings_nn.properties +++ b/main/ui/src/main/resources/i18n/strings_nn.properties @@ -169,7 +169,6 @@ main.dropZone.dropVault=Legg til denne kvelven main.dropZone.unknownDragboardContent=Viss du vil legga til ein kvelv, kan du dra det til dette vindauget ## Vault List main.vaultlist.emptyList.onboardingInstruction=Klikk her for å legga til ein kvelv -main.vaultlist.contextMenu.remove=Fjern kvelv main.vaultlist.addVaultBtn=Legg til kvelv ## Vault Detail ### Welcome @@ -192,6 +191,7 @@ main.vaultDetail.throughput.kbps=%.1f kiB/s main.vaultDetail.throughput.mbps=%.1f MiB/s ### Missing main.vaultDetail.missing.info=Cryptomator kunne ikkje finna ein kvelv på denne søkastien. +main.vaultDetail.missing.recheck=Kontroller igjen ### Needs Migration main.vaultDetail.migrateButton=Oppgrader kvelv main.vaultDetail.migratePrompt=Kvelven din må oppgraderast til eit nytt format før du kan få tilgang til det diff --git a/main/ui/src/main/resources/i18n/strings_pl.properties b/main/ui/src/main/resources/i18n/strings_pl.properties index d011f4db8..9ae689c66 100644 --- a/main/ui/src/main/resources/i18n/strings_pl.properties +++ b/main/ui/src/main/resources/i18n/strings_pl.properties @@ -111,7 +111,7 @@ migration.run.enterPassword=Wprowadź hasło dla "%s" migration.run.startMigrationBtn=Aktualizuj sejf migration.run.progressHint=To może chwilę potrwać… ## Sucess -migration.success.nextStepsInstructions=Aktualizacja "%s" zakończona pomyślnie. Możesz już odblokować swój sejf. +migration.success.nextStepsInstructions=Aktualizacja "%s" zakończona pomyślnie.\nMożesz już odblokować swój sejf. migration.success.unlockNow=Odblokuj teraz ## Missing file system capabilities migration.error.missingFileSystemCapabilities.title=Nieobsługiwany system plików @@ -130,6 +130,7 @@ preferences.title=Ustawienia ## General preferences.general=Ogólne preferences.general.theme=Interfejs +preferences.general.theme.automatic=Automatycznie preferences.general.theme.light=Jasny preferences.general.theme.dark=Ciemny preferences.general.unlockThemes=Odblokuj tryb ciemny @@ -169,7 +170,7 @@ main.dropZone.dropVault=Dodaj ten sejf main.dropZone.unknownDragboardContent=Jeśli chcesz dodać sejf, przeciągnij go do tego okna ## Vault List main.vaultlist.emptyList.onboardingInstruction=Kliknij tutaj, aby dodać sejf -main.vaultlist.contextMenu.remove=Usuń sejf +main.vaultlist.contextMenu.remove=Usuń sejf… main.vaultlist.addVaultBtn=Dodaj sejf ## Vault Detail ### Welcome @@ -192,6 +193,9 @@ main.vaultDetail.throughput.kbps=%.1f kiB/s main.vaultDetail.throughput.mbps=%.1f MiB/s ### Missing main.vaultDetail.missing.info=Cryptomator nie mógł znaleźć sejfu w tej lokalizacji. +main.vaultDetail.missing.recheck=Ponów próbę +main.vaultDetail.missing.remove=Usuń z listy sejfów… +main.vaultDetail.missing.changeLocation=Zmień lokalizację sejfu… ### Needs Migration main.vaultDetail.migrateButton=Aktualizuj sejf main.vaultDetail.migratePrompt=Twój sejf musi zostać zaktualizowany do nowego formatu, zanim będziesz mógł go używać diff --git a/main/ui/src/main/resources/i18n/strings_pt.properties b/main/ui/src/main/resources/i18n/strings_pt.properties index 5fae79003..d3c42e9a9 100644 --- a/main/ui/src/main/resources/i18n/strings_pt.properties +++ b/main/ui/src/main/resources/i18n/strings_pt.properties @@ -69,6 +69,7 @@ addvaultwizard.success.nextStepsInstructions=Adicionado cofre "%s".\nPrecisa de addvaultwizard.success.unlockNow=Destrancar agora # Remove Vault +removeVault.title=Remover Cofre removeVault.confirmBtn=Remover Cofre # Change Password diff --git a/main/ui/src/main/resources/i18n/strings_pt_BR.properties b/main/ui/src/main/resources/i18n/strings_pt_BR.properties index 5b97e108a..56daf33fe 100644 --- a/main/ui/src/main/resources/i18n/strings_pt_BR.properties +++ b/main/ui/src/main/resources/i18n/strings_pt_BR.properties @@ -129,6 +129,7 @@ preferences.title=Preferências ## General preferences.general=Geral preferences.general.theme=Aparência +preferences.general.theme.automatic=Automático preferences.general.theme.light=Claro preferences.general.theme.dark=Escuro preferences.general.unlockThemes=Desbloquear o modo escuro @@ -168,7 +169,7 @@ main.dropZone.dropVault=Adicionar este cofre main.dropZone.unknownDragboardContent=Se você quer adicionar um cofre, arraste-o para esta janela ## Vault List main.vaultlist.emptyList.onboardingInstruction=Clique aqui para adicionar um cofre -main.vaultlist.contextMenu.remove=Remover Cofre +main.vaultlist.contextMenu.remove=Remover Cofre… main.vaultlist.addVaultBtn=Adicionar Cofre ## Vault Detail ### Welcome @@ -189,6 +190,9 @@ main.vaultDetail.throughput.kbps=%.1f kiB/s main.vaultDetail.throughput.mbps=%.1f MiB/s ### Missing main.vaultDetail.missing.info=O Cryptomator não conseguiu encontrar um cofre neste caminho. +main.vaultDetail.missing.recheck=Verificar novamente +main.vaultDetail.missing.remove=Remover da lista de Cofres… +main.vaultDetail.missing.changeLocation=Alterar Localização do Cofre… ### Needs Migration main.vaultDetail.migrateButton=Atualizar Cofre main.vaultDetail.migratePrompt=Seu cofre precisa ser atualizado para um novo formato antes de poder acessá-lo diff --git a/main/ui/src/main/resources/i18n/strings_ru.properties b/main/ui/src/main/resources/i18n/strings_ru.properties index 1d4c33b8f..842b33429 100644 --- a/main/ui/src/main/resources/i18n/strings_ru.properties +++ b/main/ui/src/main/resources/i18n/strings_ru.properties @@ -7,7 +7,7 @@ generic.button.back=Назад generic.button.cancel=Отмена generic.button.change=Изменить generic.button.close=Закрыть -generic.button.copy=Скопировать +generic.button.copy=Копировать generic.button.copied=Скопировано! generic.button.done=Готово generic.button.next=Далее @@ -130,9 +130,10 @@ preferences.title=Настройки ## General preferences.general=Общие preferences.general.theme=Внешний вид +preferences.general.theme.automatic=Автоматически preferences.general.theme.light=Светлая preferences.general.theme.dark=Тёмная -preferences.general.unlockThemes=Разблокировать темный режим +preferences.general.unlockThemes=Разблокировать тёмный режим preferences.general.startHidden=Скрывать окно при запуске Cryptomator preferences.general.debugLogging=Вести журнал отладки preferences.general.debugDirectory=Показать файлы журнала @@ -169,11 +170,11 @@ main.dropZone.dropVault=Добавить это хранилище main.dropZone.unknownDragboardContent=Если вы хотите добавить хранилище, перетащите его в это окно ## Vault List main.vaultlist.emptyList.onboardingInstruction=Нажмите здесь, чтобы добавить хранилище -main.vaultlist.contextMenu.remove=Удалить хранилище +main.vaultlist.contextMenu.remove=Удалить хранилище… main.vaultlist.addVaultBtn=Добавить хранилище ## Vault Detail ### Welcome -main.vaultDetail.welcomeOnboarding=Спасибо, что выбрали Cryptomator для защиты ваших файлов. Если вам нужна помощь, ознакомьтесь с нашими руководствами по началу работы: +main.vaultDetail.welcomeOnboarding=Благодарим за выбор Cryptomator для защиты ваших файлов. Если требуется помощь, ознакомьтесь с документацией по началу работы: ### Locked main.vaultDetail.lockedStatus=ЗАБЛОКИРОВАНО main.vaultDetail.unlockBtn=Разблокировка… @@ -192,6 +193,9 @@ main.vaultDetail.throughput.kbps=%.1f КиБ/с main.vaultDetail.throughput.mbps=%.1f МиБ/с ### Missing main.vaultDetail.missing.info=Cryptomator не смог найти хранилище по этому пути. +main.vaultDetail.missing.recheck=Перепроверить +main.vaultDetail.missing.remove=Удалить из списка хранилищ… +main.vaultDetail.missing.changeLocation=Изменить расположение хранилища… ### Needs Migration main.vaultDetail.migrateButton=Обновить хранилище main.vaultDetail.migratePrompt=Чтобы получить доступ к хранилищу, его нужно преобразовать в новый формат diff --git a/main/ui/src/main/resources/i18n/strings_sk.properties b/main/ui/src/main/resources/i18n/strings_sk.properties index 5e4834175..3c0b6fc93 100644 --- a/main/ui/src/main/resources/i18n/strings_sk.properties +++ b/main/ui/src/main/resources/i18n/strings_sk.properties @@ -108,6 +108,7 @@ migration.success.unlockNow=Odomknúť teraz # Preferences preferences.title=Predvoľby ## General +preferences.general.theme.automatic=Automaticky ## Volume ## Updates ## Donation Key @@ -118,7 +119,7 @@ main.closeBtn.tooltip=Zavrieť main.preferencesBtn.tooltip=Predvoľby ## Drag 'n' Drop ## Vault List -main.vaultlist.contextMenu.remove=Odstrániť trezor +main.vaultlist.contextMenu.remove=Odstrániť peňaženku… main.vaultlist.addVaultBtn=Pridať trezor ## Vault Detail ### Welcome @@ -129,6 +130,8 @@ main.vaultDetail.passwordSavedInKeychain=Heslo uložené ### Unlocked main.vaultDetail.lockBtn=Uzamknúť ### Missing +main.vaultDetail.missing.recheck=Prekontrolovať +main.vaultDetail.missing.remove=Odstrániť zo zoznamu peňaženky… ### Needs Migration # Wrong File Alert diff --git a/main/ui/src/main/resources/i18n/strings_sv.properties b/main/ui/src/main/resources/i18n/strings_sv.properties index f71a0b1de..75a63ee88 100644 --- a/main/ui/src/main/resources/i18n/strings_sv.properties +++ b/main/ui/src/main/resources/i18n/strings_sv.properties @@ -42,6 +42,7 @@ addvaultwizard.new.directoryPickerLabel=Anpassad plats addvaultwizard.new.directoryPickerButton=Välj… addvaultwizard.new.directoryPickerTitle=Välj katalog addvaultwizard.new.fileAlreadyExists=Valvet kan inte skapas på denna plats då vissa filer redan existerar. +addvaultwizard.new.locationDoesNotExist=Valvet kan inte skapas på den här platsen då åtminstone en komponent inte finns. addvaultwizard.new.invalidName=Felaktigt namn på valvet. Vänligen ange ett vanligt katalognamn. ### Password addvaultwizard.new.createVaultBtn=Skapa Valv @@ -168,7 +169,6 @@ main.dropZone.dropVault=Lägg till detta valv main.dropZone.unknownDragboardContent=Om du vill lägga till ett valv, dra in det till detta fönster ## Vault List main.vaultlist.emptyList.onboardingInstruction=Klicka här för att lägga till valv -main.vaultlist.contextMenu.remove=Ta bort valv main.vaultlist.addVaultBtn=Lägg till valv ## Vault Detail ### Welcome @@ -191,6 +191,8 @@ main.vaultDetail.throughput.kbps=%.1f kiB/s main.vaultDetail.throughput.mbps=%.1f MiB/s ### Missing main.vaultDetail.missing.info=Cryptomator kunde inte hitta ett valv i denna sökväg. +main.vaultDetail.missing.recheck=Kontrollera igen +main.vaultDetail.missing.changeLocation=Ändra valvets plats… ### Needs Migration main.vaultDetail.migrateButton=Uppgradera valv main.vaultDetail.migratePrompt=Ditt valv behöver uppgraderas till ett nytt format innan du kan använda det diff --git a/main/ui/src/main/resources/i18n/strings_tr.properties b/main/ui/src/main/resources/i18n/strings_tr.properties index b0df399f3..2abb261eb 100644 --- a/main/ui/src/main/resources/i18n/strings_tr.properties +++ b/main/ui/src/main/resources/i18n/strings_tr.properties @@ -130,6 +130,7 @@ preferences.title=Seçenekler ## General preferences.general=Genel preferences.general.theme=Görünüş ve Davranış +preferences.general.theme.automatic=Otomatik preferences.general.theme.light=Açık preferences.general.theme.dark=Koyu preferences.general.unlockThemes=Koyu modun kilidini aç @@ -169,7 +170,7 @@ main.dropZone.dropVault=Bu kasayı ekle main.dropZone.unknownDragboardContent=Bir kasa eklemek istiyorsanız, onu bu pencereye sürükleyin ## Vault List main.vaultlist.emptyList.onboardingInstruction=Kasa eklemek için buraya tıklayın -main.vaultlist.contextMenu.remove=Kasayı Sil +main.vaultlist.contextMenu.remove=Kasayı Sil… main.vaultlist.addVaultBtn=Kasa Ekle ## Vault Detail ### Welcome @@ -192,6 +193,9 @@ main.vaultDetail.throughput.kbps=%.1f kiB/s main.vaultDetail.throughput.mbps=%.1f MiB/s ### Missing main.vaultDetail.missing.info=Şifreleyici bu dosya yolunda bir kasa bulamadı. +main.vaultDetail.missing.recheck=Yeniden denetle +main.vaultDetail.missing.remove=Kasa Listesinden Sil… +main.vaultDetail.missing.changeLocation=Kasa Yerini Değiştir… ### Needs Migration main.vaultDetail.migrateButton=Kasayı Güncelle main.vaultDetail.migratePrompt=Kasaya erişmeden önce kasanızın yeni bir formata yükseltilmesi gerekiyor diff --git a/main/ui/src/main/resources/i18n/strings_zh.properties b/main/ui/src/main/resources/i18n/strings_zh.properties index 927499897..90fe3c4ba 100644 --- a/main/ui/src/main/resources/i18n/strings_zh.properties +++ b/main/ui/src/main/resources/i18n/strings_zh.properties @@ -130,13 +130,14 @@ preferences.title=首选项 ## General preferences.general=常规​​​​​ preferences.general.theme=界面外观 +preferences.general.theme.automatic=自动 preferences.general.theme.light=亮色 preferences.general.theme.dark=暗色 preferences.general.unlockThemes=解锁暗黑模式 preferences.general.startHidden=最小化启动 Cryptomator 到系统托盘 preferences.general.debugLogging=启用调试日志 preferences.general.debugDirectory=显示日志文件 -preferences.general.autoStart=开机运行 Cryptomator +preferences.general.autoStart=开机自动启动 preferences.general.interfaceOrientation=界面方向 preferences.general.interfaceOrientation.ltr=从左到右 preferences.general.interfaceOrientation.rtl=从右到左 @@ -169,7 +170,6 @@ main.dropZone.dropVault=添加此保险库 main.dropZone.unknownDragboardContent=如果您想要添加一个保险库,将其拖动到此窗口 ## Vault List main.vaultlist.emptyList.onboardingInstruction=点击此处添加一个保险库 -main.vaultlist.contextMenu.remove=删除保险库 main.vaultlist.addVaultBtn=添加保险库 ## Vault Detail ### Welcome @@ -192,6 +192,8 @@ main.vaultDetail.throughput.kbps=%.1f kiB/s main.vaultDetail.throughput.mbps=%.1f MiB/s ### Missing main.vaultDetail.missing.info=Cryptomator在此路径找不到保险库 +main.vaultDetail.missing.recheck=重新检查 +main.vaultDetail.missing.changeLocation=更改保险库位置… ### Needs Migration main.vaultDetail.migrateButton=升级保险库 main.vaultDetail.migratePrompt=您的保险库需要升级到新格式,然后才能访问 diff --git a/main/ui/src/main/resources/i18n/strings_zh_TW.properties b/main/ui/src/main/resources/i18n/strings_zh_TW.properties index acd195148..de0bf6e3d 100644 --- a/main/ui/src/main/resources/i18n/strings_zh_TW.properties +++ b/main/ui/src/main/resources/i18n/strings_zh_TW.properties @@ -60,7 +60,7 @@ addvault.new.readme.storageLocation.6=如果您想加密檔案並檢視加密檔 addvault.new.readme.storageLocation.7=1. 把這個加密檔案庫加進 Cryptomator。 addvault.new.readme.storageLocation.8=2. 在 Cryptomator 中解鎖加密檔案庫。 addvault.new.readme.storageLocation.9=3. 按「顯示」按鈕存取資料。 -addvault.new.readme.storageLocation.10=如果您需邀幫助,請參照這份文件:%s +addvault.new.readme.storageLocation.10=如果您需要幫助,請參閱這份文件:%s addvault.new.readme.accessLocation.fileName=歡迎.rtf addvault.new.readme.accessLocation.1=🔐️ 加密磁區 🔐️ addvault.new.readme.accessLocation.2=這是您加密檔案庫的存取位置。 @@ -130,6 +130,7 @@ preferences.title=偏好 ## General preferences.general=一般 preferences.general.theme=外觀 +preferences.general.theme.automatic=自動 preferences.general.theme.light=亮色 preferences.general.theme.dark=暗色 preferences.general.unlockThemes=解鎖暗色模式 @@ -169,7 +170,7 @@ main.dropZone.dropVault=加入這個加密檔案庫 main.dropZone.unknownDragboardContent=如果您想加入一個加密檔案庫,請將他拖到這個視窗裡 ## Vault List main.vaultlist.emptyList.onboardingInstruction=點擊此處以加入加密檔案庫 -main.vaultlist.contextMenu.remove=移除加密檔案庫 +main.vaultlist.contextMenu.remove=移除加密檔案庫… main.vaultlist.addVaultBtn=新增加密檔案庫 ## Vault Detail ### Welcome @@ -192,6 +193,9 @@ main.vaultDetail.throughput.kbps=%.1f kiB/s main.vaultDetail.throughput.mbps=%.1f MiB/s ### Missing main.vaultDetail.missing.info=Cryptomator 無法在指定位置找到加密檔案庫。 +main.vaultDetail.missing.recheck=重新檢查 +main.vaultDetail.missing.remove=從加密檔案庫列表中移除… +main.vaultDetail.missing.changeLocation=更改加密檔案庫位置… ### Needs Migration main.vaultDetail.migrateButton=升級加密檔案庫 main.vaultDetail.migratePrompt=您必須先更新加密檔案庫才能存取內容 diff --git a/main/ui/src/main/resources/license/THIRD-PARTY.txt b/main/ui/src/main/resources/license/THIRD-PARTY.txt index a988029e9..1914c284e 100644 --- a/main/ui/src/main/resources/license/THIRD-PARTY.txt +++ b/main/ui/src/main/resources/license/THIRD-PARTY.txt @@ -33,17 +33,17 @@ Cryptomator uses 52 third-party dependencies under the following licenses: - javax.inject (javax.inject:javax.inject:1 - http://code.google.com/p/atinject/) - Java Native Access (net.java.dev.jna:jna:5.1.0 - https://github.com/java-native-access/jna) - Java Native Access Platform (net.java.dev.jna:jna-platform:5.1.0 - https://github.com/java-native-access/jna) - - Apache Commons Lang (org.apache.commons:commons-lang3:3.10 - https://commons.apache.org/proper/commons-lang/) + - Apache Commons Lang (org.apache.commons:commons-lang3:3.11 - https://commons.apache.org/proper/commons-lang/) - Apache HttpCore (org.apache.httpcomponents:httpcore:4.4.13 - http://hc.apache.org/httpcomponents-core-ga) - - Jackrabbit WebDAV Library (org.apache.jackrabbit:jackrabbit-webdav:2.21.0 - http://jackrabbit.apache.org/jackrabbit-webdav/) - - Jetty :: Http Utility (org.eclipse.jetty:jetty-http:9.4.28.v20200408 - http://www.eclipse.org/jetty) - - Jetty :: IO Utility (org.eclipse.jetty:jetty-io:9.4.28.v20200408 - http://www.eclipse.org/jetty) - - Jetty :: Security (org.eclipse.jetty:jetty-security:9.4.28.v20200408 - http://www.eclipse.org/jetty) - - Jetty :: Server Core (org.eclipse.jetty:jetty-server:9.4.28.v20200408 - http://www.eclipse.org/jetty) - - Jetty :: Servlet Handling (org.eclipse.jetty:jetty-servlet:9.4.28.v20200408 - http://www.eclipse.org/jetty) - - Jetty :: Utilities (org.eclipse.jetty:jetty-util:9.4.28.v20200408 - http://www.eclipse.org/jetty) - - Jetty :: Webapp Application Support (org.eclipse.jetty:jetty-webapp:9.4.28.v20200408 - http://www.eclipse.org/jetty) - - Jetty :: XML utilities (org.eclipse.jetty:jetty-xml:9.4.28.v20200408 - http://www.eclipse.org/jetty) + - Jackrabbit WebDAV Library (org.apache.jackrabbit:jackrabbit-webdav:2.21.3 - http://jackrabbit.apache.org/jackrabbit-webdav/) + - Jetty :: Http Utility (org.eclipse.jetty:jetty-http:9.4.31.v20200723 - http://www.eclipse.org/jetty) + - Jetty :: IO Utility (org.eclipse.jetty:jetty-io:9.4.31.v20200723 - http://www.eclipse.org/jetty) + - Jetty :: Security (org.eclipse.jetty:jetty-security:9.4.31.v20200723 - http://www.eclipse.org/jetty) + - Jetty :: Server Core (org.eclipse.jetty:jetty-server:9.4.31.v20200723 - http://www.eclipse.org/jetty) + - Jetty :: Servlet Handling (org.eclipse.jetty:jetty-servlet:9.4.31.v20200723 - http://www.eclipse.org/jetty) + - Jetty :: Utilities (org.eclipse.jetty:jetty-util:9.4.31.v20200723 - http://www.eclipse.org/jetty) + - Jetty :: Webapp Application Support (org.eclipse.jetty:jetty-webapp:9.4.31.v20200723 - http://www.eclipse.org/jetty) + - Jetty :: XML utilities (org.eclipse.jetty:jetty-xml:9.4.31.v20200723 - http://www.eclipse.org/jetty) BSD: - asm (org.ow2.asm:asm:7.1 - http://asm.ow2.org/) - asm-analysis (org.ow2.asm:asm-analysis:7.1 - http://asm.ow2.org/) @@ -51,14 +51,14 @@ Cryptomator uses 52 third-party dependencies under the following licenses: - asm-tree (org.ow2.asm:asm-tree:7.1 - http://asm.ow2.org/) - asm-util (org.ow2.asm:asm-util:7.1 - http://asm.ow2.org/) Eclipse Public License - Version 1.0: - - Jetty :: Http Utility (org.eclipse.jetty:jetty-http:9.4.28.v20200408 - http://www.eclipse.org/jetty) - - Jetty :: IO Utility (org.eclipse.jetty:jetty-io:9.4.28.v20200408 - http://www.eclipse.org/jetty) - - Jetty :: Security (org.eclipse.jetty:jetty-security:9.4.28.v20200408 - http://www.eclipse.org/jetty) - - Jetty :: Server Core (org.eclipse.jetty:jetty-server:9.4.28.v20200408 - http://www.eclipse.org/jetty) - - Jetty :: Servlet Handling (org.eclipse.jetty:jetty-servlet:9.4.28.v20200408 - http://www.eclipse.org/jetty) - - Jetty :: Utilities (org.eclipse.jetty:jetty-util:9.4.28.v20200408 - http://www.eclipse.org/jetty) - - Jetty :: Webapp Application Support (org.eclipse.jetty:jetty-webapp:9.4.28.v20200408 - http://www.eclipse.org/jetty) - - Jetty :: XML utilities (org.eclipse.jetty:jetty-xml:9.4.28.v20200408 - http://www.eclipse.org/jetty) + - Jetty :: Http Utility (org.eclipse.jetty:jetty-http:9.4.31.v20200723 - http://www.eclipse.org/jetty) + - Jetty :: IO Utility (org.eclipse.jetty:jetty-io:9.4.31.v20200723 - http://www.eclipse.org/jetty) + - Jetty :: Security (org.eclipse.jetty:jetty-security:9.4.31.v20200723 - http://www.eclipse.org/jetty) + - Jetty :: Server Core (org.eclipse.jetty:jetty-server:9.4.31.v20200723 - http://www.eclipse.org/jetty) + - Jetty :: Servlet Handling (org.eclipse.jetty:jetty-servlet:9.4.31.v20200723 - http://www.eclipse.org/jetty) + - Jetty :: Utilities (org.eclipse.jetty:jetty-util:9.4.31.v20200723 - http://www.eclipse.org/jetty) + - Jetty :: Webapp Application Support (org.eclipse.jetty:jetty-webapp:9.4.31.v20200723 - http://www.eclipse.org/jetty) + - Jetty :: XML utilities (org.eclipse.jetty:jetty-xml:9.4.31.v20200723 - http://www.eclipse.org/jetty) Eclipse Public License - v 2.0: - jnr-posix (com.github.jnr:jnr-posix:3.0.54 - http://nexus.sonatype.org/oss-repository-hosting.html/jnr-posix) GPLv2: