mirror of
https://github.com/cryptomator/cryptomator.git
synced 2024-11-23 12:09:45 +00:00
Merge branch 'develop' into release/1.7.0
This commit is contained in:
commit
fb91c1a461
1
.github/workflows/appimage.yml
vendored
1
.github/workflows/appimage.yml
vendored
@ -47,7 +47,6 @@ jobs:
|
||||
- name: Patch target dir
|
||||
run: |
|
||||
cp LICENSE.txt target
|
||||
cp dist/linux/launcher.sh target
|
||||
cp target/cryptomator-*.jar target/mods
|
||||
- name: Run jlink
|
||||
run: >
|
||||
|
1
.github/workflows/mac-dmg.yml
vendored
1
.github/workflows/mac-dmg.yml
vendored
@ -61,7 +61,6 @@ jobs:
|
||||
- name: Patch target dir
|
||||
run: |
|
||||
cp LICENSE.txt target
|
||||
cp dist/mac/launcher.sh target
|
||||
cp target/cryptomator-*.jar target/mods
|
||||
- name: Run jlink
|
||||
run: >
|
||||
|
1
.github/workflows/win-exe.yml
vendored
1
.github/workflows/win-exe.yml
vendored
@ -55,7 +55,6 @@ jobs:
|
||||
- name: Patch target dir
|
||||
run: |
|
||||
cp LICENSE.txt target
|
||||
cp dist/linux/launcher.sh target
|
||||
cp target/cryptomator-*.jar target/mods
|
||||
- name: Run jlink
|
||||
run: >
|
||||
|
15
dist/linux/launcher.sh
vendored
15
dist/linux/launcher.sh
vendored
@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
cd $(dirname $0)
|
||||
java \
|
||||
-p "mods" \
|
||||
-cp "libs/*" \
|
||||
-Dcryptomator.settingsPath="~/.config/Cryptomator/settings.json" \
|
||||
-Dcryptomator.ipcSocketPath="~/.config/Cryptomator/ipc.socket" \
|
||||
-Dcryptomator.logDir="~/.local/share/Cryptomator/logs" \
|
||||
-Dcryptomator.mountPointsDir="~/.local/share/Cryptomator/mnt" \
|
||||
-Djdk.gtk.version=2 \
|
||||
-Xss2m \
|
||||
-Xmx512m \
|
||||
--enable-preview \
|
||||
--enable-native-access=org.cryptomator.jfuse.linux.amd64,org.cryptomator.jfuse.linux.aarch64 \
|
||||
-m org.cryptomator.desktop/org.cryptomator.launcher.Cryptomator
|
14
dist/mac/launcher.sh
vendored
14
dist/mac/launcher.sh
vendored
@ -1,14 +0,0 @@
|
||||
#!/bin/sh
|
||||
cd $(dirname $0)
|
||||
java \
|
||||
-p "mods" \
|
||||
-cp "libs/*" \
|
||||
-Dcryptomator.settingsPath="~/Library/Application Support/Cryptomator/settings.json" \
|
||||
-Dcryptomator.ipcSocketPath="~/Library/Application Support/Cryptomator/ipc.socket" \
|
||||
-Dcryptomator.logDir="~/Library/Logs/Cryptomator" \
|
||||
-Dcryptomator.mountPointsDir="/Volumes" \
|
||||
-Xss20m \
|
||||
-Xmx512m \
|
||||
--enable-preview \
|
||||
--enable-native-access=org.cryptomator.jfuse.mac \
|
||||
-m org.cryptomator.desktop/org.cryptomator.launcher.Cryptomator
|
12
dist/win/contrib/cryptomator.bat
vendored
12
dist/win/contrib/cryptomator.bat
vendored
@ -1,12 +0,0 @@
|
||||
@echo off
|
||||
java ^
|
||||
-p "app/mods" ^
|
||||
-cp "app/*" ^
|
||||
-Dcryptomator.settingsPath="~/AppData/Roaming/Cryptomator/settings.json" ^
|
||||
-Dcryptomator.ipcSocketPath="~/AppData/Roaming/Cryptomator/ipc.socket" ^
|
||||
-Dcryptomator.logDir="~/AppData/Roaming/Cryptomator" ^
|
||||
-Dcryptomator.mountPointsDir="~/Cryptomator" ^
|
||||
-Dcryptomator.keychainPath="~/AppData/Roaming/Cryptomator/keychain.json" ^
|
||||
-Xss20m ^
|
||||
-Xmx512m ^
|
||||
-m org.cryptomator.desktop/org.cryptomator.launcher.Cryptomator
|
5
dist/win/contrib/version170-migrate-settings.bat
vendored
Normal file
5
dist/win/contrib/version170-migrate-settings.bat
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
@echo off
|
||||
:: see comments in file ./version170-migrate-settings.ps1
|
||||
|
||||
cd %~dp0
|
||||
powershell -NoLogo -NonInteractive -ExecutionPolicy Unrestricted -Command .\version170-migrate-settings.ps1
|
45
dist/win/contrib/version170-migrate-settings.ps1
vendored
Normal file
45
dist/win/contrib/version170-migrate-settings.ps1
vendored
Normal file
@ -0,0 +1,45 @@
|
||||
# This script migrates Cryptomator settings for all local users on Windows in case the users uses custom directories as mountpoint
|
||||
# See also https://github.com/cryptomator/cryptomator/pull/2654.
|
||||
#
|
||||
# TODO: This script should be evaluated in a yearly interval if it is still needed and if not, should be removed
|
||||
#
|
||||
#Requires -RunAsAdministrator
|
||||
|
||||
#Get all active, local user profiles
|
||||
$profileList = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList'
|
||||
$localUsers = Get-LocalUser | Where-Object {$_.Enabled} | ForEach-Object { $_.Name}
|
||||
|
||||
Get-ChildItem $profileList | ForEach-Object { $_.GetValue("ProfileImagePath") } | Where-Object {
|
||||
$profileNameMatches = ($_ | Select-String -Pattern "\\([^\\]+)$").Matches
|
||||
if($profileNameMatches.Count -eq 1) {
|
||||
#check if the last path part is contained in the local user name list
|
||||
#otherwise do not touch it
|
||||
return $localUsers.Contains($profileNameMatches[0].Groups[1].Value)
|
||||
} else {
|
||||
return $false;
|
||||
}
|
||||
} | ForEach-Object {
|
||||
$settingsPath = "$_\AppData\Roaming\Cryptomator\settings.json"
|
||||
if(!(Test-Path -Path $settingsPath -PathType Leaf)) {
|
||||
#No settings file, nothing to do.
|
||||
return;
|
||||
}
|
||||
$settings = Get-Content -Path $settingsPath | ConvertFrom-Json
|
||||
if($settings.preferredVolumeImpl -ne "FUSE") {
|
||||
#Fuse not used, nothing to do
|
||||
return;
|
||||
}
|
||||
|
||||
#check if customMountPoints are used
|
||||
$atLeastOneCustomPath = $false;
|
||||
foreach ($vault in $settings.directories){
|
||||
$atLeastOneCustomPath = $atLeastOneCustomPath -or ($vault.useCustomMountPath -eq "True")
|
||||
}
|
||||
|
||||
#if so, use WinFsp Local Drive
|
||||
if( $atLeastOneCustomPath ) {
|
||||
Add-Member -Force -InputObject $settings -Name "mountService" -Value "org.cryptomator.frontend.fuse.mount.WinFspMountProvider" -MemberType NoteProperty
|
||||
$newSettings = $settings | Select-Object * -ExcludeProperty "preferredVolumeImpl"
|
||||
ConvertTo-Json $newSettings | Set-Content -Path $settingsPath
|
||||
}
|
||||
}
|
7
dist/win/resources/customWizard.wxi
vendored
7
dist/win/resources/customWizard.wxi
vendored
@ -65,13 +65,10 @@
|
||||
<Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Transparent="yes" NoPrefix="yes" Text="!(loc.ExitDialogTitle)" />
|
||||
<!-- TODO: localize? -->
|
||||
<Control Id="Suggestion" Type="Text" X="135" Y="100" Width="220" Height="60" Transparent="yes" NoPrefix="yes">
|
||||
<Text>We recommend for the best user experience to download and install one of the following third party Windows drivers:</Text>
|
||||
<Text>We recommend for the best user experience to download and install the following third party Windows driver:</Text>
|
||||
</Control>
|
||||
<Control Id="WinFsp" Type="Hyperlink" X="140" Y="125" Width="220" Height="60" Transparent="yes">
|
||||
<Text><![CDATA[• WinFsp (<a href="http://www.secfs.net/winfsp/rel/">Homepage</a>)]]></Text>
|
||||
</Control>
|
||||
<Control Id="Dokany" Type="Hyperlink" X="140" Y="137" Width="220" Height="60" Transparent="yes">
|
||||
<Text><![CDATA[• Dokany (<a href="https://dokan-dev.github.io/">Homepage</a>)]]></Text>
|
||||
<Text><![CDATA[WinFsp (<a href="https://winfsp.dev/">Homepage</a>)]]></Text>
|
||||
</Control>
|
||||
</Dialog>
|
||||
|
||||
|
4
dist/win/resources/main.wxs
vendored
4
dist/win/resources/main.wxs
vendored
@ -132,6 +132,9 @@
|
||||
<!-- WebDAV patches -->
|
||||
<CustomAction Id="PatchWebDAV" Impersonate="no" ExeCommand="[INSTALLDIR]patchWebDAV.bat" Directory="INSTALLDIR" Execute="deferred" Return="asyncWait" />
|
||||
|
||||
<!-- Special Settings migration for 1.7.0,. Should be removed eventually, for more info, see ../contrib/version170-migrate-settings.ps1-->
|
||||
<CustomAction Id="V170MigrateSettings" Impersonate="no" ExeCommand="[INSTALLDIR]version170-migrate-settings.bat" Directory="INSTALLDIR" Execute="deferred" Return="asyncWait" />
|
||||
|
||||
<!-- Running App detection and exit -->
|
||||
<Property Id="FOUNDRUNNINGAPP" Admin="yes"/>
|
||||
<util:CloseApplication
|
||||
@ -182,6 +185,7 @@
|
||||
<RemoveExistingProducts After="InstallValidate"/>
|
||||
|
||||
<Custom Action="PatchWebDAV" After="InstallFiles">NOT Installed OR REINSTALL</Custom>
|
||||
<Custom Action="V170MigrateSettings" After="InstallFiles">NOT Installed OR REINSTALL</Custom>
|
||||
</InstallExecuteSequence>
|
||||
|
||||
<WixVariable Id="WixUIBannerBmp" Value="$(env.JP_WIXWIZARD_RESOURCES)\banner.bmp" />
|
||||
|
4
pom.xml
4
pom.xml
@ -31,10 +31,10 @@
|
||||
<cryptomator.cryptolib.version>2.1.1</cryptomator.cryptolib.version>
|
||||
<cryptomator.cryptofs.version>2.6.1</cryptomator.cryptofs.version>
|
||||
<cryptomator.integrations.version>1.2.0-beta4</cryptomator.integrations.version>
|
||||
<cryptomator.integrations.win.version>1.2.0-beta1</cryptomator.integrations.win.version>
|
||||
<cryptomator.integrations.win.version>1.2.0-beta2</cryptomator.integrations.win.version>
|
||||
<cryptomator.integrations.mac.version>1.2.0-beta2</cryptomator.integrations.mac.version>
|
||||
<cryptomator.integrations.linux.version>1.2.0-beta1</cryptomator.integrations.linux.version>
|
||||
<cryptomator.fuse.version>2.0.0-beta4</cryptomator.fuse.version>
|
||||
<cryptomator.fuse.version>2.0.0-beta5</cryptomator.fuse.version>
|
||||
<cryptomator.dokany.version>2.0.0-beta2</cryptomator.dokany.version>
|
||||
<cryptomator.webdav.version>2.0.0-beta4</cryptomator.webdav.version>
|
||||
|
||||
|
@ -96,7 +96,8 @@ public class Mounter {
|
||||
builder.setMountpoint(mountPoint);
|
||||
}
|
||||
} else {
|
||||
if (canMountToParent && !canMountToDir) {
|
||||
var mpIsDriveLetter = userChosenMountPoint.toString().matches("[A-Z]:\\\\");
|
||||
if (!mpIsDriveLetter && canMountToParent && !canMountToDir) {
|
||||
MountWithinParentUtil.prepareParentNoMountPoint(userChosenMountPoint);
|
||||
cleanup = () -> {
|
||||
MountWithinParentUtil.cleanup(userChosenMountPoint);
|
||||
@ -105,7 +106,6 @@ public class Mounter {
|
||||
try {
|
||||
builder.setMountpoint(userChosenMountPoint);
|
||||
} catch (IllegalArgumentException e) {
|
||||
var mpIsDriveLetter = userChosenMountPoint.toString().matches("[A-Z]:\\\\");
|
||||
var configNotSupported = (!canMountToDriveLetter && mpIsDriveLetter) || (!canMountToDir && !mpIsDriveLetter) || (!canMountToParent && !mpIsDriveLetter);
|
||||
if (configNotSupported) {
|
||||
throw new MountPointNotSupportedException(e.getMessage());
|
||||
|
@ -37,6 +37,7 @@ public class SettingsJsonAdapter extends TypeAdapter<Settings> {
|
||||
@Override
|
||||
public void write(JsonWriter out, Settings value) throws IOException {
|
||||
out.beginObject();
|
||||
out.name("lastWrittenByVersion").value(env.getAppVersion()+env.getBuildNumber().map("-"::concat).orElse(""));
|
||||
out.name("directories");
|
||||
writeVaultSettingsArray(out, value.getDirectories());
|
||||
out.name("askedForUpdateCheck").value(value.askedForUpdateCheck().get());
|
||||
|
@ -84,6 +84,10 @@ public class LogbackConfigurator extends ContextAwareBase implements Configurato
|
||||
upgrades.addAppender(upgrade);
|
||||
upgrades.addAppender(file);
|
||||
upgrades.setAdditive(false);
|
||||
|
||||
// configure fuse file locking logger:
|
||||
Logger fuseLocking = context.getLogger("org.cryptomator.frontend.fuse.locks");
|
||||
fuseLocking.setLevel(Level.OFF);
|
||||
}
|
||||
return ExecutionStatus.DO_NOT_INVOKE_NEXT_IF_ANY;
|
||||
}
|
||||
|
@ -171,7 +171,7 @@ public class VaultDetailUnlockedController implements FxController {
|
||||
}
|
||||
return Optional.of(vault.get().getCiphertextPath(cleartextPath));
|
||||
} catch (IOException e) {
|
||||
LOG.warn("Unable to get ciphertext path from path: {}", path);
|
||||
LOG.warn("Unable to get ciphertext path from path: {}", path, e);
|
||||
return Optional.empty();
|
||||
}
|
||||
}
|
||||
|
@ -26,7 +26,7 @@
|
||||
</padding>
|
||||
<children>
|
||||
<TextFlow>
|
||||
<Text text="%vaultOptions.mount.info"/>
|
||||
<Text text="%vaultOptions.mount.info" styleClass="label"/>
|
||||
<Text text=" "/>
|
||||
<Hyperlink styleClass="hyperlink-underline" text="%vaultOptions.mount.linkToPreferences" onAction="#openVolumePreferences" wrapText="true"/>
|
||||
</TextFlow>
|
||||
|
@ -73,7 +73,7 @@ addvault.new.readme.storageLocation.4=• modifiqueu cap fitxer dins d'aquest d
|
||||
addvault.new.readme.storageLocation.5=• enganxeu cap fitxer a xifrar en aquest directori.
|
||||
addvault.new.readme.storageLocation.6=Si voleu xifrar fitxers i veure el contigut de la caixa forta, feu el següent:
|
||||
addvault.new.readme.storageLocation.7=1. Afegiu aquesta caixa forta a Cryptomator.
|
||||
addvault.new.readme.storageLocation.8=2. Desbloquejeu la caixa forta enCryptomator.
|
||||
addvault.new.readme.storageLocation.8=2. Desbloqueu la caixa forta a Cryptomator.
|
||||
addvault.new.readme.storageLocation.9=3. Feu click damunt del botó "Mostra" per obrir la ubicació d'accès.
|
||||
addvault.new.readme.storageLocation.10=Si us cal ajuda, llegiu la documentació: %s
|
||||
addvault.new.readme.accessLocation.fileName=BENVINGUTS.rtf
|
||||
@ -123,6 +123,10 @@ unlock.success.description=S'ha desblocat %s correctament! Podeu accedir a la vo
|
||||
unlock.success.rememberChoice=Recorda l'elecció. No ho tornis a mostrar.
|
||||
unlock.success.revealBtn=Mostra la unitat
|
||||
## Failure
|
||||
unlock.error.customPath.message=No es pot muntar la caixa forta en la ruta personalitzada
|
||||
unlock.error.customPath.description.notSupported=Si vol continuar fent servir una ruta personalitzada, vagi si us plau a Preferències i seleccioni un tipus de volum que la suporti. Altrament, vagi a les opcions de la caixa forta i escolli un punt de muntatge suportat.
|
||||
unlock.error.customPath.description.notExists=La ruta de muntatge personalitzada no existeix. Creï-la o canviï-la en les opcions de la caixa forta.
|
||||
unlock.error.customPath.description.generic=Ha seleccionat una ruta personalitzada on muntar la caixa forta, però ha fallat amb aquest missatge: %s
|
||||
## Hub
|
||||
hub.noKeychain.message=No es pot accedir a la clau del dispositiu
|
||||
hub.noKeychain.description=Per poder desblocar caixes fortes del Hub es requereix la clau d'un dispositiu, que s'emmagatzema de forma segura en un clauer. Per continuar, habiliti "%s" i seleccioni un clauer en les Preferències.
|
||||
@ -133,18 +137,25 @@ hub.auth.description=Hauríeu de ser redirigits a la pàgina d'accés.
|
||||
hub.auth.loginLink=No heu estat redirigit? Feu clic aquí per a obrir-la.
|
||||
### Receive Key
|
||||
hub.receive.message=S'està processant la resposta…
|
||||
hub.receive.description=Cryptomator està rebent i processant la resposta del Hub. Espereu, si us plau.
|
||||
### Register Device
|
||||
hub.register.message=Cal un nom de dispositiu
|
||||
hub.register.description=Sembla que és el primer accés al Hub des d'aquest dispositiu. Per identificar-lo i poder autoritzar l'accés necessiteu anomenar aquest dispositiu.
|
||||
hub.register.nameLabel=Nom del dispositiu
|
||||
hub.register.occupiedMsg=El nom ja està en ús
|
||||
hub.register.registerBtn=Confirma
|
||||
### Registration Success
|
||||
hub.registerSuccess.message=Unitat anomenada
|
||||
hub.registerSuccess.description=Per a accedir a la caixa forta, el vostre dispositiu ha de ser autoritzat pel propietari de la caixa.
|
||||
### Registration Failed
|
||||
hub.registerFailed.message=Error al nombrar el dispositiu
|
||||
hub.registerFailed.description=S'ha produït un error en el procés de nomenament. Per més detalls vegeu el registre de l'aplicació.
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=Accés denegat
|
||||
hub.unauthorized.description=El vostre dispositiu no ha estat encara autoritzat a accedir a aquesta caixa forta. Demaneu autorització al propietari.
|
||||
### License Exceeded
|
||||
hub.licenseExceeded.message=Llicència caducada
|
||||
hub.licenseExceeded.description=Cryptomator Hub ha donat accés a més usuaris dels permesos en la llicència. Si us plau contacteu amb l'administrador del Hub per actualitzar la llicència o amb l'administrador de la caixa forta per treure usuaris.
|
||||
|
||||
|
||||
# Lock
|
||||
@ -161,6 +172,11 @@ lock.fail.description=La caixa forta "%s" no s'ha pogut blocar. Assegureu-vos qu
|
||||
migration.title=Actualitza la caixa forta
|
||||
## Start
|
||||
migration.start.header=Actualitza la caixa forta
|
||||
migration.start.text=Per obrir la caixa forta "%s" en aquesta nova versió de Cryptomator, la caixa forta necessita actualitzar-se al nou format. Abans de fer-ho, cal que sabeu el següent:
|
||||
migration.start.remarkUndone=Aquesta actualització no pot ser desfeta.
|
||||
migration.start.remarkVersions=Versions antigues de Cryptomator no podran obrir la caixa forta actualitzada.
|
||||
migration.start.remarkCanRun=Assegureu-vos que tots els dispositius des dels quals accediu a la caixa forta poden executar aquesta versió de Cryptomator.
|
||||
migration.start.remarkSynced=Assegureu-vos que la caixa forta està completament sincronitzada en aquest i altres dispositius abans d'actualitzar-la.
|
||||
migration.start.confirm=He llegit i entès la informació anterior
|
||||
## Run
|
||||
migration.run.enterPassword=Introduïu la contrasenya per a "%s"
|
||||
@ -218,6 +234,10 @@ health.result.severityFilter.good=Bé
|
||||
health.result.severityFilter.info=Info
|
||||
health.result.severityFilter.warn=Avís
|
||||
health.result.severityFilter.crit=Crític
|
||||
health.result.severityTip.good=Gravetat: Bona.\nEstructura de la caixa forta correcta.
|
||||
health.result.severityTip.info=Gravetat: Informació\nCaixa forta intacta, es recomana però arreglar-la.
|
||||
health.result.severityTip.warn=Gravetat: Avís\nCaixa forta corrompuda, és altament recomanable arreglar-la.
|
||||
health.result.severityTip.crit=Gravetat: Crítica\nCaixa forta corrompuda, s'ha determinat que s'han perdut dades.
|
||||
health.result.fixStateFilter.all=Estat de reparació - Tot
|
||||
health.result.fixStateFilter.fixable=Es pot arreglar
|
||||
health.result.fixStateFilter.notFixable=No es pot arreglar
|
||||
@ -255,7 +275,15 @@ preferences.interface.showMinimizeButton=Mostra el botó 'minimitzar'
|
||||
preferences.interface.showTrayIcon=Mostra la icona en la barra (cal reiniciar)
|
||||
## Volume
|
||||
preferences.volume=Unitat virtual
|
||||
preferences.volume.type=Tipus de volum (requereix reiniciar)
|
||||
preferences.volume.type.automatic=Automàtic
|
||||
preferences.volume.tcp.port=Port TCP
|
||||
preferences.volume.supportedFeatures=El tipus de volum escollit suporta les següents característiques:
|
||||
preferences.volume.feature.mountAuto=Selecció automàtica del punt de muntatge
|
||||
preferences.volume.feature.mountToDir=Directori personalitzat com a punt de muntatge
|
||||
preferences.volume.feature.mountToDriveLetter=Lletra de la unitat com a punt de muntatge
|
||||
preferences.volume.feature.mountFlags=Opcions de muntatge personalitzades
|
||||
preferences.volume.feature.readOnly=Muntar de només lectura
|
||||
## Updates
|
||||
preferences.updates=Actualitzacions
|
||||
preferences.updates.currentVersion=Versió actual: %s
|
||||
@ -336,6 +364,7 @@ main.vaultDetail.passwordSavedInKeychain=Contrasenya desada
|
||||
main.vaultDetail.unlockedStatus=DESBLOQUEJADA
|
||||
main.vaultDetail.accessLocation=Els continguts de la vostra caixa forta són accessibles aquí:
|
||||
main.vaultDetail.revealBtn=Mostra la unitat
|
||||
main.vaultDetail.copyUri=Copiar URI
|
||||
main.vaultDetail.lockBtn=Bloqueja
|
||||
main.vaultDetail.bytesPerSecondRead=Lectura:
|
||||
main.vaultDetail.bytesPerSecondWritten=Escriu:
|
||||
@ -343,8 +372,12 @@ main.vaultDetail.throughput.idle=inactiu
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.stats=Estadístiques de la caixa forta
|
||||
main.vaultDetail.locateEncryptedFileBtn=Trobar fitxer xifrat
|
||||
main.vaultDetail.locateEncryptedFileBtn.tooltip=Esculli un fitxer de la caixa forta per trobar el seu homòleg xifrat
|
||||
main.vaultDetail.encryptedPathsCopied=Rutes copiades al porta-retalls!
|
||||
main.vaultDetail.filePickerTitle=Seleccioni un fitxer dins la caixa forta
|
||||
### Missing
|
||||
main.vaultDetail.missing.info=Cryptomator no ha trobat una caixa forta en aquest camí.
|
||||
main.vaultDetail.missing.info=Cryptomator no ha trobat una caixa forta en aquesta ruta.
|
||||
main.vaultDetail.missing.recheck=Torna a comprovar
|
||||
main.vaultDetail.missing.remove=Eliminar de la llista de la caixa forta…
|
||||
main.vaultDetail.missing.changeLocation=Canvia la localització de la caixa forta…
|
||||
@ -381,13 +414,17 @@ vaultOptions.general.startHealthCheckBtn=Inicia la comprovació
|
||||
|
||||
## Mount
|
||||
vaultOptions.mount=Muntatge
|
||||
vaultOptions.mount.info=Les opcions depenen del tipus de volum escollit.
|
||||
vaultOptions.mount.linkToPreferences=Obre les preferències del disc virtual
|
||||
vaultOptions.mount.readonly=Només lectura
|
||||
vaultOptions.mount.customMountFlags=Senyaladors de muntatge personalitzats
|
||||
vaultOptions.mount.winDriveLetterOccupied=ocupat
|
||||
vaultOptions.mount.mountPoint=Punt de muntatge
|
||||
vaultOptions.mount.mountPoint.auto=Tria automàticament una ubicació adequada
|
||||
vaultOptions.mount.mountPoint.driveLetter=Utilitza la lletra de la unitat assignada
|
||||
vaultOptions.mount.mountPoint.custom=Faci servir el directori escollit
|
||||
vaultOptions.mount.mountPoint.directoryPickerButton=Trieu…
|
||||
vaultOptions.mount.mountPoint.directoryPickerTitle=Triï un directori
|
||||
## Master Key
|
||||
vaultOptions.masterkey=Contrasenya
|
||||
vaultOptions.masterkey.changePasswordBtn=Canvi de contrasenya
|
||||
|
@ -16,6 +16,7 @@ generic.button.print=چاپ
|
||||
|
||||
# Error
|
||||
error.message=خطایی رخ داده است
|
||||
error.technicalDetails=جزئیات:
|
||||
|
||||
# Defaults
|
||||
defaults.vault.vaultName=گاوصندوق
|
||||
@ -28,13 +29,24 @@ traymenu.vault.lock=قفل
|
||||
traymenu.vault.reveal=ظاهر
|
||||
|
||||
# Add Vault Wizard
|
||||
addvaultwizard.title=اضافه کردن گاوصندوق
|
||||
## Welcome
|
||||
addvaultwizard.welcome.newButton=ساخت گاوصندوق جدید
|
||||
addvaultwizard.welcome.existingButton=باز کردن گاوصندوق موجود
|
||||
## New
|
||||
### Name
|
||||
addvaultwizard.new.nameInstruction=یک نام برای گاوصندوق انتخاب کنید
|
||||
addvaultwizard.new.namePrompt=نام گاوصندوق
|
||||
### Location
|
||||
addvaultwizard.new.locationLabel=مکان ذخیرهسازی
|
||||
addvaultwizard.new.directoryPickerLabel=مکان سفارشی
|
||||
addvaultwizard.new.directoryPickerButton=انتخاب کنید…
|
||||
addvaultwizard.new.fileAlreadyExists=در حال حاضر یک فایل یا پوشه با همین نام وجود دارد
|
||||
addvaultwizard.new.validCharacters.numbers=اعداد
|
||||
### Password
|
||||
### Information
|
||||
## Existing
|
||||
addvaultwizard.existing.chooseBtn=انتخاب کنید…
|
||||
## Success
|
||||
|
||||
# Remove Vault
|
||||
@ -100,6 +112,7 @@ main.closeBtn.tooltip=ببند
|
||||
main.supporterCertificateMissing.tooltip=لطفا کمک مالی در نظر بگیرند
|
||||
## Vault List
|
||||
main.vaultlist.contextMenu.lock=قفل
|
||||
main.vaultlist.addVaultBtn=اضافه کردن گاوصندوق
|
||||
## Vault Detail
|
||||
### Welcome
|
||||
### Locked
|
||||
@ -113,8 +126,10 @@ main.vaultDetail.lockBtn=قفل
|
||||
|
||||
# Vault Options
|
||||
## General
|
||||
vaultOptions.general.vaultName=نام گاوصندوق
|
||||
|
||||
## Mount
|
||||
vaultOptions.mount.mountPoint.directoryPickerButton=انتخاب کنید…
|
||||
## Master Key
|
||||
|
||||
|
||||
|
@ -123,6 +123,10 @@ unlock.success.description="%s" sbloccato correttamente! La tua cassaforte è or
|
||||
unlock.success.rememberChoice=Ricorda la scelta, non mostrarmelo più
|
||||
unlock.success.revealBtn=Rivela l'Unità
|
||||
## Failure
|
||||
unlock.error.customPath.message=Impossibile montare la cassaforte sul percorso personalizzato
|
||||
unlock.error.customPath.description.notSupported=Se desideri continuare a utilizzare il percorso personalizzato, vai alle preferenze e seleziona un tipo di volume che lo supporta. Altrimenti, vai alle opzioni della cassaforte e scegli un punto di montaggio supportato.
|
||||
unlock.error.customPath.description.notExists=Il percorso di mount personalizzato non esiste. Crealo nel tuo file system locale o cambialo nelle opzioni della cassaforte.
|
||||
unlock.error.customPath.description.generic=Hai selezionato un percorso di montaggio personalizzato per questa cassaforte, ma il suo utilizzo è fallito col messaggio: %s
|
||||
## Hub
|
||||
hub.noKeychain.message=Impossibile accedere alla chiave del dispositivo
|
||||
hub.noKeychain.description=Per sbloccare le casseforti Hub, è necessaria una chiave del dispositivo, che è protetta tramite un portachiavi. Per procedere, abilita "%s" e seleziona un portachiavi nelle preferenze.
|
||||
@ -271,7 +275,15 @@ preferences.interface.showMinimizeButton=Mostra il pulsante minimizza
|
||||
preferences.interface.showTrayIcon=Mostra l'icona della barra d'applicazioni (richiede il riavvio)
|
||||
## Volume
|
||||
preferences.volume=Unità Virtuale
|
||||
preferences.volume.type=Tipo di volume (richiede riavvio)
|
||||
preferences.volume.type.automatic=Automatico
|
||||
preferences.volume.tcp.port=Porta TCP
|
||||
preferences.volume.supportedFeatures=Il tipo di volume scelto supporta le seguenti caratteristiche:
|
||||
preferences.volume.feature.mountAuto=Selezione automatica del punto di montaggio
|
||||
preferences.volume.feature.mountToDir=Directory personalizzata come punto di montaggio
|
||||
preferences.volume.feature.mountToDriveLetter=Lettera dispositivo come punto di montaggio
|
||||
preferences.volume.feature.mountFlags=Opzioni di montaggio personalizzate
|
||||
preferences.volume.feature.readOnly=Montaggio di sola lettura
|
||||
## Updates
|
||||
preferences.updates=Aggiornamenti
|
||||
preferences.updates.currentVersion=Versione Corrente: %s
|
||||
@ -352,6 +364,7 @@ main.vaultDetail.passwordSavedInKeychain=Password salvata
|
||||
main.vaultDetail.unlockedStatus=SBLOCCATA
|
||||
main.vaultDetail.accessLocation=I contenuti della tua cassaforte sono accessibili qui:
|
||||
main.vaultDetail.revealBtn=Rivela Unità
|
||||
main.vaultDetail.copyUri=Copia URI
|
||||
main.vaultDetail.lockBtn=Blocca
|
||||
main.vaultDetail.bytesPerSecondRead=Lettura:
|
||||
main.vaultDetail.bytesPerSecondWritten=Scrittura:
|
||||
@ -359,7 +372,10 @@ main.vaultDetail.throughput.idle=inattivo
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.stats=Statistiche della Cassaforte
|
||||
main.vaultDetail.locateEncryptedFileBtn=Individua File Crittografato
|
||||
main.vaultDetail.locateEncryptedFileBtn.tooltip=Scegli un file dalla cassaforte per individuare la controparte cifrata
|
||||
main.vaultDetail.encryptedPathsCopied=Percorsi copiati negli Appunti!
|
||||
main.vaultDetail.filePickerTitle=Seleziona File Nella Cassaforte
|
||||
### Missing
|
||||
main.vaultDetail.missing.info=Cryptomator non è riuscito a trovare una cassaforte in questo percorso.
|
||||
main.vaultDetail.missing.recheck=Ricontrolla
|
||||
@ -398,13 +414,17 @@ vaultOptions.general.startHealthCheckBtn=Avvia il Controllo della Salute
|
||||
|
||||
## Mount
|
||||
vaultOptions.mount=Montaggio
|
||||
vaultOptions.mount.info=Le opzioni dipendono dal tipo di volume selezionato.
|
||||
vaultOptions.mount.linkToPreferences=Apri le preferenze dell'unità virtuale
|
||||
vaultOptions.mount.readonly=Sola Lettura
|
||||
vaultOptions.mount.customMountFlags=Flag di Montaggio Personalizzati
|
||||
vaultOptions.mount.winDriveLetterOccupied=occupato
|
||||
vaultOptions.mount.mountPoint=Punto di Montaggio
|
||||
vaultOptions.mount.mountPoint.auto=Scegli automaticamente una posizione idonea
|
||||
vaultOptions.mount.mountPoint.driveLetter=Usa la lettera del drive assegnata
|
||||
vaultOptions.mount.mountPoint.custom=Usa la directory scelta
|
||||
vaultOptions.mount.mountPoint.directoryPickerButton=Scegli…
|
||||
vaultOptions.mount.mountPoint.directoryPickerTitle=Scegli una directory
|
||||
## Master Key
|
||||
vaultOptions.masterkey=Password
|
||||
vaultOptions.masterkey.changePasswordBtn=Modifica password
|
||||
|
@ -125,6 +125,7 @@ unlock.success.revealBtn=Toon Schijf
|
||||
## Failure
|
||||
unlock.error.customPath.message=Kan kluis niet aan aangepast pad koppelen
|
||||
unlock.error.customPath.description.notSupported=Als je het aangepaste pad wilt blijven gebruiken, ga dan naar de voorkeuren en selecteer een volume type dat het ondersteunt. Anders ga je naar de kluis opties en kies je een steunpunt voor het koppelplaten.
|
||||
unlock.error.customPath.description.notExists=Het aangepaste koppelpad bestaat niet. Maak het aan in uw lokale bestandssysteem of verander het in de kluis opties.
|
||||
unlock.error.customPath.description.generic=Je hebt een aangepast koppel pad geselecteerd voor deze kluis, maar het gebruik ervan is mislukt met het bericht: %s
|
||||
## Hub
|
||||
hub.noKeychain.message=Geen toegang tot de apparaatsleutel
|
||||
|
@ -123,6 +123,10 @@ unlock.success.description=Odblokowano "%s" pomyślnie! Twój sejf jest teraz do
|
||||
unlock.success.rememberChoice=Zapamiętaj wybór, nie pokazuj tego ponownie
|
||||
unlock.success.revealBtn=Pokaż Dysk
|
||||
## Failure
|
||||
unlock.error.customPath.message=Nie można zamontować sejfu na niestandardowej ścieżce
|
||||
unlock.error.customPath.description.notSupported=Jeśli chcesz nadal używać niestandardowej ścieżki, przejdź do preferencji i wybierz typ woluminu, który ją obsługuje. W przeciwnym razie przejdź do opcji sejfu i wybierz obsługiwany punkt montowania.
|
||||
unlock.error.customPath.description.notExists=Niestandardowa ścieżka montowania nie istnieje. Stwórz ją w lokalnym systemie plików lub zmień ją w opcjach sejfu.
|
||||
unlock.error.customPath.description.generic=Wybrałeś niestandardową ścieżkę montowania dla tego sejfu, ale użycie jej nie powiodło się z wiadomością: %s
|
||||
## Hub
|
||||
hub.noKeychain.message=Brak dostępu do klucza urządzenia
|
||||
hub.noKeychain.description=Aby odblokować sejfy na Hubie, wymagany jest klucz urządzenia zabezpieczony za pomocą pęku kluczy. Aby kontynuować, włącz "%s" i wybierz Pęk kluczy w ustawieniach.
|
||||
@ -271,7 +275,15 @@ preferences.interface.showMinimizeButton=Pokaż przycisk minimalizacji
|
||||
preferences.interface.showTrayIcon=Pokaż ikonę zasobnika (wymaga restartu)
|
||||
## Volume
|
||||
preferences.volume=Dysk wirtualny
|
||||
preferences.volume.type=Typ woluminu (wymaga ponownego uruchomienia)
|
||||
preferences.volume.type.automatic=Automatyczny
|
||||
preferences.volume.tcp.port=Port TCP
|
||||
preferences.volume.supportedFeatures=Wybrany typ woluminu obsługuje następujące funkcje:
|
||||
preferences.volume.feature.mountAuto=Automatyczny wybór punktu montowania
|
||||
preferences.volume.feature.mountToDir=Niestandardowy katalog jako punkt montowania
|
||||
preferences.volume.feature.mountToDriveLetter=Litera dysku jako punkt montowania
|
||||
preferences.volume.feature.mountFlags=Własne opcje montowania
|
||||
preferences.volume.feature.readOnly=Montowanie tylko do odczytu
|
||||
## Updates
|
||||
preferences.updates=Aktualizacje
|
||||
preferences.updates.currentVersion=Obecna wersja: %s
|
||||
@ -352,6 +364,7 @@ main.vaultDetail.passwordSavedInKeychain=Hasło zapisane
|
||||
main.vaultDetail.unlockedStatus=ODBLOKOWANE
|
||||
main.vaultDetail.accessLocation=Zawartość Twojego sejfu dostępna jest tutaj:
|
||||
main.vaultDetail.revealBtn=Otwórz lokalizację
|
||||
main.vaultDetail.copyUri=Kopiuj URI
|
||||
main.vaultDetail.lockBtn=Blokuj
|
||||
main.vaultDetail.bytesPerSecondRead=Odczyt:
|
||||
main.vaultDetail.bytesPerSecondWritten=Zapisz:
|
||||
@ -397,13 +410,17 @@ vaultOptions.general.startHealthCheckBtn=Rozpocznij Test Spójności
|
||||
|
||||
## Mount
|
||||
vaultOptions.mount=Montowanie
|
||||
vaultOptions.mount.info=Opcje zależą od wybranego typu woluminu.
|
||||
vaultOptions.mount.linkToPreferences=Otwórz ustawienia dysku wirtualnego
|
||||
vaultOptions.mount.readonly=Tylko do odczytu
|
||||
vaultOptions.mount.customMountFlags=Własne flagi montowania udziału
|
||||
vaultOptions.mount.winDriveLetterOccupied=zajęty
|
||||
vaultOptions.mount.mountPoint=Punkt montowania
|
||||
vaultOptions.mount.mountPoint.auto=Automatycznie wybierz odpowiednią lokalizację
|
||||
vaultOptions.mount.mountPoint.driveLetter=Użyj przypisanej litery dysku
|
||||
vaultOptions.mount.mountPoint.custom=Użyj wybranego katalogu
|
||||
vaultOptions.mount.mountPoint.directoryPickerButton=Wybierz…
|
||||
vaultOptions.mount.mountPoint.directoryPickerTitle=Wybierz katalog
|
||||
## Master Key
|
||||
vaultOptions.masterkey=Hasło
|
||||
vaultOptions.masterkey.changePasswordBtn=Zmiana Hasła
|
||||
|
@ -272,6 +272,9 @@ preferences.interface.showTrayIcon=Ukázať ikonu na sytémovej lište (vyžaduj
|
||||
## Volume
|
||||
preferences.volume=Virtuálny disk
|
||||
preferences.volume.type.automatic=Automaticky
|
||||
preferences.volume.tcp.port=TCP port
|
||||
preferences.volume.feature.mountFlags=Vlastné parametre mapovania
|
||||
preferences.volume.feature.readOnly=Mapovanie len na čítanie
|
||||
## Updates
|
||||
preferences.updates=Aktualizácie
|
||||
preferences.updates.currentVersion=Aktuálna verzia: %s
|
||||
@ -352,6 +355,7 @@ main.vaultDetail.passwordSavedInKeychain=Heslo uložené
|
||||
main.vaultDetail.unlockedStatus=Odomknutý
|
||||
main.vaultDetail.accessLocation=Obsah Vášho trezora je dostupný tu:
|
||||
main.vaultDetail.revealBtn=Odkry disk
|
||||
main.vaultDetail.copyUri=Kopírovať URI
|
||||
main.vaultDetail.lockBtn=Uzamknúť
|
||||
main.vaultDetail.bytesPerSecondRead=Čítanie:
|
||||
main.vaultDetail.bytesPerSecondWritten=Zápis:
|
||||
@ -401,13 +405,17 @@ vaultOptions.general.startHealthCheckBtn=Spustiť kontrolu zdravia
|
||||
|
||||
## Mount
|
||||
vaultOptions.mount=Mapovanie
|
||||
vaultOptions.mount.info=Voľby závisia od typu zvolenej jednotky.
|
||||
vaultOptions.mount.linkToPreferences=Otvoriť vlastnosti virtuálnej jednotky
|
||||
vaultOptions.mount.readonly=Len-čítanie
|
||||
vaultOptions.mount.customMountFlags=Vlastné parametre mapovania
|
||||
vaultOptions.mount.winDriveLetterOccupied=obsadený
|
||||
vaultOptions.mount.mountPoint=Bod mapovania
|
||||
vaultOptions.mount.mountPoint.auto=Automaticky zvoľ vhodné umiestnenie
|
||||
vaultOptions.mount.mountPoint.driveLetter=Použiť pridelené písmeno disku
|
||||
vaultOptions.mount.mountPoint.custom=Použiť zvolený adresár
|
||||
vaultOptions.mount.mountPoint.directoryPickerButton=Zvoliť…
|
||||
vaultOptions.mount.mountPoint.directoryPickerTitle=Vyberte adresár
|
||||
## Master Key
|
||||
vaultOptions.masterkey=Heslo
|
||||
vaultOptions.masterkey.changePasswordBtn=Zmeniť heslo
|
||||
|
@ -123,6 +123,10 @@ unlock.success.description=已成功解锁 "%s"! 您现在可以通过其虚拟
|
||||
unlock.success.rememberChoice=记住选项且不再显示
|
||||
unlock.success.revealBtn=显示驱动器
|
||||
## Failure
|
||||
unlock.error.customPath.message=无法将保险库挂载到自定义路径
|
||||
unlock.error.customPath.description.notSupported=如果您仍想使用自定义路径,请转至首选项并选择支持它的卷类型。否则,请转至保险库选项并选择受支持的挂载点
|
||||
unlock.error.customPath.description.notExists=自定义挂载路径不存在,请在您的本地文件系统中创建它或在保险库选项中进行更改
|
||||
unlock.error.customPath.description.generic=您已为此保险库选择了自定义挂载路径,但使用失败,错误消息:%s
|
||||
## Hub
|
||||
hub.noKeychain.message=无法访问设备密钥
|
||||
hub.noKeychain.description=为了解锁 Hub 保险库,需要使用由钥匙串保护的设备密钥。若要继续,请启用“%s”并在首选项中选择一个钥匙串
|
||||
@ -271,7 +275,15 @@ preferences.interface.showMinimizeButton=显示最小化按钮
|
||||
preferences.interface.showTrayIcon=显示托盘图标 (需重启)
|
||||
## Volume
|
||||
preferences.volume=虚拟磁盘
|
||||
preferences.volume.type=卷类型(需重启)
|
||||
preferences.volume.type.automatic=自动
|
||||
preferences.volume.tcp.port=TCP 端口
|
||||
preferences.volume.supportedFeatures=选定的卷类型支持以下功能:
|
||||
preferences.volume.feature.mountAuto=自动选择挂载点
|
||||
preferences.volume.feature.mountToDir=自定义目录作为挂载点
|
||||
preferences.volume.feature.mountToDriveLetter=盘符作为挂载点
|
||||
preferences.volume.feature.mountFlags=自定义挂载选项
|
||||
preferences.volume.feature.readOnly=只读挂载
|
||||
## Updates
|
||||
preferences.updates=更新
|
||||
preferences.updates.currentVersion=当前版本:%s
|
||||
@ -352,6 +364,7 @@ main.vaultDetail.passwordSavedInKeychain=密码已保存
|
||||
main.vaultDetail.unlockedStatus=已解锁
|
||||
main.vaultDetail.accessLocation=您的保险库内容在此处访问:
|
||||
main.vaultDetail.revealBtn=显示驱动器
|
||||
main.vaultDetail.copyUri=复制 URI
|
||||
main.vaultDetail.lockBtn=锁定
|
||||
main.vaultDetail.bytesPerSecondRead=读取:
|
||||
main.vaultDetail.bytesPerSecondWritten=写入:
|
||||
@ -401,13 +414,17 @@ vaultOptions.general.startHealthCheckBtn=开始健康检查
|
||||
|
||||
## Mount
|
||||
vaultOptions.mount=挂载
|
||||
vaultOptions.mount.info=选项取决于所选的卷类型
|
||||
vaultOptions.mount.linkToPreferences=打开虚拟驱动器首选项
|
||||
vaultOptions.mount.readonly=只读
|
||||
vaultOptions.mount.customMountFlags=自定义挂载标志
|
||||
vaultOptions.mount.winDriveLetterOccupied=已占用
|
||||
vaultOptions.mount.mountPoint=挂载点
|
||||
vaultOptions.mount.mountPoint.auto=自动选择一个合适的位置
|
||||
vaultOptions.mount.mountPoint.driveLetter=使用分配的驱动器字符
|
||||
vaultOptions.mount.mountPoint.custom=使用选定的目录
|
||||
vaultOptions.mount.mountPoint.directoryPickerButton=选择...
|
||||
vaultOptions.mount.mountPoint.directoryPickerTitle=选择目录
|
||||
## Master Key
|
||||
vaultOptions.masterkey=密码
|
||||
vaultOptions.masterkey.changePasswordBtn=更改密码
|
||||
|
Loading…
Reference in New Issue
Block a user