mirror of
https://github.com/cryptomator/cryptomator.git
synced 2026-05-16 01:31:28 +00:00
Compare commits
24 Commits
1.6.0-beta
...
1.6.0-rc3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
65b85fa4d8 | ||
|
|
b211cb1856 | ||
|
|
d7f48866da | ||
|
|
0872d84662 | ||
|
|
a86bd9f13a | ||
|
|
e436ce372d | ||
|
|
1c62467fd2 | ||
|
|
7f833d2567 | ||
|
|
6c6f6baf12 | ||
|
|
8319a09b12 | ||
|
|
ac1ff5fb79 | ||
|
|
1ac0820f93 | ||
|
|
2f868304e4 | ||
|
|
813c69f6ac | ||
|
|
0d240cdb2d | ||
|
|
1ef3e948be | ||
|
|
2200a100e0 | ||
|
|
f5822fc568 | ||
|
|
126201506c | ||
|
|
c7d8cf5465 | ||
|
|
6415c29e3e | ||
|
|
c1965086f3 | ||
|
|
c8b9deccb9 | ||
|
|
9586e4e65a |
15
.github/workflows/build.yml
vendored
15
.github/workflows/build.yml
vendored
@@ -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
26
.github/workflows/pullrequest.yml
vendored
Normal 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
|
||||
10
.github/workflows/release.yml
vendored
10
.github/workflows/release.yml
vendored
@@ -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
1
.idea/icon.svg
generated
Normal 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
2
.idea/misc.xml
generated
@@ -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>
|
||||
@@ -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))
|
||||
|
||||
|
||||
2
dist/linux/debian/control
vendored
2
dist/linux/debian/control
vendored
@@ -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
19
pom.xml
@@ -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>
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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}"/>
|
||||
|
||||
@@ -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>
|
||||
@@ -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
|
||||
|
||||
@@ -244,6 +244,7 @@ main.vaultDetail.missing.changeLocation=تغيير موقع الخزنة…
|
||||
### Needs Migration
|
||||
main.vaultDetail.migrateButton=ترقية الحافظة
|
||||
main.vaultDetail.migratePrompt=يجب ترقية المخزن الخاص بك إلى تنسيق جديد، قبل أن تتمكن من الوصول إليه
|
||||
### Error
|
||||
|
||||
# Wrong File Alert
|
||||
wrongFileAlert.title=كيفية تشفير الملفات
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -124,6 +124,7 @@ main.vaultDetail.lockBtn=लॉक करें
|
||||
### Missing
|
||||
### Needs Migration
|
||||
main.vaultDetail.migrateButton=वाउल्ट को अपग्रेड करें
|
||||
### Error
|
||||
|
||||
# Wrong File Alert
|
||||
wrongFileAlert.instruction.1=अपना वाउल्ट खोलें।
|
||||
|
||||
@@ -70,6 +70,7 @@
|
||||
### Unlocked
|
||||
### Missing
|
||||
### Needs Migration
|
||||
### Error
|
||||
|
||||
# Wrong File Alert
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -214,6 +214,7 @@ main.vaultDetail.stats=Statistik Vault
|
||||
### Missing
|
||||
### Needs Migration
|
||||
main.vaultDetail.migrateButton=Tingkatkan Vault
|
||||
### Error
|
||||
|
||||
# Wrong File Alert
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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=ファイルを暗号化するには
|
||||
|
||||
@@ -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=파일 암호화 방법
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -253,6 +253,7 @@ main.vaultDetail.missing.changeLocation=ਵਾਲਟ ਟਿਕਾਣੇ ਨੂ
|
||||
### Needs Migration
|
||||
main.vaultDetail.migrateButton=ਵਾਲਟ ਅੱਪਗਰੇਡ ਕਰੋ
|
||||
main.vaultDetail.migratePrompt=ਤੁਹਾਡੇ ਵਾਲਟ ਨੂੰ ਵਰਤੇ ਜਾਣ ਤੋਂ ਪਹਿਲਾਂ ਨਵੇਂ ਫਾਰਮੈਟ ਲਈ ਅੱਪਗਰੇਡ ਕਰਨ ਦੀ ਲੋੜ ਹੈ
|
||||
### Error
|
||||
|
||||
# Wrong File Alert
|
||||
wrongFileAlert.title=ਫਾਇਲਾਂ ਇੰਕ੍ਰਿਪਟ ਕਿਵੇਂ ਹੁੰਦੀਆਂ ਹਨ
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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=Как шифровать файлы
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -265,6 +265,7 @@ main.vaultDetail.missing.changeLocation=Промени локацију сефа
|
||||
### Needs Migration
|
||||
main.vaultDetail.migrateButton=Надогради сеф
|
||||
main.vaultDetail.migratePrompt=Да бисте приступили вашем сефу, он мора бити надограђен на нови формат
|
||||
### Error
|
||||
|
||||
# Wrong File Alert
|
||||
wrongFileAlert.title=Како шифровати датотеке
|
||||
|
||||
@@ -225,6 +225,7 @@ main.vaultDetail.lockBtn=Zaključaj
|
||||
### Missing
|
||||
### Needs Migration
|
||||
main.vaultDetail.migrateButton=Nadogradi sef
|
||||
### Error
|
||||
|
||||
# Wrong File Alert
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -70,6 +70,7 @@
|
||||
### Unlocked
|
||||
### Missing
|
||||
### Needs Migration
|
||||
### Error
|
||||
|
||||
# Wrong File Alert
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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=如何加密文件
|
||||
|
||||
@@ -294,6 +294,7 @@ main.vaultDetail.missing.changeLocation=更改加密檔案庫位置…
|
||||
### Needs Migration
|
||||
main.vaultDetail.migrateButton=升級加密檔案庫
|
||||
main.vaultDetail.migratePrompt=您必須先更新加密檔案庫才能存取內容
|
||||
### Error
|
||||
|
||||
# Wrong File Alert
|
||||
wrongFileAlert.title=如何加密檔案
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user