Compare commits

..

24 Commits

Author SHA1 Message Date
Sebastian Stenzel
65b85fa4d8 Merge commit 'b211cb1856ef8d07583819b25586151471720cfd' into release/1.6.0 2021-10-14 14:00:11 +02:00
Cryptobot
b211cb1856 New Crowdin updates (#1822)
[ci skip]
2021-10-14 13:58:57 +02:00
Sebastian Stenzel
d7f48866da updated license infos 2021-10-13 13:01:53 +02:00
Snyk bot
0872d84662 bump fuse-nio-adapter to 1.3.3 (#1829)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JAVA-COMGITHUBJNR-1570422
2021-10-13 12:32:17 +02:00
Sebastian Stenzel
a86bd9f13a implemented new algorithm
[ci skip]
2021-10-13 12:12:56 +02:00
Armin Schrenk
e436ce372d Merge branch 'develop' into release/1.6.0 2021-10-08 16:35:19 +02:00
Sebastian Stenzel
1c62467fd2 run codacy for labeled pull requests _and_ push events 2021-10-08 15:39:44 +02:00
Sebastian Stenzel
7f833d2567 update CI config for pull requests
see https://securitylab.github.com/research/github-actions-preventing-pwn-requests/
2021-10-08 15:30:28 +02:00
Sebastian Stenzel
6c6f6baf12 Update to JDK 17 (#1828)
fixes #1404
2021-10-08 14:59:24 +02:00
Armin Schrenk
8319a09b12 fix alignment in vault detail error screen 2021-10-08 14:24:50 +02:00
Armin Schrenk
ac1ff5fb79 Rework vautl detail unknown error dialog:
* add buttons to reload, remove and show error dialog
* restyling
* add new strings
2021-10-06 14:27:28 +02:00
Sebastian Stenzel
1ac0820f93 updated release note formatting
[ci skip]
2021-10-05 14:23:41 +02:00
Armin Schrenk
2f868304e4 Merge branch 'develop' into release/1.6.0 2021-10-05 11:59:57 +02:00
Sebastian Stenzel
813c69f6ac fixed broken bidi binding 2021-10-05 10:09:33 +02:00
Sebastian Stenzel
0d240cdb2d simpler spacing 2021-10-05 10:09:09 +02:00
JaniruTEC
1ef3e948be Fixes #1547: "Custom path" retains invalid value/state (#1548)
Co-authored-by: Sebastian Stenzel <sebastian.stenzel@gmail.com>
2021-10-04 14:31:48 +02:00
Armin Schrenk
2200a100e0 Merge branch 'develop' into release/1.6.0 2021-10-04 13:08:27 +02:00
Armin Schrenk
f5822fc568 fix bug in check run selection and add small space between buttons 2021-10-04 12:49:28 +02:00
Armin Schrenk
126201506c closes #1662 2021-10-04 12:02:55 +02:00
Sebastian Stenzel
c7d8cf5465 Merge branch 'develop' into release/1.6.0 2021-09-30 12:54:38 +02:00
Cryptobot
6415c29e3e New translations strings.properties (Greek) (#1816)
[ci skip]
2021-09-30 12:52:45 +02:00
Sebastian Stenzel
c1965086f3 update dagger to 2.39 2021-09-30 12:52:04 +02:00
Julian Raufelder
c8b9deccb9 Remove incorrect quote in release note 2021-09-29 17:49:54 +02:00
Julian Raufelder
9586e4e65a Compute checksum for *.msi and *.tar.gz as well #1808 2021-09-29 17:48:13 +02:00
51 changed files with 276 additions and 115 deletions

View File

@@ -2,9 +2,11 @@ name: Build
on:
push:
pull_request_target:
types: [labeled]
env:
JAVA_VERSION: 16
JAVA_VERSION: 17
defaults:
run:
@@ -17,19 +19,16 @@ jobs:
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
- uses: actions/setup-java@v2
with:
distribution: 'temurin'
java-version: ${{ env.JAVA_VERSION }}
- uses: actions/cache@v2
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
cache: 'maven'
- name: Build and Test
run: mvn -B clean install jacoco:report -Pcoverage,dependency-check
- name: Upload code coverage report
id: codacyCoverageReporter
if: "github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'pr:safe')"
run: bash <(curl -Ls https://coverage.codacy.com/get.sh)
env:
CODACY_PROJECT_TOKEN: ${{ secrets.CODACY_PROJECT_TOKEN }}

26
.github/workflows/pullrequest.yml vendored Normal file
View File

@@ -0,0 +1,26 @@
name: Pull Request
on:
pull_request:
env:
JAVA_VERSION: 17
defaults:
run:
shell: bash
jobs:
test:
name: Compile and Test
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v2
with:
distribution: 'temurin'
java-version: ${{ env.JAVA_VERSION }}
cache: 'maven'
- name: Build and Test
run: mvn -B clean install jacoco:report -Pcoverage,dependency-check

View File

@@ -13,7 +13,7 @@ on:
- '[0-9]+.[0-9]+.[0-9]+-*'
env:
JAVA_VERSION: 16
JAVA_VERSION: 17
defaults:
run:
@@ -592,7 +592,7 @@ jobs:
GPG_PASSPHRASE: ${{ secrets.RELEASES_GPG_PASSPHRASE }}
- name: Compute SHA256 checksums of release artifacts
run: |
SHA256_SUMS=`find . -name "*.AppImage" -o -name "*.dmg" -o -name "*.msi" -name "*.tar.gz" | xargs sha256sum`
SHA256_SUMS=`find . -name "*.AppImage" -o -name "*.dmg" -o -name "*.msi" -o -name "*.tar.gz" | xargs sha256sum`
echo "SHA256_SUMS<<EOF" >> $GITHUB_ENV
echo "${SHA256_SUMS}" >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
@@ -618,5 +618,7 @@ jobs:
---
:scroll: A complete list of closed issues is available [here](LINK)
---
Checksums of release artifacts:
${{ env.SHA256_SUMS }}"
:floppy_disk: SHA-256 checksums of release artifacts:
```
${{ env.SHA256_SUMS }}
```

1
.idea/icon.svg generated Normal file
View File

@@ -0,0 +1 @@
<svg width="1110" height="942" viewBox="0 0 1108.12 940.2" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg"><path d="m552.69 0c-169.1 0-262.45 143.46-262.45 283.52h524.9c0-140.06-105.33-283.52-262.45-283.52z" fill="#cfcfcf"/><path d="m552.69 53.2c-137.37 0-213.21 116.54-213.21 230.32l213.21 24.18 213.21-24.18c0-113.78-85.57-230.32-213.21-230.32z" fill="#585e62"/><path d="m89.8 739.52a20 20 0 0 1 -2.23-39.88 42.8 42.8 0 1 0 -42.22-21.82 20 20 0 0 1 -35 19.31 82.79 82.79 0 1 1 81.76 42.26 21.78 21.78 0 0 1 -2.31.13z" fill="#585e62"/><rect fill="#cfcfcf" height="144.19" rx="49.42" transform="matrix(.8902923 .45538953 -.45538953 .8902923 261.57 -5.69)" width="104.68" x="90.27" y="467.98"/><path d="m149.47 401.27h62.8a0 0 0 0 1 0 0v94.55a31.4 31.4 0 0 1 -31.4 31.4 31.4 31.4 0 0 1 -31.4-31.4v-94.55a0 0 0 0 1 0 0z" fill="#585e62" transform="matrix(.8902923 .45538953 -.45538953 .8902923 231.23 -31.44)"/><circle cx="222.59" cy="387.53" fill="#cfcfcf" r="75.05"/><path d="m258.09 321.8a75.09 75.09 0 0 0 -91.23 14.64 75.06 75.06 0 0 1 51.58 126.06 75.06 75.06 0 0 0 39.65-140.7z" fill="#b1b1b1"/><path d="m1018.31 739.52a22.09 22.09 0 0 1 -2.28-.13 82.8 82.8 0 1 1 81.77-42.26 20 20 0 1 1 -35-19.31 42.8 42.8 0 1 0 -42.23 21.82 20 20 0 0 1 -2.23 39.88z" fill="#585e62"/><rect fill="#cfcfcf" height="144.19" rx="49.42" transform="matrix(-.8902923 .45538953 -.45538953 -.8902923 2071.05 581.27)" width="104.68" x="913.18" y="467.98"/><path d="m927.25 401.27a31.4 31.4 0 0 1 31.4 31.4v94.55a0 0 0 0 1 0 0h-62.8a0 0 0 0 1 0 0v-94.55a31.4 31.4 0 0 1 31.4-31.4z" fill="#585e62" transform="matrix(-.8902923 .45538953 -.45538953 -.8902923 1964.18 455.35)"/><circle cx="885.53" cy="387.53" fill="#cfcfcf" r="75.05"/><path d="m850 321.8a75.08 75.08 0 0 1 91.22 14.64 75.06 75.06 0 0 0 -51.54 126.06 75.05 75.05 0 0 1 -39.68-140.7z" fill="#b1b1b1"/><path d="m248.78 940.2c-36.67 0-67-39.85-75.51-99.15-4.56-31.83-2.26-65.19 6.48-94 9.41-31 25.51-53.59 45.32-63.72a51.72 51.72 0 0 1 23.69-5.84h103.52v262.71z" fill="#585e62"/><path d="m351.43 940.2c-21.26 0-38.85-39.85-43.78-99.15-2.64-31.83-1.31-65.19 3.76-94 5.45-31 14.78-53.59 26.27-63.72 4.39-3.87 9-5.84 13.73-5.84s9.34 2 13.75 5.8l49.7 43.83c17.37 15.32 23.39 64 20.23 102-2.43 29.28-10 52.18-20.19 61.28l-49.69 43.82c-4.44 3.99-9.08 5.98-13.78 5.98z" fill="#585e62"/><path d="m360.57 699 49.65 43.79c11.18 9.9 17.78 47.45 14.78 83.91-2 24.27-7.83 41.95-14.77 48.13l-49.65 43.79c-18.58 16.38-37.79-19.43-42.83-80.07s6-123.1 24.58-139.51c6.15-5.42 12.5-5.04 18.24-.04z" fill="#35393b"/><path d="m850.73 940.2c36.66 0 67-39.85 75.51-99.15 4.56-31.83 2.26-65.19-6.48-94-9.41-31-25.51-53.59-45.32-63.72a51.72 51.72 0 0 0 -23.69-5.84h-103.53v262.71z" fill="#585e62"/><path d="m748.08 940.2c21.26 0 38.85-39.85 43.78-99.15 2.64-31.83 1.31-65.19-3.76-94-5.45-31-14.79-53.59-26.27-63.72-4.4-3.87-9-5.84-13.73-5.84s-9.34 2-13.76 5.8l-49.69 43.83c-17.38 15.32-23.39 64-20.23 102 2.43 29.28 10 52.18 20.19 61.28l49.68 43.82c4.45 3.99 9.09 5.98 13.79 5.98z" fill="#585e62"/><path d="m738.94 699-49.65 43.79c-11.19 9.86-17.8 47.41-14.77 83.87 2 24.27 7.83 41.95 14.77 48.13l49.65 43.79c18.61 16.41 37.78-19.43 42.82-80.07s-6-123.1-24.58-139.51c-6.18-5.38-12.5-5-18.24 0z" fill="#35393b"/><path d="m848.63 451.38a83.62 83.62 0 0 1 -.56-45.6c14.74-53.13 5.06-111.78 5.06-111.78-185.07-57.77-300.13-.48-300.13-.48s-114.79-57.64-300-.45c0 0-9.86 58.64 4.72 111.83a83.69 83.69 0 0 1 -.69 45.59c-5.14 17.57-10.72 44.5-10.77 78.8-.37 249 306 326.08 306 326.08s306.58-76.15 306.95-325.16c0-34.3-5.49-61.21-10.58-78.83z" fill="#cfcfcf"/><path d="m552.34 808.87c-50.72-15.87-261.7-93.25-261.42-279.51 0-29.65 4.89-52.42 9-66.31a128.3 128.3 0 0 0 .91-70c-6.2-22.58-6.9-47.13-6.17-65.29 40.48-10.23 80.2-15.37 118.41-15.32 75.66.12 119.86 21 120.3 21.17l20.39 10.23 19.24-10.32c.11 0 44.36-20.75 120-20.64 38.21.06 77.91 5.32 118.37 15.68.67 18.14-.1 42.71-6.37 65.27a128.33 128.33 0 0 0 .69 70c4 13.91 8.82 36.69 8.77 66.35-.28 187.06-211.26 263.09-262.12 278.69z" fill="#49b04a"/><path d="m610.15 478.76a57.46 57.46 0 1 0 -70.15 55.92l-32.29 135.47 44.67 12.85 44.71-12.71-31.84-135.57a57.46 57.46 0 0 0 44.9-55.96z" fill="#35393b"/><g fill="#49b04a"><path d="m454.94 131.08a60.64 60.64 0 0 0 -60.64 60.64h121.28a60.64 60.64 0 0 0 -60.64-60.64z"/><path d="m642.38 131.08a60.64 60.64 0 0 0 -60.64 60.64h121.26a60.64 60.64 0 0 0 -60.62-60.64z"/><circle cx="483.23" cy="229.43" r="11.52"/><circle cx="528.52" cy="229.43" r="11.52"/><circle cx="573.8" cy="229.43" r="11.52"/><circle cx="619.09" cy="229.43" r="11.52"/></g></svg>

After

Width:  |  Height:  |  Size: 4.5 KiB

2
.idea/misc.xml generated
View File

@@ -8,7 +8,7 @@
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_16" project-jdk-name="16" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" project-jdk-name="17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

View File

@@ -72,7 +72,7 @@ For more information on the security details visit [cryptomator.org](https://doc
### Dependencies
* JDK 16 (e.g. adoptopenjdk)
* JDK 17 (e.g. temurin)
* Maven 3
* Optional: OS-dependent build tools for native packaging (see [Windows](https://github.com/cryptomator/cryptomator-win), [OS X](https://github.com/cryptomator/cryptomator-osx), [Linux](https://github.com/cryptomator/builder-containers))

View File

@@ -2,7 +2,7 @@ Source: cryptomator
Maintainer: Cryptobot <releases@cryptomator.org>
Section: utils
Priority: optional
Build-Depends: debhelper (>=10), openjdk-16-jdk
Build-Depends: debhelper (>=10), openjdk-17-jdk
Standards-Version: 4.5.0
Homepage: https://cryptomator.org
Vcs-Git: https://github.com/cryptomator/cryptomator.git

19
pom.xml
View File

@@ -21,7 +21,7 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.jdk.version>16</project.jdk.version>
<project.jdk.version>17</project.jdk.version>
<!-- Group IDs of jars that need to stay on the class path for now -->
<nonModularGroupIds>com.github.serceman,com.github.jnr,org.ow2.asm,net.java.dev.jna,org.apache.jackrabbit,org.apache.httpcomponents,de.swiesend,org.purejava,com.github.hypfvieh</nonModularGroupIds>
@@ -32,7 +32,7 @@
<cryptomator.integrations.win.version>1.0.0-rc1</cryptomator.integrations.win.version>
<cryptomator.integrations.mac.version>1.0.0-rc1</cryptomator.integrations.mac.version>
<cryptomator.integrations.linux.version>1.0.0-rc2</cryptomator.integrations.linux.version>
<cryptomator.fuse.version>1.3.2</cryptomator.fuse.version>
<cryptomator.fuse.version>1.3.3</cryptomator.fuse.version>
<cryptomator.dokany.version>1.3.3</cryptomator.dokany.version>
<cryptomator.webdav.version>1.2.6</cryptomator.webdav.version>
@@ -42,7 +42,7 @@
<jwt.version>3.18.2</jwt.version>
<easybind.version>2.2</easybind.version>
<guava.version>31.0-jre</guava.version>
<dagger.version>2.38.1</dagger.version>
<dagger.version>2.39</dagger.version>
<gson.version>2.8.8</gson.version>
<zxcvbn.version>1.5.2</zxcvbn.version>
<slf4j.version>1.7.32</slf4j.version>
@@ -222,19 +222,6 @@
</dependency>
</dependencies>
<repositories>
<repository>
<id>maven-central</id>
<name>Maven Central Repo</name>
<url>https://repo.maven.apache.org/maven2</url>
</repository>
<repository>
<id>google-maven</id>
<name>Google Maven Repo</name>
<url>https://maven.google.com</url>
</repository>
</repositories>
<build>
<pluginManagement>
<plugins>

View File

@@ -1,16 +1,14 @@
package org.cryptomator.ui.health;
import com.tobiasdiez.easybind.EasyBind;
import com.tobiasdiez.easybind.Subscription;
import org.cryptomator.ui.common.FxController;
import javax.inject.Inject;
import javafx.beans.binding.Binding;
import javafx.beans.binding.Bindings;
import javafx.beans.property.ObjectProperty;
import javafx.beans.property.SimpleObjectProperty;
import javafx.scene.control.CheckBox;
import java.util.ArrayList;
import java.util.List;
public class CheckListCellController implements FxController {
@@ -18,26 +16,26 @@ public class CheckListCellController implements FxController {
private final ObjectProperty<Check> check;
private final Binding<String> checkName;
private final Binding<Boolean> checkRunnable;
private final List<Subscription> subscriptions;
/* FXML */
public CheckBox forRunSelectedCheckBox;
public CheckBox checkbox;
@Inject
public CheckListCellController() {
check = new SimpleObjectProperty<>();
checkRunnable = EasyBind.wrapNullable(check).mapObservable(Check::stateProperty).map(Check.CheckState.RUNNABLE::equals).orElse(false);
checkName = EasyBind.wrapNullable(check).map(Check::getName).orElse("");
subscriptions = new ArrayList<>();
}
public void initialize() {
subscriptions.add(EasyBind.subscribe(check, c -> {
forRunSelectedCheckBox.selectedProperty().unbind();
if (c != null) {
forRunSelectedCheckBox.selectedProperty().bindBidirectional(c.chosenForExecutionProperty());
check.addListener((observable, oldVal, newVal) -> {
if (oldVal != null) {
Bindings.unbindBidirectional(checkbox.selectedProperty(), oldVal.chosenForExecutionProperty());
}
}));
if (newVal != null) {
Bindings.bindBidirectional(checkbox.selectedProperty(), newVal.chosenForExecutionProperty());
}
});
}
public ObjectProperty<Check> checkProperty() {

View File

@@ -6,6 +6,7 @@ import dagger.Provides;
import dagger.multibindings.IntoMap;
import org.cryptomator.common.vaults.Vault;
import org.cryptomator.ui.addvaultwizard.AddVaultWizardComponent;
import org.cryptomator.ui.common.ErrorComponent;
import org.cryptomator.ui.common.FxController;
import org.cryptomator.ui.common.FxControllerKey;
import org.cryptomator.ui.common.FxmlFile;
@@ -19,16 +20,18 @@ import org.cryptomator.ui.stats.VaultStatisticsComponent;
import org.cryptomator.ui.vaultoptions.VaultOptionsComponent;
import org.cryptomator.ui.wrongfilealert.WrongFileAlertComponent;
import javax.inject.Named;
import javax.inject.Provider;
import javafx.beans.property.ObjectProperty;
import javafx.beans.property.SimpleObjectProperty;
import javafx.scene.Scene;
import javafx.stage.Modality;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
import java.util.Map;
import java.util.ResourceBundle;
@Module(subcomponents = {AddVaultWizardComponent.class, HealthCheckComponent.class, MigrationComponent.class, RemoveVaultComponent.class, VaultOptionsComponent.class, VaultStatisticsComponent.class, WrongFileAlertComponent.class})
@Module(subcomponents = {AddVaultWizardComponent.class, HealthCheckComponent.class, MigrationComponent.class, RemoveVaultComponent.class, VaultOptionsComponent.class, VaultStatisticsComponent.class, WrongFileAlertComponent.class, ErrorComponent.class})
abstract class MainWindowModule {
@Provides
@@ -55,6 +58,17 @@ abstract class MainWindowModule {
return stage;
}
@Provides
@MainWindowScoped
@Named("errorWindow")
static Stage provideErrorStage(@MainWindow Stage window, StageFactory factory, ResourceBundle resourceBundle) {
Stage stage = factory.create(StageStyle.DECORATED);
stage.setTitle(resourceBundle.getString("main.vaultDetail.error.windowTitle"));
stage.initModality(Modality.APPLICATION_MODAL);
stage.initOwner(window);
return stage;
}
@Provides
@FxmlScene(FxmlFile.MAIN_WINDOW)
@MainWindowScoped

View File

@@ -2,45 +2,46 @@ package org.cryptomator.ui.mainwindow;
import com.tobiasdiez.easybind.EasyBind;
import org.cryptomator.common.vaults.Vault;
import org.cryptomator.common.vaults.VaultListManager;
import org.cryptomator.ui.common.ErrorComponent;
import org.cryptomator.ui.common.FxController;
import org.cryptomator.ui.removevault.RemoveVaultComponent;
import javax.inject.Inject;
import javax.inject.Named;
import javafx.beans.binding.Binding;
import javafx.beans.property.ObjectProperty;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.nio.charset.StandardCharsets;
import javafx.fxml.FXML;
import javafx.stage.Stage;
@MainWindowScoped
public class VaultDetailUnknownErrorController implements FxController {
private final Binding<String> stackTrace;
private final ObjectProperty<Vault> vault;
private final ErrorComponent.Builder errorComponentBuilder;
private final Stage errorWindow;
private final RemoveVaultComponent.Builder removeVault;
@Inject
public VaultDetailUnknownErrorController(ObjectProperty<Vault> vault) {
this.stackTrace = EasyBind.select(vault) //
.selectObject(Vault::lastKnownExceptionProperty) //
.map(this::provideStackTrace);
public VaultDetailUnknownErrorController(ObjectProperty<Vault> vault, ErrorComponent.Builder errorComponentBuilder, @Named("errorWindow") Stage errorWindow, RemoveVaultComponent.Builder removeVault) {
this.vault = vault;
this.errorComponentBuilder = errorComponentBuilder;
this.errorWindow = errorWindow;
this.removeVault = removeVault;
}
private String provideStackTrace(Throwable cause) {
// TODO deduplicate ErrorModule.java
if (cause != null) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
cause.printStackTrace(new PrintStream(baos));
return baos.toString(StandardCharsets.UTF_8);
} else {
return "";
}
@FXML
public void showError() {
errorComponentBuilder.window(errorWindow).cause(vault.get().getLastKnownException()).build().showErrorScene();
}
/* Getter/Setter */
public Binding<String> stackTraceProperty() {
return stackTrace;
@FXML
public void reload() {
VaultListManager.redetermineVaultState(vault.get());
}
public String getStackTrace() {
return stackTrace.getValue();
@FXML
void didClickRemoveVault() {
removeVault.vault(vault.get()).build().showRemoveVault();
}
}

View File

@@ -42,7 +42,6 @@ abstract class PreferencesModule {
static Stage provideStage(StageFactory factory, ResourceBundle resourceBundle) {
Stage stage = factory.create();
stage.setTitle(resourceBundle.getString("preferences.title"));
stage.setResizable(false);
return stage;
}

View File

@@ -27,6 +27,7 @@ import javafx.stage.DirectoryChooser;
import javafx.stage.Stage;
import javafx.util.StringConverter;
import java.io.File;
import java.nio.file.InvalidPathException;
import java.nio.file.Path;
import java.util.ResourceBundle;
import java.util.Set;
@@ -94,7 +95,9 @@ public class MountOptionsController implements FxController {
driveLetterSelection.setConverter(new WinDriveLetterLabelConverter(windowsDriveLetters, resourceBundle));
driveLetterSelection.setValue(vault.getVaultSettings().winDriveLetter().get());
if (vault.getVaultSettings().useCustomMountPath().get() && !getRestrictToStableFuseOnWindows() /* to prevent invalid states */) {
if (vault.getVaultSettings().useCustomMountPath().get()
&& vault.getVaultSettings().getCustomMountPath().isPresent()
&& !getRestrictToStableFuseOnWindows() /* to prevent invalid states */) {
mountPoint.selectToggle(mountPointCustomDir);
} else if (!Strings.isNullOrEmpty(vault.getVaultSettings().winDriveLetter().get())) {
mountPoint.selectToggle(mountPointWinDriveLetter);
@@ -125,25 +128,30 @@ public class MountOptionsController implements FxController {
}
@FXML
private void chooseCustomMountPoint() {
public void chooseCustomMountPoint() {
chooseCustomMountPointOrReset(mountPointCustomDir);
}
private void chooseCustomMountPointOrReset(Toggle previousMountToggle) {
DirectoryChooser directoryChooser = new DirectoryChooser();
directoryChooser.setTitle(resourceBundle.getString("vaultOptions.mount.mountPoint.directoryPickerTitle"));
try {
directoryChooser.setInitialDirectory(Path.of(System.getProperty("user.home")).toFile());
} catch (Exception e) {
//NO-OP
var initialDir = vault.getVaultSettings().getCustomMountPath().orElse(System.getProperty("user.home"));
directoryChooser.setInitialDirectory(Path.of(initialDir).toFile());
} catch (InvalidPathException e) {
// no-op
}
File file = directoryChooser.showDialog(window);
if (file != null) {
vault.getVaultSettings().customMountPath().set(file.getAbsolutePath());
} else {
vault.getVaultSettings().customMountPath().set(null);
mountPoint.selectToggle(previousMountToggle);
}
}
private void toggleMountPoint(@SuppressWarnings("unused") ObservableValue<? extends Toggle> observable, @SuppressWarnings("unused") Toggle oldValue, Toggle newValue) {
private void toggleMountPoint(@SuppressWarnings("unused") ObservableValue<? extends Toggle> observable, Toggle oldValue, Toggle newValue) {
if (mountPointCustomDir.equals(newValue) && Strings.isNullOrEmpty(vault.getVaultSettings().customMountPath().get())) {
chooseCustomMountPoint();
chooseCustomMountPointOrReset(oldValue);
}
}

View File

@@ -3,7 +3,6 @@
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ButtonBar?>
<?import javafx.scene.control.CheckBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.ListView?>
<?import javafx.scene.layout.HBox?>
@@ -27,7 +26,7 @@
<ListView fx:id="checksListView" VBox.vgrow="ALWAYS" minWidth="175" maxWidth="175"/>
<VBox alignment="CENTER" visible="${!controller.mainRunStarted}" managed="${!controller.mainRunStarted}" HBox.hgrow="ALWAYS" spacing="12">
<Label text="%health.checkList.description" wrapText="true"/>
<HBox alignment="CENTER">
<HBox alignment="CENTER" spacing="6">
<Button onAction="#selectAllChecks" text="%health.checkList.selectAllButton" />
<Button onAction="#deselectAllChecks" text="%health.checkList.deselectAllButton" />
</HBox>

View File

@@ -18,7 +18,7 @@
</padding>
<StackPane minWidth="20" minHeight="20" alignment="CENTER">
<CheckBox fx:id="forRunSelectedCheckBox" visible="${controller.checkRunnable}" />
<CheckBox fx:id="checkbox" visible="${controller.checkRunnable}"/>
<CheckStateIconView check="${controller.check}" glyphSize="20" visible="${!controller.checkRunnable}"/>
</StackPane>
<Label text="${controller.checkName}"/>

View File

@@ -1,15 +1,42 @@
<?import org.cryptomator.ui.controls.FontAwesome5IconView?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TextArea?>
<?import javafx.scene.layout.StackPane?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.shape.Circle?>
<VBox xmlns:fx="http://javafx.com/fxml"
xmlns="http://javafx.com/javafx"
fx:controller="org.cryptomator.ui.mainwindow.VaultDetailUnknownErrorController"
alignment="CENTER"
spacing="24">
alignment="TOP_CENTER"
spacing="9">
<children>
<Label text="%generic.error.title" wrapText="true"/>
<Label text="%generic.error.instruction" wrapText="true"/>
<TextArea VBox.vgrow="ALWAYS" text="${controller.stackTrace}" prefRowCount="5" editable="false"/>
<StackPane VBox.vgrow="NEVER">
<Circle styleClass="glyph-icon-primary" radius="48"/>
<FontAwesome5IconView styleClass="glyph-icon-white" glyph="FILE" glyphSize="48"/>
<FontAwesome5IconView styleClass="glyph-icon-primary" glyph="TIMES" glyphSize="24">
<StackPane.margin>
<Insets top="12"/>
</StackPane.margin>
</FontAwesome5IconView>
</StackPane>
<Label text="%main.vaultDetail.error.info" wrapText="true"/>
<VBox spacing="6" alignment="BASELINE_CENTER" VBox.vgrow="NEVER">
<Button styleClass="" text="Show Error Details" onAction="#showError">
<graphic>
<FontAwesome5IconView glyph="INFO"/>
</graphic>
</Button>
<Button text="%main.vaultDetail.error.reload" minWidth="120" onAction="#reload">
<graphic>
<FontAwesome5IconView glyph="REDO"/>
</graphic>
</Button>
<Button text="%main.vaultDetail.missing.remove" minWidth="120" onAction="#didClickRemoveVault">
<graphic>
<FontAwesome5IconView glyph="TRASH"/>
</graphic>
</Button>
</VBox>
</children>
</VBox>

View File

@@ -300,6 +300,10 @@ 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
### Error
main.vaultDetail.error.info=An error occurred loading the vault from disk.
main.vaultDetail.error.reload=Reload
main.vaultDetail.error.windowTitle=Error loading vault
# Wrong File Alert
wrongFileAlert.title=How to Encrypt Files

View File

@@ -244,6 +244,7 @@ main.vaultDetail.missing.changeLocation=تغيير موقع الخزنة…
### Needs Migration
main.vaultDetail.migrateButton=ترقية الحافظة
main.vaultDetail.migratePrompt=يجب ترقية المخزن الخاص بك إلى تنسيق جديد، قبل أن تتمكن من الوصول إليه
### Error
# Wrong File Alert
wrongFileAlert.title=كيفية تشفير الملفات

View File

@@ -260,6 +260,7 @@ main.vaultDetail.missing.changeLocation=Promijeni lokaciju sefa…
### Needs Migration
main.vaultDetail.migrateButton=Nadogradi sef
main.vaultDetail.migratePrompt=Da biste mogli pristupiti svom sefu, morate ga nadograditi na novi format
### Error
# Wrong File Alert
wrongFileAlert.title=Kako enkriptovati podatke

View File

@@ -13,6 +13,11 @@ generic.button.done=Fet
generic.button.next=Següent
generic.button.print=Imprimeix
## Error
generic.error.title=Error %s
generic.error.instruction=Ui! Cryptomator no esperava que passés això. Podeu cercar alguna de les solucions existents per a aquest error. Si no ha estat reportat encara, sentiu-vos lliure de fer-ho vós mateix.
generic.error.hyperlink.lookup=Cerca aquest error
generic.error.hyperlink.report=Notifica un error
generic.error.technicalDetails=Detalls:
# Defaults
defaults.vault.vaultName=Caixa forta
@@ -294,6 +299,10 @@ main.vaultDetail.missing.changeLocation=Canvia la localització de la caixa fort
### Needs Migration
main.vaultDetail.migrateButton=Actualitza la caixa forta
main.vaultDetail.migratePrompt=Per accedir a la vostra caixa forta abans cal actualitzar-la al nou format
### Error
main.vaultDetail.error.info=Hi ha hagut un error mentre es carregava la caixa forta del disc.
main.vaultDetail.error.reload=Torna a carregar
main.vaultDetail.error.windowTitle=Error en carregar la caixa forta
# Wrong File Alert
wrongFileAlert.title=Com xifrar fitxers

View File

@@ -299,6 +299,7 @@ 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
### Error
# Wrong File Alert
wrongFileAlert.title=Jak šifrovat soubory

View File

@@ -299,6 +299,10 @@ 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
### Error
main.vaultDetail.error.info=Beim Laden des Tresors von der Festplatte ist ein Fehler aufgetreten.
main.vaultDetail.error.reload=Erneut laden
main.vaultDetail.error.windowTitle=Fehler beim Laden des Tresors
# Wrong File Alert
wrongFileAlert.title=Verschlüsseln von Dateien

View File

@@ -13,9 +13,14 @@ generic.button.done=Κλείσιμο
generic.button.next=Επόμενο
generic.button.print=Εκτύπωση
## Error
generic.error.title=Σφάλμα %s
generic.error.instruction=Ωχ! Το Cryptomator δεν περίμενε να συμβεί αυτό. Μπορείτε να αναζητήσετε υπάρχουσες λύσεις για αυτό το σφάλμα. Ή εάν δεν έχει αναφερθεί ακόμα, μη διστάσετε να το κάνετε.
generic.error.hyperlink.lookup=Αναζήτηση αυτού του σφάλματος
generic.error.hyperlink.report=Αναφέρετε αυτό το σφάλμα
generic.error.technicalDetails=Λεπτομέρειες:
# Defaults
defaults.vault.vaultName=Vault
defaults.vault.vaultName=Κρύπτη
# Tray Menu
traymenu.showMainWindow=Εμφάνιση
@@ -27,34 +32,34 @@ traymenu.vault.lock=Κλείδωμα
traymenu.vault.reveal=Αποκάλυψη
# Add Vault Wizard
addvaultwizard.title=Προσθήκη Vault
addvaultwizard.title=Προσθήκη Κρύπτης
## Welcome
addvaultwizard.welcome.newButton=Δημιουργία νέου Vault
addvaultwizard.welcome.existingButton=Άνοιγμα υπάρχοντος Vault
addvaultwizard.welcome.newButton=Δημιουργία Νέας Κρύπτης
addvaultwizard.welcome.existingButton=Άνοιγμα Υπάρχοντος Κρύπτης
## New
### Name
addvaultwizard.new.nameInstruction=Διαλέξτε ένα όνομα για το vault
addvaultwizard.new.namePrompt=Όνομα Vault
addvaultwizard.new.nameInstruction=Διαλέξτε ένα όνομα για την κρύπτη
addvaultwizard.new.namePrompt=Όνομα Κρύπτης
### Location
addvaultwizard.new.locationInstruction=Που θα αποθηκεύσει το Cryptomator τα κωδικοποιημένα αρχεία του vault σου;
addvaultwizard.new.locationInstruction=Που θα πρέπει να αποθηκεύσει το Cryptomator τα κωδικοποιημένα αρχεία της κρύπτης σου;
addvaultwizard.new.locationLabel=Θέση αποθήκευσης
addvaultwizard.new.locationPrompt=
addvaultwizard.new.directoryPickerLabel=Προσαρμοσμένη τοποθεσία
addvaultwizard.new.directoryPickerButton=Επιλογή…
addvaultwizard.new.directoryPickerTitle=Επιλογή φακέλου
addvaultwizard.new.fileAlreadyExists=Ένα αρχείο ή φάκελος με το όνομα του vault υπάρχει ήδη
addvaultwizard.new.fileAlreadyExists=Ένα αρχείο ή φάκελος με το όνομα της κρύπτης υπάρχει ήδη
addvaultwizard.new.locationDoesNotExist=Στην καθορισμένη διαδρομή δεν υπάρχει ή δεν μπορεί να προσπελαστεί ένας φάκελος
addvaultwizard.new.locationIsNotWritable=Δεν υπάρχει πρόσβαση εγγραφής στην καθορισμένη διαδρομή
addvaultwizard.new.locationIsOk=Κατάλληλη τοποθεσία για το vault σας
addvaultwizard.new.invalidName=Λάθος όνομα vault. Παρακαλώ χρησιμοποιείστε ένα κανονικό όνομα φακέλου.
addvaultwizard.new.locationIsOk=Κατάλληλη τοποθεσία για την κρύπτη σας
addvaultwizard.new.invalidName=Λάθος όνομα κρύπτης. Παρακαλώ χρησιμοποιείστε ένα κανονικό όνομα φακέλου.
### Password
addvaultwizard.new.createVaultBtn=Δημιουργία Vault
addvaultwizard.new.createVaultBtn=Δημιουργία Κρύπτης
addvaultwizard.new.generateRecoveryKeyChoice=Δεν θα μπορείτε να έχετε πρόσβαση στα δεδομένα σας χωρίς τον κωδικό σας. Θέλετε να δημιουργηθεί ένα κλειδί ανάκτησης στην περίπτωση που χάσετε τον κωδικό σας;
addvaultwizard.new.generateRecoveryKeyChoice.yes=Ναι παρακαλώ, καλύτερα ασφαλής παρά λυπημένος
addvaultwizard.new.generateRecoveryKeyChoice.no=Όχι ευχαριστώ, δεν θα χάσω τον κωδικό μου
### Information
addvault.new.readme.storageLocation.fileName=ΣΗΜΑΝΤΙΚΟ.rtf
addvault.new.readme.storageLocation.1=ΑΡΧΕΙΑ VAULT
addvault.new.readme.storageLocation.1=ΑΡΧΕΙΑ ΚΡΥΠΤΗΣ
addvault.new.readme.storageLocation.2=Αυτή είναι η τοποθεσία του vault σας.
addvault.new.readme.storageLocation.3=ΜΗΝ
addvault.new.readme.storageLocation.4=αλλάξετε οποιοδήποτε αρχείο σε αυτό το φάκελο ή
@@ -80,7 +85,7 @@ addvaultwizard.success.unlockNow=Ξεκλείδωμα τώρα
# Remove Vault
removeVault.title=Διαγραφή Vault
removeVault.information=Το Cryptomator θα ξεχάσει αυτό το vault. Μπορείτε να το προσθέσετε ξανά αργότερα. Δεν θα διαγραφούν τα κωδικοποιημένα αρχεία σας από τον σκληρό σας δίσκο.
removeVault.confirmBtn=Διαγραφή Vault
removeVault.confirmBtn=Διαγραφή Κρύπτης
# Change Password
changepassword.title=Αλλαγή κωδικού πρόσβασης
@@ -265,7 +270,7 @@ main.vaultlist.contextMenu.unlock=Ξεκλείδωμα…
main.vaultlist.contextMenu.unlockNow=Ξεκλείδωμα τώρα
main.vaultlist.contextMenu.vaultoptions=Εμφάνιση επιλογών Vault
main.vaultlist.contextMenu.reveal=Αποκάλυψη εικονικού δίσκου
main.vaultlist.addVaultBtn=Προσθήκη Vault
main.vaultlist.addVaultBtn=Προσθήκη Κρύπτης
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=Ευχαριστούμε που επιλέξατε το Cryptomator για να προστατεύσετε τα αρχεία σας. Αν χρειάζεστε οποιαδήποτε βοήθεια, ελέγξτε τους οδηγούς για αρχάριους:
@@ -294,6 +299,10 @@ main.vaultDetail.missing.changeLocation=Αλλαγή τοποθεσίας Vault
### Needs Migration
main.vaultDetail.migrateButton=Αναβάθμιση Vault
main.vaultDetail.migratePrompt=Το vault σας πρέπει να αναβαθμιστεί σε νέα μορφή, προτού να έχετε πρόσβαση σε αυτό
### Error
main.vaultDetail.error.info=Παρουσιάστηκε σφάλμα κατά τη φόρτωση της κρύπτης από το δίσκο.
main.vaultDetail.error.reload=Επαναφόρτωση
main.vaultDetail.error.windowTitle=Σφάλμα φόρτωσης κρύπτης
# Wrong File Alert
wrongFileAlert.title=Πως να κωδικοποιήσετε αρχεία
@@ -308,7 +317,7 @@ wrongFileAlert.link=Για παραπάνω βοήθεια, επισκεφτεί
# Vault Options
## General
vaultOptions.general=Γενικά
vaultOptions.general.vaultName=Όνομα Vault
vaultOptions.general.vaultName=Όνομα Κρύπτης
vaultOptions.general.autoLock.lockAfterTimePart1=Κλείδωμα όταν παραμένει σε αδράνεια για
vaultOptions.general.autoLock.lockAfterTimePart2=λεπτά
vaultOptions.general.unlockAfterStartup=Ξεκλείδωμα vault όταν ξεκινά το Cryptomator

View File

@@ -299,6 +299,10 @@ 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
### Error
main.vaultDetail.error.info=Se produjo un error al cargar la bóveda del disco.
main.vaultDetail.error.reload=Recargar
main.vaultDetail.error.windowTitle=Error al cargar la bóveda
# Wrong File Alert
wrongFileAlert.title=Cómo encriptar archivos

View File

@@ -299,6 +299,10 @@ 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
### Error
main.vaultDetail.error.info=Une erreur s'est produite lors du chargement du coffre depuis le disque.
main.vaultDetail.error.reload=Actualiser
main.vaultDetail.error.windowTitle=Erreur lors du chargement du coffre
# Wrong File Alert
wrongFileAlert.title=Comment chiffrer ses données

View File

@@ -124,6 +124,7 @@ main.vaultDetail.lockBtn=लॉक करें
### Missing
### Needs Migration
main.vaultDetail.migrateButton=वाउल्ट को अपग्रेड करें
### Error
# Wrong File Alert
wrongFileAlert.instruction.1=अपना वाउल्ट खोलें।

View File

@@ -70,6 +70,7 @@
### Unlocked
### Missing
### Needs Migration
### Error
# Wrong File Alert

View File

@@ -239,6 +239,7 @@ main.vaultDetail.missing.changeLocation=A széf helyének megváltoztatása…
### Needs Migration
main.vaultDetail.migrateButton=Széf frissítése
main.vaultDetail.migratePrompt=A széfet új formátumra kell frissíteni, mielőtt hozzáférhet
### Error
# Wrong File Alert
wrongFileAlert.title=Hogyan lehet fájlokat titkosítani

View File

@@ -214,6 +214,7 @@ main.vaultDetail.stats=Statistik Vault
### Missing
### Needs Migration
main.vaultDetail.migrateButton=Tingkatkan Vault
### Error
# Wrong File Alert

View File

@@ -299,6 +299,10 @@ main.vaultDetail.missing.changeLocation=Cambia la Posizione della Cassaforte…
### Needs Migration
main.vaultDetail.migrateButton=Aggiorna la Cassaforte
main.vaultDetail.migratePrompt=La tua cassaforte dev'esser aggiornata a un nuovo formato, prima di potervi accedere
### Error
main.vaultDetail.error.info=Si è verificato un errore durante il caricamento della cassaforte dal disco.
main.vaultDetail.error.reload=Ricarica
main.vaultDetail.error.windowTitle=Errore nel caricare la cassaforte
# Wrong File Alert
wrongFileAlert.title=Come Crittografare i File

View File

@@ -299,6 +299,10 @@ main.vaultDetail.missing.changeLocation=金庫の場所を変更...
### Needs Migration
main.vaultDetail.migrateButton=金庫をアップグレード
main.vaultDetail.migratePrompt=金庫にアクセスする前に、 金庫を新しい形式にアップグレードする必要があります
### Error
main.vaultDetail.error.info=ディスクから金庫の読み込み中にエラーが発生しました。
main.vaultDetail.error.reload=再読み込み
main.vaultDetail.error.windowTitle=金庫の読み込みエラー
# Wrong File Alert
wrongFileAlert.title=ファイルを暗号化するには

View File

@@ -3,7 +3,7 @@
# Generics
## Button
generic.button.apply=적용
generic.button.back=뒤로
generic.button.back=이전
generic.button.cancel=취소
generic.button.change=변경
generic.button.close=닫기
@@ -13,6 +13,9 @@ generic.button.done=완료
generic.button.next=다음
generic.button.print=인쇄
## Error
generic.error.title=에러 %s
generic.error.hyperlink.report=에러 보고하기
generic.error.technicalDetails=세부정보:
# Defaults
defaults.vault.vaultName=Vault
@@ -148,7 +151,12 @@ migration.impossible.moreInfo=Vault를 이전 버전으로 계속 열수 있습
health.title="%s"의 상태 검사
health.intro.header=상태 검사
health.intro.text=상태 검사는 Vault의 내부 구조의 문제점을 점검하고 해결할 수 있는 기능입니다. 다음 사항을 유의하시기 바랍니다:
health.intro.remarkBackup=데이터가 손상된 경우 백업만이 유일한 해결책입니다.
health.intro.affirmation=나는 위 정보를 읽고 정말 이해했습니다.
## Start Failure
health.fail.header=Vault 설정을 불러오는 중 에러 발생
health.fail.ioError=설정 파일에 접근하는 중 에러가 발생했습니다.
health.fail.parseError=Vault 설정을 파싱하는 중 에러가 발생했습니다.
health.fail.moreInfo=더 많은 정보
## Check Selection
health.checkList.selectAllButton=모든 항목 선택
@@ -283,6 +291,7 @@ main.vaultDetail.missing.changeLocation=Vault 위치 변경
### Needs Migration
main.vaultDetail.migrateButton=Vault 업그레이드
main.vaultDetail.migratePrompt=Vault에 접근하기 전, 새로운 포멧으로 업그레이드가 필요합니다.
### Error
# Wrong File Alert
wrongFileAlert.title=파일 암호화 방법

View File

@@ -198,6 +198,7 @@ main.vaultDetail.missing.info=Cryptomator šajā ceļā nevarēja atrast glabāt
### Needs Migration
main.vaultDetail.migrateButton=Jaunināt glabātuvi
main.vaultDetail.migratePrompt=Lai jūsu varētu piekļūt glabātuvei to ir nepieciešms jaunināt uz jaunu formātu
### Error
# Wrong File Alert
wrongFileAlert.title=Kā šifrēt datnes

View File

@@ -263,6 +263,7 @@ main.vaultDetail.missing.changeLocation=Endre hvelvplassering…
### 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
### Error
# Wrong File Alert
wrongFileAlert.title=Slik krypterer du filer

View File

@@ -299,6 +299,10 @@ main.vaultDetail.missing.changeLocation=Verander de locatie van de kluis…
### Needs Migration
main.vaultDetail.migrateButton=Kluis upgraden
main.vaultDetail.migratePrompt=Uw kluis moet worden bijgewerkt naar een nieuw formaat, voordat u deze kunt openen
### Error
main.vaultDetail.error.info=Er is een fout opgetreden bij het laden van de kluis vanaf de vaste schijf.
main.vaultDetail.error.reload=Herladen
main.vaultDetail.error.windowTitle=Fout bij laden van kluis
# Wrong File Alert
wrongFileAlert.title=Hoe bestanden te versleutelen

View File

@@ -208,6 +208,7 @@ 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
### Error
# Wrong File Alert
wrongFileAlert.title=Slik krypterer du filer

View File

@@ -253,6 +253,7 @@ main.vaultDetail.missing.changeLocation=ਵਾਲਟ ਟਿਕਾਣੇ ਨੂ
### Needs Migration
main.vaultDetail.migrateButton=ਵਾਲਟ ਅੱਪਗਰੇਡ ਕਰੋ
main.vaultDetail.migratePrompt=ਤੁਹਾਡੇ ਵਾਲਟ ਨੂੰ ਵਰਤੇ ਜਾਣ ਤੋਂ ਪਹਿਲਾਂ ਨਵੇਂ ਫਾਰਮੈਟ ਲਈ ਅੱਪਗਰੇਡ ਕਰਨ ਦੀ ਲੋੜ ਹੈ
### Error
# Wrong File Alert
wrongFileAlert.title=ਫਾਇਲਾਂ ਇੰਕ੍ਰਿਪਟ ਕਿਵੇਂ ਹੁੰਦੀਆਂ ਹਨ

View File

@@ -299,6 +299,10 @@ 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ć
### Error
main.vaultDetail.error.info=Wystąpił błąd podczas ładowania sejfu z dysku.
main.vaultDetail.error.reload=Przeładuj
main.vaultDetail.error.windowTitle=Błąd ładowania sejfu
# Wrong File Alert
wrongFileAlert.title=Jak szyfrować pliki

View File

@@ -160,6 +160,7 @@ main.vaultDetail.missing.info=O Cryptomator não conseguiu encontrar um cofre ne
### Needs Migration
main.vaultDetail.migrateButton=Atualizar Cofre
main.vaultDetail.migratePrompt=O cofre precisa de ser atualizado para um novo formato, antes que possa acessá-lo
### Error
# Wrong File Alert
wrongFileAlert.title=Como criptografar arquivos

View File

@@ -299,6 +299,10 @@ 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
### Error
main.vaultDetail.error.info=Ocorreu um erro ao carregar o cofre do disco.
main.vaultDetail.error.reload=Recarregar
main.vaultDetail.error.windowTitle=Erro ao carregar cofre
# Wrong File Alert
wrongFileAlert.title=Como Encriptar Arquivos

View File

@@ -294,6 +294,7 @@ main.vaultDetail.missing.changeLocation=Schimbați locația seifului…
### Needs Migration
main.vaultDetail.migrateButton=Îmbunătățește seiful
main.vaultDetail.migratePrompt=Înainte de a-l putea accesa, seiful dumneavoastră trebuie actualizat la format nou
### Error
# Wrong File Alert
wrongFileAlert.title=Cum să criptați fișierele

View File

@@ -299,6 +299,10 @@ main.vaultDetail.missing.changeLocation=Изменить расположени
### Needs Migration
main.vaultDetail.migrateButton=Обновить хранилище
main.vaultDetail.migratePrompt=Чтобы получить доступ к хранилищу, его нужно преобразовать в новый формат
### Error
main.vaultDetail.error.info=Произошла ошибка при загрузке хранилища с диска.
main.vaultDetail.error.reload=Перезагрузить
main.vaultDetail.error.windowTitle=Ошибка загрузки хранилища
# Wrong File Alert
wrongFileAlert.title=Как шифровать файлы

View File

@@ -299,6 +299,10 @@ main.vaultDetail.missing.changeLocation=Zmeniť umiestnenie trezora…
### Needs Migration
main.vaultDetail.migrateButton=Aktualizácia trezora
main.vaultDetail.migratePrompt=Váš trezor vyžaduje aktualizáciu na nový formát predtým ako ho použijete
### Error
main.vaultDetail.error.info=Vyskytla sa chyba pri načítavaní trezora z disku.
main.vaultDetail.error.reload=Znovu načítať
main.vaultDetail.error.windowTitle=Chyba pri načítavaní trezora
# Wrong File Alert
wrongFileAlert.title=Ako zašifrovať súbory

View File

@@ -265,6 +265,7 @@ main.vaultDetail.missing.changeLocation=Промени локацију сефа
### Needs Migration
main.vaultDetail.migrateButton=Надогради сеф
main.vaultDetail.migratePrompt=Да бисте приступили вашем сефу, он мора бити надограђен на нови формат
### Error
# Wrong File Alert
wrongFileAlert.title=Како шифровати датотеке

View File

@@ -225,6 +225,7 @@ main.vaultDetail.lockBtn=Zaključaj
### Missing
### Needs Migration
main.vaultDetail.migrateButton=Nadogradi sef
### Error
# Wrong File Alert

View File

@@ -299,6 +299,10 @@ 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
### Error
main.vaultDetail.error.info=Ett fel inträffade när valvet skulle laddas in.
main.vaultDetail.error.reload=Ladda om
main.vaultDetail.error.windowTitle=Fel vid inläsning av valv
# Wrong File Alert
wrongFileAlert.title=Hur man krypterar filer

View File

@@ -70,6 +70,7 @@
### Unlocked
### Missing
### Needs Migration
### Error
# Wrong File Alert

View File

@@ -299,6 +299,10 @@ main.vaultDetail.missing.changeLocation=Kasa Yerini Değiştir…
### Needs Migration
main.vaultDetail.migrateButton=Kasayı Yükselt
main.vaultDetail.migratePrompt=Kasaya erişmeden önce kasanızın yeni bir formata yükseltilmesi gerekiyor
### Error
main.vaultDetail.error.info=Kasa diskten yüklenirken bir hata oluştu.
main.vaultDetail.error.reload=Tekrar yükle
main.vaultDetail.error.windowTitle=Kasa yüklenirken hata oluştu
# Wrong File Alert
wrongFileAlert.title=Dosyalar Nasıl Şifrelenir

View File

@@ -299,6 +299,10 @@ main.vaultDetail.missing.changeLocation=更改保险库位置…
### Needs Migration
main.vaultDetail.migrateButton=升级保险库
main.vaultDetail.migratePrompt=您的保险库需要升级到新格式,然后才能访问
### Error
main.vaultDetail.error.info=从磁盘加载保险库时发生错误
main.vaultDetail.error.reload=重新加载
main.vaultDetail.error.windowTitle=加载保险库时出错
# Wrong File Alert
wrongFileAlert.title=如何加密文件

View File

@@ -294,6 +294,7 @@ main.vaultDetail.missing.changeLocation=更改加密檔案庫位置…
### Needs Migration
main.vaultDetail.migrateButton=升級加密檔案庫
main.vaultDetail.migratePrompt=您必須先更新加密檔案庫才能存取內容
### Error
# Wrong File Alert
wrongFileAlert.title=如何加密檔案

View File

@@ -13,12 +13,12 @@ along with this program. If not, see http://www.gnu.org/licenses/.
Cryptomator uses 40 third-party dependencies under the following licenses:
Apache License v2.0:
- jffi (com.github.jnr:jffi:1.2.23 - http://github.com/jnr/jffi)
- jffi (com.github.jnr:jffi:1.3.5 - http://github.com/jnr/jffi)
- jnr-a64asm (com.github.jnr:jnr-a64asm:1.0.0 - http://nexus.sonatype.org/oss-repository-hosting.html/jnr-a64asm)
- jnr-constants (com.github.jnr:jnr-constants:0.9.15 - http://github.com/jnr/jnr-constants)
- jnr-ffi (com.github.jnr:jnr-ffi:2.1.12 - http://github.com/jnr/jnr-ffi)
- jnr-constants (com.github.jnr:jnr-constants:0.10.2 - http://github.com/jnr/jnr-constants)
- jnr-ffi (com.github.jnr:jnr-ffi:2.2.7 - http://github.com/jnr/jnr-ffi)
- Gson (com.google.code.gson:gson:2.8.8 - https://github.com/google/gson/gson)
- Dagger (com.google.dagger:dagger:2.38.1 - https://github.com/google/dagger)
- Dagger (com.google.dagger:dagger:2.39 - https://github.com/google/dagger)
- Guava InternalFutureFailureAccess and InternalFutures (com.google.guava:failureaccess:1.0.1 - https://github.com/google/guava/failureaccess)
- Guava: Google Core Libraries for Java (com.google.guava:guava:31.0-jre - https://github.com/google/guava)
- Apache Commons CLI (commons-cli:commons-cli:1.4 - http://commons.apache.org/proper/commons-cli/)
@@ -36,12 +36,12 @@ Cryptomator uses 40 third-party dependencies under the following licenses:
Apache-2.0:
- Java Native Access (net.java.dev.jna:jna:5.9.0 - https://github.com/java-native-access/jna)
- Java Native Access Platform (net.java.dev.jna:jna-platform:5.9.0 - https://github.com/java-native-access/jna)
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/)
- asm-commons (org.ow2.asm:asm-commons:7.1 - http://asm.ow2.org/)
- 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/)
BSD-3-Clause:
- asm (org.ow2.asm:asm:9.2 - http://asm.ow2.io/)
- asm-analysis (org.ow2.asm:asm-analysis:9.2 - http://asm.ow2.io/)
- asm-commons (org.ow2.asm:asm-commons:9.2 - http://asm.ow2.io/)
- asm-tree (org.ow2.asm:asm-tree:9.2 - http://asm.ow2.io/)
- asm-util (org.ow2.asm:asm-util:9.2 - http://asm.ow2.io/)
Eclipse Public License - Version 1.0:
- Jetty :: Servlet API and Schemas for JPMS and OSGi (org.eclipse.jetty.toolchain:jetty-servlet-api:4.0.6 - https://eclipse.org/jetty/jetty-servlet-api)
Eclipse Public License - Version 2.0:
@@ -55,26 +55,26 @@ Cryptomator uses 40 third-party dependencies under the following licenses:
- Logback Classic Module (ch.qos.logback:logback-classic:1.2.6 - http://logback.qos.ch/logback-classic)
- Logback Core Module (ch.qos.logback:logback-core:1.2.6 - http://logback.qos.ch/logback-core)
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)
- jnr-posix (com.github.jnr:jnr-posix:3.1.10 - http://nexus.sonatype.org/oss-repository-hosting.html/jnr-posix)
GNU Lesser General Public License:
- Logback Classic Module (ch.qos.logback:logback-classic:1.2.6 - http://logback.qos.ch/logback-classic)
- Logback Core Module (ch.qos.logback:logback-core:1.2.6 - http://logback.qos.ch/logback-core)
GPLv2:
- jnr-posix (com.github.jnr:jnr-posix:3.0.54 - http://nexus.sonatype.org/oss-repository-hosting.html/jnr-posix)
- jnr-posix (com.github.jnr:jnr-posix:3.1.10 - http://nexus.sonatype.org/oss-repository-hosting.html/jnr-posix)
GPLv2+CE:
- javafx-base (org.openjfx:javafx-base:17.0.0.1 - https://openjdk.java.net/projects/openjfx/javafx-base/)
- javafx-controls (org.openjfx:javafx-controls:17.0.0.1 - https://openjdk.java.net/projects/openjfx/javafx-controls/)
- javafx-fxml (org.openjfx:javafx-fxml:17.0.0.1 - https://openjdk.java.net/projects/openjfx/javafx-fxml/)
- javafx-graphics (org.openjfx:javafx-graphics:17.0.0.1 - https://openjdk.java.net/projects/openjfx/javafx-graphics/)
LGPL 2.1:
- jnr-posix (com.github.jnr:jnr-posix:3.0.54 - http://nexus.sonatype.org/oss-repository-hosting.html/jnr-posix)
- jnr-posix (com.github.jnr:jnr-posix:3.1.10 - http://nexus.sonatype.org/oss-repository-hosting.html/jnr-posix)
LGPL-2.1-or-later:
- Java Native Access (net.java.dev.jna:jna:5.9.0 - https://github.com/java-native-access/jna)
- Java Native Access Platform (net.java.dev.jna:jna-platform:5.9.0 - https://github.com/java-native-access/jna)
MIT License:
- java jwt (com.auth0:java-jwt:3.18.2 - https://github.com/auth0/java-jwt)
- jnr-x86asm (com.github.jnr:jnr-x86asm:1.0.2 - http://github.com/jnr/jnr-x86asm)
- jnr-fuse (com.github.serceman:jnr-fuse:0.5.5 - https://github.com/SerCeMan/jnr-fuse)
- jnr-fuse (com.github.serceman:jnr-fuse:0.5.7 - https://github.com/SerCeMan/jnr-fuse)
- zxcvbn4j (com.nulab-inc:zxcvbn:1.5.2 - https://github.com/nulab/zxcvbn4j)
- SLF4J API Module (org.slf4j:slf4j-api:1.7.32 - http://www.slf4j.org)
The BSD 2-Clause License: