diff --git a/.reuse/dep5 b/.reuse/dep5 index 7f721430d7..82606c2a30 100644 --- a/.reuse/dep5 +++ b/.reuse/dep5 @@ -29,7 +29,7 @@ Copyright: None License: CC0-1.0 # ignore files -Files: src/*.json src/*.xml src/*.policy src/*/pinyin.dict src/*.js src/*.ini src/*.qss src/*.theme src/*/templates/* src/*.psd src/*/com.deepin.filemanager.daemon.conf src/dfm-base/qrc/configure/*.cpp examples/* src/services/*.conf +Files: src/*.json src/*.xml src/*.policy src/*/pinyin.dict src/*.js src/*.ini src/*.qss src/*.theme src/*/templates/* src/*.psd src/*/com.deepin.filemanager.daemon.conf src/dfm-base/qrc/configure/*.cpp examples/* src/services/*.conf src/services/*.pkla Copyright: None License: CC0-1.0 diff --git a/assets/configs/org.deepin.dde.file-manager.diskencrypt.json b/assets/configs/org.deepin.dde.file-manager.diskencrypt.json new file mode 100644 index 0000000000..bbb47cc4f6 --- /dev/null +++ b/assets/configs/org.deepin.dde.file-manager.diskencrypt.json @@ -0,0 +1,40 @@ +{ + "magic":"dsg.config.meta", + "version":"1.0", + "contents":{ + "allowExportEncKey":{ + "value": true, + "serial":0, + "flags":["global"], + "name":"Allow export the encrypt key", + "name[zh_CN]":"允许导出加密密钥", + "description[zh_CN]":"用于控制是否显示加密密钥导出窗口", + "description":"It's used to control whether or not the encryption key export window is displayed", + "permissions":"readwrite", + "visibility":"public" + }, + "encryptAlgorithm" : { + "value": "sm4", + "serial":0, + "flags":["global"], + "name":"Encrypt algorithm", + "name[zh_CN]":"加密算法", + "description[zh_CN]":"分区加密所使用的默认加密算法", + "description":"It's the default algorithm for encrypting partitions", + "permissions":"readwrite", + "visibility":"public" + }, + "enableEncrypt": { + "value": false, + "serial":0, + "flags":["global"], + "name":"Enable partition encrypt", + "name[zh_CN]":"启用分区加密", + "description[zh_CN]":"用于控制分区加密功能是否在文管启用", + "description":"It's used to control whether to enable partition encryption feature in dde-file-manager.", + "permissions":"readwrite", + "visibility":"public" + } + } +} + diff --git a/assets/dbus/org.deepin.Filemanager.DiskEncrypt.xml b/assets/dbus/org.deepin.Filemanager.DiskEncrypt.xml new file mode 100644 index 0000000000..1e430f8fbd --- /dev/null +++ b/assets/dbus/org.deepin.Filemanager.DiskEncrypt.xml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/debian/control b/debian/control index ae00ec6389..bc990d9a3b 100644 --- a/debian/control +++ b/debian/control @@ -62,7 +62,8 @@ Build-Depends: libdfm6-io-dev, libdfm6-mount-dev, libdfm6-burn-dev, - libxcb-xfixes0-dev (>= 1.10~) + libxcb-xfixes0-dev (>= 1.10~), + libdeepin-service-framework-dev Standards-Version: 3.9.8 Homepage: http://www.deepin.org @@ -74,7 +75,7 @@ Depends: libdde-file-manager (=${binary:Version}), libqt6sql6-sqlite, qt6-translations-l10n, - libimageeditor6 + libimageeditor6 | hello Conflicts: dde-workspace (<< 2.90.5), dde-file-manager-oem, dde-desktop-plugins Replaces: dde-file-manager-oem, dde-file-manager (<< 6.0.1), dde-desktop-plugins Recommends: qt5dxcb-plugin, deepin-screensaver, dcc-wallpapersetting-plugin @@ -97,18 +98,24 @@ Depends: dde-file-manager-services-plugins (=${binary:Version}), qml6-module-qtquick-controls, qml6-module-qtquick-layouts, - qml6-module-qtquick-window + qml6-module-qtquick-window, + tpm2-abrmd, + libtss2-tcti-pcap0, + libtss2-tcti-tabrmd0, + libusec-recoverykey | hello Replaces: dde-file-manager-oem, dde-desktop (<< 6.0.1), dde-file-manager-preview, dde-file-manager-preview-plugins, dde-file-manager-plugins, dde-file-manager-daemon-plugins, - dde-file-manager-common-plugins + dde-file-manager-common-plugins, + dfmplugin-disk-encrypt Conflicts: dde-file-manager-preview, dde-file-manager-preview-plugins, dde-file-manager-plugins, dde-file-manager-daemon-plugins, - dde-file-manager-common-plugins + dde-file-manager-common-plugins, + dfmplugin-disk-encrypt Recommends: dde-qt5integration, avfs, samba, deepin-anything-server Description: File manager front end File manager front-end of Deepin OS @@ -143,6 +150,7 @@ Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: deepin desktop-environment - deepin-service-manager plugins module Deepin Desktop Environment (DDE) - deepin-service-manager plugins module. +Replaces: dfmplugin-disk-encrypt Package: libdfm-extension-dev Architecture: any diff --git a/debian/dde-file-manager-services-plugins.install b/debian/dde-file-manager-services-plugins.install index 7cc95595cc..38d7eca9ef 100644 --- a/debian/dde-file-manager-services-plugins.install +++ b/debian/dde-file-manager-services-plugins.install @@ -1,6 +1,9 @@ usr/lib/*/deepin-service-manager/*.so usr/share/deepin-service-manager/system/*.json usr/share/deepin-service-manager/user/*.json +usr/share/deepin-service-manager/other/*.json usr/share/dbus-1/system.d/*.conf usr/share/dbus-1/system-services/*.service -etc/systemd/system/deepin-service-group@.service.d/* \ No newline at end of file +usr/share/dbus-1/system.d/org.deepin.filemanager.diskencrypt.conf +etc/systemd/system/deepin-service-group@.service.d/* +etc/polkit-1/localauthority/10-vendor.d/99-dde-file-manager-encrypt.pkla \ No newline at end of file diff --git a/debian/dde-file-manager.install b/debian/dde-file-manager.install index 618f3edc3b..538b58e607 100644 --- a/debian/dde-file-manager.install +++ b/debian/dde-file-manager.install @@ -8,6 +8,7 @@ usr/bin/dde-property-dialog usr/bin/dde-file-dialog usr/bin/dde-select-dialog-x11 usr/bin/dde-select-dialog-wayland +usr/bin/deepin-diskencrypt-service usr/lib/*/dde-file-manager/plugins/filemanager-core/*.so usr/lib/*/dde-file-manager/plugins/previews/*.so usr/share/applications/dde-file-manager.desktop diff --git a/examples/dfmplugin-encrypt-manager-demo/CMakeLists.txt b/examples/dfmplugin-encrypt-manager-demo/CMakeLists.txt new file mode 100644 index 0000000000..8f17eb4859 --- /dev/null +++ b/examples/dfmplugin-encrypt-manager-demo/CMakeLists.txt @@ -0,0 +1,20 @@ +cmake_minimum_required(VERSION 3.0) + +project(encryptManagerDemo) + +find_package(Qt5 COMPONENTS Core Widgets REQUIRED) +find_package(dfm-framework REQUIRED) +find_package(Dtk COMPONENTS Widget REQUIRED) + +file(GLOB_RECURSE SRC + ${CMAKE_CURRENT_SOURCE_DIR}/*.h + ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp) + +add_executable(${PROJECT_NAME} ${SRC}) + +target_link_libraries(${PROJECT_NAME} + Qt5::Core + Qt5::Widgets + ${dfm-framework_LIBRARIES} + ${DtkWidget_LIBRARIES} + ) diff --git a/examples/dfmplugin-encrypt-manager-demo/main.cpp b/examples/dfmplugin-encrypt-manager-demo/main.cpp new file mode 100644 index 0000000000..ddb3756df4 --- /dev/null +++ b/examples/dfmplugin-encrypt-manager-demo/main.cpp @@ -0,0 +1,49 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#include "mainwindow.h" + +#include +#include + +#include + +inline constexpr char kPluginIID[] { "org.deepin.plugin.filemanager" }; + +static bool pluginsLoad() +{ +#ifdef QT_DEBUG + QStringList pluginsDirs; + pluginsDirs.push_back(PLUGIN_DIR); + QStringList blackNames {}; + DPF_NAMESPACE::LifeCycle::initialize({ kPluginIID }, pluginsDirs, blackNames); + + if (!DPF_NAMESPACE::LifeCycle::readPlugins()) + return false; + + if (!DPF_NAMESPACE::LifeCycle::loadPlugins()) + return false; + + return true; +#else + return false; +#endif +} + +int main(int argc, char *argv[]) +{ + qputenv("QT_LOGGING_RULES", "*.info=true"); + + QApplication a(argc, argv); + + if (!pluginsLoad()) { + qCritical() << "Load plugin failed!"; + abort(); + } + + MainWindow window; + window.show(); + + return a.exec(); +} diff --git a/examples/dfmplugin-encrypt-manager-demo/mainwindow.cpp b/examples/dfmplugin-encrypt-manager-demo/mainwindow.cpp new file mode 100644 index 0000000000..f4b301f315 --- /dev/null +++ b/examples/dfmplugin-encrypt-manager-demo/mainwindow.cpp @@ -0,0 +1,616 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#include "mainwindow.h" + +#include + +#include +#include +#include +#include +#include +#include + +#include + +#include + +Q_DECLARE_METATYPE(QString *) +Q_DECLARE_METATYPE(bool *) + +DWIDGET_USE_NAMESPACE + +MainWindow::MainWindow(QWidget *parent) + : QMainWindow(parent) +{ + initUi(); + initConnect(); +} + +void MainWindow::initUi() +{ + QWidget *mainWidget = new QWidget(this); + QVBoxLayout *mainLay = new QVBoxLayout; + mainWidget->setLayout(mainLay); + + editInput = new QLineEdit(mainWidget); + + textBrowser = new QTextBrowser(mainWidget); + textBrowser->setReadOnly(true); + + QGridLayout *btnLay = new QGridLayout; + btnCheckTpm = new QPushButton(tr("Check TPM"), mainWidget); + btnGetRandom = new QPushButton(tr("Get Random"), mainWidget); + btnCheckAlgo = new QPushButton(tr("Check Algo"), mainWidget); + btnEncrypt = new QPushButton(tr("Encrypt"), mainWidget); + btnDecrypt = new QPushButton(tr("Decrypt"), mainWidget); + btnEncryptTwo = new QPushButton(tr("EncryptInProcess"), mainWidget); + btnDecryptTwo = new QPushButton(tr("DecryptInProcess"), mainWidget); + btnEncryptThree = new QPushButton(tr("EncryptByCommand"), mainWidget); + btnDecryptThree = new QPushButton(tr("DecryptByCommand"), mainWidget); + btnLay->addWidget(btnCheckTpm, 0, 0); + btnLay->addWidget(btnGetRandom, 0, 1); + btnLay->addWidget(btnCheckAlgo, 0, 2); + btnLay->addWidget(btnEncrypt, 1, 0); + btnLay->addWidget(btnDecrypt, 1, 1); + btnLay->addWidget(btnEncryptTwo, 2, 0); + btnLay->addWidget(btnDecryptTwo, 2, 1); + btnLay->addWidget(btnEncryptThree, 3, 0); + btnLay->addWidget(btnDecryptThree, 3, 1); + + mainLay->addWidget(editInput); + mainLay->addWidget(textBrowser); + mainLay->addItem(btnLay); + + setCentralWidget(mainWidget); + setMinimumSize(800, 500); +} + +void MainWindow::initConnect() +{ + connect(btnCheckTpm, &QPushButton::clicked, this, [this] { + int result = dpfSlotChannel->push("dfmplugin_encrypt_manager", "slot_TPMIsAvailablePro").toInt(); + if (result == 0) + textBrowser->append("TPM is available!"); + else + textBrowser->append("TPM is not available!"); + }); + connect(btnGetRandom, &QPushButton::clicked, this, [this] { + int size = editInput->text().toInt(); + QString out; + int result = dpfSlotChannel->push("dfmplugin_encrypt_manager", "slot_GetRandomByTPMPro", size, &out).toInt(); + if (result == 0) { + textBrowser->append(QString("Random is: %1").arg(out)); + } else { + textBrowser->append("Get random failed!"); + } + }); + connect(btnCheckAlgo, &QPushButton::clicked, this, [this] { + const QString algoName = editInput->text(); + bool bSupport { false }; + int result = dpfSlotChannel->push("dfmplugin_encrypt_manager", "slot_IsTPMSupportAlgoPro", algoName, &bSupport).toInt(); + if (result == 0) { + textBrowser->append(QString("The check result is %1!").arg(bSupport)); + } else { + textBrowser->append("Check algo name failed!"); + } + }); + connect(btnEncrypt, &QPushButton::clicked, this, [this] { + const QString hashAlgo = "sha256"; + const QString keyAlgo = "aes"; + const QString keyPin = ""/*"12345678"*/; + const QString password = "Qwer@1234"; + const QString dirPath = "/home/uos/gongheng/tmpTemp"; + + QFutureWatcher watcher; + QEventLoop loop; + QFuture future = QtConcurrent::run([hashAlgo, keyAlgo, keyPin, password, dirPath] { + return dpfSlotChannel->push("dfmplugin_encrypt_manager", "slot_EncryptByTPM", hashAlgo, keyAlgo, keyPin, password, dirPath).toBool(); + }); + connect(&watcher, &QFutureWatcher::finished, this, [&watcher, &loop] { + if (watcher.result()) { + loop.exit(0); + } else { + loop.exit(-1); + } + }); + watcher.setFuture(future); + + DSpinner spinner(this); + spinner.setFixedSize(50, 50); + spinner.move((width() - spinner.width()) / 2, (height() - spinner.height()) / 2); + spinner.start(); + spinner.show(); + + int re = loop.exec(); + bool result = re == 0 ? true : false; + + if (result) { + textBrowser->append("Encrypt success!"); + QFile file(dirPath + QDir::separator() + "tpm_encrypt.txt"); + if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { + QByteArray ciphertext = file.readAll(); + QByteArray baseCiphertext = ciphertext.toBase64(); + textBrowser->append("Cipher text: " + QString(baseCiphertext)); + file.close(); + } + file.setFileName(dirPath + QDir::separator() + "key.priv"); + if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { + QByteArray priKey = file.readAll(); + QByteArray basePriKey = priKey.toBase64(); + textBrowser->append("Pri key: " + QString(basePriKey)); + file.close(); + } + + file.setFileName(dirPath + QDir::separator() + "key.pub"); + if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { + QByteArray pubKey = file.readAll(); + QByteArray basePubKey = pubKey.toBase64(); + textBrowser->append("Pub key: " + QString(basePubKey)); + file.close(); + } + + } else { + textBrowser->append("Encrypt failed!"); + } + }); + connect(btnDecrypt, &QPushButton::clicked, this, [this] { + const QString keyPin = "" /*"12345678"*/; + const QString dirPath = "/home/uos/gongheng/tmpTemp"; + QString password; + bool result = dpfSlotChannel->push("dfmplugin_encrypt_manager", "slot_DecryptByTPM", keyPin, dirPath, &password).toBool(); + if (result) { + textBrowser->append(QString("Password is: %1 !").arg(password)); + } else { + textBrowser->append("Decrypt failed!"); + } + }); + connect(btnEncryptTwo, &QPushButton::clicked, this, [this]{ + const QString &dirPath = QDir::homePath() + "/.TPMKey"; + QDir dir(dirPath); + if (!dir.exists()) + dir.mkpath(dirPath); + QString pwd; + int success = dpfSlotChannel->push("dfmplugin_encrypt_manager", "slot_GetRandomByTPM", 14, &pwd).toInt(); + if (success != 0) { + textBrowser->append("Create password faild!"); + return; + } + // TPM +// QVariantMap map { +// { "PropertyKey_EncryptType", 1 }, +// { "PropertyKey_SessionHashAlgo", "sha256" }, +// { "PropertyKey_SessionKeyAlgo", "aes" }, +// { "PropertyKey_PrimaryHashAlgo", "sha256" }, +// { "PropertyKey_PrimaryKeyAlgo", "rsa" }, +// { "PropertyKey_MinorHashAlgo", "sha256" }, +// { "PropertyKey_MinorKeyAlgo", "aes" }, +// { "PropertyKey_DirPath", dirPath }, +// { "PropertyKey_Plain", pwd }, +// { "PropertyKey_Pcr", "7" }, +// { "PropertyKey_PcrBank", "sha256" } +// }; +// QVariantMap map { +// { "PropertyKey_EncryptType", 2 }, +// { "PropertyKey_SessionHashAlgo", "sha256" }, +// { "PropertyKey_SessionKeyAlgo", "aes" }, +// { "PropertyKey_PrimaryHashAlgo", "sha256" }, +// { "PropertyKey_PrimaryKeyAlgo", "rsa" }, +// { "PropertyKey_MinorHashAlgo", "sha256" }, +// { "PropertyKey_MinorKeyAlgo", "aes" }, +// { "PropertyKey_DirPath", dirPath }, +// { "PropertyKey_Plain", pwd }, +// { "PropertyKey_PinCode", "pin123456" } +// }; + QVariantMap map { + { "PropertyKey_EncryptType", 3 }, + { "PropertyKey_SessionHashAlgo", "sha256" }, + { "PropertyKey_SessionKeyAlgo", "aes" }, + { "PropertyKey_PrimaryHashAlgo", "sha256" }, + { "PropertyKey_PrimaryKeyAlgo", "rsa" }, + { "PropertyKey_MinorHashAlgo", "sha256" }, + { "PropertyKey_MinorKeyAlgo", "aes" }, + { "PropertyKey_DirPath", dirPath }, + { "PropertyKey_Plain", pwd }, + { "PropertyKey_Pcr", "7" }, + { "PropertyKey_PcrBank", "sha256" }, + { "PropertyKey_PinCode", "pin123456" } + }; + // TCM +// QVariantMap map { +// { "PropertyKey_EncryptType", 1 }, +// { "PropertyKey_SessionHashAlgo", "sm3_256" }, +// { "PropertyKey_SessionKeyAlgo", "sm4" }, +// { "PropertyKey_PrimaryHashAlgo", "sm3_256" }, +// { "PropertyKey_PrimaryKeyAlgo", "sm4" }, +// { "PropertyKey_MinorHashAlgo", "sm3_256" }, +// { "PropertyKey_MinorKeyAlgo", "sm4" }, +// { "PropertyKey_DirPath", dirPath }, +// { "PropertyKey_Plain", pwd }, +// { "PropertyKey_Pcr", "7" }, +// { "PropertyKey_PcrBank", "sm3_256" } +// }; +// QVariantMap map { +// { "PropertyKey_EncryptType", 2 }, +// { "PropertyKey_SessionHashAlgo", "sm3_256" }, +// { "PropertyKey_SessionKeyAlgo", "sm4" }, +// { "PropertyKey_PrimaryHashAlgo", "sm3_256" }, +// { "PropertyKey_PrimaryKeyAlgo", "sm4" }, +// { "PropertyKey_MinorHashAlgo", "sm3_256" }, +// { "PropertyKey_MinorKeyAlgo", "sm4" }, +// { "PropertyKey_DirPath", dirPath }, +// { "PropertyKey_Plain", pwd }, +// { "PropertyKey_PinCode", "pin123456" } +// }; +// QVariantMap map { +// { "PropertyKey_EncryptType", 3 }, +// { "PropertyKey_SessionHashAlgo", "sm3_256" }, +// { "PropertyKey_SessionKeyAlgo", "sm4" }, +// { "PropertyKey_PrimaryHashAlgo", "sm3_256" }, +// { "PropertyKey_PrimaryKeyAlgo", "sm4" }, +// { "PropertyKey_MinorHashAlgo", "sm3_256" }, +// { "PropertyKey_MinorKeyAlgo", "sm4" }, +// { "PropertyKey_DirPath", dirPath }, +// { "PropertyKey_Plain", pwd }, +// { "PropertyKey_Pcr", "7" }, +// { "PropertyKey_PcrBank", "sha256" }, +// { "PropertyKey_PinCode", "pin123456" } +// }; + QFutureWatcher watcher; + QEventLoop loop; + QFuture future = QtConcurrent::run([map]{ + return dpfSlotChannel->push("dfmplugin_encrypt_manager", "slot_EncryptByTPMPro", map).toInt(); + }); + connect(&watcher, &QFutureWatcher::finished, this, [&watcher, &loop]{ + if (watcher.result() == 0) { + loop.exit(0); + } else { + loop.exit(-1); + } + }); + watcher.setFuture(future); + + DSpinner spinner(this); + spinner.setFixedSize(50, 50); + spinner.move((width() - spinner.width())/2, (height() - spinner.height())/2); + spinner.start(); + spinner.show(); + + int re = loop.exec(); + bool result = (re == 0 ? true : false); + + if (result) { + textBrowser->append(QString("Encrypt success! password is: %1").arg(pwd)); + } else { + textBrowser->append("Encrypt failed!"); + } + }); + + connect(btnDecryptTwo, &QPushButton::clicked, this, [this]{ + const QString &dirPath = QDir::homePath() + "/.TPMKey"; + QDir dir(dirPath); + if (!dir.exists()) + dir.mkpath(dirPath); + QString pwd; + // TPM + // QVariantMap map { + // { "PropertyKey_EncryptType", 1 }, + // { "PropertyKey_SessionHashAlgo", "sha256" }, + // { "PropertyKey_SessionKeyAlgo", "aes" }, + // { "PropertyKey_PrimaryHashAlgo", "sha256" }, + // { "PropertyKey_PrimaryKeyAlgo", "rsa" }, + // { "PropertyKey_DirPath", dirPath }, + // { "PropertyKey_Pcr", "7" }, + // { "PropertyKey_PcrBank", "sha256" } + // }; + // QVariantMap map { + // { "PropertyKey_EncryptType", 2 }, + // { "PropertyKey_SessionHashAlgo", "sha256" }, + // { "PropertyKey_SessionKeyAlgo", "aes" }, + // { "PropertyKey_PrimaryHashAlgo", "sha256" }, + // { "PropertyKey_PrimaryKeyAlgo", "rsa" }, + // { "PropertyKey_DirPath", dirPath }, + // { "PropertyKey_PinCode", "pin123456" } + // }; + QVariantMap map { + { "PropertyKey_EncryptType", 3 }, + { "PropertyKey_SessionHashAlgo", "sha256" }, + { "PropertyKey_SessionKeyAlgo", "aes" }, + { "PropertyKey_PrimaryHashAlgo", "sha256" }, + { "PropertyKey_PrimaryKeyAlgo", "rsa" }, + { "PropertyKey_DirPath", dirPath }, + { "PropertyKey_Pcr", "7" }, + { "PropertyKey_PcrBank", "sha256" }, + { "PropertyKey_PinCode", "pin123456" } + }; + // TCM + // QVariantMap map { + // { "PropertyKey_EncryptType", 1 }, + // { "PropertyKey_SessionHashAlgo", "sm3_256" }, + // { "PropertyKey_SessionKeyAlgo", "sm4" }, + // { "PropertyKey_PrimaryHashAlgo", "sm3_256" }, + // { "PropertyKey_PrimaryKeyAlgo", "sm4" }, + // { "PropertyKey_DirPath", dirPath }, + // { "PropertyKey_Pcr", "7" }, + // { "PropertyKey_PcrBank", "sm3_256" } + // }; + // QVariantMap map { + // { "PropertyKey_EncryptType", 2 }, + // { "PropertyKey_SessionHashAlgo", "sm3_256" }, + // { "PropertyKey_SessionKeyAlgo", "sm4" }, + // { "PropertyKey_PrimaryHashAlgo", "sm3_256" }, + // { "PropertyKey_PrimaryKeyAlgo", "sm4" }, + // { "PropertyKey_DirPath", dirPath }, + // { "PropertyKey_PinCode", "pin123456" } + // }; + // QVariantMap map { + // { "PropertyKey_EncryptType", 3 }, + // { "PropertyKey_SessionHashAlgo", "sm3_256" }, + // { "PropertyKey_SessionKeyAlgo", "sm4" }, + // { "PropertyKey_PrimaryHashAlgo", "sm3_256" }, + // { "PropertyKey_PrimaryKeyAlgo", "sm4" }, + // { "PropertyKey_DirPath", dirPath }, + // { "PropertyKey_Pcr", "7" }, + // { "PropertyKey_PcrBank", "sm3_256" }, + // { "PropertyKey_PinCode", "pin123456" } + // }; + QFutureWatcher watcher; + QEventLoop loop; + QFuture future = QtConcurrent::run([map, &pwd]{ + return dpfSlotChannel->push("dfmplugin_encrypt_manager", "slot_DecryptByTPMPro", map, &pwd).toInt(); + }); + connect(&watcher, &QFutureWatcher::finished, this, [&watcher, &loop]{ + if (watcher.result() == 0) { + loop.exit(0); + } else { + loop.exit(-1); + } + }); + watcher.setFuture(future); + + DSpinner spinner(this); + spinner.setFixedSize(50, 50); + spinner.move((width() - spinner.width())/2, (height() - spinner.height())/2); + spinner.start(); + spinner.show(); + + int re = loop.exec(); + bool result = (re == 0 ? true : false); + + if (result) { + textBrowser->append(QString("Decrypt success! password is: %1").arg(pwd)); + } else { + textBrowser->append("Decrypt failed!"); + } + }); + + connect(btnEncryptThree, &QPushButton::clicked, this, [this] { + + int nType = 2; // 0:kTpmAndPcr 1:kTpmAndPin 2:kTpmAndPinAndPcr + const std::string plain = "Qwer@1234"; + + const std::string pinCode = "pin123456"; + + const std::string pcr = "7"; + const std::string pcr_bank = "sha256"; + + const std::string session_key_alg = "aes"; + const std::string session_hash_alg = "sha256"; + const std::string primary_key_alg = "rsa"; + const std::string primary_hash_alg = "sha256"; + const std::string minor_key_alg = "aes"; + const std::string minor_hash_alg = "sha256"; + + const QString &dirPath = QDir::homePath() + "/.TPMKey"; + QDir dir(dirPath); + if (!dir.exists()) + dir.mkpath(dirPath); + const std::string basePath = dirPath.toStdString(); + + const std::string plainPath = basePath + "/plain.dat"; + const std::string ivPath = basePath + "/iv.bin"; + + const std::string sessionPath = basePath + "/session.dat"; + const std::string policyPath = basePath + "/policy.dat"; + const std::string primaryCtxPath = basePath + "/primary.ctx"; + const std::string pubKeyPath = basePath + "/key.pub"; + const std::string priKeyPath = basePath + "/key.priv"; + const std::string keyNamePath = basePath + "/key.name"; + const std::string keyCtxPath = basePath + "/key.ctx"; + const std::string cipherPath = basePath + "/cipher.out"; + + const std::string pcrPath = basePath + "/pcr_val.bin"; + + // generate plain & iv + if (std::system(("echo " + plain + " > " + plainPath).c_str())) + return false; + if (std::system(("tpm2_getrandom -o " + ivPath + " 16").c_str())) + return false; + + // set policy + if (std::system(("tpm2_startauthsession -S " + sessionPath + " -g " + session_hash_alg + " -G " + session_key_alg).c_str())) + return false; + if (nType == 0) { + if (std::system(("tpm2_pcrread " + pcr_bank + ":" + pcr + " -o " + pcrPath).c_str())) + return false; + if (std::system(("tpm2_policypcr -S " + sessionPath + " -l " + pcr_bank + ":" + pcr + " -L " + policyPath + " -f " + pcrPath).c_str())) + return false; + } else if (nType == 1) { + if (std::system(("tpm2_policypassword -S " + sessionPath + " -L " + policyPath).c_str())) + return false; + } else if (nType == 2) { + if (std::system(("tpm2_pcrread " + pcr_bank + ":" + pcr + " -o " + pcrPath).c_str())) + return false; + if (std::system(("tpm2_policypcr -S " + sessionPath + " -l " + pcr_bank + ":" + pcr + " -L " + policyPath + " -f " + pcrPath).c_str())) + return false; + if (std::system(("tpm2_policypassword -S " + sessionPath + " -L " + policyPath).c_str())) + return false; + } else { + qCritical() << "Tpm type unkonw!"; + return false; + } + if (std::system(("tpm2_flushcontext " + sessionPath).c_str())) + return false; + + // generate keys + if (std::system(("tpm2_createprimary -C o -g " + primary_hash_alg + " -G " + primary_key_alg + " -c " + primaryCtxPath).c_str())) + return false; + if (nType == 0) { + if (std::system(("tpm2_create -g " + minor_hash_alg + " -G " + minor_key_alg + " -u " + pubKeyPath + " -r " + priKeyPath + " -C " + primaryCtxPath + " -L " + policyPath).c_str())) + return false; + } else if (nType == 1) { + if (std::system(("tpm2_create -g " + minor_hash_alg + " -G " + minor_key_alg + " -u " + pubKeyPath + " -r " + priKeyPath + " -C " + primaryCtxPath + " -L " + policyPath + " -p " + pinCode).c_str())) + return false; + } else if (nType == 2) { + if (std::system(("tpm2_create -g " + minor_hash_alg + " -G " + minor_key_alg + " -u " + pubKeyPath + " -r " + priKeyPath + " -C " + primaryCtxPath + " -L " + policyPath + " -p " + pinCode).c_str())) + return false; + } else { + qCritical() << "Tpm type unkonw!"; + return false; + } + + if (std::system(("tpm2_load -C " + primaryCtxPath + " -u " + pubKeyPath + " -r " + priKeyPath + " -n " + keyNamePath + " -c " + keyCtxPath).c_str())) + return false; + + // generate cipher + if (std::system(("tpm2_startauthsession --policy-session -S " + sessionPath + " -g " + session_hash_alg + " -G " + session_key_alg).c_str())) + return false; + if (nType == 0) { + if (std::system(("tpm2_pcrread " + pcr_bank + ":" + pcr + " -o " + pcrPath).c_str())) + return false; + if (std::system(("tpm2_policypcr -S " + sessionPath + " -l " + pcr_bank + ":" + pcr + " -f " + pcrPath).c_str())) + return false; + if (std::system(("tpm2_encryptdecrypt -Q --iv " + ivPath + " -c " + keyCtxPath + " -o " + cipherPath + " " + plainPath + " -p session:" + sessionPath).c_str())) + return false; + } else if (nType == 1) { + if (std::system(("tpm2_policypassword -S " + sessionPath + " -L " + policyPath).c_str())) + return false; + if (std::system(("tpm2_encryptdecrypt -Q --iv " + ivPath + " -c " + keyCtxPath + " -o " + cipherPath + " " + plainPath + " -p session:" + sessionPath + "+" + pinCode).c_str())) + return false; + } else if (nType == 2) { + if (std::system(("tpm2_pcrread " + pcr_bank + ":" + pcr + " -o " + pcrPath).c_str())) + return false; + if (std::system(("tpm2_policypcr -S " + sessionPath + " -l " + pcr_bank + ":" + pcr + " -f " + pcrPath).c_str())) + return false; + if (std::system(("tpm2_policypassword -S " + sessionPath + " -L " + policyPath).c_str())) + return false; + if (std::system(("tpm2_encryptdecrypt -Q --iv " + ivPath + " -c " + keyCtxPath + " -o " + cipherPath + " " + plainPath + " -p session:" + sessionPath + "+" + pinCode).c_str())) + return false; + } else { + qCritical() << "Tpm type unkonw!"; + return false; + } + if (std::system(("tpm2_flushcontext " + sessionPath).c_str())) + return false; + + // clean files + if (nType == 0) { + if (std::system(("rm " + keyCtxPath + " " + keyNamePath + " " + plainPath + " " + policyPath + " " + primaryCtxPath + " " + sessionPath + " " + pcrPath).c_str())) + return false; + } else if (nType == 1) { + if (std::system(("rm " + keyCtxPath + " " + keyNamePath + " " + plainPath + " " + policyPath + " " + primaryCtxPath + " " + sessionPath).c_str())) + return false; + } else if (nType == 2) { + if (std::system(("rm " + keyCtxPath + " " + keyNamePath + " " + plainPath + " " + policyPath + " " + primaryCtxPath + " " + sessionPath + " " + pcrPath).c_str())) + return false; + } else { + qCritical() << "Tpm type unkonw!"; + return false; + } + + textBrowser->append(QString("Encrypt success! password is: %1").arg(QString::fromStdString(plain))); + return true; + }); + + connect(btnDecryptThree, &QPushButton::clicked, this, [this] { + int nType = 2; // 0:kTpmAndPcr 1:kTpmAndPin 2:kTpmAndPcrAndPin + const std::string pinCode = "pin123456"; + std::string pcr = "7"; + std::string pcr_bank = "sha256"; + + const std::string session_key_alg = "aes"; + const std::string session_hash_alg = "sha256"; + const std::string primary_key_alg = "rsa"; + const std::string primary_hash_alg = "sha256"; + + const QString &dirPath = QDir::homePath() + "/.TPMKey"; + QDir dir(dirPath); + if (!dir.exists()) + dir.mkpath(dirPath); + const std::string basePath = dirPath.toStdString(); + + const std::string cipherPath = basePath + "/cipher.out"; + const std::string ivPath = basePath + "/iv.bin"; + const std::string pubKeyPath = basePath + "/key.pub"; + const std::string priKeyPath = basePath + "/key.priv"; + + const std::string sessionPath = basePath + "/session.dat"; + const std::string policyPath = basePath + "/policy.dat"; + const std::string primaryCtxPath = basePath + "/primary.ctx"; + const std::string keyNamePath = basePath + "/key.name"; + const std::string keyCtxPath = basePath + "/key.ctx"; + const std::string clearPath = basePath + "/clear.out"; + + if (std::system(("tpm2_startauthsession --policy-session -S " + sessionPath + " -g " + session_hash_alg + " -G " + session_key_alg).c_str())) + return false; + if (nType == 0) { + if (std::system(("tpm2_policypcr -S " + sessionPath + " -l " + pcr_bank + ":" + pcr).c_str())) + return false; + } else if (nType == 1) { + if (std::system(("tpm2_policypassword -S " + sessionPath + " -L " + policyPath).c_str())) + return false; + } else if (nType == 2) { + if (std::system(("tpm2_policypcr -S " + sessionPath + " -l " + pcr_bank + ":" + pcr).c_str())) + return false; + if (std::system(("tpm2_policypassword -S " + sessionPath + " -L " + policyPath).c_str())) + return false; + } else { + qCritical() << "Tpm type unkonw!"; + return false; + } + if (std::system(("tpm2_createprimary -C o -g " + primary_hash_alg + " -G " + primary_key_alg + " -c " + primaryCtxPath).c_str())) + return false; + if (std::system(("tpm2_load -C " + primaryCtxPath + " -u " + pubKeyPath + " -r " + priKeyPath + " -n " + keyNamePath + " -c " + keyCtxPath).c_str())) + return false; + if (nType == 0) { + if (std::system(("tpm2_encryptdecrypt -Q --iv " + ivPath + " -c " + keyCtxPath + " -d -o " + clearPath + " " + cipherPath + " -p session:" + sessionPath).c_str())) + return false; + } else if (nType == 1) { + if (std::system(("tpm2_encryptdecrypt -Q --iv " + ivPath + " -c " + keyCtxPath + " -d -o " + clearPath + " " + cipherPath + " -p session:" + sessionPath + "+" + pinCode).c_str())) + return false; + } else if (nType == 2) { + if (std::system(("tpm2_encryptdecrypt -Q --iv " + ivPath + " -c " + keyCtxPath + " -d -o " + clearPath + " " + cipherPath + " -p session:" + sessionPath + "+" + pinCode).c_str())) + return false; + } else { + qCritical() << "Tpm type unkonw!"; + return false; + } + if (std::system(("tpm2_flushcontext " + sessionPath).c_str())) + return false; + + std::ifstream plain_ifs(clearPath, std::ios_base::in); + if (!plain_ifs.is_open()) + return false; + std::string plain; + plain_ifs >> plain; + plain_ifs.close(); + + textBrowser->append(QString("Decrypt success! password is: %1").arg(QString::fromStdString(plain))); + + // clean files + if (nType == 0) { + std::system(("rm " + clearPath + " " + keyCtxPath + " " + keyNamePath + " " + primaryCtxPath + " " + sessionPath).c_str()); + } else if (nType == 1) { + std::system(("rm " + clearPath + " " + keyCtxPath + " " + keyNamePath + " " + policyPath + " " + primaryCtxPath + " " + sessionPath).c_str()); + } else if (nType == 2) { + std::system(("rm " + clearPath + " " + keyCtxPath + " " + keyNamePath + " " + policyPath + " " + primaryCtxPath + " " + sessionPath).c_str()); + } else { + qCritical() << "Tpm type unkonw!"; + return false; + } + + return true; + }); +} diff --git a/examples/dfmplugin-encrypt-manager-demo/mainwindow.h b/examples/dfmplugin-encrypt-manager-demo/mainwindow.h new file mode 100644 index 0000000000..50b7e023a0 --- /dev/null +++ b/examples/dfmplugin-encrypt-manager-demo/mainwindow.h @@ -0,0 +1,38 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include +#include +#include +#include + +class MainWindow : public QMainWindow +{ + Q_OBJECT +public: + explicit MainWindow(QWidget *parent = nullptr); + +private: + void initUi(); + void initConnect(); + + QLineEdit *editInput { Q_NULLPTR }; + QTextBrowser *textBrowser { Q_NULLPTR }; + QPushButton *btnCheckTpm { Q_NULLPTR }; + QPushButton *btnGetRandom { Q_NULLPTR }; + QPushButton *btnCheckAlgo { Q_NULLPTR }; + QPushButton *btnEncrypt { Q_NULLPTR }; + QPushButton *btnDecrypt { Q_NULLPTR }; + + QPushButton *btnEncryptTwo { Q_NULLPTR }; + QPushButton *btnDecryptTwo { Q_NULLPTR }; + + QPushButton *btnEncryptThree { Q_NULLPTR }; + QPushButton *btnDecryptThree { Q_NULLPTR }; +}; + +#endif // MAINWINDOW_H diff --git a/src/apps/dde-file-manager-daemon/main.cpp b/src/apps/dde-file-manager-daemon/main.cpp index b08920d3d2..ec3fb30242 100644 --- a/src/apps/dde-file-manager-daemon/main.cpp +++ b/src/apps/dde-file-manager-daemon/main.cpp @@ -62,7 +62,7 @@ static bool pluginsLoad() << QString(DFM_PLUGIN_DAEMON_EDGE_DIR); #endif qCInfo(logAppDaemon) << "Using plugins dir:" << pluginsDirs; - QStringList blackNames { DConfigManager::instance()->value(kPluginsDConfName, "server.blackList").toStringList() }; + QStringList blackNames { DConfigManager::instance()->value(kPluginsDConfName, "daemon.blackList").toStringList() }; DPF_NAMESPACE::LifeCycle::initialize({ kDaemonInterface }, pluginsDirs, blackNames); qCInfo(logAppDaemon) << "Depend library paths:" << QCoreApplication::libraryPaths(); diff --git a/src/plugins/filemanager/CMakeLists.txt b/src/plugins/filemanager/CMakeLists.txt index 8d7b7640dc..9954dfa788 100644 --- a/src/plugins/filemanager/CMakeLists.txt +++ b/src/plugins/filemanager/CMakeLists.txt @@ -15,3 +15,5 @@ add_subdirectory(dfmplugin-optical) add_subdirectory(dfmplugin-myshares) add_subdirectory(dfmplugin-smbbrowser) add_subdirectory(dfmplugin-avfsbrowser) +add_subdirectory(dfmplugin-disk-encrypt-entry) +add_subdirectory(dfmplugin-encrypt-manager) diff --git a/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/CMakeLists.txt b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/CMakeLists.txt new file mode 100644 index 0000000000..cb87095bbd --- /dev/null +++ b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/CMakeLists.txt @@ -0,0 +1,62 @@ +cmake_minimum_required(VERSION 3.0) + +project(dfmplugin-disk-encrypt LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +find_package(Qt5 REQUIRED COMPONENTS Core Widgets Concurrent) + +file(GLOB_RECURSE SRC + "${CMAKE_CURRENT_SOURCE_DIR}/*.h" + "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp" + "${CMAKE_CURRENT_SOURCE_DIR}/*.json" + "${CMAKE_SOURCE_DIR}/src/services/diskencrypt/globaltypesdefine.h" +) + +add_library(${PROJECT_NAME} SHARED + ${SRC} +) + +target_link_libraries(${PROJECT_NAME} PRIVATE + DFM${DTK_VERSION_MAJOR}::base + DFM${DTK_VERSION_MAJOR}::framework +) + +target_compile_definitions(${PROJECT_NAME} PRIVATE DFMPLUGIN_DISK_ENCRYPT_LIBRARY) +set_target_properties(${PROJECT_NAME} PROPERTIES + LIBRARY_OUTPUT_DIRECTORY ${DFM_BUILD_PLUGIN_FILEMANAGER_DIR}) + +install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION ${DFM_PLUGIN_FILEMANAGER_CORE_DIR}) +message(">>>> install ${PROJECT_NAME} into ${DFM_PLUGIN_FILEMANAGER_CORE_DIR}") + +execute_process( + COMMAND lupdate + ./ + -ts + -no-obsolete + ${CMAKE_SOURCE_DIR}/translations/disk-encrypt-plugin/disk-encrypt.ts + COMMAND lupdate + ./ + -ts + -no-obsolete + ${CMAKE_SOURCE_DIR}/translations/disk-encrypt-plugin/disk-encrypt_zh_CN.ts + + WORKING_DIRECTORY + ${CMAKE_CURRENT_SOURCE_DIR} +) + +# 查找匹配 disk-encrypt*.ts 的文件列表 +file(GLOB TS_FILES ${CMAKE_SOURCE_DIR}/translations/disk-encrypt-plugin/disk-encrypt*.ts) +file(GLOB QM_FILES ${CMAKE_SOURCE_DIR}/translations/disk-encrypt-plugin/disk-encrypt*.qm) + +# 添加 lrelease 命令,传递 TS_FILES 列表 +foreach(TS_FILE ${TS_FILES}) + execute_process( + COMMAND lrelease ${TS_FILE} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + ) +endforeach() + +install(FILES ${QM_FILES} DESTINATION share/dde-file-manager/translations) +INSTALL_DCONFIG("org.deepin.dde.file-manager.diskencrypt.json") + diff --git a/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/dfmplugin_disk_encrypt_global.h b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/dfmplugin_disk_encrypt_global.h new file mode 100644 index 0000000000..a0540cc55d --- /dev/null +++ b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/dfmplugin_disk_encrypt_global.h @@ -0,0 +1,53 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#ifndef DFMPLUGIN_DISK_ENCRYPT_GLOBAL_H +#define DFMPLUGIN_DISK_ENCRYPT_GLOBAL_H + +#include "services/diskencrypt/globaltypesdefine.h" + +#include +#include +#include + +#if defined(DFMPLUGIN_DISK_ENCRYPT_LIBRARY) +# define DFMPLUGIN_DISK_ENCRYPT_EXPORT Q_DECL_EXPORT +#else +# define DFMPLUGIN_DISK_ENCRYPT_EXPORT Q_DECL_IMPORT +#endif + +enum TPMModuleEncType { + kUnknow = 0, + kUseTpmAndPcr, + kUseTpmAndPin, + kUseTpmAndPrcAndPin +}; + +inline constexpr char kDaemonBusName[] { "org.deepin.Filemanager.DiskEncrypt" }; +inline constexpr char kDaemonBusPath[] { "/org/deepin/Filemanager/DiskEncrypt" }; +inline constexpr char kDaemonBusIface[] { "org.deepin.Filemanager.DiskEncrypt" }; + +inline constexpr char kMenuPluginName[] { "dfmplugin_menu" }; +inline constexpr char kComputerMenuSceneName[] { "ComputerMenu" }; + +inline constexpr int kPasswordSize { 14 }; +inline const QString kGlobalTPMConfigPath("/tmp/dfm-encrypt"); +inline constexpr char kTPMSessionHashAlgo[] { "sha256" }; +inline constexpr char kTPMSessionKeyAlgo[] { "aes" }; +inline constexpr char kTPMPrimaryHashAlgo[] { "sha256" }; +inline constexpr char kTPMPrimaryKeyAlgo[] { "rsa" }; +inline constexpr char kTPMMinorHashAlgo[] { "sha256" }; +inline constexpr char kTPMMinorKeyAlgo[] { "aes" }; +inline constexpr char kTCMSessionHashAlgo[] { "sm3_256" }; +inline constexpr char kTCMSessionKeyAlgo[] { "sm4" }; +inline constexpr char kTCMPrimaryHashAlgo[] { "sm3_256" }; +inline constexpr char kTCMPrimaryKeyAlgo[] { "sm4" }; +inline constexpr char kTCMMinorHashAlgo[] { "sm3_256" }; +inline constexpr char kTCMMinorKeyAlgo[] { "sm4" }; +inline constexpr char kConfigKeySessionHashAlgo[] { "session_hash_algo" }; +inline constexpr char kConfigKeySessionKeyAlgo[] { "session_key_algo" }; +inline constexpr char kConfigKeyPriHashAlgo[] { "primary_hash_algo" }; +inline constexpr char kConfigKeyPriKeyAlgo[] { "primary_key_algo" }; + +#endif // DFMPLUGIN_DISK_ENCRYPT_GLOBAL_H diff --git a/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/diskencryptentry.json b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/diskencryptentry.json new file mode 100644 index 0000000000..266c2a1bc0 --- /dev/null +++ b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/diskencryptentry.json @@ -0,0 +1,15 @@ +{ + "Name" : "dfmplugin-disk-encrypt", + "Version" : "1.0.0", + "CompatVersion" : "1.0.0", + "Vendor" : "The Uniontech Software Technology Co., Ltd.", + "Copyright" : "Copyright (C) 2022 Uniontech Software Technology Co., Ltd.", + "License" : [ + ], + "Category" : "", + "Description" : "The encrypt plugin for dde-file-manager", + "UrlLink" : "https://www.uniontech.com", + "Depends" : [ + "dfmplugin-computer" + ] +} diff --git a/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/events/eventshandler.cpp b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/events/eventshandler.cpp new file mode 100644 index 0000000000..1cb8d33198 --- /dev/null +++ b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/events/eventshandler.cpp @@ -0,0 +1,575 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later +#include "eventshandler.h" +#include "dfmplugin_disk_encrypt_global.h" +#include "gui/encryptprogressdialog.h" +#include "gui/unlockpartitiondialog.h" +#include "gui/encryptparamsinputdialog.h" +#include "utils/encryptutils.h" +#include "menu/diskencryptmenuscene.h" + +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include + +Q_DECLARE_METATYPE(QString *) +Q_DECLARE_METATYPE(bool *) + +using namespace dfmplugin_diskenc; +using namespace disk_encrypt; +DWIDGET_USE_NAMESPACE; + +EventsHandler *EventsHandler::instance() +{ + static EventsHandler ins; + return &ins; +} + +void EventsHandler::bindDaemonSignals() +{ + // FIXME(xust) split the unlock module into another plugin. + // for unlocking devices in file dialog, this plugin is loaded, + // which cause when en/decrypt devices, the signal are handled + // by both file manager and file dialog, so multiple progress + // dialog and finished dialog are shown. + // this class is singleton but in different process it's not. + if (qApp->applicationName() != "dde-file-manager") + return; + + auto conn = [this](const char *sig, const char *slot) { + QDBusConnection::systemBus().connect(kDaemonBusName, + kDaemonBusPath, + kDaemonBusIface, + sig, + this, + slot); + }; + conn("PrepareEncryptDiskResult", SLOT(onPreencryptResult(const QString &, const QString &, const QString &, int))); + conn("EncryptDiskResult", SLOT(onEncryptResult(const QString &, const QString &, int, const QString &))); + conn("EncryptProgress", SLOT(onEncryptProgress(const QString &, const QString &, double))); + conn("DecryptDiskResult", SLOT(onDecryptResult(const QString &, const QString &, const QString &, int))); + conn("DecryptProgress", SLOT(onDecryptProgress(const QString &, const QString &, double))); + conn("ChangePassphressResult", SLOT(onChgPassphraseResult(const QString &, const QString &, const QString &, int))); + conn("RequestEncryptParams", SLOT(onRequestEncryptParams(const QVariantMap &))); +} + +void EventsHandler::hookEvents() +{ + dpfHookSequence->follow("dfmplugin_computer", "hook_Device_AcquireDevPwd", + this, &EventsHandler::onAcquireDevicePwd); +} + +/** + * @brief EventsHandler::isTaskWorking, if any device is running encrypt, decrypt and change passphrase background + * @return + */ +bool EventsHandler::isTaskWorking() +{ + QDBusInterface iface(kDaemonBusName, + kDaemonBusPath, + kDaemonBusIface, + QDBusConnection::systemBus()); + QDBusReply reply = iface.call("IsWorkerRunning"); + return reply.isValid() && reply.value(); +} + +/** + * @brief EventsHandler::hasPendingTask, if task files existed in /boot/usec-crypt/ + * @return + */ +bool EventsHandler::hasPendingTask() +{ + QDBusInterface iface(kDaemonBusName, + kDaemonBusPath, + kDaemonBusIface, + QDBusConnection::systemBus()); + QDBusReply reply = iface.call("HasPendingTask"); + return reply.isValid() && reply.value(); +} + +QString EventsHandler::unfinishedDecryptJob() +{ + QDBusInterface iface(kDaemonBusName, + kDaemonBusPath, + kDaemonBusIface, + QDBusConnection::systemBus()); + QDBusReply reply = iface.call("UnfinishedDecryptJob"); + return reply.value(); +} + +/** + * @brief EventsHandler::isUnderOperating, If the device is performing a task in the foreground + * @param device + * @return + */ +bool EventsHandler::isUnderOperating(const QString &device) +{ + return encryptDialogs.contains(device) + || decryptDialogs.contains(device) + || encryptInputs.contains(device); +} + +int EventsHandler::deviceEncryptStatus(const QString &device) +{ + QDBusInterface iface(kDaemonBusName, + kDaemonBusPath, + kDaemonBusIface, + QDBusConnection::systemBus()); + QDBusReply reply = iface.call("EncryptStatus", device); + if (reply.isValid()) + return reply.value(); + return -1; +} + +void EventsHandler::resumeEncrypt(const QString &device) +{ + QDBusInterface iface(kDaemonBusName, + kDaemonBusPath, + kDaemonBusIface, + QDBusConnection::systemBus()); + iface.asyncCall("ResumeEncryption", device); +} + +void EventsHandler::onPreencryptResult(const QString &dev, const QString &devName, const QString &, int code) +{ + QApplication::restoreOverrideCursor(); + + if (code != kSuccess && code != -kRebootRequired) { + showPreEncryptError(dev, devName, code); + return; + } + + // set dde-file-manager autostart without GUI to automatically raise the encrypt dialog. + autoStartDFM(); + + if (code == -kRebootRequired) { + qInfo() << "reboot is required..." << dev; + requestReboot(); + } +} + +void EventsHandler::onEncryptResult(const QString &dev, const QString &devName, int code, const QString &info) +{ + QApplication::restoreOverrideCursor(); + + // delay delete input dialogs. avoid when new request comes new dialog raises. + QTimer::singleShot(1000, this, [=] { + if (encryptInputs.contains(dev)) + encryptInputs.take(dev)->deleteLater(); + }); + + QString device = QString("%1(%2)").arg(devName).arg(dev.mid(5)); + QString title, msg; + bool success = false; + switch (-code) { + case kUserCancelled: + ignoreParamRequest(); + return; + case kSuccess: + case KErrorRequestExportRecKey: + title = tr("Encrypt done"); + msg = tr("Device %1 has been encrypted").arg(device); + success = true; + break; + default: + title = tr("Encrypt failed"); + msg = tr("Device %1 encrypt failed, please see log for more information.(%2)") + .arg(device) + .arg(code); + break; + } + + auto dialog = encryptDialogs.take(dev); + if (!dialog) + dialog_utils::showDialog(title, msg, code != 0 ? dialog_utils::kError : dialog_utils::kInfo); + else { + auto pos = dialog->geometry().topLeft(); + dialog->showResultPage(success, title, msg); + if (code == -KErrorRequestExportRecKey) { + dialog->setRecoveryKey(info, dev); + dialog->showExportPage(); + } + dialog->move(pos); + } + + // delete auto start file. + auto configPath = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation); + auto autoStartFilePath = configPath + "/autostart/dfm-reencrypt.desktop"; + int ret = ::remove(autoStartFilePath.toStdString().c_str()); + qInfo() << "autostart file has been removed:" << ret; +} + +void EventsHandler::onDecryptResult(const QString &dev, const QString &devName, const QString &, int code) +{ + QApplication::restoreOverrideCursor(); + if (code == -kRebootRequired) { + requestReboot(); + } else { + showDecryptError(dev, devName, code); + + // delete auto start file. + auto configPath = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation); + auto autoStartFilePath = configPath + "/autostart/dfm-reencrypt.desktop"; + int ret = ::remove(autoStartFilePath.toStdString().c_str()); + qInfo() << "autostart file has been removed:" << ret; + } +} + +void EventsHandler::onChgPassphraseResult(const QString &dev, const QString &devName, const QString &, int code) +{ + QApplication::restoreOverrideCursor(); + showChgPwdError(dev, devName, code); +} + +void EventsHandler::onRequestEncryptParams(const QVariantMap &encConfig) +{ + qApp->restoreOverrideCursor(); + QString devPath = encConfig.value("device-path").toString(); + if (devPath.isEmpty()) { + qWarning() << "invalid encrypt config!" << encConfig; + return; + } + + if (encryptInputs.value(devPath, nullptr)) + return; + + QString objPath = "/org/freedesktop/UDisks2/block_devices/" + devPath.mid(5); + auto blkDev = device_utils::createBlockDevice(objPath); + disk_encrypt::DeviceEncryptParam param; + param.devDesc = devPath; + param.initOnly = false; + param.clearDevUUID = encConfig.value("file-system-uuid").toString().remove("UUID="); + param.backingDevUUID = blkDev ? blkDev->getProperty(dfmmount::Property::kBlockIDUUID).toString() : ""; + param.deviceDisplayName = encConfig.value("device-name").toString(); + auto dlg = new EncryptParamsInputDialog(param, qApp->activeWindow()); + encryptInputs.insert(devPath, dlg); + + connect(dlg, &DDialog::finished, this, [=](auto ret) { + if (ret != QDialog::Accepted) { + ignoreParamRequest(); + encryptInputs.take(devPath)->deleteLater(); // also will be deleted when encryption started. + } else { + DiskEncryptMenuScene::doReencryptDevice(dlg->getInputs()); + } + }); + dlg->show(); +} + +void EventsHandler::ignoreParamRequest() +{ + QDBusInterface iface(kDaemonBusName, + kDaemonBusPath, + kDaemonBusIface, + QDBusConnection::systemBus()); + iface.asyncCall("IgnoreParamRequest"); + qInfo() << "ignore param request..."; +} + +void EventsHandler::onEncryptProgress(const QString &dev, const QString &devName, double progress) +{ + if (!encryptDialogs.contains(dev)) { + QString device = QString("%1(%2)").arg(devName).arg(dev.mid(5)); + + QApplication::restoreOverrideCursor(); + auto dlg = new EncryptProgressDialog(qApp->activeWindow()); + dlg->setText(tr("%1 is under encrypting...").arg(device), + tr("The encrypting process may have system lag, please minimize the system operation")); + encryptDialogs.insert(dev, dlg); + } + auto dlg = encryptDialogs.value(dev); + dlg->updateProgress(progress); + dlg->show(); + + // when start encrypt, delete the inputs widget. + if (encryptInputs.contains(dev)) + delete encryptInputs.take(dev); +} + +void EventsHandler::onDecryptProgress(const QString &dev, const QString &devName, double progress) +{ + if (!decryptDialogs.contains(dev)) { + QString device = QString("%1(%2)").arg(devName).arg(dev.mid(5)); + + QApplication::restoreOverrideCursor(); + auto dlg = new EncryptProgressDialog(qApp->activeWindow()); + dlg->setText(tr("%1 is under decrypting...").arg(device), + tr("The decrypting process may have system lag, please minimize the system operation")); + decryptDialogs.insert(dev, dlg); + } + + auto dlg = decryptDialogs.value(dev); + dlg->updateProgress(progress); + dlg->show(); +} + +bool EventsHandler::onAcquireDevicePwd(const QString &dev, QString *pwd, bool *cancelled) +{ + if (!pwd || !cancelled) + return false; + + if (!canUnlock(dev)) { + *cancelled = true; + return true; + } + + int type = device_utils::encKeyType(dev); + + // test tpm + bool testTPM = (type == kTPMAndPIN || type == kTPMOnly); + if (testTPM && tpm_utils::checkTPM() != 0) { + qWarning() << "TPM service is not available."; + int ret = dialog_utils::showDialog(tr("Error"), tr("TPM status is abnormal, please use the recovery key to unlock it"), + dialog_utils::DialogType::kError); + // unlock by recovery key. + if (ret == 0) + *pwd = acquirePassphraseByRec(dev, *cancelled); + + return true; + } + + switch (type) { + case SecKeyType::kTPMAndPIN: + *pwd = acquirePassphraseByPIN(dev, *cancelled); + break; + case SecKeyType::kTPMOnly: + *pwd = acquirePassphraseByTPM(dev, *cancelled); + break; + case SecKeyType::kPasswordOnly: + *pwd = acquirePassphrase(dev, *cancelled); + break; + default: + return false; + } + + if (pwd->isEmpty() && !*cancelled) { + QString title; + if (type == kTPMAndPIN) + title = tr("Wrong PIN"); + else if (type == kPasswordOnly) + title = tr("Wrong passphrase"); + else + title = tr("TPM error"); + + dialog_utils::showDialog(title, tr("Please use recovery key to unlock device."), + dialog_utils::kInfo); + + *pwd = acquirePassphraseByRec(dev, *cancelled); + } + + return true; +} + +QString EventsHandler::acquirePassphrase(const QString &dev, bool &cancelled) +{ + UnlockPartitionDialog dlg(UnlockPartitionDialog::kPwd); + int ret = dlg.exec(); + if (ret != 1) { + cancelled = true; + return ""; + } + return dlg.getUnlockKey().second; +} + +QString EventsHandler::acquirePassphraseByPIN(const QString &dev, bool &cancelled) +{ + UnlockPartitionDialog dlg(UnlockPartitionDialog::kPin); + int ret = dlg.exec(); + if (ret != 1) { + cancelled = true; + return ""; + } + auto keys = dlg.getUnlockKey(); + if (keys.first == UnlockPartitionDialog::kPin) + return tpm_passphrase_utils::getPassphraseFromTPM_NonBlock(dev, keys.second); + else + return keys.second; +} + +QString EventsHandler::acquirePassphraseByTPM(const QString &dev, bool &) +{ + return tpm_passphrase_utils::getPassphraseFromTPM_NonBlock(dev, ""); +} + +QString EventsHandler::acquirePassphraseByRec(const QString &dev, bool &cancelled) +{ + UnlockPartitionDialog dlg(UnlockPartitionDialog::kRec); + int ret = dlg.exec(); + if (ret != 1) { + cancelled = true; + return ""; + } + auto keys = dlg.getUnlockKey(); + return keys.second; +} + +void EventsHandler::showPreEncryptError(const QString &dev, const QString &devName, int code) +{ + QString title; + QString msg; + QString device = QString("%1(%2)").arg(devName).arg(dev.mid(5)); + + bool showError = false; + switch (-code) { + case (kSuccess): + title = tr("Preencrypt done"); + msg = tr("Device %1 has been preencrypt, please reboot to finish encryption.") + .arg(device); + break; + case kUserCancelled: + return; + default: + title = tr("Preencrypt failed"); + msg = tr("Device %1 preencrypt failed, please see log for more information.(%2)") + .arg(device) + .arg(code); + showError = true; + break; + } + + dialog_utils::showDialog(title, msg, + showError ? dialog_utils::kError : dialog_utils::kInfo); +} + +void EventsHandler::showDecryptError(const QString &dev, const QString &devName, int code) +{ + QString title; + QString msg; + QString device = QString("%1(%2)").arg(devName).arg(dev.mid(5)); + + bool showFailed = true; + switch (-code) { + case (kSuccess): + title = tr("Decrypt done"); + msg = tr("Device %1 has been decrypted").arg(device); + showFailed = false; + break; + case kUserCancelled: + return; + case kErrorWrongPassphrase: + title = tr("Decrypt disk"); + msg = tr("Wrong passpharse or PIN"); + break; + case kErrorNotFullyEncrypted: + title = tr("Decrypt failed"); + msg = tr("Device %1 is under encrypting, please decrypt after encryption finished.") + .arg(device); + break; + default: + title = tr("Decrypt failed"); + msg = tr("Device %1 Decrypt failed, please see log for more information.(%2)") + .arg(device) + .arg(code); + break; + } + + auto dialog = decryptDialogs.take(dev); + if (dialog) { + auto pos = dialog->geometry().topLeft(); + dialog->showResultPage(code == 0, title, msg); + dialog->move(pos); + } else { + dialog_utils::showDialog(title, msg, + showFailed ? dialog_utils::kError : dialog_utils::kInfo); + } +} + +void EventsHandler::showChgPwdError(const QString &dev, const QString &devName, int code) +{ + QString title; + QString msg; + QString device = QString("%1(%2)").arg(devName).arg(dev.mid(5)); + + int encType = device_utils::encKeyType(dev); + QString codeType; + switch (encType) { + case SecKeyType::kPasswordOnly: + codeType = tr("passphrase"); + break; + default: + codeType = tr("PIN"); + break; + } + + bool showError = false; + switch (-code) { + case (kSuccess): + title = tr("Change %1 done").arg(codeType); + msg = tr("%1's %2 has been changed").arg(device).arg(codeType); + break; + case kUserCancelled: + return; + case kErrorChangePassphraseFailed: + title = tr("Change %1 failed").arg(codeType); + msg = tr("Wrong %1").arg(codeType); + showError = true; + break; + default: + title = tr("Change %1 failed").arg(codeType); + msg = tr("Device %1 change %2 failed, please see log for more information.(%3)") + .arg(device) + .arg(codeType) + .arg(code); + showError = true; + break; + } + + dialog_utils::showDialog(title, msg, + showError ? dialog_utils::kError : dialog_utils::kInfo); +} + +void EventsHandler::requestReboot() +{ + qWarning() << "reboot is confirmed..."; + QDBusInterface sessMng("com.deepin.SessionManager", + "/com/deepin/SessionManager", + "com.deepin.SessionManager"); + sessMng.asyncCall("RequestReboot"); +} + +bool EventsHandler::canUnlock(const QString &device) +{ + if (EventsHandler::instance()->isUnderOperating(device)) { + return false; + } + + if (device == unfinishedDecryptJob()) { + dialog_utils::showDialog(tr("Error"), + tr("Device is not fully decrypted, please finish decryption before access."), + dialog_utils::DialogType::kInfo); + return false; + } + + int states = EventsHandler::instance()->deviceEncryptStatus(device); + if ((states & kStatusOnline) && (states & kStatusEncrypt) && !(states & kStatusNoEncryptConfig)) { + dialog_utils::showDialog(tr("Unlocking device failed"), + tr("Please click the right disk menu \"Continue partition encryption\" to complete partition encryption."), + dialog_utils::DialogType::kError); + return false; + } + + return true; +} + +void EventsHandler::autoStartDFM() +{ + qInfo() << "autostart is going to added..."; + QDBusInterface sessMng("com.deepin.SessionManager", + "/com/deepin/StartManager", + "com.deepin.StartManager"); + sessMng.asyncCall("AddAutostart", QString(kReencryptDesktopFile)); +} + +EventsHandler::EventsHandler(QObject *parent) + : QObject { parent } +{ +} diff --git a/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/events/eventshandler.h b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/events/eventshandler.h new file mode 100644 index 0000000000..436bc0868e --- /dev/null +++ b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/events/eventshandler.h @@ -0,0 +1,61 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later +#ifndef EVENTSHANDLER_H +#define EVENTSHANDLER_H + +#include +#include + +namespace dfmplugin_diskenc { +class EncryptProgressDialog; +class EncryptParamsInputDialog; +class EventsHandler : public QObject +{ + Q_OBJECT +public: + static EventsHandler *instance(); + void bindDaemonSignals(); + void hookEvents(); + bool isTaskWorking(); + bool hasPendingTask(); + QString unfinishedDecryptJob(); + bool isUnderOperating(const QString &device); + int deviceEncryptStatus(const QString &device); + void resumeEncrypt(const QString &device); + bool onAcquireDevicePwd(const QString &dev, QString *pwd, bool *giveup); + void autoStartDFM(); + +private Q_SLOTS: + void onPreencryptResult(const QString &, const QString &, const QString &, int); + void onEncryptResult(const QString &, const QString &, int, const QString &); + void onEncryptProgress(const QString &, const QString &, double); + void onDecryptResult(const QString &, const QString &, const QString &, int); + void onDecryptProgress(const QString &, const QString &, double); + void onChgPassphraseResult(const QString &, const QString &, const QString &, int); + void onRequestEncryptParams(const QVariantMap &encConfig); + + void ignoreParamRequest(); + + QString acquirePassphrase(const QString &dev, bool &cancelled); + QString acquirePassphraseByPIN(const QString &dev, bool &cancelled); + QString acquirePassphraseByTPM(const QString &dev, bool &cancelled); + QString acquirePassphraseByRec(const QString &dev, bool &cancelled); + + void showPreEncryptError(const QString &device, const QString &devName, int code); + void showDecryptError(const QString &device, const QString &devName, int code); + void showChgPwdError(const QString &device, const QString &devName, int code); + + void requestReboot(); + bool canUnlock(const QString &device); + +private: + explicit EventsHandler(QObject *parent = nullptr); + + QMap encryptDialogs; + QMap decryptDialogs; + QMap encryptInputs; +signals: +}; +} +#endif // EVENTSHANDLER_H diff --git a/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/gui/chgpassphrasedialog.cpp b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/gui/chgpassphrasedialog.cpp new file mode 100644 index 0000000000..1fe201963c --- /dev/null +++ b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/gui/chgpassphrasedialog.cpp @@ -0,0 +1,190 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later +#include "chgpassphrasedialog.h" +#include "utils/encryptutils.h" + +#include +#include +#include + +using namespace dfmplugin_diskenc; + +ChgPassphraseDialog::ChgPassphraseDialog(const QString &device, QWidget *parent) + : Dtk::Widget::DDialog(parent), + device(device) +{ + int keyType = device_utils::encKeyType(device); + encType = tr("passphrase"); + if (keyType == 1) // PIN + encType = tr("PIN"); + + initUI(); + + connect(this, &ChgPassphraseDialog::buttonClicked, + this, &ChgPassphraseDialog::onButtonClicked); + connect(recSwitch, &Dtk::Widget::DCommandLinkButton::clicked, + this, &ChgPassphraseDialog::onRecSwitchClicked); + connect(oldPass, &Dtk::Widget::DPasswordEdit::textChanged, + this, &ChgPassphraseDialog::onOldKeyChanged); + if (dialog_utils::isWayland()) + setWindowFlag(Qt::WindowStaysOnTopHint); +} + +QPair ChgPassphraseDialog::getPassphrase() +{ + QString oldKey = oldPass->text(); + if (usingRecKey) + oldKey.remove("-"); + return { oldKey, newPass1->text() }; +} + +bool ChgPassphraseDialog::validateByRecKey() +{ + return usingRecKey; +} + +void ChgPassphraseDialog::initUI() +{ + setIcon(QIcon::fromTheme("drive-harddisk-root")); + + int keyType = device_utils::encKeyType(device); + QString keyTypeStr = tr("passphrase"); + if (keyType == 1) // PIN + keyTypeStr = tr("PIN"); + + setTitle(tr("Modify %1").arg(keyTypeStr)); + QFrame *content = new QFrame(this); + QVBoxLayout *contentLay = new QVBoxLayout(content); + QFormLayout *lay = new QFormLayout(); + contentLay->addLayout(lay); + + oldKeyHint = new QLabel(this); + oldPass = new Dtk::Widget::DPasswordEdit(this); + newPass1 = new Dtk::Widget::DPasswordEdit(this); + newPass2 = new Dtk::Widget::DPasswordEdit(this); + + newPass2->setPlaceholderText(tr("Please enter %1 again").arg(keyTypeStr)); + + lay->addRow(oldKeyHint, oldPass); + lay->addRow(tr("New %1").arg(encType), newPass1); + lay->addRow(tr("Repeat %1").arg(encType), newPass2); + + recSwitch = new Dtk::Widget::DCommandLinkButton("", this); + contentLay->addWidget(recSwitch, 0, Qt::AlignRight); + + addContent(content); + addButton(tr("Cancel")); + addButton(tr("Confirm")); + + setOnButtonClickedClose(false); + + usingRecKey = true; + onRecSwitchClicked(); + + setMinimumWidth(500); + + oldPass->setFocus(); +} + +bool ChgPassphraseDialog::validatePasswd() +{ + int keyType = device_utils::encKeyType(device); + QString keyTypeStr = tr("passphrase"); + if (keyType == 1) // PIN + keyTypeStr = tr("PIN"); + + auto nonEmpty = [=](Dtk::Widget::DPasswordEdit *editor) { + QString pwd = editor->text().trimmed(); + if (!pwd.isEmpty()) return true; + + editor->showAlertMessage(tr("%1 cannot be empty").arg(keyTypeStr)); + return false; + }; + + QString oldKey = oldPass->text().trimmed(); + if (oldKey.isEmpty()) { + QString msg = tr("%1 cannot be empty"); + if (usingRecKey) + msg = msg.arg(tr("Recovery key")); + else + msg = msg.arg(encType); + oldPass->showAlertMessage(msg); + return false; + } else if (usingRecKey && oldKey.remove("-").length() != 24) { + oldPass->showAlertMessage(tr("Recovery key is not valid!")); + return false; + } + + if (!(nonEmpty(newPass1) + && nonEmpty(newPass2))) + return false; + + QList regx { + QRegularExpression { R"([A-Z])" }, + QRegularExpression { R"([a-z])" }, + QRegularExpression { R"([0-9])" }, + QRegularExpression { R"([^A-Za-z0-9])" } + }; + + QString pwd1 = newPass1->text().trimmed(); + QString pwd2 = newPass2->text().trimmed(); + + int factor = 0; + std::for_each(regx.cbegin(), regx.cend(), [&factor, pwd1](const QRegularExpression ®) { + if (pwd1.contains(reg)) + factor += 1; + }); + + if (factor < 3 || pwd1.length() < 8) { + newPass1->showAlertMessage(tr("At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols")); + return false; + } + + if (pwd1 != pwd2) { + newPass2->showAlertMessage(tr("%1 inconsistency").arg(keyTypeStr)); + return false; + } + + return true; +} + +void ChgPassphraseDialog::onButtonClicked(int idx) +{ + if (idx == 1) { + if (!validatePasswd()) + return; + accept(); + } else { + reject(); + } +} + +void ChgPassphraseDialog::onRecSwitchClicked() +{ + usingRecKey = !usingRecKey; + oldPass->clear(); + if (usingRecKey) { + oldKeyHint->setText(tr("Recovery key")); + oldPass->setEchoMode(QLineEdit::Normal); + oldPass->setEchoButtonIsVisible(false); + recSwitch->setText(tr("Validate with %1").arg(encType)); + oldPass->setPlaceholderText(tr("Please input recovery key")); + } else { + oldKeyHint->setText(tr("Old %1").arg(encType)); + oldPass->setEchoMode(QLineEdit::Password); + oldPass->setEchoButtonIsVisible(true); + recSwitch->setText(tr("Validate with recovery key")); + oldPass->setPlaceholderText(tr("At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols")); + } + newPass1->setPlaceholderText(tr("At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols")); + oldPass->setFocus(); +} + +void ChgPassphraseDialog::onOldKeyChanged(const QString &inputs) +{ + if (usingRecKey) { + QSignalBlocker blocker(sender()); + oldPass->setText(recovery_key_utils::formatRecoveryKey(inputs)); + } +} diff --git a/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/gui/chgpassphrasedialog.h b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/gui/chgpassphrasedialog.h new file mode 100644 index 0000000000..822316191d --- /dev/null +++ b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/gui/chgpassphrasedialog.h @@ -0,0 +1,43 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later +#ifndef CHGPASSPHRASEDIALOG_H +#define CHGPASSPHRASEDIALOG_H + +#include +#include +#include + +namespace dfmplugin_diskenc { + +class ChgPassphraseDialog : public Dtk::Widget::DDialog +{ + Q_OBJECT +public: + explicit ChgPassphraseDialog(const QString &device, QWidget *parent = nullptr); + QPair getPassphrase(); + bool validateByRecKey(); + +protected: + void initUI(); + bool validatePasswd(); + +protected Q_SLOTS: + void onButtonClicked(int idx); + void onRecSwitchClicked(); + void onOldKeyChanged(const QString &inputs); + +private: + QString device; + QString encType; + bool usingRecKey { false }; + + QLabel *oldKeyHint { nullptr }; + Dtk::Widget::DPasswordEdit *oldPass { nullptr }; + Dtk::Widget::DPasswordEdit *newPass1 { nullptr }; + Dtk::Widget::DPasswordEdit *newPass2 { nullptr }; + Dtk::Widget::DCommandLinkButton *recSwitch { nullptr }; +}; + +} +#endif // CHGPASSPHRASEDIALOG_H diff --git a/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/gui/decryptparamsinputdialog.cpp b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/gui/decryptparamsinputdialog.cpp new file mode 100644 index 0000000000..bde2bc9acb --- /dev/null +++ b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/gui/decryptparamsinputdialog.cpp @@ -0,0 +1,115 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later +#include "decryptparamsinputdialog.h" +#include "utils/encryptutils.h" + +#include + +using namespace dfmplugin_diskenc; +DecryptParamsInputDialog::DecryptParamsInputDialog(const QString &device, QWidget *parent) + : Dtk::Widget::DDialog(parent), devDesc(device) +{ + initUI(); + connect(recSwitch, &Dtk::Widget::DCommandLinkButton::clicked, + this, &DecryptParamsInputDialog::onRecSwitchClicked); + connect(editor, &Dtk::Widget::DPasswordEdit::textChanged, + this, &DecryptParamsInputDialog::onKeyChanged); + connect(this, &DecryptParamsInputDialog::buttonClicked, + this, &DecryptParamsInputDialog::onButtonClicked); + updateUserHints(); + if (dialog_utils::isWayland()) + setWindowFlag(Qt::WindowStaysOnTopHint); +} + +QString DecryptParamsInputDialog::getKey() +{ + QString key = editor->text(); + if (usingRecKey()) + key.remove("-"); + return key; +} + +void DecryptParamsInputDialog::setInputPIN(bool pin) +{ + requestPIN = pin; + updateUserHints(); +} + +bool DecryptParamsInputDialog::usingRecKey() +{ + return useRecKey; +} + +void DecryptParamsInputDialog::onRecSwitchClicked() +{ + useRecKey = !useRecKey; + editor->clear(); + if (useRecKey) { + editor->setEchoMode(QLineEdit::Normal); + editor->setEchoButtonIsVisible(false); + editor->setPlaceholderText(tr("Please input recovery key to decrypt device")); + recSwitch->setText(tr("Validate with %1").arg(requestPIN ? tr("PIN") : tr("passphrase"))); + } else { + editor->setEchoMode(QLineEdit::Password); + editor->setEchoButtonIsVisible(true); + editor->setPlaceholderText(tr("Please input %1 to decrypt device").arg(requestPIN ? tr("PIN") : tr("passphrase"))); + recSwitch->setText(tr("Validate with recovery key")); + } + editor->setFocus(); +} + +void DecryptParamsInputDialog::onKeyChanged(const QString &key) +{ + if (!usingRecKey()) + return; + QSignalBlocker blocker(sender()); + auto formatted = recovery_key_utils::formatRecoveryKey(key); + editor->setText(formatted); +} + +void DecryptParamsInputDialog::onButtonClicked(int idx) +{ + if (idx != 0) { + reject(); + return; + } + + if (getKey().isEmpty()) { + QString keyType = requestPIN ? tr("PIN") : tr("Passphrase"); + if (usingRecKey()) + keyType = tr("Recovery key"); + editor->showAlertMessage(tr("%1 cannot be empty!").arg(keyType)); + return; + } + + else if (usingRecKey() && getKey().length() != 24) { + editor->showAlertMessage(tr("Recovery key is not valid!")); + return; + } + + accept(); +} + +void DecryptParamsInputDialog::updateUserHints() +{ + useRecKey = true; + onRecSwitchClicked(); +} + +void DecryptParamsInputDialog::initUI() +{ + setIcon(QIcon::fromTheme("drive-harddisk-root")); + setTitle(tr("Decrypt device")); + QFrame *content = new QFrame(this); + QVBoxLayout *lay = new QVBoxLayout(content); + editor = new Dtk::Widget::DPasswordEdit(this); + lay->addWidget(editor); + recSwitch = new Dtk::Widget::DCommandLinkButton("", this); + lay->addWidget(recSwitch, 0, Qt::AlignRight); + addContent(content); + addButton(tr("Confirm")); + setOnButtonClickedClose(false); + + editor->setFocus(); +} diff --git a/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/gui/decryptparamsinputdialog.h b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/gui/decryptparamsinputdialog.h new file mode 100644 index 0000000000..506ed0067c --- /dev/null +++ b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/gui/decryptparamsinputdialog.h @@ -0,0 +1,42 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later +#ifndef DECRYPTPARAMSINPUTDIALOG_H +#define DECRYPTPARAMSINPUTDIALOG_H + +#include +#include +#include + +namespace dfmplugin_diskenc { + +class DecryptParamsInputDialog : public Dtk::Widget::DDialog +{ + Q_OBJECT +public: + explicit DecryptParamsInputDialog(const QString &device, QWidget *parent = nullptr); + QString getKey(); + void setInputPIN(bool); + bool usingRecKey(); + +protected: + void onRecSwitchClicked(); + void onKeyChanged(const QString &key); + void onButtonClicked(int idx); + void updateUserHints(); + +protected: + void initUI(); + +private: + QString devDesc; + QString passphrase; + bool useRecKey { false }; + bool requestPIN { false }; + + Dtk::Widget::DPasswordEdit *editor { nullptr }; + Dtk::Widget::DCommandLinkButton *recSwitch { nullptr }; +}; + +} +#endif // DECRYPTPARAMSINPUTDIALOG_H diff --git a/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/gui/encryptparamsinputdialog.cpp b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/gui/encryptparamsinputdialog.cpp new file mode 100644 index 0000000000..657839e394 --- /dev/null +++ b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/gui/encryptparamsinputdialog.cpp @@ -0,0 +1,430 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#include "encryptparamsinputdialog.h" +#include "utils/encryptutils.h" + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +using namespace dfmplugin_diskenc; +using namespace disk_encrypt; +DWIDGET_USE_NAMESPACE + +enum StepPage { + kPasswordInputPage, + kExportKeyPage, +}; + +EncryptParamsInputDialog::EncryptParamsInputDialog(const disk_encrypt::DeviceEncryptParam ¶ms, + QWidget *parent) + : DTK_WIDGET_NAMESPACE::DDialog(parent), + params(params) +{ + exportRecKeyEnabled = config_utils::exportKeyEnabled(); + initUi(); + initConn(); + if (dialog_utils::isWayland()) + setWindowFlag(Qt::WindowStaysOnTopHint); +} + +DeviceEncryptParam EncryptParamsInputDialog::getInputs() +{ + QString password; + if (kTPMAndPIN == encType->currentIndex() || kTPMOnly == encType->currentIndex()) { + password = tpmPassword; + tpmPassword.clear(); + } else if (kPasswordOnly == encType->currentIndex()) { + password = encKeyEdit1->text(); + } + + params.type = static_cast(encType->currentIndex()); + params.key = password; + params.exportPath = keyExportInput->text(); + return params; +} + +void EncryptParamsInputDialog::initUi() +{ + clearContents(); + setOnButtonClickedClose(false); + setFixedSize(472, 304); + setIcon(QIcon::fromTheme("drive-harddisk")); + + QWidget *center = new QWidget(this); + center->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + addContent(center); + + pagesLay = new QStackedLayout(this); + center->setLayout(pagesLay); + + pagesLay->addWidget(createPasswordPage()); + pagesLay->addWidget(createExportPage()); + + onPageChanged(kPasswordInputPage); + + // for ui debugging + // setStyleSheet("border: 1px solid red;"); + // center->setObjectName("center"); + // center->setStyleSheet("QWidget#center{border: 1px solid red;}"); +} + +void EncryptParamsInputDialog::initConn() +{ + connect(pagesLay, &QStackedLayout::currentChanged, + this, &EncryptParamsInputDialog::onPageChanged); + connect(this, &EncryptParamsInputDialog::buttonClicked, + this, &EncryptParamsInputDialog::onButtonClicked); + connect(encType, static_cast(&DComboBox::currentIndexChanged), + this, &EncryptParamsInputDialog::onEncTypeChanged); + connect(keyExportInput, &DFileChooserEdit::textChanged, + this, [this](const QString &path) { onExpPathChanged(path, false); }); +} + +QWidget *EncryptParamsInputDialog::createPasswordPage() +{ + QWidget *wid = new QWidget(this); + QFormLayout *lay = new QFormLayout(); + lay->setContentsMargins(0, 10, 0, 0); + wid->setLayout(lay); + + encType = new DComboBox(this); + encType->setSizeAdjustPolicy(QComboBox::AdjustToMinimumContentsLengthWithIcon); + lay->addRow(tr("Unlock type"), encType); + + unlockTypeHint = new QLabel(this); /*tr("User access to the partition is automatically " + "unlocked without passphrase checking.")*/ + unlockTypeHint->setWordWrap(true); + lay->addRow("", unlockTypeHint); + auto font = unlockTypeHint->font(); + font.setPixelSize(12); + unlockTypeHint->setFont(font); + unlockTypeHint->setFixedWidth(360); + + keyHint1 = new QLabel(this); + encKeyEdit1 = new DPasswordEdit(this); + keyHint1->setMinimumWidth(66); + lay->addRow(keyHint1, encKeyEdit1); + + keyHint2 = new QLabel(this); + encKeyEdit2 = new DPasswordEdit(this); + lay->addRow(keyHint2, encKeyEdit2); + + encType->addItems({ tr("Unlocked by passphrase"), + tr("Use TPM+PIN to unlock on this computer (recommended)"), + tr("Automatic unlocking on this computer by TPM") }); + + if (tpm_utils::checkTPM() != 0) { + // encType->setItemData(kTPMAndPIN, QVariant(0), Qt::UserRole - 1); + // encType->setItemData(kTPMOnly, QVariant(0), Qt::UserRole - 1); + encType->removeItem(1); + encType->removeItem(1); + + encType->setCurrentIndex(kPasswordOnly); + onEncTypeChanged(kPasswordOnly); + } else { + encType->setCurrentIndex(kTPMAndPIN); + onEncTypeChanged(kTPMAndPIN); + } + + return wid; +} + +QWidget *EncryptParamsInputDialog::createExportPage() +{ + QVBoxLayout *lay = new QVBoxLayout(); + QWidget *wid = new QWidget(this); + wid->setLayout(lay); + lay->setMargin(0); + + QLabel *hint = new QLabel(tr("In special cases such as forgetting the password or the encryption hardware is damaged, " + "you can decrypt the encrypted partition with the recovery key, please export it to " + "a non-encrypted partition and keep it in a safe place!"), + this); + hint->setWordWrap(true); + hint->adjustSize(); + lay->addWidget(hint); + hint->setAlignment(Qt::AlignCenter); + + keyExportInput = new DFileChooserEdit(this); + keyExportInput->setFileMode(QFileDialog::DirectoryOnly); + if (keyExportInput->fileDialog() && dialog_utils::isWayland()) + keyExportInput->fileDialog()->setWindowFlag(Qt::WindowStaysOnTopHint); + lay->addWidget(keyExportInput); + + keyExportInput->setPlaceholderText(tr("Please select a non-encrypted partition as the key file export path.")); + + return wid; +} + +bool EncryptParamsInputDialog::validatePassword() +{ + if (pagesLay->currentIndex() != kPasswordInputPage) + return false; + + if (encType->currentIndex() == kTPMOnly) + return true; + + QString pwd1 = encKeyEdit1->text().trimmed(); + QString pwd2 = encKeyEdit2->text().trimmed(); + + QString keyType; + if (encType->currentIndex() == kTPMAndPIN) + keyType = "PIN"; + else if (encType->currentIndex() == kPasswordOnly) + keyType = tr("Passphrase"); + + QString hint = tr("%1 cannot be empty").arg(keyType); + + if (pwd1.isEmpty()) { + encKeyEdit1->showAlertMessage(hint); + return false; + } + + if (pwd2.isEmpty()) { + encKeyEdit2->showAlertMessage(hint); + return false; + } + + QList regx { + QRegularExpression { R"([A-Z])" }, + QRegularExpression { R"([a-z])" }, + QRegularExpression { R"([0-9])" }, + QRegularExpression { R"([^A-Za-z0-9])" } + }; + + int factor = 0; + std::for_each(regx.cbegin(), regx.cend(), [&factor, pwd1](const QRegularExpression ®) { + if (pwd1.contains(reg)) + factor += 1; + }); + + if (factor < 3 || pwd1.length() < 8) { + encKeyEdit1->showAlertMessage(tr("At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols")); + return false; + } + + if (pwd1 != pwd2) { + encKeyEdit2->showAlertMessage(tr("%1 inconsistency").arg(keyType)); + return false; + } + + return true; +} + +bool EncryptParamsInputDialog::validateExportPath(const QString &path, QString *msg) +{ + auto setMsg = [&](const QString &info) { if (msg) *msg = info; }; + if (path.isEmpty()) { + setMsg(tr("Recovery key export path cannot be empty!")); + return false; + } + + if (!QDir(path).exists()) { + setMsg(tr("Recovery key export path is not exists!")); + return false; + } + + QStorageInfo storage(path); + QString dev = storage.device(); + if (dev == params.devDesc) { + setMsg(tr("Please export to an external device such as a non-encrypted partition or USB flash drive.")); + return false; + } + + if (storage.isReadOnly()) { + setMsg(tr("This partition is read-only, please export to a writable partition")); + return false; + } + + using namespace dfmmount; + auto monitor = DDeviceManager::instance()->getRegisteredMonitor(DeviceType::kBlockDevice).objectCast(); + Q_ASSERT(monitor); + auto devObjPaths = monitor->resolveDeviceNode(dev, {}); + if (!devObjPaths.isEmpty()) { + auto objPath = devObjPaths.constFirst(); + auto devPtr = monitor->createDeviceById(objPath); + if (devPtr && devPtr->getProperty(Property::kBlockCryptoBackingDevice).toString() != "/") { + setMsg(tr("The partition is encrypted, please export to a non-encrypted " + "partition or external device such as a USB flash drive.")); + return false; + } + } + + return true; +} + +void EncryptParamsInputDialog::setPasswordInputVisible(bool visible) +{ + keyHint1->setVisible(visible); + keyHint2->setVisible(visible); + encKeyEdit1->setVisible(visible); + encKeyEdit2->setVisible(visible); +} + +void EncryptParamsInputDialog::onButtonClicked(int idx) +{ + qDebug() << "button clicked:" << idx << "page: " << pagesLay->currentIndex(); + + int currPage = pagesLay->currentIndex(); + if (currPage == kPasswordInputPage) { + if (!validatePassword() && !params.initOnly) + return; + + if (exportRecKeyEnabled) { + pagesLay->setCurrentIndex(kExportKeyPage); + onExpPathChanged(keyExportInput->text(), true); + } else { + confirmEncrypt(); + } + } else if (currPage == kExportKeyPage) { + if (idx == 0) + pagesLay->setCurrentIndex(kPasswordInputPage); + else if (idx == 1) + confirmEncrypt(); + } +} + +void EncryptParamsInputDialog::onPageChanged(int page) +{ + if (page > kExportKeyPage && page < kPasswordInputPage) { + qWarning() << "invalid page index!" << page; + return; + } + + pagesLay->setCurrentIndex(page); + clearButtons(); + if (page == kPasswordInputPage) { + QString devName = QString("%1(%2)").arg(params.deviceDisplayName).arg(params.devDesc.mid(5)); + setTitle(tr("Please continue to encrypt partition %1").arg(devName)); + exportRecKeyEnabled ? addButton(tr("Next")) : addButton(tr("Confirm encrypt")); + encKeyEdit1->setFocus(); + } else if (page == kExportKeyPage) { + setTitle(tr("Export Recovery Key")); + addButton(tr("Previous")); + addButton(tr("Confirm encrypt"), true, ButtonType::ButtonRecommend); + keyExportInput->setFocus(); + } +} + +void EncryptParamsInputDialog::onEncTypeChanged(int type) +{ + QString filed1 = tr("Set %1"); + QString filed2 = tr("Repeat %1"); + QString placeholder1 = tr("At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols"); + QString placeholder2 = tr("Please enter the %1 again"); + + if (type == kPasswordOnly) { + setPasswordInputVisible(true); + keyHint1->setText(filed1.arg(tr("passphrase"))); + keyHint2->setText(filed2.arg(tr("passphrase"))); + encKeyEdit1->setPlaceholderText(placeholder1); + encKeyEdit2->setPlaceholderText(placeholder2.arg(tr("Passphrase"))); + unlockTypeHint->setText(tr("Access to the partition will be unlocked using a passphrase.")); + } else if (type == kTPMAndPIN) { + setPasswordInputVisible(true); + keyHint1->setText(filed1.arg(tr("PIN"))); + keyHint2->setText(filed2.arg(tr("PIN"))); + encKeyEdit1->setPlaceholderText(placeholder1); + encKeyEdit2->setPlaceholderText(placeholder2.arg(tr("PIN"))); + unlockTypeHint->setText(tr("Access to the partition will be unlocked using the TPM security chip and PIN.")); + } else if (type == kTPMOnly) { + setPasswordInputVisible(false); + unlockTypeHint->setText(tr("Access to the partition will be automatically unlocked using the TPM security chip, " + "no passphrase checking is required.")); + } else { + qWarning() << "wrong encrypt type!" << type; + } + + if (params.initOnly) + setPasswordInputVisible(false); +} + +void EncryptParamsInputDialog::onExpPathChanged(const QString &path, bool silent) +{ + auto btnNext = getButton(1); + if (!btnNext) + return; + QString msg; + btnNext->setEnabled(validateExportPath(path, &msg)); + if (!msg.isEmpty() && !silent) + keyExportInput->showAlertMessage(msg); +} + +bool EncryptParamsInputDialog::encryptByTpm(const QString &deviceName) +{ + auto btns = this->getButtons(); + for (auto btn : btns) + btn->setEnabled(false); + dfmbase::FinallyUtil finalClear([=] { + for (auto btn : btns) + btn->setEnabled(true); + }); + + QString sessionHashAlgo, sessionKeyAlgo, primaryHashAlgo, primaryKeyAlgo, minorHashAlgo, minorKeyAlgo; + bool checkAlgo = tpm_passphrase_utils::getAlgorithm(&sessionHashAlgo, + &sessionKeyAlgo, + &primaryHashAlgo, + &primaryKeyAlgo, + &minorHashAlgo, + &minorKeyAlgo); + if (!checkAlgo) { + qCritical() << "TPM algo choice failed!"; + return false; + } + + DSpinner spinner(this); + spinner.setFixedSize(50, 50); + spinner.move((width() - spinner.width()) / 2, (height() - spinner.height()) / 2); + spinner.start(); + spinner.show(); + + QString pin = (encType->currentIndex() == SecKeyType::kTPMAndPIN) + ? encKeyEdit1->text() + : ""; + int exitCode = tpm_passphrase_utils::genPassphraseFromTPM_NonBlock(deviceName, pin, &tpmPassword); + if (exitCode != 0) { + qCritical() << "TPM encrypt failed!"; + // dialog_utils::showTPMError(tr("Encrypt failed"), + // static_cast(exitCode)); + return false; + } + return true; +} + +void EncryptParamsInputDialog::confirmEncrypt() +{ + if (encType->currentIndex() == kPasswordOnly) { + accept(); + return; + } + if (!params.initOnly && !encryptByTpm(params.devDesc)) { + qWarning() << "encrypt by TPM failed!"; + if (tpm_utils::ownerAuthStatus() == 1) { + QString msg = tr("TPM is locked and cannot be used for partition encryption. " + "Please cancel the TPM password or choose another unlocking method."); + dialog_utils::showDialog(tr("TPM error"), msg, dialog_utils::DialogType::kError); + return; + } + dialog_utils::showDialog(tr("TPM error"), tr("TPM status error!"), dialog_utils::DialogType::kError); + return; + } + accept(); +} diff --git a/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/gui/encryptparamsinputdialog.h b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/gui/encryptparamsinputdialog.h new file mode 100644 index 0000000000..b96d2fccec --- /dev/null +++ b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/gui/encryptparamsinputdialog.h @@ -0,0 +1,71 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#ifndef ENCRYPTPARAMSINPUTDIALOG_H +#define ENCRYPTPARAMSINPUTDIALOG_H + +#include "dfmplugin_disk_encrypt_global.h" + +#include +#include + +DWIDGET_BEGIN_NAMESPACE +class DPasswordEdit; +class DFileChooserEdit; +class DComboBox; +class DLineEdit; +DWIDGET_END_NAMESPACE + +class QLabel; +class QStackedLayout; +class QLayout; + +namespace dfmplugin_diskenc { + +class EncryptParamsInputDialog : public DTK_WIDGET_NAMESPACE::DDialog +{ + Q_OBJECT +public: + explicit EncryptParamsInputDialog(const disk_encrypt::DeviceEncryptParam ¶ms, QWidget *parent = nullptr); + disk_encrypt::DeviceEncryptParam getInputs(); + +protected: + void initUi(); + void initConn(); + QWidget *createPasswordPage(); + QWidget *createExportPage(); + bool validatePassword(); + bool validateExportPath(const QString &path, QString *msg); + void setPasswordInputVisible(bool visible); + +protected Q_SLOTS: + void onButtonClicked(int idx); + void onPageChanged(int page); + void onEncTypeChanged(int type); + void onExpPathChanged(const QString &path, bool silent); + +private: + bool encryptByTpm(const QString &deviceName); + void confirmEncrypt(); + +private: + DTK_WIDGET_NAMESPACE::DComboBox *encType { nullptr }; + DTK_WIDGET_NAMESPACE::DPasswordEdit *encKeyEdit1 { nullptr }; + DTK_WIDGET_NAMESPACE::DPasswordEdit *encKeyEdit2 { nullptr }; + DTK_WIDGET_NAMESPACE::DFileChooserEdit *keyExportInput { nullptr }; + + QLabel *keyHint1 { nullptr }; + QLabel *keyHint2 { nullptr }; + QLabel *unlockTypeHint { nullptr }; + QStackedLayout *pagesLay { nullptr }; + +private: + bool expPathValid { false }; + bool exportRecKeyEnabled { false }; + QString tpmPassword; + disk_encrypt::DeviceEncryptParam params; +}; + +} +#endif // ENCRYPTPARAMSINPUTDIALOG_H diff --git a/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/gui/encryptprogressdialog.cpp b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/gui/encryptprogressdialog.cpp new file mode 100644 index 0000000000..287a15f6ee --- /dev/null +++ b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/gui/encryptprogressdialog.cpp @@ -0,0 +1,190 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#include "encryptprogressdialog.h" +#include "utils/encryptutils.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +using namespace dfmplugin_diskenc; + +EncryptProgressDialog::EncryptProgressDialog(QWidget *parent) + : DDialog(parent) +{ + initUI(); +} + +void EncryptProgressDialog::setText(const QString &title, const QString &message) +{ + setTitle(title); + this->message->setText(message); +} + +void EncryptProgressDialog::updateProgress(double progress) +{ + mainLay->setCurrentIndex(0); + int val = progress * 100 - 1; // do not show 100%, wait at 99% and then jump to result page. + if (val < 0) val = 0; + this->progress->setValue(val); + clearButtons(); + setCloseButtonVisible(false); +} + +void EncryptProgressDialog::showResultPage(bool success, const QString &title, const QString &message) +{ + this->progress->setValue(100); + mainLay->setCurrentIndex(1); + + setTitle(title); + resultMsg->setText(message); + QIcon icon = success ? QIcon::fromTheme("dialog-ok") : QIcon::fromTheme("dialog-error"); + iconLabel->setPixmap(icon.pixmap(64, 64)); + + addButton(tr("Confirm")); + setCloseButtonVisible(true); + setAttribute(Qt::WA_DeleteOnClose); + setOnButtonClickedClose(true); +} + +void EncryptProgressDialog::showExportPage() +{ + clearButtons(); + addButton(tr("Re-export the recovery key")); + setOnButtonClickedClose(false); + setCloseButtonVisible(false); + + warningLabel->setText(tr("*Recovery key saving failed, please re-save the recovery " + "key to a non-encrypted partition and keep it in a safe place!")); + warningLabel->setVisible(true); + + connect(this, &EncryptProgressDialog::buttonClicked, + this, &EncryptProgressDialog::onCicked); +} + +void EncryptProgressDialog::onCicked(int idx, const QString &btnTxt) +{ + if (btnTxt != tr("Re-export the recovery key")) + return; + QUrl url = DFileDialog::getExistingDirectoryUrl(this); + QString msg; + if (!validateExportPath(url.toLocalFile(), &msg)) { + dialog_utils::showDialog(tr("Error"), msg, dialog_utils::DialogType::kError); + } else { + saveRecKey(url.toLocalFile()); + } +} + +void EncryptProgressDialog::initUI() +{ + clearContents(); + setIcon(QIcon::fromTheme("drive-harddisk-root")); + setFixedWidth(400); + + QFrame *frame = new QFrame(this); + mainLay = new QStackedLayout(frame); + mainLay->setContentsMargins(0, 0, 0, 0); + mainLay->setSpacing(0); + addContent(frame); + + QFrame *progressPage = new QFrame(this); + QVBoxLayout *progressLay = new QVBoxLayout(progressPage); + progressLay->setSpacing(30); + progressLay->setContentsMargins(0, 30, 0, 20); + + progress = new DWaterProgress(this); + progress->setFixedSize(64, 64); + progress->setValue(1); + progressLay->addWidget(progress, 0, Qt::AlignCenter); + progress->start(); + + message = new QLabel(this); + progressLay->addWidget(message, 0, Qt::AlignCenter); + + QFrame *resultPage = new QFrame(this); + QVBoxLayout *resultLay = new QVBoxLayout(resultPage); + resultLay->setSpacing(20); + resultLay->setContentsMargins(0, 30, 0, 0); + + iconLabel = new QLabel(this); + iconLabel->setFixedSize(64, 64); + resultLay->addWidget(iconLabel, 0, Qt::AlignCenter); + + resultMsg = new QLabel(this); + resultLay->addWidget(resultMsg, 0, Qt::AlignCenter); + + warningLabel = new QLabel(this); + resultLay->addWidget(warningLabel); + QPalette pal = warningLabel->palette(); + pal.setColor(QPalette::WindowText, QColor("red")); + warningLabel->setPalette(pal); + warningLabel->setWordWrap(true); + warningLabel->setAlignment(Qt::AlignLeft); + warningLabel->setVisible(false); + + mainLay->addWidget(progressPage); + mainLay->addWidget(resultPage); +} + +bool EncryptProgressDialog::validateExportPath(const QString &path, QString *msg) +{ + auto setMsg = [&](const QString &info) { if (msg) *msg = info; }; + if (path.isEmpty()) { + setMsg(tr("Recovery key export path cannot be empty!")); + return false; + } + + if (!QDir(path).exists()) { + setMsg(tr("Recovery key export path is not exists!")); + return false; + } + + QStorageInfo storage(path); + if (storage.isReadOnly()) { + setMsg(tr("This partition is read-only, please export to a writable " + "partition")); + return false; + } + + using namespace dfmmount; + auto monitor = DDeviceManager::instance()->getRegisteredMonitor(DeviceType::kBlockDevice).objectCast(); + Q_ASSERT(monitor); + auto devObjPaths = monitor->resolveDeviceNode(storage.device(), {}); + if (!devObjPaths.isEmpty()) { + auto objPath = devObjPaths.constFirst(); + auto devPtr = monitor->createDeviceById(objPath); + if (devPtr && devPtr->getProperty(Property::kBlockCryptoBackingDevice).toString() != "/") { + setMsg(tr("The partition is encrypted, please export to a non-encrypted " + "partition or external device such as a USB flash drive.")); + return false; + } + } + + return true; +} + +void EncryptProgressDialog::saveRecKey(const QString &path) +{ + QString recFileName = QString("%1/%2_recovery_key.txt") + .arg(path) + .arg(device.mid(5)); + QFile f(recFileName); + if (!f.open(QIODevice::WriteOnly | QIODevice::Truncate)) { + dialog_utils::showDialog(tr("Error"), tr("Cannot create recovery key file!"), dialog_utils::DialogType::kError); + return; + } + f.write(recKey.toLocal8Bit()); + f.close(); + accept(); + qInfo() << "recovery key has been wrote to" << recFileName; +} diff --git a/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/gui/encryptprogressdialog.h b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/gui/encryptprogressdialog.h new file mode 100644 index 0000000000..bda64babdc --- /dev/null +++ b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/gui/encryptprogressdialog.h @@ -0,0 +1,53 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#ifndef ENCRYPTPROGRESSDIALOG_H +#define ENCRYPTPROGRESSDIALOG_H + +#include +#include + +DWIDGET_USE_NAMESPACE + +class QStackedLayout; + +namespace dfmplugin_diskenc { + +class EncryptProgressDialog : public DDialog +{ + Q_OBJECT +public: + explicit EncryptProgressDialog(QWidget *parent = nullptr); + void setText(const QString &title, const QString &message); + void updateProgress(double progress); + void showResultPage(bool success, const QString &title, const QString &message); + void showExportPage(); + inline void setRecoveryKey(const QString &key, const QString &device) + { + recKey = key; + this->device = device; + } + +protected Q_SLOTS: + void onCicked(int idx, const QString &btnTxt); + +protected: + void initUI(); + bool validateExportPath(const QString &path, QString *msg); + void saveRecKey(const QString &path); + +private: + DWaterProgress *progress { nullptr }; + QLabel *message { nullptr }; + QStackedLayout *mainLay { nullptr }; + QLabel *iconLabel { nullptr }; + QLabel *resultMsg { nullptr }; + QLabel *warningLabel { nullptr }; + + QString recKey; + QString device; +}; +} + +#endif // ENCRYPTPROGRESSDIALOG_H diff --git a/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/gui/unlockpartitiondialog.cpp b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/gui/unlockpartitiondialog.cpp new file mode 100644 index 0000000000..8b865bc06a --- /dev/null +++ b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/gui/unlockpartitiondialog.cpp @@ -0,0 +1,144 @@ +// SPDX-FileCopyrightText: 2020 - 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#include "unlockpartitiondialog.h" +#include "utils/encryptutils.h" + +#include +#include +#include +#include +#include +#include +#include + +using namespace dfmplugin_diskenc; +DWIDGET_USE_NAMESPACE + +UnlockPartitionDialog::UnlockPartitionDialog(UnlockType type, QWidget *parent) + : DDialog(parent), + currType(type), + initType(type) +{ + setModal(true); + initUI(); + initConnect(); + if (dialog_utils::isWayland()) + setWindowFlag(Qt::WindowStaysOnTopHint); +} + +UnlockPartitionDialog::~UnlockPartitionDialog() +{ +} + +void UnlockPartitionDialog::initUI() +{ + setIcon(QIcon::fromTheme("drive-harddisk-root")); + + QFrame *content = new QFrame; + passwordLineEdit = new DPasswordEdit; + chgUnlockType = new DCommandLinkButton(""); + + QVBoxLayout *mainLayout = new QVBoxLayout; + mainLayout->addSpacing(10); + mainLayout->addWidget(passwordLineEdit); + mainLayout->addWidget(chgUnlockType, 0, Qt::AlignRight); + mainLayout->addSpacing(10); + content->setLayout(mainLayout); + addContent(content); + + addButton(tr("Cancel")); + addButton(tr("Unlock"), true, DDialog::ButtonRecommend); + auto unlockBtn = getButton(1); + if (unlockBtn) unlockBtn->setEnabled(false); + + updateUserHint(); + setOnButtonClickedClose(false); + + if (initType == kRec) + chgUnlockType->setVisible(false); +} + +void UnlockPartitionDialog::initConnect() +{ + connect(this, &DDialog::buttonClicked, this, &UnlockPartitionDialog::handleButtonClicked); + connect(chgUnlockType, &DCommandLinkButton::clicked, this, &UnlockPartitionDialog::switchUnlockType); + connect(passwordLineEdit, &DPasswordEdit::textChanged, this, [this](const QString &txt) { + QString newText = txt; + QSignalBlocker blocker(sender()); + if (currType == kRec) { + newText = recovery_key_utils::formatRecoveryKey(newText); + passwordLineEdit->setText(newText); + } + auto unlockBtn = getButton(1); + if (unlockBtn) unlockBtn->setEnabled(newText.length() != 0); + }); +} + +void UnlockPartitionDialog::updateUserHint() +{ + setTitle(tr("Unlock encryption partition")); + passwordLineEdit->setEchoMode(QLineEdit::Password); + passwordLineEdit->setEchoButtonIsVisible(true); + + chgUnlockType->setText(tr("Unlock by recovery key")); + switch (currType) { + case kRec: { + setTitle(tr("Unlock by recovery key")); + QString text = (initType == kPwd) + ? tr("Unlock by passphrase") + : tr("Unlock by PIN"); + chgUnlockType->setText(text); + passwordLineEdit->setPlaceholderText(tr("Please input recovery key to unlock device")); + passwordLineEdit->setEchoMode(QLineEdit::Normal); + passwordLineEdit->setEchoButtonIsVisible(false); + break; + } + case kPwd: + passwordLineEdit->setPlaceholderText(tr("Please input passphrase to unlock device")); + break; + case kPin: + passwordLineEdit->setPlaceholderText(tr("Please input PIN to unlock device")); + break; + } +} + +void UnlockPartitionDialog::handleButtonClicked(int index, QString text) +{ + Q_UNUSED(text) + if (index == 1) { + key = passwordLineEdit->text(); + if (currType == kRec) { + key.remove("-"); + if (key.length() != 24) { + passwordLineEdit->showAlertMessage(tr("Recovery key is not valid!")); + return; + } + } + accept(); + return; + } + reject(); +} + +void UnlockPartitionDialog::switchUnlockType() +{ + if (currType == kRec) + currType = initType; + else if (currType == kPin || currType == kPwd) + currType = kRec; + passwordLineEdit->clear(); + updateUserHint(); +} + +void UnlockPartitionDialog::showEvent(QShowEvent *event) +{ + passwordLineEdit->setFocus(); + DDialog::showEvent(event); +} + +QPair UnlockPartitionDialog::getUnlockKey() const +{ + return { currType, key }; +} diff --git a/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/gui/unlockpartitiondialog.h b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/gui/unlockpartitiondialog.h new file mode 100644 index 0000000000..a7c2ccc4cc --- /dev/null +++ b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/gui/unlockpartitiondialog.h @@ -0,0 +1,52 @@ +// SPDX-FileCopyrightText: 2020 - 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#ifndef MOUNTSECRETDISKASKPASSWORDDIALOG_H +#define MOUNTSECRETDISKASKPASSWORDDIALOG_H + +#include + +class QLineEdit; +class QLabel; + +DWIDGET_BEGIN_NAMESPACE +class DPasswordEdit; +class DCommandLinkButton; +DWIDGET_END_NAMESPACE + +namespace dfmplugin_diskenc { +class UnlockPartitionDialog : public DTK_WIDGET_NAMESPACE::DDialog +{ + Q_OBJECT +public: + enum UnlockType { + kPwd, + kPin, + kRec + }; + explicit UnlockPartitionDialog(UnlockType type, QWidget *parent = nullptr); + ~UnlockPartitionDialog(); + + QPair getUnlockKey() const; + +protected Q_SLOTS: + void handleButtonClicked(int index, QString text); + void switchUnlockType(); + void updateUserHint(); + +protected: + void showEvent(QShowEvent *event); + void initUI(); + void initConnect(); + +private: + DTK_WIDGET_NAMESPACE::DPasswordEdit *passwordLineEdit = nullptr; + Dtk::Widget::DCommandLinkButton *chgUnlockType = nullptr; + QString key = ""; + UnlockType currType { kPin }; + UnlockType initType { kPin }; +}; +} + +#endif // MOUNTSECRETDISKASKPASSWORDDIALOG_H diff --git a/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/menu/diskencryptmenuscene.cpp b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/menu/diskencryptmenuscene.cpp new file mode 100644 index 0000000000..a8d3b12b25 --- /dev/null +++ b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/menu/diskencryptmenuscene.cpp @@ -0,0 +1,669 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#include "dfmplugin_disk_encrypt_global.h" +#include "diskencryptmenuscene.h" +#include "gui/encryptparamsinputdialog.h" +#include "gui/decryptparamsinputdialog.h" +#include "gui/chgpassphrasedialog.h" +#include "events/eventshandler.h" +#include "utils/encryptutils.h" + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include + +DFMBASE_USE_NAMESPACE +using namespace dfmplugin_diskenc; +using namespace disk_encrypt; + +static constexpr char kActIDEncrypt[] { "de_0_encrypt" }; +static constexpr char kActIDResumeEncrypt[] { "de_0_resumeEncrypt" }; +static constexpr char kActIDUnlock[] { "de_0_unlock" }; +static constexpr char kActIDDecrypt[] { "de_1_decrypt" }; +static constexpr char kActIDResumeDecrypt[] { "de_1_resumeDecrypt" }; +static constexpr char kActIDChangePwd[] { "de_2_changePwd" }; + +DiskEncryptMenuScene::DiskEncryptMenuScene(QObject *parent) + : AbstractMenuScene(parent) +{ +} + +dfmbase::AbstractMenuScene *DiskEncryptMenuCreator::create() +{ + return new DiskEncryptMenuScene(); +} + +QString DiskEncryptMenuScene::name() const +{ + return DiskEncryptMenuCreator::name(); +} + +bool DiskEncryptMenuScene::initialize(const QVariantHash ¶ms) +{ + if (!config_utils::enableEncrypt()) { + qInfo() << "partition encryption feature is disabled."; + return false; + } + + QList selectedItems = params.value(MenuParamKey::kSelectFiles).value>(); + if (selectedItems.isEmpty()) + return false; + + auto selectedItem = selectedItems.first(); + if (!selectedItem.path().endsWith("blockdev")) + return false; + + QSharedPointer info = InfoFactory::create(selectedItem); + if (!info) + return false; + info->refresh(); + + selectedItemInfo = info->extraProperties(); + auto device = selectedItemInfo.value("Device", "").toString(); + if (device.isEmpty()) + return false; + + const QString &idType = selectedItemInfo.value("IdType").toString(); + auto preferDev = selectedItemInfo.value("PreferredDevice", "").toString(); + if (device.startsWith("/dev/dm-") && idType != "crypto_LUKS") { + qInfo() << "mapper device is not supported to be encrypted yet." << device << preferDev; + return false; + } + + const QStringList &supportedFS { "ext4", "ext3", "ext2" }; + if (idType == "crypto_LUKS") { + if (selectedItemInfo.value("IdVersion").toString() == "1") + return false; + hasCryptHeader = true; + } else if (!supportedFS.contains(idType)) { + return false; + } + + QString devMpt = selectedItemInfo.value("MountPoint", "").toString(); + if (devMpt.isEmpty() && selectedItemInfo.contains("ClearBlockDeviceInfo")) + devMpt = selectedItemInfo.value("ClearBlockDeviceInfo").toHash().value("MountPoint").toString(); + + if (kDisabledEncryptPath.contains(devMpt, Qt::CaseInsensitive)) { + qInfo() << devMpt << "doesn't support encrypt"; + return false; + } + + param.devID = selectedItemInfo.value("Id").toString(); + param.devDesc = device; + param.initOnly = fstab_utils::isFstabItem(devMpt); + param.mountPoint = devMpt; + param.uuid = selectedItemInfo.value("IdUUID", "").toString(); + param.deviceDisplayName = info->displayOf(dfmbase::FileInfo::kFileDisplayName); + param.type = SecKeyType::kPasswordOnly; + param.backingDevUUID = param.uuid; + param.isDetachedHeader = false; + + QVariantHash clearInfo = selectedItemInfo.value("ClearBlockDeviceInfo").toHash(); + if (!clearInfo.isEmpty()) { + param.clearDevUUID = clearInfo.value("IdUUID", "").toString(); + param.prefferDevName = clearInfo.value("PreferredDevice").toString().mid(12); // /dev/mapper/xxxx ==> xxxx + } + + if (hasCryptHeader) + param.type = static_cast(device_utils::encKeyType(device)); + + return true; +} + +bool DiskEncryptMenuScene::create(QMenu *) +{ + QAction *act = nullptr; + + act = new QAction(tr("Unlock encrypted partition")); + act->setProperty(ActionPropertyKey::kActionID, kActIDUnlock); + actions.insert(kActIDUnlock, act); + + act = new QAction(tr("Cancel partition encryption")); + act->setProperty(ActionPropertyKey::kActionID, kActIDDecrypt); + actions.insert(kActIDDecrypt, act); + + QString keyType = (param.type == kTPMAndPIN) ? "PIN" : tr("passphrase"); + act = new QAction(tr("Changing the encryption %1").arg(keyType)); + act->setProperty(ActionPropertyKey::kActionID, kActIDChangePwd); + actions.insert(kActIDChangePwd, act); + + act = new QAction(tr("Continue partition encryption")); + act->setProperty(ActionPropertyKey::kActionID, kActIDResumeEncrypt); + actions.insert(kActIDResumeEncrypt, act); + + act = new QAction(tr("Continue partition decryption")); + act->setProperty(ActionPropertyKey::kActionID, kActIDResumeDecrypt); + actions.insert(kActIDResumeDecrypt, act); + + act = new QAction(tr("Enable partition encryption")); + act->setProperty(ActionPropertyKey::kActionID, kActIDEncrypt); + actions.insert(kActIDEncrypt, act); + + return true; +} + +bool DiskEncryptMenuScene::triggered(QAction *action) +{ + QString actID = action->property(ActionPropertyKey::kActionID).toString(); + + if (actID == kActIDEncrypt) { + encryptDevice(param); + } else if (actID == kActIDResumeEncrypt) { + EventsHandler::instance()->resumeEncrypt(param.devDesc); + } else if (actID == kActIDDecrypt || actID == kActIDResumeDecrypt) { + QString displayName = QString("%1(%2)").arg(param.deviceDisplayName).arg(param.devDesc.mid(5)); + if (dialog_utils::showConfirmDecryptionDialog(displayName, param.initOnly) != QDialog::Accepted) + return true; + param.initOnly ? doDecryptDevice(param) : unmountBefore(decryptDevice, param); + } else if (actID == kActIDChangePwd) { + changePassphrase(param); + } else if (actID == kActIDUnlock) { + unlockDevice(selectedItemInfo.value("Id").toString()); + } else { + return false; + } + return true; +} + +void DiskEncryptMenuScene::updateState(QMenu *parent) +{ + sortActions(parent); + updateActions(); +} + +void DiskEncryptMenuScene::encryptDevice(const DeviceEncryptParam ¶m) +{ + QString displayName = QString("%1(%2)").arg(param.deviceDisplayName).arg(param.devDesc.mid(5)); + bool needreboot = param.isDetachedHeader ? false : param.initOnly; + int ret = dialog_utils::showConfirmEncryptionDialog(displayName, needreboot); + if (ret == QDialog::Accepted) { + if (param.initOnly) + doEncryptDevice(param); + else + unmountBefore(doEncryptDevice, param); + } +} + +void DiskEncryptMenuScene::decryptDevice(const DeviceEncryptParam ¶m) +{ + auto inputs = param; + if (inputs.type == kTPMOnly) { + QString passphrase = tpm_passphrase_utils::getPassphraseFromTPM_NonBlock(inputs.devDesc, ""); + inputs.key = passphrase; + if (passphrase.isEmpty()) { + dialog_utils::showDialog(tr("Error"), + tr("Cannot resolve passphrase from TPM"), + dialog_utils::DialogType::kError); + return; + } + doDecryptDevice(inputs); + return; + } + + DecryptParamsInputDialog dlg(inputs.devDesc); + if (inputs.type == kTPMAndPIN) + dlg.setInputPIN(true); + + if (dlg.exec() != QDialog::Accepted) + return; + + qDebug() << "start decrypting device" << inputs.devDesc; + inputs.key = dlg.getKey(); + if (dlg.usingRecKey() || inputs.type == kPasswordOnly) + doDecryptDevice(inputs); + else { + inputs.key = tpm_passphrase_utils::getPassphraseFromTPM_NonBlock(inputs.devDesc, inputs.key); + if (inputs.key.isEmpty()) { + dialog_utils::showDialog(tr("Error"), tr("PIN error"), dialog_utils::DialogType::kError); + return; + } + doDecryptDevice(inputs); + } +} + +void DiskEncryptMenuScene::changePassphrase(DeviceEncryptParam param) +{ + QString dev = param.devDesc; + ChgPassphraseDialog dlg(param.devDesc); + if (dlg.exec() != 1) + return; + + auto inputs = dlg.getPassphrase(); + QString oldKey = inputs.first; + QString newKey = inputs.second; + if (param.type == SecKeyType::kTPMAndPIN) { + if (!dlg.validateByRecKey()) { + oldKey = tpm_passphrase_utils::getPassphraseFromTPM_NonBlock(dev, oldKey); + if (oldKey.isEmpty()) { + dialog_utils::showDialog(tr("Error"), tr("PIN error"), dialog_utils::DialogType::kError); + return; + } + } + QString newPassphrase; + int ret = tpm_passphrase_utils::genPassphraseFromTPM_NonBlock(dev, newKey, &newPassphrase); + if (ret != tpm_passphrase_utils::kTPMNoError) { + dialog_utils::showTPMError(tr("Change passphrase failed"), static_cast(ret)); + return; + } + newKey = newPassphrase; + } + param.validateByRecKey = dlg.validateByRecKey(); + param.key = oldKey; + param.newKey = newKey; + doChangePassphrase(param); +} + +void DiskEncryptMenuScene::unlockDevice(const QString &devObjPath) +{ + auto blkDev = device_utils::createBlockDevice(devObjPath); + if (!blkDev) + return; + + QString pwd; + bool cancel { false }; + bool ok = EventsHandler::instance()->onAcquireDevicePwd(blkDev->device(), &pwd, &cancel); + if (pwd.isEmpty() && ok) { + qWarning() << "acquire pwd faield!!!"; + return; + } + + QApplication::setOverrideCursor(Qt::WaitCursor); + blkDev->unlockAsync(pwd, {}, onUnlocked); +} + +void DiskEncryptMenuScene::doEncryptDevice(const DeviceEncryptParam ¶m) +{ + // if tpm selected, use tpm to generate the key + QString tpmConfig, tpmToken; + if (param.type != kPasswordOnly) { + tpmConfig = generateTPMConfig(); + tpmToken = generateTPMToken(param.devDesc, param.type == kTPMAndPIN); + } + + QDBusInterface iface(kDaemonBusName, + kDaemonBusPath, + kDaemonBusIface, + QDBusConnection::systemBus()); + if (iface.isValid()) { + auto blkDev = device_utils::createBlockDevice(param.devID); + if (!blkDev) { + qCritical() << "Create block device failed, the object is: " << param.devID; + return; + } + QString partUuid { blkDev->getProperty(dfmmount::Property::kPartitionUUID).toString() }; + QVariantMap params { + { encrypt_param_keys::kKeyDevice, param.devDesc }, + { encrypt_param_keys::kKeyUUID, param.uuid }, + { encrypt_param_keys::kKeyCipher, config_utils::cipherType() }, + { encrypt_param_keys::kKeyPassphrase, encryptPasswd(param.key) }, + { encrypt_param_keys::kKeyInitParamsOnly, param.isDetachedHeader ? false : param.initOnly }, + { encrypt_param_keys::kKeyRecoveryExportPath, param.exportPath }, + { encrypt_param_keys::kKeyEncMode, static_cast(param.type) }, + { encrypt_param_keys::kKeyDeviceName, param.deviceDisplayName }, + { encrypt_param_keys::kKeyMountPoint, param.mountPoint }, + { encrypt_param_keys::kKeyIsDetachedHeader, param.isDetachedHeader }, + { encrypt_param_keys::kKeyPrefferDevice, param.prefferDevName }, + { encrypt_param_keys::kKeyClearDevUUID, param.clearDevUUID }, + { encrypt_param_keys::kKeyPartUUID, partUuid } + }; + if (!tpmConfig.isEmpty()) params.insert(encrypt_param_keys::kKeyTPMConfig, tpmConfig); + if (!tpmToken.isEmpty()) params.insert(encrypt_param_keys::kKeyTPMToken, tpmToken); + + QDBusReply reply = iface.call("PrepareEncryptDisk", params); + qDebug() << "preencrypt device jobid:" << reply.value(); + QApplication::setOverrideCursor(Qt::WaitCursor); + } +} + +void DiskEncryptMenuScene::doReencryptDevice(const DeviceEncryptParam ¶m) +{ + // if tpm selected, use tpm to generate the key + QString tpmConfig, tpmToken; + if (param.type != kPasswordOnly) { + tpmConfig = generateTPMConfig(); + tpmToken = generateTPMToken(param.devDesc, param.type == kTPMAndPIN); + } + + QDBusInterface iface(kDaemonBusName, + kDaemonBusPath, + kDaemonBusIface, + QDBusConnection::systemBus()); + if (iface.isValid()) { + QVariantMap params { + { encrypt_param_keys::kKeyDevice, param.devDesc }, + { encrypt_param_keys::kKeyUUID, param.uuid }, + { encrypt_param_keys::kKeyCipher, config_utils::cipherType() }, + { encrypt_param_keys::kKeyPassphrase, encryptPasswd(param.key) }, + { encrypt_param_keys::kKeyInitParamsOnly, param.initOnly }, + { encrypt_param_keys::kKeyRecoveryExportPath, param.exportPath }, + { encrypt_param_keys::kKeyEncMode, static_cast(param.type) }, + { encrypt_param_keys::kKeyDeviceName, param.deviceDisplayName }, + { encrypt_param_keys::kKeyMountPoint, param.mountPoint }, + { encrypt_param_keys::kKeyBackingDevUUID, param.backingDevUUID }, + { encrypt_param_keys::kKeyClearDevUUID, param.clearDevUUID } + }; + if (!tpmConfig.isEmpty()) params.insert(encrypt_param_keys::kKeyTPMConfig, tpmConfig); + if (!tpmToken.isEmpty()) params.insert(encrypt_param_keys::kKeyTPMToken, tpmToken); + + QDBusReply reply = iface.call("SetEncryptParams", params); + qDebug() << "start reencrypt device"; + QApplication::setOverrideCursor(Qt::WaitCursor); + } +} + +void DiskEncryptMenuScene::doDecryptDevice(const DeviceEncryptParam ¶m) +{ + // if tpm selected, use tpm to generate the key + QDBusInterface iface(kDaemonBusName, + kDaemonBusPath, + kDaemonBusIface, + QDBusConnection::systemBus()); + if (iface.isValid()) { + QVariantMap params { + { encrypt_param_keys::kKeyDevice, param.devDesc }, + { encrypt_param_keys::kKeyPassphrase, encryptPasswd(param.key) }, + { encrypt_param_keys::kKeyInitParamsOnly, param.initOnly }, + { encrypt_param_keys::kKeyUUID, param.uuid }, + { encrypt_param_keys::kKeyDeviceName, param.deviceDisplayName }, + { encrypt_param_keys::kKeyPrefferDevice, param.prefferDevName }, + { encrypt_param_keys::kKeyClearDevUUID, param.clearDevUUID } + }; + QDBusReply reply = iface.call("DecryptDisk", params); + qDebug() << "preencrypt device jobid:" << reply.value(); + QApplication::setOverrideCursor(Qt::WaitCursor); + + EventsHandler::instance()->autoStartDFM(); + } +} + +void DiskEncryptMenuScene::doChangePassphrase(const DeviceEncryptParam ¶m) +{ + QString token; + if (param.type != SecKeyType::kPasswordOnly) { + // new tpm token should be setted. + QFile f(kGlobalTPMConfigPath + param.devDesc + "/token.json"); + if (!f.open(QIODevice::ReadOnly)) { + qWarning() << "cannot read old tpm token!!!"; + return; + } + QJsonDocument oldTokenDoc = QJsonDocument::fromJson(f.readAll()); + f.close(); + QJsonObject oldTokenObj = oldTokenDoc.object(); + + QString newToken = generateTPMToken(param.devDesc, param.type == SecKeyType::kTPMAndPIN); + QJsonDocument newTokenDoc = QJsonDocument::fromJson(newToken.toLocal8Bit()); + QJsonObject newTokenObj = newTokenDoc.object(); + + oldTokenObj.insert("enc", newTokenObj.value("enc")); + oldTokenObj.insert("kek-priv", newTokenObj.value("kek-priv")); + oldTokenObj.insert("kek-pub", newTokenObj.value("kek-pub")); + oldTokenObj.insert("iv", newTokenObj.value("iv")); + newTokenDoc.setObject(oldTokenObj); + token = newTokenDoc.toJson(QJsonDocument::Compact); + } + + QDBusInterface iface(kDaemonBusName, + kDaemonBusPath, + kDaemonBusIface, + QDBusConnection::systemBus()); + if (iface.isValid()) { + QVariantMap params { + { encrypt_param_keys::kKeyDevice, param.devDesc }, + { encrypt_param_keys::kKeyPassphrase, encryptPasswd(param.newKey) }, + { encrypt_param_keys::kKeyOldPassphrase, encryptPasswd(param.key) }, + { encrypt_param_keys::kKeyValidateWithRecKey, param.validateByRecKey }, + { encrypt_param_keys::kKeyTPMToken, token }, + { encrypt_param_keys::kKeyDeviceName, param.deviceDisplayName } + }; + QDBusReply reply = iface.call("ChangeEncryptPassphress", params); + qDebug() << "modify device passphrase jobid:" << reply.value(); + QApplication::setOverrideCursor(Qt::WaitCursor); + } +} + +QString DiskEncryptMenuScene::generateTPMConfig() +{ + QString sessionHashAlgo, sessionKeyAlgo, primaryHashAlgo, primaryKeyAlgo, minorHashAlgo, minorKeyAlgo; + if (!tpm_passphrase_utils::getAlgorithm(&sessionHashAlgo, &sessionKeyAlgo, &primaryHashAlgo, &primaryKeyAlgo, &minorHashAlgo, &minorKeyAlgo)) { + qWarning() << "cannot choose algorithm for tpm"; + primaryHashAlgo = "sha256"; + primaryKeyAlgo = "ecc"; + } + + QJsonObject tpmParams; + tpmParams = { { "keyslot", "1" }, + { "session-key-alg", sessionKeyAlgo }, + { "session-hash-alg", sessionHashAlgo }, + { "primary-key-alg", primaryKeyAlgo }, + { "primary-hash-alg", primaryHashAlgo }, + { "pcr", "7" }, + { "pcr-bank", primaryHashAlgo } }; + return QJsonDocument(tpmParams).toJson(); +} + +QString DiskEncryptMenuScene::generateTPMToken(const QString &device, bool pin) +{ + QString tpmConfig = generateTPMConfig(); + QJsonDocument doc = QJsonDocument::fromJson(tpmConfig.toLocal8Bit()); + QJsonObject token = doc.object(); + + // keep same with usec. + // https://gerrit.uniontech.com/plugins/gitiles/usec-crypt-kit/+/refs/heads/master/src/boot-crypt/util.cpp + // j["type"] = "usec-tpm2"; + // j["keyslots"] = {"0"}; + // j["kek-priv"] = encoded_priv_key; + // j["kek-pub"] = encoded_pub_key; + // j["primary-key-alg"] = primary_key_alg; + // j["primary-hash-alg"] = primary_hash_alg; + // j["iv"] = encoded_iv; + // j["enc"] = encoded_cipher; + // j["pin"] = pin; + // j["pcr"] = pcr; + // j["pcr-bank"] = pcr_bank; + + token.remove("keyslot"); + token.insert("type", "usec-tpm2"); + token.insert("keyslots", QJsonArray::fromStringList({ "0" })); + token.insert("kek-priv", getBase64Of(kGlobalTPMConfigPath + device + "/key.priv")); + token.insert("kek-pub", getBase64Of(kGlobalTPMConfigPath + device + "/key.pub")); + token.insert("iv", getBase64Of(kGlobalTPMConfigPath + device + "/iv.bin")); + token.insert("enc", getBase64Of(kGlobalTPMConfigPath + device + "/cipher.out")); + token.insert("pin", pin ? "1" : "0"); + + doc.setObject(token); + return doc.toJson(QJsonDocument::Compact); +} + +QString DiskEncryptMenuScene::getBase64Of(const QString &fileName) +{ + QFile f(fileName); + if (!f.open(QIODevice::ReadOnly)) { + qDebug() << "cannot read file of" << fileName; + return ""; + } + QByteArray contents = f.readAll(); + f.close(); + return QString(contents.toBase64()); +} + +void DiskEncryptMenuScene::onUnlocked(bool ok, dfmmount::OperationErrorInfo info, QString clearDev) +{ + QApplication::restoreOverrideCursor(); + if (!ok && info.code != dfmmount::DeviceError::kUDisksErrorNotAuthorizedDismissed) { + qWarning() << "unlock device failed!" << info.message; + dialog_utils::showDialog(tr("Unlock device failed"), + tr("Wrong passphrase"), + dialog_utils::kError); + return; + } + + auto dev = device_utils::createBlockDevice(clearDev); + if (!dev) + return; + + QApplication::setOverrideCursor(Qt::WaitCursor); + dev->mountAsync({}, onMounted); +} + +void DiskEncryptMenuScene::onMounted(bool ok, dfmmount::OperationErrorInfo info, QString mountPoint) +{ + QApplication::restoreOverrideCursor(); + if (!ok && info.code != dfmmount::DeviceError::kUDisksErrorNotAuthorizedDismissed) { + qWarning() << "mount device failed!" << info.message; + dialog_utils::showDialog(tr("Mount device failed"), "", dialog_utils::kError); + return; + } +} + +void DiskEncryptMenuScene::unmountBefore(const std::function &after, const DeviceEncryptParam ¶m) +{ + using namespace dfmmount; + auto blk = device_utils::createBlockDevice(param.devID); + if (!blk) + return; + + auto _params = param; + if (blk->isEncrypted()) { + const QString &clearPath = blk->getProperty(Property::kEncryptedCleartextDevice).toString(); + if (clearPath.length() > 1) { + auto lock = [=] { + blk->lockAsync({}, [=](bool ok, OperationErrorInfo err) { + ok ? after(_params) : onUnmountError(kLock, _params.devDesc, err); + }); + }; + auto onUnmounted = [=](bool ok, const OperationErrorInfo &err) { + ok ? lock() : onUnmountError(kUnmount, _params.devDesc, err); + }; + + // do unmount cleardev + auto clearDev = device_utils::createBlockDevice(clearPath); + clearDev->unmountAsync({}, onUnmounted); + } else { + after(_params); + } + } else { + blk->unmountAsync({}, [=](bool ok, OperationErrorInfo err) { + ok ? after(_params) : onUnmountError(kUnmount, _params.devDesc, err); + }); + } +} + +void DiskEncryptMenuScene::onUnmountError(OpType t, const QString &dev, const dfmmount::OperationErrorInfo &err) +{ + qDebug() << "unmount device failed:" + << dev + << err.message; + QString operation = (t == kUnmount) ? tr("unmount") : tr("lock"); + dialog_utils::showDialog(tr("Encrypt failed"), + tr("Cannot %1 device %2").arg(operation, dev), + dialog_utils::kError); +} + +void DiskEncryptMenuScene::sortActions(QMenu *parent) +{ + Q_ASSERT(parent); + QList acts = parent->actions(); + QAction *before { acts.last() }; + for (int i = 0; i < acts.count(); ++i) { + auto act = acts.at(i); + QString actID = act->property(ActionPropertyKey::kActionID).toString(); + if (actID == "computer-rename" // the encrypt actions should be under computer-rename + && (i + 1) < acts.count()) { + before = acts.at(i + 1); + break; + } + } + + std::for_each(actions.begin(), actions.end(), [=](QAction *act) { + parent->insertAction(before, act); + act->setParent(parent); + }); +} + +void DiskEncryptMenuScene::updateActions() +{ + std::for_each(actions.begin(), actions.end(), [](QAction *act) { + act->setVisible(false); + act->setEnabled(false); + }); + + // update operatable + bool taskWorking = EventsHandler::instance()->isTaskWorking(); + bool currDevOperating = EventsHandler::instance()->isUnderOperating(param.devDesc); + bool hasPendingJob = EventsHandler::instance()->hasPendingTask(); + actions[kActIDEncrypt]->setEnabled(!taskWorking && !hasPendingJob); + actions[kActIDDecrypt]->setEnabled(!taskWorking && !hasPendingJob && !currDevOperating); + actions[kActIDChangePwd]->setEnabled(!taskWorking); + actions[kActIDResumeEncrypt]->setEnabled(!taskWorking && !currDevOperating); + actions[kActIDResumeDecrypt]->setEnabled(!taskWorking && !currDevOperating); + actions[kActIDUnlock]->setEnabled(!currDevOperating); + + // update visibility + if (hasCryptHeader) { + int states = EventsHandler::instance()->deviceEncryptStatus(param.devDesc); + // fully encrypted + if (states & kStatusFinished) { + bool unlocked = selectedItemInfo.value("CleartextDevice").toString() != "/"; + actions[kActIDDecrypt]->setVisible(true); + actions[kActIDUnlock]->setVisible(!unlocked); + if (param.type != disk_encrypt::kTPMOnly) + actions[kActIDChangePwd]->setVisible(true); + } + // not finished + else if (states & kStatusOnline) { + // encrytp not finish + if (states & kStatusEncrypt) { + if (states & kStatusNoEncryptConfig) { + param.isDetachedHeader = true; + actions[kActIDEncrypt]->setVisible(true); + } else { + param.isDetachedHeader = false; + actions[kActIDResumeEncrypt]->setVisible(true); + } + } + // decrypt not finish + else if (states & kStatusDecrypt) { + actions[kActIDDecrypt]->setVisible(false); + actions[kActIDResumeDecrypt]->setVisible(true); + } + } else { + qWarning() << "unmet status!" << param.devDesc << states; + } + } else if (EventsHandler::instance()->unfinishedDecryptJob() == param.devDesc) { + actions[kActIDResumeDecrypt]->setVisible(true); + } else { + actions[kActIDEncrypt]->setVisible(true); + } + + QString dev = param.devDesc; + QString fileName = kRebootFlagFilePrefix + dev.replace("/", "_"); + QFile rebootFlag(fileName); + if (rebootFlag.exists()) { + actions[kActIDEncrypt]->setText(tr("Reboot to continue encrypt")); + actions[kActIDDecrypt]->setText(tr("Reboot to finish decrypt")); + } +} + +QString DiskEncryptMenuScene::encryptPasswd(const QString &passwd) +{ + QByteArray byteArray = passwd.toUtf8(); + QByteArray encodedByteArray = byteArray.toBase64(); + return QString::fromUtf8(encodedByteArray); +} diff --git a/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/menu/diskencryptmenuscene.h b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/menu/diskencryptmenuscene.h new file mode 100644 index 0000000000..a9ec419f46 --- /dev/null +++ b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/menu/diskencryptmenuscene.h @@ -0,0 +1,85 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#ifndef DISKENCRYPTMENUSCENE_H +#define DISKENCRYPTMENUSCENE_H + +#include "gui/encryptparamsinputdialog.h" + +#include +#include + +#include + +#include + +class QAction; + +namespace dfmplugin_diskenc { + +class DiskEncryptMenuCreator : public dfmbase::AbstractSceneCreator +{ + Q_OBJECT + // AbstractSceneCreator interface +public: + virtual dfmbase::AbstractMenuScene *create() override; + static inline QString name() + { + return "DiskEncryptMenu"; + } +}; + +class DiskEncryptMenuScene : public dfmbase::AbstractMenuScene +{ + Q_OBJECT +public: + explicit DiskEncryptMenuScene(QObject *parent = nullptr); + + // AbstractMenuScene interface +public: + virtual QString name() const override; + virtual bool initialize(const QVariantHash ¶ms) override; + virtual bool create(QMenu *parent) override; + virtual bool triggered(QAction *action) override; + virtual void updateState(QMenu *parent) override; + + static void doReencryptDevice(const disk_encrypt::DeviceEncryptParam ¶m); + +protected: + static void encryptDevice(const disk_encrypt::DeviceEncryptParam ¶m); + static void decryptDevice(const disk_encrypt::DeviceEncryptParam ¶m); + static void changePassphrase(disk_encrypt::DeviceEncryptParam param); + static void unlockDevice(const QString &dev); + + static void doEncryptDevice(const disk_encrypt::DeviceEncryptParam ¶m); + static void doDecryptDevice(const disk_encrypt::DeviceEncryptParam ¶m); + static void doChangePassphrase(const disk_encrypt::DeviceEncryptParam ¶m); + + static QString generateTPMConfig(); + static QString generateTPMToken(const QString &device, bool pin); + static QString getBase64Of(const QString &fileName); + + static void onUnlocked(bool ok, dfmmount::OperationErrorInfo, QString); + static void onMounted(bool ok, dfmmount::OperationErrorInfo, QString); + + static void unmountBefore(const std::function &after, const disk_encrypt::DeviceEncryptParam ¶m); + enum OpType { kUnmount, + kLock }; + static void onUnmountError(OpType t, const QString &dev, const dfmmount::OperationErrorInfo &err); + + static QString encryptPasswd(const QString &passwd); + + void sortActions(QMenu *parent); + void updateActions(); + +private: + QMap actions; + bool hasCryptHeader { false }; + QVariantHash selectedItemInfo; + disk_encrypt::DeviceEncryptParam param; +}; + +} + +#endif // DISKENCRYPTMENUSCENE_H diff --git a/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/plugin_diskencryptentry.cpp b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/plugin_diskencryptentry.cpp new file mode 100644 index 0000000000..468ccabb7b --- /dev/null +++ b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/plugin_diskencryptentry.cpp @@ -0,0 +1,100 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#include "plugin_diskencryptentry.h" +#include "menu/diskencryptmenuscene.h" +#include "events/eventshandler.h" + +#include + +#include +#include +#include + +using namespace dfmplugin_diskenc; + +bool hasComputerMenuRegisted() +{ + return dpfSlotChannel->push(kMenuPluginName, "slot_MenuScene_Contains", QString(kComputerMenuSceneName)).toBool(); +} + +void DiskEncryptEntry::initialize() +{ + auto i18n = new QTranslator(this); + i18n->load(QLocale(), "disk-encrypt", "_", "/usr/share/dde-file-manager/translations"); + QCoreApplication::installTranslator(i18n); +} + +bool DiskEncryptEntry::start() +{ + dpfSlotChannel->push(kMenuPluginName, "slot_MenuScene_RegisterScene", + DiskEncryptMenuCreator::name(), new DiskEncryptMenuCreator); + + if (hasComputerMenuRegisted()) { + dpfSlotChannel->push("dfmplugin_menu", "slot_MenuScene_Bind", + DiskEncryptMenuCreator::name(), QString(kComputerMenuSceneName)); + } else { + dpfSignalDispatcher->subscribe(kMenuPluginName, "signal_MenuScene_SceneAdded", + this, &DiskEncryptEntry::onComputerMenuSceneAdded); + } + + EventsHandler::instance()->bindDaemonSignals(); + EventsHandler::instance()->hookEvents(); + + QString decJob = EventsHandler::instance()->unfinishedDecryptJob(); + if (!decJob.isEmpty() && !EventsHandler::instance()->isTaskWorking()) { + QTimer::singleShot(1000, this, [=] { + processUnfinshedDecrypt(decJob); + }); + } + + return true; +} + +void DiskEncryptEntry::onComputerMenuSceneAdded(const QString &scene) +{ + if (scene == "ComputerMenu") { + dpfSlotChannel->push(kMenuPluginName, "slot_MenuScene_Bind", + DiskEncryptMenuCreator::name(), kComputerMenuSceneName); + dpfSignalDispatcher->unsubscribe("dfmplugin_menu", "signal_MenuScene_SceneAdded", + this, &DiskEncryptEntry::onComputerMenuSceneAdded); + } +} + +void DiskEncryptEntry::processUnfinshedDecrypt(const QString &device) +{ + QString dev(device); + QString ignoreFile = "/tmp/dfm_ignore_decrypt_auto_reqeust_" + dev.replace("/", "_"); + if (QFile(ignoreFile).exists()) + return; + + QMenu *menu = new QMenu(); + DiskEncryptMenuScene *scene = new DiskEncryptMenuScene(); + + QUrl url; + url.setScheme("entry"); + url.setPath(QString("%1.blockdev").arg(device.mid(5))); + QVariant urls = QVariant::fromValue>({ url }); + QVariantHash params; + params.insert(dfmbase::MenuParamKey::kSelectFiles, urls); + scene->initialize(params); + scene->create(menu); + scene->updateState(menu); + + auto actions = menu->actions(); + auto ret = std::find_if(actions.cbegin(), actions.cend(), [](QAction *act) { + qWarning() << act->property(dfmbase::ActionPropertyKey::kActionID).toString(); + return act->property(dfmbase::ActionPropertyKey::kActionID).toString() == "de_1_decrypt"; + }); + if (ret == actions.cend()) + return; + + scene->triggered(*ret); + delete scene; + delete menu; + + QFile f(ignoreFile); + f.open(QIODevice::Truncate | QIODevice::WriteOnly); + f.close(); +} diff --git a/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/plugin_diskencryptentry.h b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/plugin_diskencryptentry.h new file mode 100644 index 0000000000..1638f6c988 --- /dev/null +++ b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/plugin_diskencryptentry.h @@ -0,0 +1,30 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#ifndef DISKENCRYPTENTRY_H +#define DISKENCRYPTENTRY_H + +#include "dfmplugin_disk_encrypt_global.h" + +#include + +namespace dfmplugin_diskenc { + +class DFMPLUGIN_DISK_ENCRYPT_EXPORT DiskEncryptEntry : public dpf::Plugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "org.deepin.plugin.filemanager" FILE "diskencryptentry.json") + + // Plugin interface +public: + virtual void initialize() override; + virtual bool start() override; + +private: + void onComputerMenuSceneAdded(const QString &scene); + void processUnfinshedDecrypt(const QString &device); +}; +} + +#endif // DISKENCRYPTENTRY_H diff --git a/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/translate.sh b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/translate.sh new file mode 100755 index 0000000000..4bcc9f418e --- /dev/null +++ b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/translate.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +# SPDX-FileCopyrightText: 2022 - 2023 UnionTech Software Technology Co., Ltd. +# +# SPDX-License-Identifier: GPL-3.0-or-later + +lupdate ./ -ts -no-obsolete ../../../translations/disk-encrypt.ts +lupdate ./ -ts -no-obsolete ../../../translations/disk-encrypt_zh_CN.ts +lupdate ./ -ts -no-obsolete ../../../translations/disk-encrypt_zh_HK.ts +lupdate ./ -ts -no-obsolete ../../../translations/disk-encrypt_zh_TW.ts \ No newline at end of file diff --git a/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/utils/encryptutils.cpp b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/utils/encryptutils.cpp new file mode 100644 index 0000000000..1a34549e6b --- /dev/null +++ b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/utils/encryptutils.cpp @@ -0,0 +1,501 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#include "encryptutils.h" +#include "dfmplugin_disk_encrypt_global.h" + +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include + +Q_DECLARE_METATYPE(bool *) +Q_DECLARE_METATYPE(QString *) + +using namespace dfmplugin_diskenc; + +bool config_utils::exportKeyEnabled() +{ + auto cfg = Dtk::Core::DConfig::create("org.deepin.dde.file-manager", + "org.deepin.dde.file-manager.diskencrypt"); + cfg->deleteLater(); + return cfg->value("allowExportEncKey", true).toBool(); +} + +QString config_utils::cipherType() +{ + auto cfg = Dtk::Core::DConfig::create("org.deepin.dde.file-manager", + "org.deepin.dde.file-manager.diskencrypt"); + cfg->deleteLater(); + auto cipher = cfg->value("encryptAlgorithm", "sm4").toString(); + QStringList supportedCipher { "sm4", "aes" }; + if (!supportedCipher.contains(cipher)) + return "sm4"; + return cipher; +} + +bool fstab_utils::isFstabItem(const QString &mpt) +{ + if (mpt.isEmpty()) + return false; + + bool fstabed { false }; + struct fstab *fs; + setfsent(); + while ((fs = getfsent()) != nullptr) { + QString path = fs->fs_file; + if (mpt == path) { + fstabed = true; + break; + } + } + endfsent(); + return fstabed; +} + +int tpm_utils::checkTPM() +{ + return dpfSlotChannel->push("dfmplugin_encrypt_manager", "slot_TPMIsAvailablePro").toInt(); +} + +int tpm_utils::getRandomByTPM(int size, QString *output) +{ + return dpfSlotChannel->push("dfmplugin_encrypt_manager", "slot_GetRandomByTPMPro", size, output).toInt(); +} + +int tpm_utils::isSupportAlgoByTPM(const QString &algoName, bool *support) +{ + return dpfSlotChannel->push("dfmplugin_encrypt_manager", "slot_IsTPMSupportAlgoPro", algoName, support).toInt(); +} + +int tpm_utils::encryptByTPM(const QVariantMap &map) +{ + return dpfSlotChannel->push("dfmplugin_encrypt_manager", "slot_EncryptByTPMPro", map).toInt(); +} + +int tpm_utils::decryptByTPM(const QVariantMap &map, QString *psw) +{ + return dpfSlotChannel->push("dfmplugin_encrypt_manager", "slot_DecryptByTPMPro", map, psw).toInt(); +} + +int tpm_utils::ownerAuthStatus() +{ + return dpfSlotChannel->push("dfmplugin_encrypt_manager", "slot_OwnerAuthStatus").toInt(); +} + +int device_utils::encKeyType(const QString &dev) +{ + QDBusInterface iface(kDaemonBusName, + kDaemonBusPath, + kDaemonBusIface, + QDBusConnection::systemBus()); + if (iface.isValid()) { + QDBusReply reply = iface.call("QueryTPMToken", dev); + if (!reply.isValid()) return 0; + QString tokenJson = reply.value(); + if (tokenJson.isEmpty()) return 0; + + QJsonDocument doc = QJsonDocument::fromJson(tokenJson.toLocal8Bit()); + QJsonObject obj = doc.object(); + cacheToken(dev, obj.toVariantMap()); + QString usePin = obj.value("pin").toString(""); + if (usePin.isEmpty()) return 0; + if (usePin == "1") return 1; + if (usePin == "0") return 2; + } + return 0; +} + +int tpm_passphrase_utils::genPassphraseFromTPM(const QString &dev, const QString &pin, QString *passphrase) +{ + Q_ASSERT(passphrase); + + if ((tpm_utils::getRandomByTPM(kPasswordSize, passphrase) != 0) + || passphrase->isEmpty()) { + qCritical() << "TPM get random number failed!"; + return kTPMNoRandomNumber; + } + + const QString dirPath = kGlobalTPMConfigPath + dev; + QDir dir(dirPath); + if (!dir.exists()) + dir.mkpath(dirPath); + + QString sessionHashAlgo, sessionKeyAlgo, primaryHashAlgo, primaryKeyAlgo, minorHashAlgo, minorKeyAlgo; + if (!getAlgorithm(&sessionHashAlgo, &sessionKeyAlgo, &primaryHashAlgo, &primaryKeyAlgo, &minorHashAlgo, &minorKeyAlgo)) { + qCritical() << "TPM algo choice failed!"; + return kTPMMissingAlog; + } + + QVariantMap map { + { "PropertyKey_SessionHashAlgo", sessionHashAlgo }, + { "PropertyKey_SessionKeyAlgo", sessionKeyAlgo }, + { "PropertyKey_PrimaryHashAlgo", primaryHashAlgo }, + { "PropertyKey_PrimaryKeyAlgo", primaryKeyAlgo }, + { "PropertyKey_MinorHashAlgo", minorHashAlgo }, + { "PropertyKey_MinorKeyAlgo", minorKeyAlgo }, + { "PropertyKey_DirPath", dirPath }, + { "PropertyKey_Plain", *passphrase }, + }; + if (pin.isEmpty()) { + map.insert("PropertyKey_EncryptType", kUseTpmAndPcr); + map.insert("PropertyKey_Pcr", "7"); + map.insert("PropertyKey_PcrBank", primaryHashAlgo); + } else { + map.insert("PropertyKey_EncryptType", kUseTpmAndPrcAndPin); + map.insert("PropertyKey_Pcr", "7"); + map.insert("PropertyKey_PcrBank", primaryHashAlgo); + map.insert("PropertyKey_PinCode", pin); + } + + int err = tpm_utils::encryptByTPM(map); + if (err != 0) { + qCritical() << "save to TPM failed!!!"; + return TPMError(err); + } + + QSettings settings(dirPath + QDir::separator() + "algo.ini", QSettings::IniFormat); + settings.setValue(kConfigKeySessionHashAlgo, QVariant(sessionHashAlgo)); + settings.setValue(kConfigKeyPriKeyAlgo, QVariant(sessionKeyAlgo)); + settings.setValue(kConfigKeyPriHashAlgo, QVariant(primaryHashAlgo)); + settings.setValue(kConfigKeyPriKeyAlgo, QVariant(primaryKeyAlgo)); + + return kTPMNoError; +} + +QString tpm_passphrase_utils::getPassphraseFromTPM(const QString &dev, const QString &pin) +{ + const QString dirPath = kGlobalTPMConfigPath + dev; + QSettings tpmSets(dirPath + QDir::separator() + "algo.ini", QSettings::IniFormat); + const QString sessionHashAlgo = tpmSets.value(kConfigKeySessionHashAlgo).toString(); + const QString sessionKeyAlgo = tpmSets.value(kConfigKeySessionKeyAlgo).toString(); + const QString primaryHashAlgo = tpmSets.value(kConfigKeyPriHashAlgo).toString(); + const QString primaryKeyAlgo = tpmSets.value(kConfigKeyPriKeyAlgo).toString(); + QVariantMap map { + { "PropertyKey_EncryptType", (pin.isEmpty() ? kUseTpmAndPcr : kUseTpmAndPrcAndPin) }, + { "PropertyKey_SessionHashAlgo", (sessionHashAlgo.isEmpty() ? "sha256" : sessionHashAlgo) }, // TODO:gongheng need help by liangbo + { "PropertyKey_SessionKeyAlgo", (sessionKeyAlgo.isEmpty() ? "aes" : sessionKeyAlgo) }, + { "PropertyKey_PrimaryHashAlgo", primaryHashAlgo }, + { "PropertyKey_PrimaryKeyAlgo", primaryKeyAlgo }, + { "PropertyKey_DirPath", dirPath } + }; + + QString tokenDocPath = dirPath + QDir::separator() + "token.json"; + QFile file(tokenDocPath); + if (!file.open(QIODevice::ReadOnly)) { + qCritical() << "Failed to open token.json!"; + return ""; + } + QJsonDocument tokenDoc = QJsonDocument::fromJson(file.readAll()); + file.close(); + + QJsonObject obj = tokenDoc.object(); + if (!obj.contains("pcr") || !obj.contains("pcr-bank")) { + qCritical() << "Failed to get pcr or pcr-bank from token.json!"; + return ""; + } + const QString pcr = obj.value("pcr").toString(); + const QString pcr_bank = obj.value("pcr-bank").toString(); + if (!pin.isEmpty()) + map.insert("PropertyKey_PinCode", pin); + map.insert("PropertyKey_Pcr", pcr); + map.insert("PropertyKey_PcrBank", pcr_bank); + + QString passphrase; + int ok = tpm_utils::decryptByTPM(map, &passphrase); + if (ok != 0) { + qWarning() << "cannot acquire passphrase from TPM for device" + << dev; + } + + return passphrase; +} + +bool tpm_passphrase_utils::getAlgorithm(QString *sessionHashAlgo, QString *sessionKeyAlgo, + QString *primaryHashAlgo, QString *primaryKeyAlgo, + QString *minorHashAlgo, QString *minorKeyAlgo) +{ + bool re1 { false }; + bool re2 { false }; + bool re3 { false }; + bool re4 { false }; + bool re5 { false }; + bool re6 { false }; + tpm_utils::isSupportAlgoByTPM(kTPMSessionHashAlgo, &re1); + tpm_utils::isSupportAlgoByTPM(kTPMSessionKeyAlgo, &re2); + tpm_utils::isSupportAlgoByTPM(kTPMPrimaryHashAlgo, &re3); + tpm_utils::isSupportAlgoByTPM(kTPMPrimaryKeyAlgo, &re4); + tpm_utils::isSupportAlgoByTPM(kTPMMinorHashAlgo, &re5); + tpm_utils::isSupportAlgoByTPM(kTPMMinorKeyAlgo, &re6); + + if (re1 && re2 && re3 && re4 && re5 && re6) { + (*sessionHashAlgo) = kTPMSessionHashAlgo; + (*sessionKeyAlgo) = kTPMSessionKeyAlgo; + (*primaryHashAlgo) = kTPMPrimaryHashAlgo; + (*primaryKeyAlgo) = kTPMPrimaryKeyAlgo; + (*minorHashAlgo) = kTPMMinorHashAlgo; + (*minorKeyAlgo) = kTPMMinorKeyAlgo; + return true; + } + + re1 = false; + re2 = false; + re3 = false; + re4 = false; + re5 = false; + re6 = false; + tpm_utils::isSupportAlgoByTPM(kTCMSessionHashAlgo, &re1); + tpm_utils::isSupportAlgoByTPM(kTCMSessionKeyAlgo, &re2); + tpm_utils::isSupportAlgoByTPM(kTCMPrimaryHashAlgo, &re3); + tpm_utils::isSupportAlgoByTPM(kTCMPrimaryKeyAlgo, &re4); + tpm_utils::isSupportAlgoByTPM(kTCMMinorHashAlgo, &re5); + tpm_utils::isSupportAlgoByTPM(kTCMMinorKeyAlgo, &re6); + + if (re1 && re2 && re3 && re4 && re5 && re6) { + (*sessionHashAlgo) = kTCMSessionHashAlgo; + (*sessionKeyAlgo) = kTCMSessionKeyAlgo; + (*primaryHashAlgo) = kTCMPrimaryHashAlgo; + (*primaryKeyAlgo) = kTCMPrimaryKeyAlgo; + (*minorHashAlgo) = kTCMMinorHashAlgo; + (*minorKeyAlgo) = kTCMMinorKeyAlgo; + return true; + } + + return false; +} + +QString recovery_key_utils::formatRecoveryKey(const QString &raw) +{ + static const int kSectionLen = 6; + QString formatted = raw; + formatted.remove("-"); + int len = formatted.length(); + if (len > 24) + formatted = formatted.mid(0, 24); + + len = formatted.length(); + int dashCount = len / kSectionLen; + if (len % kSectionLen == 0) + dashCount -= 1; + for (; dashCount > 0; dashCount--) + formatted.insert(dashCount * kSectionLen, '-'); + return formatted; +} + +BlockDev device_utils::createBlockDevice(const QString &devObjPath) +{ + using namespace dfmmount; + auto monitor = DDeviceManager::instance()->getRegisteredMonitor(DeviceType::kBlockDevice).objectCast(); + Q_ASSERT(monitor); + return monitor->createDeviceById(devObjPath).objectCast(); +} + +int dialog_utils::showDialog(const QString &title, const QString &msg, DialogType type) +{ + QString icon; + switch (type) { + case kInfo: + icon = "dialog-information"; + break; + case kWarning: + icon = "dialog-warning"; + break; + case kError: + icon = "dialog-error"; + break; + } + Dtk::Widget::DDialog d; + if (isWayland()) + d.setWindowFlag(Qt::WindowStaysOnTopHint); + d.setTitle(title); + d.setMessage(msg); + d.setIcon(QIcon::fromTheme(icon)); + d.addButton(qApp->translate("dfmplugin_diskenc::ChgPassphraseDialog", "Confirm")); + return d.exec(); +} + +void device_utils::cacheToken(const QString &device, const QVariantMap &token) +{ + if (token.isEmpty()) { + QDir tmp("/tmp"); + tmp.rmpath(kGlobalTPMConfigPath + device); + return; + } + + auto makeFile = [](const QString &fileName, const QByteArray &content) { + QFile f(fileName); + if (!f.open(QIODevice::Truncate | QIODevice::WriteOnly)) { + qWarning() << "cannot cache token!" << fileName; + return false; + } + + f.write(content); + f.flush(); + f.close(); + return true; + }; + + QString devTpmConfigPath = kGlobalTPMConfigPath + device; + QDir tpmPath(devTpmConfigPath); + if (!tpmPath.exists()) + tpmPath.mkpath(devTpmConfigPath); + + QJsonObject obj = QJsonObject::fromVariantMap(token); + QJsonDocument doc(obj); + QByteArray iv = obj.value("iv").toString().toLocal8Bit(); + QByteArray keyPriv = obj.value("kek-priv").toString().toLocal8Bit(); + QByteArray keyPub = obj.value("kek-pub").toString().toLocal8Bit(); + QByteArray cipher = obj.value("enc").toString().toLocal8Bit(); + iv = QByteArray::fromBase64(iv); + keyPriv = QByteArray::fromBase64(keyPriv); + keyPub = QByteArray::fromBase64(keyPub); + cipher = QByteArray::fromBase64(cipher); + + bool ret = true; + ret &= makeFile(devTpmConfigPath + "/token.json", doc.toJson()); + ret &= makeFile(devTpmConfigPath + "/iv.bin", iv); + ret &= makeFile(devTpmConfigPath + "/key.priv", keyPriv); + ret &= makeFile(devTpmConfigPath + "/key.pub", keyPub); + ret &= makeFile(devTpmConfigPath + "/cipher.out", cipher); + + QSettings algo(devTpmConfigPath + "/algo.ini", QSettings::IniFormat); + algo.setValue("session_hash_algo", obj.value("session-hash-alg").toString()); + algo.setValue("session_key_algo", obj.value("session-key-alg").toString()); + algo.setValue("primary_hash_algo", obj.value("primary-hash-alg").toString()); + algo.setValue("primary_key_algo", obj.value("primary-key-alg").toString()); + + if (!ret) + tpmPath.rmpath(devTpmConfigPath); +} + +void dialog_utils::showTPMError(const QString &title, tpm_passphrase_utils::TPMError err) +{ + QString msg; + switch (err) { + case tpm_passphrase_utils::kTPMNoRandomNumber: + msg = QObject::tr("Cannot generate random number by TPM"); + break; + case tpm_passphrase_utils::kTPMMissingAlog: + msg = QObject::tr("No available encrypt algorithm."); + break; + case tpm_passphrase_utils::kTPMEncryptFailed: + msg = QObject::tr("TPM encrypt failed."); + break; + case tpm_passphrase_utils::kTPMLocked: + msg = QObject::tr("TPM is locked."); + break; + default: + break; + } + if (!msg.isEmpty()) + showDialog(title, msg, kError); +} + +bool dialog_utils::isWayland() +{ + return QApplication::platformName() == "wayland"; +} + +bool config_utils::enableEncrypt() +{ + auto cfg = Dtk::Core::DConfig::create("org.deepin.dde.file-manager", + "org.deepin.dde.file-manager.diskencrypt"); + cfg->deleteLater(); + return cfg->value("enableEncrypt", true).toBool(); +} + +int dialog_utils::showConfirmEncryptionDialog(const QString &device, bool needReboot) +{ + Dtk::Widget::DDialog dlg(qApp->activeWindow()); + if (isWayland()) + dlg.setWindowFlag(Qt::WindowStaysOnTopHint); + dlg.setIcon(QIcon::fromTheme("drive-harddisk-root")); + dlg.setTitle(QObject::tr("Confirm encrypt %1?").arg(device)); + QWidget *wid = new QWidget(&dlg); + QVBoxLayout *lay = new QVBoxLayout(wid); + QLabel *hint1 = new QLabel(QObject::tr("The current partition is about to be encrypted and cannot be canceled during " + "the encryption process, please confirm the encryption."), + wid); + hint1->setAlignment(Qt::AlignLeft); + hint1->setWordWrap(true); + lay->addWidget(hint1); + + QLabel *hint2 = new QLabel(QObject::tr("* After encrypting the partition, " + "the system cannot be rolled back to a lower version, " + "please confirm the encryption"), + wid); + hint2->setAlignment(Qt::AlignLeft); + hint2->setWordWrap(true); + QPalette pal = hint2->palette(); + pal.setColor(QPalette::WindowText, QColor("red")); + hint2->setPalette(pal); + lay->addWidget(hint2); + dlg.addContent(wid); + dlg.addButton(QObject::tr("Cancel")); + needReboot ? dlg.addButton(QObject::tr("Confirm and Reboot"), true, Dtk::Widget::DDialog::ButtonRecommend) + : dlg.addButton(QObject::tr("Confirm"), true, Dtk::Widget::DDialog::ButtonRecommend); + return dlg.exec(); +} + +int dialog_utils::showConfirmDecryptionDialog(const QString &device, bool needReboot) +{ + Dtk::Widget::DDialog dlg(qApp->activeWindow()); + if (isWayland()) + dlg.setWindowFlag(Qt::WindowStaysOnTopHint); + dlg.setIcon(QIcon::fromTheme("drive-harddisk-root")); + dlg.setTitle(QObject::tr("Decrypt %1?").arg(device)); + dlg.setMessage(QObject::tr("Decryption can take a long time, " + "so make sure power is connected until the decryption is complete.")); + dlg.addButton(QObject::tr("Cancel")); + QString confirmTxt = needReboot ? QObject::tr("Confirm and Reboot") : QObject::tr("Confirm"); + dlg.addButton(confirmTxt, true, Dtk::Widget::DDialog::ButtonRecommend); + return dlg.exec(); +} + +QString tpm_passphrase_utils::getPassphraseFromTPM_NonBlock(const QString &dev, const QString &pin) +{ + QEventLoop loop; + QFutureWatcher watcher; + QObject::connect(&watcher, &QFutureWatcher::finished, [&] { loop.exit(); }); + watcher.setFuture(QtConcurrent::run(tpm_passphrase_utils::getPassphraseFromTPM, + dev, + pin)); + + qApp->setOverrideCursor(Qt::WaitCursor); + loop.exec(); + qApp->restoreOverrideCursor(); + return watcher.result(); +} + +int tpm_passphrase_utils::genPassphraseFromTPM_NonBlock(const QString &dev, const QString &pin, QString *passphrase) +{ + QEventLoop loop; + QFutureWatcher watcher; + QObject::connect(&watcher, &QFutureWatcher::finished, [&] { loop.exit(); }); + watcher.setFuture(QtConcurrent::run(tpm_passphrase_utils::genPassphraseFromTPM, + dev, + pin, + passphrase)); + + qApp->setOverrideCursor(Qt::WaitCursor); + loop.exec(); + qApp->restoreOverrideCursor(); + return watcher.result(); +} diff --git a/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/utils/encryptutils.h b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/utils/encryptutils.h new file mode 100644 index 0000000000..be676dada5 --- /dev/null +++ b/src/plugins/filemanager/dfmplugin-disk-encrypt-entry/utils/encryptutils.h @@ -0,0 +1,83 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#ifndef ENCRYPTUTILS_H +#define ENCRYPTUTILS_H + +#include +#include + +namespace dfmmount { +class DBlockDevice; +} + +typedef QSharedPointer BlockDev; + +namespace dfmplugin_diskenc { + +namespace tpm_utils { +int checkTPM(); +int getRandomByTPM(int size, QString *output); +int isSupportAlgoByTPM(const QString &algoName, bool *support); +int encryptByTPM(const QVariantMap &map); +int decryptByTPM(const QVariantMap &map, QString *psw); +int ownerAuthStatus(); +} // namespace tpm_utils + +namespace tpm_passphrase_utils { + +enum TPMError { + kTPMNoError, + kTPMEncryptFailed, + kTPMLocked, + kTPMNoRandomNumber, + kTPMMissingAlog, +}; + +bool getAlgorithm(QString *sessionHashAlgo, QString *sessionKeyAlgo, + QString *primaryHashAlgo, QString *primaryKeyAlgo, + QString *minorHashAlgo, QString *minorKeyAlgo); +int genPassphraseFromTPM(const QString &dev, const QString &pin, QString *passphrase); +QString getPassphraseFromTPM(const QString &dev, const QString &pin); + +int genPassphraseFromTPM_NonBlock(const QString &dev, const QString &pin, QString *passphrase); +QString getPassphraseFromTPM_NonBlock(const QString &dev, const QString &pin); +} + +namespace config_utils { +bool exportKeyEnabled(); +QString cipherType(); +bool enableEncrypt(); +} // namespace config_utils + +namespace recovery_key_utils { +QString formatRecoveryKey(const QString &raw); +} + +namespace fstab_utils { +bool isFstabItem(const QString &mpt); +} // namespace fstab_utils + +namespace device_utils { +int encKeyType(const QString &dev); +void cacheToken(const QString &device, const QVariantMap &token); +BlockDev createBlockDevice(const QString &devObjPath); +} // namespace device_utils + +namespace dialog_utils { +enum DialogType { + kInfo, + kWarning, + kError, +}; +int showDialog(const QString &title, const QString &msg, DialogType type); +int showConfirmEncryptionDialog(const QString &device, bool needReboot); +int showConfirmDecryptionDialog(const QString &device, bool needReboot); +void showTPMError(const QString &title, tpm_passphrase_utils::TPMError err); +bool isWayland(); +} + +} // namespace dfmplugin_diskenc + +#endif // ENCRYPTUTILS_H diff --git a/src/plugins/filemanager/dfmplugin-encrypt-manager/CMakeLists.txt b/src/plugins/filemanager/dfmplugin-encrypt-manager/CMakeLists.txt new file mode 100644 index 0000000000..acead1ca02 --- /dev/null +++ b/src/plugins/filemanager/dfmplugin-encrypt-manager/CMakeLists.txt @@ -0,0 +1,22 @@ +cmake_minimum_required(VERSION 3.0) + +project(dfmplugin-encrypt-manager) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +find_package(Qt5 COMPONENTS Core REQUIRED) + +file(GLOB_RECURSE SRC + ${CMAKE_CURRENT_SOURCE_DIR}/*.h + ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/*.json) + +add_library(${PROJECT_NAME} SHARED + ${SRC}) + +set_target_properties(${PROJECT_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${DFM_BUILD_PLUGIN_FILEMANAGER_DIR}) + +target_link_libraries(${PROJECT_NAME} PUBLIC + Qt5::Core) + +install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION ${DFM_PLUGIN_FILEMANAGER_CORE_DIR}) diff --git a/src/plugins/filemanager/dfmplugin-encrypt-manager/encrypt_manager_global.h b/src/plugins/filemanager/dfmplugin-encrypt-manager/encrypt_manager_global.h new file mode 100644 index 0000000000..0085b2393a --- /dev/null +++ b/src/plugins/filemanager/dfmplugin-encrypt-manager/encrypt_manager_global.h @@ -0,0 +1,74 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#ifndef ENCRYPT_MANAGER_GLOBAL_H +#define ENCRYPT_MANAGER_GLOBAL_H + +#define DPENCRYPTMANAGER_NAMESPACE dfmplugin_encrypt_manager +#define DPENCRYPTMANAGER_BEGIN_NAMESPACE namespace dfmplugin_encrypt_manager { +#define DPENCRYPTMANAGER_END_NAME } +#define DPENCRYPTMANAGER_USE_NAMESPACE using namespace dfmplugin_encrypt_manager; + +#include + +namespace dfmplugin_encrypt_manager { + +enum TPMType { + kUnknow = 0, + kTpmAndPcr, + kTpmAndPin, + kTpmAndPcrAndPin +}; + +struct EncryptParams +{ + TPMType type; + QString sessionHashAlgo; + QString sessionKeyAlgo; + QString primaryHashAlgo; + QString primaryKeyAlgo; + QString minorHashAlgo; + QString minorKeyAlgo; + QString dirPath; + QString plain; + + QString pinCode; + + QString pcr; + QString pcr_bank; +}; + +struct DecryptParams +{ + TPMType type; + QString sessionHashAlgo; + QString sessionKeyAlgo; + QString primaryHashAlgo; + QString primaryKeyAlgo; + QString dirPath; + + QString pinCode; + + QString pcr; + QString pcr_bank; +}; + +namespace PropertyKey { +inline constexpr char kEncryptType[] { "PropertyKey_EncryptType" }; +inline constexpr char kSessionHashAlgo[] { "PropertyKey_SessionHashAlgo" }; +inline constexpr char kSessionKeyAlgo[] { "PropertyKey_SessionKeyAlgo" }; +inline constexpr char kPrimaryHashAlgo[] { "PropertyKey_PrimaryHashAlgo" }; +inline constexpr char kPrimaryKeyAlgo[] { "PropertyKey_PrimaryKeyAlgo" }; +inline constexpr char kMinorHashAlgo[] { "PropertyKey_MinorHashAlgo" }; +inline constexpr char kMinorKeyAlgo[] { "PropertyKey_MinorKeyAlgo" }; +inline constexpr char kDirPath[] { "PropertyKey_DirPath" }; +inline constexpr char kPlain[] { "PropertyKey_Plain" }; +inline constexpr char kPinCode[] { "PropertyKey_PinCode" }; +inline constexpr char kPcr[] { "PropertyKey_Pcr" }; +inline constexpr char kPcrBank[] { "PropertyKey_PcrBank" }; +} + +} + +#endif // ENCRYPT_MANAGER_GLOBAL_H diff --git a/src/plugins/filemanager/dfmplugin-encrypt-manager/encryptmanager.cpp b/src/plugins/filemanager/dfmplugin-encrypt-manager/encryptmanager.cpp new file mode 100644 index 0000000000..b361d891ec --- /dev/null +++ b/src/plugins/filemanager/dfmplugin-encrypt-manager/encryptmanager.cpp @@ -0,0 +1,19 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#include "encryptmanager.h" +#include "events/eventreceiver.h" + +DPENCRYPTMANAGER_USE_NAMESPACE + + +void EncryptManager::initialize() +{ + EventReceiver::instance(); +} + +bool EncryptManager::start() +{ + return true; +} diff --git a/src/plugins/filemanager/dfmplugin-encrypt-manager/encryptmanager.h b/src/plugins/filemanager/dfmplugin-encrypt-manager/encryptmanager.h new file mode 100644 index 0000000000..4a2c99b79f --- /dev/null +++ b/src/plugins/filemanager/dfmplugin-encrypt-manager/encryptmanager.h @@ -0,0 +1,40 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#ifndef ENCRYPTMANAGER_H +#define ENCRYPTMANAGER_H + +#include "encrypt_manager_global.h" + +#include + +namespace dfmplugin_encrypt_manager { + +class EncryptManager : public dpf::Plugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "org.deepin.plugin.filemanager" FILE "encryptmanager.json") + + DPF_EVENT_NAMESPACE(DPENCRYPTMANAGER_NAMESPACE) + // slot events + DPF_EVENT_REG_SLOT(slot_TPMIsAvailable) + DPF_EVENT_REG_SLOT(slot_GetRandomByTPM) + DPF_EVENT_REG_SLOT(slot_IsTPMSupportAlgo) + DPF_EVENT_REG_SLOT(slot_EncryptByTPM) + DPF_EVENT_REG_SLOT(slot_DecryptByTPM) + DPF_EVENT_REG_SLOT(slot_TPMIsAvailablePro) + DPF_EVENT_REG_SLOT(slot_GetRandomByTPMPro) + DPF_EVENT_REG_SLOT(slot_IsTPMSupportAlgoPro) + DPF_EVENT_REG_SLOT(slot_EncryptByTPMPro) + DPF_EVENT_REG_SLOT(slot_DecryptByTPMPro) + DPF_EVENT_REG_SLOT(slot_OwnerAuthStatus) + +public: + void initialize() override; + bool start() override; +}; + +} + +#endif // ENCRYPTMANAGER_H diff --git a/src/plugins/filemanager/dfmplugin-encrypt-manager/encryptmanager.json b/src/plugins/filemanager/dfmplugin-encrypt-manager/encryptmanager.json new file mode 100644 index 0000000000..301fdd0bfa --- /dev/null +++ b/src/plugins/filemanager/dfmplugin-encrypt-manager/encryptmanager.json @@ -0,0 +1,14 @@ +{ + "Name" : "dfmplugin-encrypt-manager", + "Version" : "1.0.0", + "CompatVersion" : "1.0.0", + "Vendor" : "The Uniontech Software Technology Co., Ltd.", + "Copyright" : "Copyright (C) 2021 Uniontech Software Technology Co., Ltd.", + "License" : [ + ], + "Category" : "", + "Description" : "The encrypt manager plugin for the filemanager.", + "UrlLink" : "https://www.uniontech.com", + "Depends" : [ + ] +} diff --git a/src/plugins/filemanager/dfmplugin-encrypt-manager/events/eventreceiver.cpp b/src/plugins/filemanager/dfmplugin-encrypt-manager/events/eventreceiver.cpp new file mode 100644 index 0000000000..d4eb18a62d --- /dev/null +++ b/src/plugins/filemanager/dfmplugin-encrypt-manager/events/eventreceiver.cpp @@ -0,0 +1,235 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#include "eventreceiver.h" +#include "tpm/tpmwork.h" + +#include + +Q_DECLARE_METATYPE(QString *) +Q_DECLARE_METATYPE(bool *) + +DPENCRYPTMANAGER_USE_NAMESPACE + +EventReceiver *EventReceiver::instance() +{ + static EventReceiver ins; + return &ins; +} + +bool EventReceiver::tpmIsAvailable() +{ + TPMWork tpm; + return tpm.checkTPMAvailable(); +} + +bool EventReceiver::getRandomByTpm(int size, QString *output) +{ + TPMWork tpm; + if (!tpm.getRandom(size, output)) + return false; + + // Determine whether the password is a hexadecimal character + QString out = *output; + int count = out.size(); + if (count != size) { + qCritical() << "Vault: random password create error! The error password is %1" << out; + return false; + } + for (int i = 0; i < count; ++i) { + if (!((out[i] >= '0' && out[i] <= '9') || (out[i] >= 'a' && out[i] <= 'f'))) { + qCritical() << "Vault: random password create error! The error password is %1" << out; + return false; + } + } + return true; +} + +bool EventReceiver::isTpmSupportAlgo(const QString &algoName, bool *support) +{ + if (algoName.isEmpty()) + return false; + + TPMWork tpm; + return tpm.isSupportAlgo(algoName, support); +} + +bool EventReceiver::encrypyByTpm(const QString &hashAlgo, const QString &keyAlgo, const QString &keyPin, const QString &password, const QString &dirPath) +{ + TPMWork tpm; + return tpm.encrypt(hashAlgo, keyAlgo, keyPin, password, dirPath); +} + +bool EventReceiver::decryptByTpm(const QString &keyPin, const QString &dirPath, QString *pwd) +{ + TPMWork tpm; + return tpm.decrypt(keyPin, dirPath, pwd); +} + +int EventReceiver::tpmIsAvailableProcess() +{ + TPMWork tpm; + return tpm.checkTPMAvailbableByTools(); +} + +int EventReceiver::getRandomByTpmProcess(int size, QString *output) +{ + TPMWork tpm; + return tpm.getRandomByTools(size, output); +} + +int EventReceiver::isTpmSupportAlgoProcess(const QString &algoName, bool *support) +{ + TPMWork tpm; + return tpm.isSupportAlgoByTools(algoName, support); +} + +int EventReceiver::encryptByTpmProcess(const QVariantMap &encryptParams) +{ + if (!encryptParams.contains(PropertyKey::kEncryptType)) + return -1; + + int type = encryptParams.value(PropertyKey::kEncryptType).toInt(); + if (type != 1 && type != 2 && type != 3) + return -1; + + if (!encryptParams.contains(PropertyKey::kSessionHashAlgo) + || !encryptParams.contains(PropertyKey::kSessionKeyAlgo) + || !encryptParams.contains(PropertyKey::kPrimaryHashAlgo) + || !encryptParams.contains(PropertyKey::kPrimaryKeyAlgo) + || !encryptParams.contains(PropertyKey::kMinorHashAlgo) + || !encryptParams.contains(PropertyKey::kMinorKeyAlgo) + || !encryptParams.contains(PropertyKey::kDirPath) + || !encryptParams.contains(PropertyKey::kPlain)) { + return -1; + } + + if (type == 1) { + if (!encryptParams.contains(PropertyKey::kPcr) + || !encryptParams.contains(PropertyKey::kPcrBank)) { + return -1; + } + } else if (type == 2) { + if (!encryptParams.contains(PropertyKey::kPinCode)) { + return -1; + } + } else if (type == 3) { + if (!encryptParams.contains(PropertyKey::kPcr) + || !encryptParams.contains(PropertyKey::kPcrBank) + || !encryptParams.contains(PropertyKey::kPinCode)) { + return -1; + } + } + + EncryptParams params; + params.sessionHashAlgo = encryptParams.value(PropertyKey::kSessionHashAlgo).toString(); + params.sessionKeyAlgo = encryptParams.value(PropertyKey::kSessionKeyAlgo).toString(); + params.primaryHashAlgo = encryptParams.value(PropertyKey::kPrimaryHashAlgo).toString(); + params.primaryKeyAlgo = encryptParams.value(PropertyKey::kPrimaryKeyAlgo).toString(); + params.minorHashAlgo = encryptParams.value(PropertyKey::kMinorHashAlgo).toString(); + params.minorKeyAlgo = encryptParams.value(PropertyKey::kMinorKeyAlgo).toString(); + params.dirPath = encryptParams.value(PropertyKey::kDirPath).toString(); + params.plain = encryptParams.value(PropertyKey::kPlain).toString(); + if (type == 1) { + params.type = kTpmAndPcr; + params.pcr = encryptParams.value(PropertyKey::kPcr).toString(); + params.pcr_bank = encryptParams.value(PropertyKey::kPcrBank).toString(); + } else if (type == 2) { + params.type = kTpmAndPin; + params.pinCode = encryptParams.value(PropertyKey::kPinCode).toString(); + } else if (type == 3) { + params.type = kTpmAndPcrAndPin; + params.pcr = encryptParams.value(PropertyKey::kPcr).toString(); + params.pcr_bank = encryptParams.value(PropertyKey::kPcrBank).toString(); + params.pinCode = encryptParams.value(PropertyKey::kPinCode).toString(); + } + TPMWork tpm; + return tpm.encryptByTools(params); +} + +int EventReceiver::decryptByTpmProcess(const QVariantMap &decryptParams, QString *pwd) +{ + if (!decryptParams.contains(PropertyKey::kEncryptType)) + return -1; + + int type = decryptParams.value(PropertyKey::kEncryptType).toInt(); + if (type != 1 && type != 2 && type != 3) + return -1; + + if (!decryptParams.contains(PropertyKey::kSessionHashAlgo) + || !decryptParams.contains(PropertyKey::kSessionKeyAlgo) + || !decryptParams.contains(PropertyKey::kPrimaryHashAlgo) + || !decryptParams.contains(PropertyKey::kPrimaryKeyAlgo) + || !decryptParams.contains(PropertyKey::kDirPath)) { + return false; + } + + if (type == 1) { + if (!decryptParams.contains(PropertyKey::kPcr) + || !decryptParams.contains(PropertyKey::kPcrBank)) { + return false; + } + } else if (type == 2) { + if (!decryptParams.contains(PropertyKey::kPinCode)) { + return false; + } + } else if (type == 3) { + if (!decryptParams.contains(PropertyKey::kPcr) + || !decryptParams.contains(PropertyKey::kPcrBank) + || !decryptParams.contains(PropertyKey::kPinCode)) { + return false; + } + } + + DecryptParams params; + params.sessionHashAlgo = decryptParams.value(PropertyKey::kSessionHashAlgo).toString(); + params.sessionKeyAlgo = decryptParams.value(PropertyKey::kSessionKeyAlgo).toString(); + params.primaryHashAlgo = decryptParams.value(PropertyKey::kPrimaryHashAlgo).toString(); + params.primaryKeyAlgo = decryptParams.value(PropertyKey::kPrimaryKeyAlgo).toString(); + params.dirPath = decryptParams.value(PropertyKey::kDirPath).toString(); + if (type == 1) { + params.type = kTpmAndPcr; + params.pcr = decryptParams.value(PropertyKey::kPcr).toString(); + params.pcr_bank = decryptParams.value(PropertyKey::kPcrBank).toString(); + } else if (type == 2) { + params.type = kTpmAndPin; + params.pinCode = decryptParams.value(PropertyKey::kPinCode).toString(); + } else if (type == 3) { + params.type = kTpmAndPcrAndPin; + params.pcr = decryptParams.value(PropertyKey::kPcr).toString(); + params.pcr_bank = decryptParams.value(PropertyKey::kPcrBank).toString(); + params.pinCode = decryptParams.value(PropertyKey::kPinCode).toString(); + } + + TPMWork tpm; + return tpm.decryptByTools(params, pwd); +} + +int EventReceiver::ownerAuthStatus() +{ + return TPMWork().ownerAuthStatus(); +} + +EventReceiver::EventReceiver(QObject *parent) + : QObject(parent) +{ + initConnection(); +} + +void EventReceiver::initConnection() +{ + // slot event + dpfSlotChannel->connect("dfmplugin_encrypt_manager", "slot_TPMIsAvailable", this, &EventReceiver::tpmIsAvailable); + dpfSlotChannel->connect("dfmplugin_encrypt_manager", "slot_GetRandomByTPM", this, &EventReceiver::getRandomByTpm); + dpfSlotChannel->connect("dfmplugin_encrypt_manager", "slot_IsTPMSupportAlgo", this, &EventReceiver::isTpmSupportAlgo); + dpfSlotChannel->connect("dfmplugin_encrypt_manager", "slot_EncryptByTPM", this, &EventReceiver::encrypyByTpm); + dpfSlotChannel->connect("dfmplugin_encrypt_manager", "slot_DecryptByTPM", this, &EventReceiver::decryptByTpm); + + dpfSlotChannel->connect("dfmplugin_encrypt_manager", "slot_TPMIsAvailablePro", this, &EventReceiver::tpmIsAvailableProcess); + dpfSlotChannel->connect("dfmplugin_encrypt_manager", "slot_GetRandomByTPMPro", this, &EventReceiver::getRandomByTpmProcess); + dpfSlotChannel->connect("dfmplugin_encrypt_manager", "slot_IsTPMSupportAlgoPro", this, &EventReceiver::isTpmSupportAlgoProcess); + dpfSlotChannel->connect("dfmplugin_encrypt_manager", "slot_EncryptByTPMPro", this, &EventReceiver::encryptByTpmProcess); + dpfSlotChannel->connect("dfmplugin_encrypt_manager", "slot_DecryptByTPMPro", this, &EventReceiver::decryptByTpmProcess); + dpfSlotChannel->connect("dfmplugin_encrypt_manager", "slot_OwnerAuthStatus", this, &EventReceiver::ownerAuthStatus); +} diff --git a/src/plugins/filemanager/dfmplugin-encrypt-manager/events/eventreceiver.h b/src/plugins/filemanager/dfmplugin-encrypt-manager/events/eventreceiver.h new file mode 100644 index 0000000000..325fa5e3b0 --- /dev/null +++ b/src/plugins/filemanager/dfmplugin-encrypt-manager/events/eventreceiver.h @@ -0,0 +1,42 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#ifndef EVENTRECEIVER_H +#define EVENTRECEIVER_H + +#include "encrypt_manager_global.h" + +#include + +namespace dfmplugin_encrypt_manager { + +class EventReceiver : public QObject +{ + Q_OBJECT +public: + static EventReceiver *instance(); + +public Q_SLOTS: + bool tpmIsAvailable(); + bool getRandomByTpm(int size, QString *output); + bool isTpmSupportAlgo(const QString &algoName, bool *support); + bool encrypyByTpm(const QString &hashAlgo, const QString &keyAlgo, + const QString &keyPin, const QString &password, + const QString &dirPath); + bool decryptByTpm(const QString &keyPin, const QString &dirPath, QString *pwd); + + int tpmIsAvailableProcess(); + int getRandomByTpmProcess(int size, QString *output); + int isTpmSupportAlgoProcess(const QString &algoName, bool *support); + int encryptByTpmProcess(const QVariantMap &encryptParams); + int decryptByTpmProcess(const QVariantMap &decryptParams, QString *pwd); + int ownerAuthStatus(); + +private: + explicit EventReceiver(QObject *parent = nullptr); + void initConnection(); +}; +} + +#endif // EVENTRECEIVER_H diff --git a/src/plugins/filemanager/dfmplugin-encrypt-manager/tpm/tpmwork.cpp b/src/plugins/filemanager/dfmplugin-encrypt-manager/tpm/tpmwork.cpp new file mode 100644 index 0000000000..65c23a21da --- /dev/null +++ b/src/plugins/filemanager/dfmplugin-encrypt-manager/tpm/tpmwork.cpp @@ -0,0 +1,394 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#include "tpmwork.h" + +#include +#include +#include +#include + +typedef enum { + kCTpmAndPcr, + kCTpmAndPin, + kCTpmAndPcrAndPin +} TpmProType; + +typedef struct +{ + TpmProType type; + char *sessionHashAlgo; + char *sessionKeyAlgo; + char *primaryHashAlgo; + char *primaryKeyAlgo; + char *minorHashAlgo; + char *minorKeyAlgo; + char *dirPath; + char *plain; + + char *pinCode; + + char *pcr; + char *pcr_bank; +} Utpm2EncryptParamsByTools; + +typedef struct +{ + TpmProType type; + char *sessionHashAlgo; + char *sessionKeyAlgo; + char *primaryHashAlgo; + char *primaryKeyAlgo; + char *dirPath; + + char *pinCode; + + char *pcr; + char *pcr_bank; +} Utpm2DecryptParamsByTools; + +inline constexpr int kTpmOutTextMaxSize { 3000 }; +inline constexpr char kTpmLibName[] { "libutpm2.so" }; +inline constexpr char kTpmEncryptFileName[] { "tpm_encrypt.txt" }; + +DPENCRYPTMANAGER_USE_NAMESPACE + +TPMWork::TPMWork(QObject *parent) + : QObject(parent), tpmLib(new QLibrary(kTpmLibName)) +{ + if (!tpmLib->load()) + qWarning() << "Vault: load utpm2 failed, the error is " << tpmLib->errorString(); +} + +TPMWork::~TPMWork() +{ + if (tpmLib) { + tpmLib->unload(); + delete tpmLib; + tpmLib = nullptr; + } +} + +bool TPMWork::checkTPMAvailable() +{ + if (!tpmLib->isLoaded()) + return false; + + QString output; + return getRandom(2, &output); +} + +bool TPMWork::getRandom(int size, QString *output) +{ + if (!tpmLib->isLoaded()) + return false; + + if (size % 2 != 0 || size < 2 || size > 64) { + qCritical() << "Vault: random size must be even and greater than or equal to 2 and less than or equal to 64!"; + return false; + } + + typedef bool (*p_get_random)(uint16_t * size, uint8_t ranbytes[]); + p_get_random utpm2_get_random = (p_get_random)tpmLib->resolve("utpm2_get_random"); + if (utpm2_get_random) { + uint16_t len = size / 2; + uint8_t *random = (uint8_t *)malloc(sizeof(uint8_t) * len); + memset(random, 0, sizeof(uint8_t) * len); + if (utpm2_get_random(&len, random)) { + char *out = (char *)malloc(sizeof(uint8_t) * size + 1); + memset(out, 0, sizeof(uint8_t) * size + 1); + for (size_t i = 0; i < len; ++i) { + sprintf(out + (i * 2), "%02x", random[i]); + } + *output = QString(out); + free(random); + free(out); + return true; + } + } + return false; +} + +bool TPMWork::isSupportAlgo(const QString &algoName, bool *support) +{ + if (!tpmLib->isLoaded()) + return false; + + typedef bool (*p_check_algo)(const char *alg); + p_check_algo utpm2_check_algo = (p_check_algo)tpmLib->resolve("utpm2_check_alg"); + if (utpm2_check_algo) { + QByteArray arAlgoName = algoName.toUtf8(); + if (utpm2_check_algo(arAlgoName.data())) { + *support = true; + } else { + *support = false; + } + return true; + } + + return false; +} + +bool TPMWork::initTpm2(const QString &hashAlgo, const QString &keyAlgo, const QString &keyPin, const QString &dirPath) +{ + if (!tpmLib->isLoaded()) + return false; + + typedef bool (*p_init)(char *algdetail, char *galg, const char *auth, const char *dir); + p_init utpm2_init = (p_init)tpmLib->resolve("utpm2_init"); + if (utpm2_init) { + QByteArray arKeyAlgo = keyAlgo.toUtf8(); + QByteArray arHashAlgo = hashAlgo.toUtf8(); + QByteArray arKeyPin = keyPin.toUtf8(); + QByteArray arDir = dirPath.toUtf8(); + if (utpm2_init(arKeyAlgo.data(), arHashAlgo.data(), arKeyPin.data(), arDir.data())) { + return true; + } else { + qCritical() << "Vault: utpm2_init return false!"; + } + } else { + qCritical() << "Vault: resolve utpm2_init failed!"; + } + return false; +} + +bool TPMWork::encrypt(const QString &hashAlgo, const QString &keyAlgo, const QString &keyPin, const QString &password, const QString &dirPath) +{ + if (!initTpm2(hashAlgo, keyAlgo, keyPin, dirPath)) { + return false; + } + + typedef int (*p_encrypt_decrypt)(const char *dir, bool isdecrypt, const char *auth, uint8_t inbytes[], uint8_t outbytes[], uint16_t *size); + p_encrypt_decrypt utpm2_encrypt_decrypt = (p_encrypt_decrypt)tpmLib->resolve("utpm2_encrypt_decrypt"); + if (utpm2_encrypt_decrypt) { + QByteArray arDir = dirPath.toUtf8(); + QByteArray arKeyPin = keyPin.toUtf8(); + QByteArray arrPassword = password.toUtf8(); + uint16_t len = static_cast(arrPassword.size()); + uint8_t *inbuffer = reinterpret_cast(arrPassword.data()); + uint8_t out_text[kTpmOutTextMaxSize] = { 0 }; + if (utpm2_encrypt_decrypt(arDir.data(), false, arKeyPin.data(), inbuffer, out_text, &len)) { + QFile file(dirPath + QDir::separator() + kTpmEncryptFileName); + if (file.open(QIODevice::WriteOnly | QIODevice::Text)) { + file.write(reinterpret_cast(out_text), len); + file.close(); + return true; + } else { + qCritical() << "Vault: open encrypt file failed!"; + } + } else { + qCritical() << "Vault: utpm2_encry_decrypt return false!"; + } + } else { + qCritical() << "Vault: resolve utpm2_encry_decrypt failed!"; + } + return false; +} + +bool TPMWork::decrypt(const QString &keyPin, const QString &dirPath, QString *psw) +{ + if (!tpmLib->isLoaded()) + return false; + + typedef int (*p_encrypt_decrypt)(const char *dir, bool isdecrypt, const char *auth, uint8_t inbytes[], uint8_t outbytes[], uint16_t *size); + p_encrypt_decrypt utpm2_encrypt_decrypt = (p_encrypt_decrypt)tpmLib->resolve("utpm2_encrypt_decrypt"); + if (utpm2_encrypt_decrypt) { + QByteArray arDir = QString(dirPath).toUtf8(); + QByteArray arKeyPin = keyPin.toUtf8(); + QFile file(dirPath + QDir::separator() + kTpmEncryptFileName); + if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { + QByteArray ciphertext = file.readAll(); + file.close(); + uint16_t len = static_cast(ciphertext.size()); + uint8_t out_text[kTpmOutTextMaxSize] = { 0 }; + uint8_t *inbuffer = reinterpret_cast(ciphertext.data()); + if (utpm2_encrypt_decrypt(arDir.data(), true, arKeyPin.data(), inbuffer, out_text, &len)) { + *psw = QString::fromUtf8(reinterpret_cast(out_text), len); + return true; + } else { + qCritical() << "Vault: utpm2_encry_decrypt return failed!"; + } + } else { + qCritical() << "Vault: open encrypt file failed!"; + } + } else { + qCritical() << "Vault: resolve utpm2_encry_decrypt failed!"; + } + return false; +} + +int TPMWork::checkTPMAvailbableByTools() +{ + if (!tpmLib->isLoaded()) + return -1; + + typedef int (*p_utpm2_check_tpm_by_tools)(void); + p_utpm2_check_tpm_by_tools utpm2_check_tpm_by_tools = (p_utpm2_check_tpm_by_tools)tpmLib->resolve("utpm2_check_tpm_by_tools"); + if (!utpm2_check_tpm_by_tools) { + qCritical() << "resolve utpm2_check_tpm_by_tools failed!"; + return -1; + } + + return utpm2_check_tpm_by_tools(); +} + +int TPMWork::getRandomByTools(int size, QString *output) +{ + if (!tpmLib->isLoaded()) + return -1; + + typedef int (*p_utpm2_get_random_by_tools)(int size, char *buf); + p_utpm2_get_random_by_tools utpm2_get_random_by_tools = (p_utpm2_get_random_by_tools)tpmLib->resolve("utpm2_get_random_by_tools"); + if (!utpm2_get_random_by_tools) { + qCritical() << "resolve utpm2_get_random_by_tools failed!"; + return -1; + } + + char buf[129] = { 0 }; + int re = utpm2_get_random_by_tools(size, buf); + *output = QString::fromLatin1(buf); + return re; +} + +int TPMWork::isSupportAlgoByTools(const QString &algoName, bool *support) +{ + if (!tpmLib->isLoaded()) + return -1; + + typedef int (*p_utpm2_check_alg_by_tools)(const char *algo_name, bool *support); + p_utpm2_check_alg_by_tools utpm2_check_alg_by_tools = (p_utpm2_check_alg_by_tools)tpmLib->resolve("utpm2_check_alg_by_tools"); + if (!utpm2_check_alg_by_tools) { + qCritical() << "resolve utpm2_check_alg_by_tools failed!"; + return -1; + } + + QByteArray algo = algoName.toUtf8(); + int re = utpm2_check_alg_by_tools(algo.data(), support); + return re; +} + +int TPMWork::encryptByTools(const EncryptParams ¶ms) +{ + if (!tpmLib->isLoaded()) + return -1; + + typedef int (*utpm2_encrypt_by_tools)(const Utpm2EncryptParamsByTools *par); + utpm2_encrypt_by_tools func = (utpm2_encrypt_by_tools)tpmLib->resolve("utpm2_encrypt_by_tools"); + if (!func) { + qCritical() << "resolve utpm2_encrypt_by_tools failed!"; + return -1; + } + + Utpm2EncryptParamsByTools pa; + if (params.type == kTpmAndPcr) { + pa.type = kCTpmAndPcr; + } else if (params.type == kTpmAndPin) { + pa.type = kCTpmAndPin; + } else if (params.type == kTpmAndPcrAndPin) { + pa.type = kCTpmAndPcrAndPin; + } else { + return -1; + } + QByteArray arrSessionHashAlgo = params.sessionHashAlgo.toUtf8(); + pa.sessionHashAlgo = arrSessionHashAlgo.data(); + QByteArray arrSessionKeyAlgo = params.sessionKeyAlgo.toUtf8(); + pa.sessionKeyAlgo = arrSessionKeyAlgo.data(); + QByteArray arrPriHashAlgo = params.primaryHashAlgo.toUtf8(); + pa.primaryHashAlgo = arrPriHashAlgo.data(); + QByteArray arrPriKeyAlgo = params.primaryKeyAlgo.toUtf8(); + pa.primaryKeyAlgo = arrPriKeyAlgo.data(); + QByteArray arrMinHashAlgo = params.minorHashAlgo.toUtf8(); + pa.minorHashAlgo = arrMinHashAlgo.data(); + QByteArray arrMinKeyAlgo = params.minorKeyAlgo.toUtf8(); + pa.minorKeyAlgo = arrMinKeyAlgo.data(); + + QByteArray arrDirPath = params.dirPath.toUtf8(); + pa.dirPath = arrDirPath.data(); + QByteArray arrPlain = params.plain.toUtf8(); + pa.plain = arrPlain.data(); + + QByteArray arrPinCode = params.pinCode.toUtf8(); + pa.pinCode = arrPinCode.data(); + + QByteArray arrPcr = params.pcr.toUtf8(); + pa.pcr = arrPcr.data(); + QByteArray arrPcrBank = params.pcr_bank.toUtf8(); + pa.pcr_bank = arrPcrBank.data(); + + int re = func(&pa); + if (re != 0) { + qCritical() << "utpm2_encrypt_by_tools return false!"; + } + + return re; +} + +int TPMWork::decryptByTools(const DecryptParams ¶ms, QString *pwd) +{ + if (!tpmLib->isLoaded()) + return -1; + + typedef int (*utpm2_decrypt_by_tools)(const Utpm2DecryptParamsByTools *par, char *pwd, int *len); + utpm2_decrypt_by_tools fun = (utpm2_decrypt_by_tools)tpmLib->resolve("utpm2_decrypt_by_tools"); + if (!fun) { + qCritical() << "resolve utpm2_encry_decrypt failed!"; + return -1; + } + + Utpm2DecryptParamsByTools pa; + if (params.type == kTpmAndPcr) { + pa.type = kCTpmAndPcr; + } else if (params.type == kTpmAndPin) { + pa.type = kCTpmAndPin; + } else if (params.type == kTpmAndPcrAndPin) { + pa.type = kCTpmAndPcrAndPin; + } else { + return -1; + } + QByteArray arrSessionHashAlgo = params.sessionHashAlgo.toUtf8(); + pa.sessionHashAlgo = arrSessionHashAlgo.data(); + QByteArray arrSessionKeyAlgo = params.sessionKeyAlgo.toUtf8(); + pa.sessionKeyAlgo = arrSessionKeyAlgo.data(); + QByteArray arrPriHashAlgo = params.primaryHashAlgo.toUtf8(); + pa.primaryHashAlgo = arrPriHashAlgo.data(); + QByteArray arrPriKeyAlgo = params.primaryKeyAlgo.toUtf8(); + pa.primaryKeyAlgo = arrPriKeyAlgo.data(); + QByteArray arrDirPath = params.dirPath.toUtf8(); + pa.dirPath = arrDirPath.data(); + + QByteArray arrPinCode = params.pinCode.toUtf8(); + pa.pinCode = arrPinCode.data(); + + QByteArray arrPcr = params.pcr.toUtf8(); + pa.pcr = arrPcr.data(); + QByteArray arrPcrBank = params.pcr_bank.toUtf8(); + pa.pcr_bank = arrPcrBank.data(); + + char password[128] = { 0 }; + int length = sizeof(password) - 1; + int re = fun(&pa, password, &length); + if (re != 0) { + qCritical() << "utpm2_encry_decrypt return failed!"; + } + (*pwd) = QString::fromLatin1(password); + + return re; +} + +int TPMWork::ownerAuthStatus() +{ + typedef int (*utpm2_getcap_varprop_by_tools)(const char *prop_name, char *buf, size_t size); + utpm2_getcap_varprop_by_tools fun = (utpm2_getcap_varprop_by_tools)tpmLib->resolve("utpm2_getcap_varprop_by_tools"); + if (!fun) { + qCritical() << "resolve utpm2_encry_decrypt failed!"; + return -1; + } + char status[100]; + int ret = fun("TPM2_PT_PERMANENT.ownerAuthSet", status, sizeof(status)); + if (ret != 0) { + qCritical() << "cannot query ownerAuthSet"; + return -2; + } + return QString(status).toInt(); +} diff --git a/src/plugins/filemanager/dfmplugin-encrypt-manager/tpm/tpmwork.h b/src/plugins/filemanager/dfmplugin-encrypt-manager/tpm/tpmwork.h new file mode 100644 index 0000000000..1614ebc362 --- /dev/null +++ b/src/plugins/filemanager/dfmplugin-encrypt-manager/tpm/tpmwork.h @@ -0,0 +1,48 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#ifndef TPMWORK_H +#define TPMWORK_H + +#include "encrypt_manager_global.h" + +#include + +QT_BEGIN_NAMESPACE +class QLibrary; +QT_END_NAMESPACE + +namespace dfmplugin_encrypt_manager { + +class TPMWork : public QObject +{ + Q_OBJECT +public: + explicit TPMWork(QObject *parent = nullptr); + ~TPMWork(); + bool checkTPMAvailable(); + bool getRandom(int size, QString *output); + bool isSupportAlgo(const QString &algoName, bool *support); + bool encrypt(const QString &hashAlgo, const QString &keyAlgo, + const QString &keyPin, const QString &password, + const QString &dirPath); + bool decrypt(const QString &keyPin, const QString &dirPath, QString *psw); + + int checkTPMAvailbableByTools(); + int getRandomByTools(int size, QString *output); + int isSupportAlgoByTools(const QString &algoName, bool *support); + int encryptByTools(const EncryptParams ¶ms); + int decryptByTools(const DecryptParams ¶ms, QString *pwd); + int ownerAuthStatus(); + +private: + bool initTpm2(const QString &hashAlgo, const QString &keyAlgo, + const QString &keyPin, const QString &dirPath); + + QLibrary *tpmLib { nullptr }; +}; + +} + +#endif // TPMWORK_H diff --git a/src/services/CMakeLists.txt b/src/services/CMakeLists.txt index 2eb4da9e57..7ab87fef06 100644 --- a/src/services/CMakeLists.txt +++ b/src/services/CMakeLists.txt @@ -4,6 +4,7 @@ add_subdirectory(accesscontrol) add_subdirectory(sharecontrol) add_subdirectory(mountcontrol) add_subdirectory(textindex) +add_subdirectory(diskencrypt) # 安全加固 install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/deepin-service-group@.service.d DESTINATION /etc/systemd/system/) diff --git a/src/services/diskencrypt/CMakeLists.txt b/src/services/diskencrypt/CMakeLists.txt new file mode 100644 index 0000000000..954e320d30 --- /dev/null +++ b/src/services/diskencrypt/CMakeLists.txt @@ -0,0 +1,67 @@ +cmake_minimum_required(VERSION 3.0) + +set(BIN_NAME "deepin-diskencrypt-service") +project(${BIN_NAME}) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(DiskEncrypt_XML ${DFM_DBUS_XML_DIR}/org.deepin.Filemanager.DiskEncrypt.xml) + +find_package(Qt5 REQUIRED COMPONENTS Core Concurrent DBus) +find_package(deepin-qdbus-service REQUIRED) +find_package(PkgConfig REQUIRED) +pkg_check_modules(CryptSetup REQUIRED libcryptsetup) +pkg_check_modules(PolkitAgent REQUIRED polkit-agent-1 IMPORTED_TARGET) +pkg_check_modules(PolkitQt5 REQUIRED polkit-qt5-1 IMPORTED_TARGET) + +add_definitions(-DSERVICE_CONFIG_DIR="${CMAKE_INSTALL_PREFIX}/share/deepin-service-manager/") + +file(GLOB_RECURSE SRCS + "${CMAKE_CURRENT_SOURCE_DIR}/*.h" + "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp" +) + +# generate dbus xml and adaptor +# DBus: DiskEncryptDBus +qt5_generate_dbus_interface( + diskencryptdbus.h + ${DiskEncrypt_XML} + OPTIONS -M -S +) +qt5_add_dbus_adaptor(SRCS + ${DiskEncrypt_XML} + diskencryptdbus.h + DiskEncryptDBus) + + +add_executable(${BIN_NAME} + ${SRCS} +) + +target_link_libraries(${BIN_NAME} PRIVATE + Qt5::Core + Qt5::Concurrent + Qt5::DBus + DFM::base + PkgConfig::PolkitAgent + PkgConfig::PolkitQt5 + ${CryptSetup_LIBRARIES} + ${deepin-qdbus-service_LIBRARIES} +) + +target_include_directories(${BIN_NAME} + PUBLIC + ${PROJECT_SOURCE_DIR} + ${CryptSetup_INCLUDE_DIRS} + ${deepin-qdbus-service_INCLUDE_DIR} +) + +install(TARGETS ${BIN_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR}) +install(FILES ${PROJECT_NAME}.json DESTINATION share/deepin-service-manager/other/) +install(FILES org.deepin.filemanager.diskencrypt.conf DESTINATION share/dbus-1/system.d/) +install(FILES org.deepin.Filemanager.DiskEncrypt.service DESTINATION share/dbus-1/system-services/) + +set(PolicyDir "${CMAKE_INSTALL_PREFIX}/share/polkit-1/actions") +install(FILES polkit/policy/org.deepin.filemanager.diskencrypt.policy + DESTINATION ${PolicyDir}) +install(FILES polkit/rules/99-dde-file-manager-encrypt.pkla + DESTINATION /etc/polkit-1/localauthority/10-vendor.d) diff --git a/src/services/diskencrypt/deepin-diskencrypt-service.json b/src/services/diskencrypt/deepin-diskencrypt-service.json new file mode 100644 index 0000000000..36c0a12d86 --- /dev/null +++ b/src/services/diskencrypt/deepin-diskencrypt-service.json @@ -0,0 +1,10 @@ +{ + "name": "org.deepin.Filemanager.DiskEncrypt", + "policyStartType": "OnDemand", + "idleTime": 10, + "policy": [ + { + "path": "/org/deepin/Filemanager/DiskEncrypt" + } + ] +} diff --git a/src/services/diskencrypt/diskencrypt_global.h b/src/services/diskencrypt/diskencrypt_global.h new file mode 100644 index 0000000000..c4e7954a63 --- /dev/null +++ b/src/services/diskencrypt/diskencrypt_global.h @@ -0,0 +1,46 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#ifndef DAEMONPLUGIN_FILE_ENCRYPT_GLOBAL_H +#define DAEMONPLUGIN_FILE_ENCRYPT_GLOBAL_H + +#include "globaltypesdefine.h" + +#include +#include +#include + +#if defined(DAEMONPLUGIN_FILE_ENCRYPT_LIBRARY) +# define DAEMONPLUGIN_FILE_ENCRYPT_EXPORT Q_DECL_EXPORT +#else +# define DAEMONPLUGIN_FILE_ENCRYPT_EXPORT Q_DECL_IMPORT +#endif + +#define FILE_ENCRYPT_NS daemonplugin_file_encrypt +#define FILE_ENCRYPT_BEGIN_NS namespace FILE_ENCRYPT_NS { +#define FILE_ENCRYPT_END_NS } +#define FILE_ENCRYPT_USE_NS using namespace FILE_ENCRYPT_NS; + +FILE_ENCRYPT_BEGIN_NS + +struct EncryptParams +{ + QString device; + QString passphrase; + QString cipher; + QString recoveryPath; + QString tpmToken; + + bool isValid() const + { + return !(device.isEmpty() + && passphrase.isEmpty() + && cipher.isEmpty()); + } +}; + +inline constexpr char kDecryptHeaderPrefix[] { "dm_header_decrypt_" }; + +FILE_ENCRYPT_END_NS +#endif // DAEMONPLUGIN_FILE_ENCRYPT_GLOBAL_H diff --git a/src/services/diskencrypt/diskencryptdbus.cpp b/src/services/diskencrypt/diskencryptdbus.cpp new file mode 100644 index 0000000000..83bc5df615 --- /dev/null +++ b/src/services/diskencrypt/diskencryptdbus.cpp @@ -0,0 +1,464 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#include "diskencryptdbus.h" +#include "encrypt/encryptworker.h" +#include "encrypt/diskencrypt.h" +#include "notification/notifications.h" +#include "diskencrypt_global.h" + +#include +#include + +#include +#include +#include +#include +#include + +#include +#include + +FILE_ENCRYPT_USE_NS +using namespace disk_encrypt; +#define JOB_ID QString("job_%1") +static constexpr char kActionEncrypt[] { "org.deepin.Filemanager.DiskEncrypt.Encrypt" }; +static constexpr char kActionDecrypt[] { "org.deepin.Filemanager.DiskEncrypt.Decrypt" }; +static constexpr char kActionChgPwd[] { "org.deepin.Filemanager.DiskEncrypt.ChangePassphrase" }; + +ReencryptWorkerV2 *gFstabEncWorker { nullptr }; + +DiskEncryptDBus::DiskEncryptDBus(QObject *parent) + : QDBusService(parent) + , QDBusContext() +{ + initPolicy(QDBusConnection::SystemBus, QString(SERVICE_CONFIG_DIR) + "other/diskencrypt-service.json"); + + dfmmount::DDeviceManager::instance(); + + connect(SignalEmitter::instance(), &SignalEmitter::updateEncryptProgress, + this, [this](const QString &dev, double progress) { + Q_EMIT this->EncryptProgress(dev, deviceName, progress); + }, + Qt::QueuedConnection); + connect(SignalEmitter::instance(), &SignalEmitter::updateDecryptProgress, + this, [this](const QString &dev, double progress) { + Q_EMIT this->DecryptProgress(dev, deviceName, progress); + }, + Qt::QueuedConnection); + + QtConcurrent::run([this] { diskCheck(); }); + createReencryptDesktop(); + triggerReencrypt(); +} + +DiskEncryptDBus::~DiskEncryptDBus() +{ +} + +QString DiskEncryptDBus::PrepareEncryptDisk(const QVariantMap ¶ms) +{ + deviceName = params.value(encrypt_param_keys::kKeyDeviceName).toString(); + if (!checkAuth(kActionEncrypt)) { + Q_EMIT PrepareEncryptDiskResult(params.value(encrypt_param_keys::kKeyDevice).toString(), + deviceName, + "", + -kUserCancelled); + return ""; + } + + auto jobID = JOB_ID.arg(QDateTime::currentMSecsSinceEpoch()); + PrencryptWorker *worker = new PrencryptWorker(jobID, + params, + this); + connect(worker, &QThread::finished, this, [=] { + running = false; + int ret = worker->exitError(); + QString device = params.value(encrypt_param_keys::kKeyDevice).toString(); + + qDebug() << "pre encrypt finished" + << device + << ret; + + Q_EMIT this->PrepareEncryptDiskResult(device, + deviceName, + jobID, + static_cast(ret)); + if (ret == kSuccess) { + qInfo() << "start reencrypt device" << device; + triggerReencrypt(device); + } + + worker->deleteLater(); + }); + + worker->start(); + running = true; + + return jobID; +} + +QString DiskEncryptDBus::DecryptDisk(const QVariantMap ¶ms) +{ + deviceName = params.value(encrypt_param_keys::kKeyDeviceName).toString(); + QString dev = params.value(encrypt_param_keys::kKeyDevice).toString(); + if (!checkAuth(kActionDecrypt)) { + Q_EMIT DecryptDiskResult(dev, deviceName, "", -kUserCancelled); + return ""; + } + + auto jobID = JOB_ID.arg(QDateTime::currentMSecsSinceEpoch()); + + QString pass = params.value(encrypt_param_keys::kKeyPassphrase).toString(); + if (dev.isEmpty() + || (pass.isEmpty() && !params.value(encrypt_param_keys::kKeyInitParamsOnly).toBool())) { + qDebug() << "cannot decrypt, params are not valid"; + return ""; + } + + DecryptWorker *worker = new DecryptWorker(jobID, params, this); + connect(worker, &QThread::finished, this, [=] { + running = false; + int ret = worker->exitError(); + qDebug() << "decrypt device finished:" + << dev + << ret; + Q_EMIT DecryptDiskResult(dev, deviceName, jobID, ret); + worker->deleteLater(); + }); + worker->start(); + running = true; + return jobID; +} + +QString DiskEncryptDBus::ChangeEncryptPassphress(const QVariantMap ¶ms) +{ + deviceName = params.value(encrypt_param_keys::kKeyDeviceName).toString(); + QString dev = params.value(encrypt_param_keys::kKeyDevice).toString(); + if (!checkAuth(kActionChgPwd)) { + Q_EMIT ChangePassphressResult(dev, + deviceName, + "", + -kUserCancelled); + return ""; + } + + auto jobID = JOB_ID.arg(QDateTime::currentMSecsSinceEpoch()); + ChgPassWorker *worker = new ChgPassWorker(jobID, params, this); + connect(worker, &QThread::finished, this, [=] { + running = false; + int ret = worker->exitError(); + QString dev = params.value(encrypt_param_keys::kKeyDevice).toString(); + qDebug() << "change password finished:" + << dev + << ret; + Q_EMIT ChangePassphressResult(dev, deviceName, jobID, ret); + worker->deleteLater(); + }); + worker->start(); + running = true; + return jobID; +} + +void DiskEncryptDBus::IgnoreParamRequest() +{ + if (gFstabEncWorker) + gFstabEncWorker->ignoreParamRequest(); +} + +void DiskEncryptDBus::ResumeEncryption(const QString &device) +{ + triggerReencrypt(device); +} + +QString DiskEncryptDBus::QueryTPMToken(const QString &device) +{ + QString token; + disk_encrypt_funcs::bcGetToken(device, &token); + return token; +} + +int DiskEncryptDBus::EncryptStatus(const QString &device) +{ + EncryptStates states; + block_device_utils::bcDevEncryptStatus(device, &states); + return states; +} + +void DiskEncryptDBus::SetEncryptParams(const QVariantMap ¶ms) +{ + if (!checkAuth(kActionEncrypt)) { + Q_EMIT EncryptDiskResult(params.value(encrypt_param_keys::kKeyDevice).toString(), + deviceName, + -kUserCancelled, + ""); + return; + } + + if (!gFstabEncWorker) + return; + + gFstabEncWorker->setEncryptParams(params); +} + +bool DiskEncryptDBus::HasPendingTask() +{ + QDir d("/boot/usec-crypt/"); + auto files = d.entryInfoList(QDir::Filter::NoDotAndDotDot | QDir::Filter::Files); + for (const auto &file : files) { + auto name = file.fileName(); + // search for decrypt.json, encrypt.json, encrypt_.json + if (name.contains(QRegularExpression(R"((decrypt|encrypt|encrypt_.{3,})\.json)"))) + return true; + } + return false; +} + +bool DiskEncryptDBus::IsWorkerRunning() +{ + return running; +} + +QString DiskEncryptDBus::UnfinishedDecryptJob() +{ + QDir d("/boot/usec-crypt/"); + auto files = d.entryInfoList(QDir::Filter::NoDotAndDotDot | QDir::Filter::Files); + for (const auto &file : files) { + auto name = file.fileName(); + if (name.contains(kDecryptHeaderPrefix)) + return "/dev/" + name.remove(kDecryptHeaderPrefix); + } + return ""; +} + +void DiskEncryptDBus::onFstabDiskEncProgressUpdated(const QString &dev, qint64 offset, qint64 total) +{ + Q_EMIT EncryptProgress(currentEncryptingDevice, deviceName, (1.0 * offset) / total); +} + +void DiskEncryptDBus::onFstabDiskEncFinished(const QString &dev, int result, const QString &errstr) +{ + qInfo() << "device has been encrypted: " << dev << result << errstr; + Q_EMIT EncryptDiskResult(dev, deviceName, result != 0 ? -1000 : 0, ""); + if (result == 0) { + qInfo() << "encrypt finished, remove encrypt config"; + ::remove(kEncConfigPath); + } +} + +bool DiskEncryptDBus::checkAuth(const QString &actID) +{ + using namespace PolkitQt1; + + QString appBusName = message().service(); + if (appBusName.isEmpty()) + return false; + + // PolkitUnixProcess表示 UNIX 进程的对象。注意:这个设计的对象现在已知已损坏;确定了一种利用 Linux 内核中启动时间延迟的机制。避免调用 `polkit_subject_equal()` 来比较两个进程。 + Authority::Result result = Authority::instance()->checkAuthorizationSync(actID, + SystemBusNameSubject(appBusName), + Authority::AllowUserInteraction); + return result == Authority::Yes; +} + +bool DiskEncryptDBus::triggerReencrypt(const QString &device) +{ + gFstabEncWorker = new ReencryptWorkerV2(this); + gFstabEncWorker->loadReencryptConfig(device); + connect(gFstabEncWorker, &ReencryptWorkerV2::requestEncryptParams, + this, &DiskEncryptDBus::RequestEncryptParams); + connect(gFstabEncWorker, &ReencryptWorkerV2::deviceReencryptResult, + this, [this](const QString &dev, int code, const QString &msg) { + Q_EMIT EncryptDiskResult(dev, deviceName, code, msg); + }); + connect(gFstabEncWorker, &ReencryptWorkerV2::finished, + this, [this] { + running = false; + auto exitCode = gFstabEncWorker->exitError(); + gFstabEncWorker->deleteLater(); + gFstabEncWorker = nullptr; + if (exitCode == -kIgnoreRequest) + return; + // pick a new job. + const static QRegularExpression reg(R"(encrypt_(.*).json)"); + QDir usecDir("/boot/usec-crypt"); + auto files = usecDir.entryInfoList(QDir::Files | QDir::NoDotAndDotDot); + for (const auto &file : files) { + auto fileName = file.fileName(); + if (fileName.contains(reg)) { + qInfo() << "found new unfinished job:" << fileName; + auto match = reg.match(fileName); + if (match.hasMatch()) { + auto dev = match.captured(1); + dev = "/dev/" + dev; + triggerReencrypt(dev); + return; + } + } + } + }); + + currentEncryptingDevice = gFstabEncWorker->encryptConfig().devicePath; + deviceName = gFstabEncWorker->encryptConfig().deviceName; + qInfo() << "about to start encrypting" << currentEncryptingDevice; + gFstabEncWorker->start(); + running = true; + return true; +} + +// this is used to create a desktop file into +// /usr/share/applications/dfm-reencrypt.desktop +void DiskEncryptDBus::createReencryptDesktop() +{ + QFile f(kReencryptDesktopFile); + if (f.exists()) + return; + + QByteArray desktop { + "[Desktop Entry]\n" + "Categories=System;\n" + "Comment=To auto launch reencryption\n" + "Exec=/usr/bin/dde-file-manager -d\n" + "GenericName=Disk Reencrypt\n" + "Icon=dde-file-manager\n" + "Name=Disk Reencrypt\n" + "Terminal=false\n" + "Type=Application\n" + "NoDisplay=true\n" + "X-AppStream-Ignore=true\n" + "X-Deepin-AppID=dde-file-manager\n" + "X-Deepin-Vendor=deepin\n" + }; + + if (!f.open(QIODevice::WriteOnly | QIODevice::Truncate)) { + qWarning() << "cannot open desktop file to write!"; + return; + } + f.write(desktop); + f.close(); + + qInfo() << "desktop file created."; +} + +// this function should be running in thread. +// it may take times. +void DiskEncryptDBus::diskCheck() +{ + updateCrypttab(); +} + +void DiskEncryptDBus::getDeviceMapper(QMap *dev2uuid, + QMap *uuid2dev, + QMap *puuid2dev) +{ + Q_ASSERT(dev2uuid && uuid2dev); + using namespace dfmmount; + auto monitor = DDeviceManager::instance()->getRegisteredMonitor(DeviceType::kBlockDevice).objectCast(); + Q_ASSERT(monitor); + + const QStringList &objPaths = monitor->getDevices(); + for (const auto &objPath : objPaths) { + auto blkPtr = monitor->createDeviceById(objPath).objectCast(); + if (!blkPtr) continue; + + QString uuid = blkPtr->getProperty(dfmmount::Property::kBlockIDUUID).toString(); + if (uuid.isEmpty()) continue; + + QString puuid = blkPtr->getProperty(dfmmount::Property::kPartitionUUID).toString(); + + QString dev = blkPtr->device(); + uuid = QString("UUID=") + uuid; + dev2uuid->insert(dev, uuid); + uuid2dev->insert(uuid, dev); + if (!puuid.isEmpty()) + puuid2dev->insert(QString("PARTUUID=") + puuid, dev); + } +} + +bool DiskEncryptDBus::updateCrypttab() +{ + qInfo() << "==== start checking crypttab..."; + QFile crypttab("/etc/crypttab"); + if (!crypttab.open(QIODevice::ReadWrite)) { + qWarning() << "cannot open crypttab for rw"; + return false; + } + auto content = crypttab.readAll(); + crypttab.close(); + + bool cryptUpdated = false; + QByteArrayList lines = content.split('\n'); + for (int i = lines.count() - 1; i >= 0; --i) { + QString line = lines.at(i); + if (line.startsWith("#")) { + qInfo() << "==== [ignore] comment:" << line; + continue; + } + + auto items = line.split(QRegularExpression(R"( |\t)"), QString::SkipEmptyParts); + if (items.count() < 2) { + lines.removeAt(i); + qInfo() << "==== [remove] invalid line:" << line; + continue; + } + + if (isEncrypted(items.at(0), items.at(1)) == 0) { + lines.removeAt(i); + cryptUpdated = true; + qWarning() << "==== [remove] this item is not encrypted:" << line; + continue; + } + + qInfo() << "==== [ keep ] device is still encrypted:" << line; + } + + qInfo() << "==== end checking crypttab, crypttab is updated:" << cryptUpdated; + if (cryptUpdated) { + content = lines.join('\n'); + content.append("\n"); + if (!crypttab.open(QIODevice::WriteOnly | QIODevice::Truncate)) { + qWarning() << "cannot open cryppttab for update"; + return false; + } + crypttab.write(content); + crypttab.close(); + } + return cryptUpdated; +} + +int DiskEncryptDBus::isEncrypted(const QString &target, const QString &source) +{ + return QFile("/dev/mapper/" + target).exists() ? 1 : 0; + + QMap dev2uuid, uuid2dev, puuid2dev; + getDeviceMapper(&dev2uuid, &uuid2dev, &puuid2dev); + + QString dev = source; + if (dev.startsWith("UUID")) { + dev = uuid2dev.value(dev); + if (dev.isEmpty()) { + qWarning() << "cannot find device by UUID, device might already decrypted." << source; + return 0; + } + } else if (dev.startsWith("PARTUUID")) { + dev = puuid2dev.value(dev); + if (dev.isEmpty()) { + qWarning() << "cannot find device by PARTUUID, device might already decrypted." << source; + return 0; + } + } + + if (dev.isEmpty()) { + qWarning() << "cannot find device:" << target << source; + return -1; + } + + auto devPtr = block_device_utils::bcCreateBlkDev(dev); + if (!devPtr) { + qDebug() << "cannot construct device pointer by " << dev; + return -2; + } + + return devPtr->isEncrypted() ? 1 : 0; +} diff --git a/src/services/diskencrypt/diskencryptdbus.h b/src/services/diskencrypt/diskencryptdbus.h new file mode 100644 index 0000000000..48ca214773 --- /dev/null +++ b/src/services/diskencrypt/diskencryptdbus.h @@ -0,0 +1,62 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#ifndef DISKENCRYPTDBUS_H +#define DISKENCRYPTDBUS_H + +#include +#include +#include +#include + +class DiskEncryptDBus : public QDBusService, public QDBusContext +{ + Q_OBJECT + Q_CLASSINFO("D-Bus Interface", "org.deepin.Filemanager.DiskEncrypt") +public: + explicit DiskEncryptDBus(QObject *parent = nullptr); + ~DiskEncryptDBus(); + +public Q_SLOTS: + QString PrepareEncryptDisk(const QVariantMap ¶ms); + QString DecryptDisk(const QVariantMap ¶ms); + QString ChangeEncryptPassphress(const QVariantMap ¶ms); + void IgnoreParamRequest(); + void ResumeEncryption(const QString &device); + void SetEncryptParams(const QVariantMap ¶ms); + QString QueryTPMToken(const QString &device); + int EncryptStatus(const QString &device); + bool HasPendingTask(); + bool IsWorkerRunning(); + QString UnfinishedDecryptJob(); + +Q_SIGNALS: + void PrepareEncryptDiskResult(const QString &device, const QString &devName, const QString &jobID, int errCode); + void EncryptDiskResult(const QString &device, const QString &devName, int errCode, const QString &msg); + void DecryptDiskResult(const QString &device, const QString &devName, const QString &jobID, int errCode); + void ChangePassphressResult(const QString &device, const QString &devName, const QString &jobID, int errCode); + void EncryptProgress(const QString &device, const QString &devName, double progress); + void DecryptProgress(const QString &device, const QString &devName, double progress); + void RequestEncryptParams(const QVariantMap &encConfig); + +private Q_SLOTS: + void onFstabDiskEncProgressUpdated(const QString &dev, qint64 offset, qint64 total); + void onFstabDiskEncFinished(const QString &dev, int result, const QString &errstr); + +private: + bool checkAuth(const QString &actID); + void diskCheck(); + bool triggerReencrypt(const QString &device = QString()); + void createReencryptDesktop(); + static void getDeviceMapper(QMap *, QMap *, QMap *); + static bool updateCrypttab(); + static int isEncrypted(const QString &target, const QString &source); + +private: + QString currentEncryptingDevice; + QString deviceName; + bool running { false }; +}; + +#endif // DISKENCRYPTDBUS_H diff --git a/src/services/diskencrypt/encrypt/diskencrypt.cpp b/src/services/diskencrypt/encrypt/diskencrypt.cpp new file mode 100644 index 0000000000..91d068501a --- /dev/null +++ b/src/services/diskencrypt/encrypt/diskencrypt.cpp @@ -0,0 +1,1149 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later +#include "diskencrypt.h" +#include "fsresize/fsresize.h" +#include "notification/notifications.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#include +#include + +#include +#include +#include +#include +#include +#include + +FILE_ENCRYPT_USE_NS +using namespace disk_encrypt; + +#define CHECK_INT(checkVal, msg, retVal) \ + if ((checkVal) < 0) { \ + qWarning() << (msg) << (checkVal); \ + return retVal; \ + } +#define CHECK_BOOL(checkVal, msg, retVal) \ + if (!(checkVal)) { \ + qWarning() << (msg); \ + return retVal; \ + } + +// used to record current reencrypting device. +QString gCurrReencryptingDevice; +QString gCurrDecryptintDevice; +bool gInterruptEncFlag { false }; + +struct crypt_params_reencrypt *encryptParams() +{ + static struct crypt_params_luks2 reencLuks2 + { + .sector_size = 512 + }; + + static struct crypt_params_reencrypt reencParams + { + .mode = CRYPT_REENCRYPT_ENCRYPT, + .direction = CRYPT_REENCRYPT_BACKWARD, + .resilience = "datashift", + .hash = "sha256", + .data_shift = 32 * 1024, + .max_hotzone_size = 0, + .device_size = 0, + .luks2 = &reencLuks2, + .flags = CRYPT_REENCRYPT_INITIALIZE_ONLY | CRYPT_REENCRYPT_MOVE_FIRST_SEGMENT + }; + return &reencParams; +} +struct crypt_params_reencrypt *decryptParams() +{ + static struct crypt_params_reencrypt params + { + .mode = CRYPT_REENCRYPT_DECRYPT, + .direction = CRYPT_REENCRYPT_BACKWARD, + .resilience = "checksum", + .hash = "sha256", + .data_shift = 0, + .max_hotzone_size = 0, + .device_size = 0 + }; + return ¶ms; +} +struct crypt_params_reencrypt *resumeParams() +{ + static struct crypt_params_reencrypt params + { + .mode = CRYPT_REENCRYPT_REENCRYPT, + .direction = CRYPT_REENCRYPT_BACKWARD, + .resilience = "datashift", + .hash = "sha256", + .data_shift = 32 * 1024, + .max_hotzone_size = 0, + .device_size = 0, + .flags = CRYPT_REENCRYPT_RESUME_ONLY | CRYPT_REENCRYPT_MOVE_FIRST_SEGMENT + }; + return ¶ms; +} +void parseCipher(const QString &fullCipher, QString *cipher, QString *mode, int *len) +{ + Q_ASSERT(cipher && mode && len); + *cipher = fullCipher; + *mode = "xts-plain64"; + *len = 256; +} + +EncryptParams disk_encrypt_utils::bcConvertParams(const QVariantMap ¶ms) +{ + auto toString = [¶ms](const QString &key) { return params.value(key).toString(); }; + return { + .device = toString(encrypt_param_keys::kKeyDevice), + .passphrase = toString(encrypt_param_keys::kKeyPassphrase), // decode() + .cipher = toString(encrypt_param_keys::kKeyCipher), + .recoveryPath = toString(encrypt_param_keys::kKeyRecoveryExportPath), + .tpmToken = toString(encrypt_param_keys::kKeyTPMToken), + }; +} + +bool disk_encrypt_utils::bcValidateParams(const EncryptParams ¶ms) +{ + if (!params.isValid()) { + qWarning() << "params is not valid!"; + return false; + } + + // check whether device exists + struct stat blkStat; + if (stat(params.device.toStdString().c_str(), &blkStat) != 0) { + int errCode = errno; + qWarning() << "query stat of device failed:" + << params.device + << strerror(errCode) + << errCode; + return false; + } + if (!S_ISBLK(blkStat.st_mode)) { + qWarning() << "device is not a block!" + << params.device + << blkStat.st_mode; + return false; + } + + // check if is valid path. + if (!params.recoveryPath.isEmpty() + && access(params.recoveryPath.toStdString().c_str(), F_OK) != 0) { + qWarning() << "recovery export path is not valid!" + << params.recoveryPath; + return false; + } + + return true; +} + + +QString disk_encrypt_utils::generateRandomString(int length) +{ + // 定义字符集 + const QString charset = QString("0123456789" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz"); + + QString result; + result.reserve(length); + + // 获取全局随机生成器实例 + QRandomGenerator *generator = QRandomGenerator::global(); + + // 生成随机字符串 + for (int i = 0; i < length; ++i) { + int index = generator->bounded(charset.length()); + result.append(charset.at(index)); + } + + return result; +} + +QString disk_encrypt_utils::bcGenRecKey() +{ + QString recKey; + QLibrary lib("usec-recoverykey"); + dfmbase::FinallyUtil finalClear([&] { if (lib.isLoaded()) lib.unload(); }); + + if (!lib.load()) { + qWarning() << "libusec-recoverykey load failed. use default generator"; + recKey = generateRandomString(); + return recKey; + } + + typedef int (*FnGenKey)(char *, const size_t, const size_t); + FnGenKey fn = (FnGenKey)(lib.resolve("usec_get_recovery_key")); + if (!fn) { + qWarning() << "libusec-recoverykey resolve failed. use uuid as recovery key"; + return recKey; + } + + static const size_t kRecoveryKeySize = 24; + char genKey[kRecoveryKeySize + 1]; + int ret = fn(genKey, kRecoveryKeySize, 1); + if (ret != 0) { + qWarning() << "libusec-recoverykey generate failed. use uuid as recovery key"; + return recKey; + } + + recKey = genKey; + return recKey; +} + +int disk_encrypt_funcs::bcInitHeaderFile(const EncryptParams ¶ms, + QString &headerPath, int *keyslotCipher, int *keyslotRecKey) +{ + if (!disk_encrypt_utils::bcValidateParams(params)) + return -kErrorParamsInvalid; + + auto status = block_device_utils::bcDevEncryptVersion(params.device); + if (status != kNotEncrypted) { + qWarning() << "cannot encrypt device:" + << params.device + << status; + return -kErrorDeviceEncrypted; + } + + if (block_device_utils::bcIsMounted(params.device)) { + qWarning() << "device is already mounted, cannot encrypt"; + return -kErrorDeviceMounted; + } + + int err = bcDoSetupHeader(params, &headerPath, keyslotCipher, keyslotRecKey); + return err; +} + +int disk_encrypt_funcs::bcDoSetupHeader(const EncryptParams ¶ms, QString *headerPath, int *keyslotCipher, int *keyslotRecKey) +{ + Q_ASSERT(headerPath && keyslotCipher && keyslotRecKey); + + QString localPath; + int ret = 0; + ret = bcPrepareHeaderFile(params.device, &localPath); + if (localPath.isEmpty()) + return -kErrorCreateHeader; + + fs_resize::shrinkFileSystem_ext(params.device); + + struct crypt_device *cdev { nullptr }; + + dfmbase::FinallyUtil finalClear([&] { + if (cdev) crypt_free(cdev); + if (ret < 0) { + ::remove(localPath.toStdString().c_str()); + fs_resize::expandFileSystem_ext(params.device); + } + }); + + ret = crypt_init(&cdev, localPath.toStdString().c_str()); + CHECK_INT(ret, "init crypt failed " + params.device, -kErrorInitCrypt); + + crypt_set_rng_type(cdev, CRYPT_RNG_RANDOM); + + ret = crypt_set_data_offset(cdev, 32 * 1024); // offset 32M + CHECK_INT(ret, "cannot set offset " + params.device, -kErrorSetOffset); + + QString cipher, mode; + int keyLen; + parseCipher(params.cipher, &cipher, &mode, &keyLen); + qDebug() << "encrypt with cipher:" << cipher << mode << keyLen; + + std::string cDevice = params.device.toStdString(); + struct crypt_params_luks2 luks2Params = { + .data_alignment = 0, + .data_device = cDevice.c_str(), + .sector_size = 512, + .label = nullptr, + .subsystem = nullptr + }; + ret = crypt_format(cdev, + CRYPT_LUKS2, + cipher.toStdString().c_str(), + mode.toStdString().c_str(), + nullptr, + nullptr, + keyLen / 8, + &luks2Params); + CHECK_INT(ret, "format failed " + params.device, -kErrorFormatLuks); + + ret = crypt_keyslot_add_by_volume_key(cdev, + CRYPT_ANY_SLOT, + nullptr, + 0, + params.passphrase.toStdString().c_str(), + params.passphrase.length()); + CHECK_INT(ret, "add key failed " + params.device, -kErrorAddKeyslot); + *keyslotCipher = ret; +#if 0 + if (!params.recoveryPath.isEmpty()) { + QString recKey = disk_encrypt_utils::bcGenRecKey(); + if (!recKey.isEmpty()) { + ret = crypt_keyslot_add_by_volume_key(cdev, + CRYPT_ANY_SLOT, + nullptr, + 0, + recKey.toStdString().c_str(), + recKey.length()); + if (ret < 0) { + qWarning() << "add recovery key failed:" + << params.device + << ret; + } + *keyslotRecKey = ret; + + // TODO export key. + } + } +#endif + + ret = crypt_reencrypt_init_by_passphrase(cdev, + nullptr, + params.passphrase.toStdString().c_str(), + params.passphrase.length(), + CRYPT_ANY_SLOT, + 0, + cipher.toStdString().c_str(), + mode.toStdString().c_str(), + encryptParams()); + CHECK_INT(ret, "init reencryption failed " + params.device, -kErrorInitReencrypt); + + // active device for expanding fs. + QString activeDev = QString("dm-%1").arg(params.device.mid(5)); + ret = crypt_activate_by_passphrase(cdev, + activeDev.toStdString().c_str(), + CRYPT_ANY_SLOT, + params.passphrase.toStdString().c_str(), + params.passphrase.length(), + CRYPT_ACTIVATE_NO_JOURNAL); + CHECK_INT(ret, "acitve device failed " + params.device + activeDev, -kErrorActive); + + fs_resize::expandFileSystem_ext(QString("/dev/mapper/%1").arg(activeDev)); + ret = crypt_deactivate(nullptr, activeDev.toStdString().c_str()); + CHECK_INT(ret, "deacitvi device failed " + params.device, -kErrorDeactive); + + *headerPath = localPath; + return kSuccess; +} + +int disk_encrypt_funcs::bcInitHeaderDevice(const QString &device, + const QString &passphrase, + const QString &headerPath) +{ + Q_ASSERT_X(!headerPath.isEmpty() && !device.isEmpty(), + "input params cannot be empty!", ""); + + struct crypt_device *cdev { nullptr }; + dfmbase::FinallyUtil finalClear([&] { + if (cdev) crypt_free(cdev); + if (!headerPath.isEmpty()) ::remove(headerPath.toStdString().c_str()); + }); + + int ret = crypt_init(&cdev, device.toStdString().c_str()); + CHECK_INT(ret, "init device failed " + device, -kErrorInitCrypt); + + ret = crypt_header_restore(cdev, + CRYPT_LUKS2, + headerPath.toStdString().c_str()); + CHECK_INT(ret, "restore header failed " + device + headerPath, -kErrorRestoreFromFile); + return kSuccess; +} + +int disk_encrypt_funcs::bcPrepareHeaderFile(const QString &device, QString *headerPath) +{ + Q_ASSERT(headerPath); + QString localPath = QString("/tmp/%1_luks2_pre_enc").arg(device.mid(5)); + int fd = open(localPath.toStdString().c_str(), + O_CREAT | O_EXCL | O_WRONLY, + S_IRUSR | S_IWUSR); + CHECK_INT(fd, "create tmp file failed " + device + strerror(errno), -kErrorOpenFileFailed); + + int ret = posix_fallocate(fd, 0, 32 * 1024 * 1024); + close(fd); + CHECK_BOOL(ret == 0, "allocate file failed " + localPath, -kErrorCreateHeader); + *headerPath = localPath; + return kSuccess; +} + +int disk_encrypt_funcs::bcDecryptDevice(const QString &device, + const QString &passphrase) +{ + // backup header first + dfmbase::FinallyUtil finalClear([&] { + gCurrDecryptintDevice.clear(); + }); + gCurrDecryptintDevice = device; + + QString headerPath; + int ret = bcBackupCryptHeader(device, headerPath); + CHECK_INT(ret, "backup header failed " + device, -kErrorBackupHeader); + + int status = bcReadHeader(headerPath); + if (status != kDecryptFully) { + ret = bcDoDecryptDevice(device, passphrase, headerPath); + CHECK_INT(ret, "decrypt failed " + device, -kErrorDecryptFailed); + } + + bool res = block_device_utils::bcMoveFsForward(device); + CHECK_BOOL(res, "recovery fs failed " + device, -kErrorResizeFs); + + if (!headerPath.isEmpty()) + ::remove(headerPath.toStdString().c_str()); + + return 0; +} + +int disk_encrypt_funcs::bcBackupCryptHeader(const QString &device, QString &headerPath) +{ + headerPath = "/boot/usec-crypt/" + QString(kDecryptHeaderPrefix) + device.mid(5); + struct crypt_device *cdev = nullptr; + dfmbase::FinallyUtil finalClear([&] { if (cdev) crypt_free(cdev); }); + + if (QFile(headerPath).exists()) { + qInfo() << "header exists" << headerPath; + return 0; + } + + int ret = crypt_init(&cdev, device.toStdString().c_str()); + CHECK_INT(ret, "init device failed " + device, -kErrorInitCrypt); + + ret = crypt_header_backup(cdev, + nullptr, + headerPath.toStdString().c_str()); + CHECK_INT(ret, "backup header failed " + device, -kErrorBackupHeader); + return 0; +} + +int disk_encrypt_funcs::bcResumeReencrypt(const QString &device, + const QString &passphrase, + const QString &clearDev, + bool expandFs) +{ + qDebug() << "start resume encryption for device" + << device; + gCurrReencryptingDevice = device; + struct crypt_device *cdev { nullptr }; + dfmbase::FinallyUtil finalClear([&] { + if (cdev) crypt_free(cdev); + gCurrDecryptintDevice.clear(); + }); + + int ret = crypt_init_data_device(&cdev, + device.toStdString().c_str(), + device.toStdString().c_str()); + CHECK_INT(ret, "init device failed " + device, -kErrorInitCrypt); + + ret = crypt_load(cdev, CRYPT_LUKS, nullptr); + CHECK_INT(ret, "load device failed " + device, -kErrorLoadCrypt); + + uint32_t flags; + ret = crypt_persistent_flags_get(cdev, + CRYPT_FLAGS_REQUIREMENTS, + &flags); + CHECK_INT(ret, "read flags failed " + device, -kErrorGetReencryptFlag); + CHECK_BOOL(flags & CRYPT_REQUIREMENT_ONLINE_REENCRYPT, + "wrong flags " + device + " flags " + QString::number(flags), + -kErrorWrongFlags); + + std::string _clearDev = clearDev.toStdString(); + const char *__clearDev = clearDev.isEmpty() ? nullptr : _clearDev.c_str(); + ret = crypt_reencrypt_init_by_passphrase(cdev, + __clearDev, + passphrase.toStdString().c_str(), + passphrase.length(), + CRYPT_ANY_SLOT, + CRYPT_ANY_SLOT, + nullptr, + nullptr, + resumeParams()); + CHECK_INT(ret, "init reencrypt failed " + device, -kErrorInitReencrypt); + + ret = crypt_reencrypt(cdev, bcEncryptProgress); + CHECK_INT(ret, "start resume failed " + device, -kErrorReencryptFailed); + + if (!expandFs) + return kSuccess; + + // active device for expanding fs. + QString activeDev = QString("dm-%1").arg(device.mid(5)); + ret = crypt_activate_by_passphrase(cdev, + activeDev.toStdString().c_str(), + CRYPT_ANY_SLOT, + passphrase.toStdString().c_str(), + passphrase.length(), + CRYPT_ACTIVATE_NO_JOURNAL); + CHECK_INT(ret, "acitve device failed " + device + activeDev, -kErrorActive); + + fs_resize::expandFileSystem_ext(QString("/dev/mapper/%1").arg(activeDev)); + + ret = crypt_deactivate(nullptr, + activeDev.toStdString().c_str()); + CHECK_INT(ret, "deacitvi device failed " + device, -kErrorDeactive); + return kSuccess; +} + +int disk_encrypt_funcs::bcEncryptProgress(uint64_t size, uint64_t offset, void *) +{ + Q_EMIT SignalEmitter::instance()->updateEncryptProgress(gCurrReencryptingDevice, + double(offset) / size); + return 0; +} + +int disk_encrypt_funcs::bcDecryptProgress(uint64_t size, uint64_t offset, void *) +{ + Q_EMIT SignalEmitter::instance()->updateDecryptProgress(gCurrDecryptintDevice, + double(offset) / size); + return 0; +} + +int disk_encrypt_funcs::bcChangePassphrase(const QString &device, const QString &oldPassphrase, const QString &newPassphrase, int *keyslot) +{ + struct crypt_device *cdev { nullptr }; + dfmbase::FinallyUtil finalClear([&] {if (cdev) crypt_free(cdev); }); + + int ret = crypt_init_data_device(&cdev, device.toStdString().c_str(), nullptr); + CHECK_INT(ret, "init device failed " + device, -kErrorInitCrypt); + + ret = crypt_load(cdev, CRYPT_LUKS, nullptr); + CHECK_INT(ret, "load device failed " + device, -kErrorLoadCrypt); + + ret = crypt_keyslot_change_by_passphrase(cdev, + CRYPT_ANY_SLOT, + CRYPT_ANY_SLOT, + oldPassphrase.toStdString().c_str(), + oldPassphrase.length(), + newPassphrase.toStdString().c_str(), + newPassphrase.length()); + CHECK_INT(ret, "change passphrase failed " + device, -kErrorChangePassphraseFailed); + Q_ASSERT(keyslot); + *keyslot = ret; + return kSuccess; +} + +int disk_encrypt_funcs::bcChangePassphraseByRecKey(const QString &device, const QString &recoveryKey, const QString &newPassphrase, int *keyslot) +{ + struct crypt_device *cdev { nullptr }; + dfmbase::FinallyUtil finalClear([&] {if (cdev) crypt_free(cdev); }); + + int ret = crypt_init_data_device(&cdev, + device.toStdString().c_str(), + /*device.toStdString().c_str()*/ nullptr); + CHECK_INT(ret, "init device failed " + device, -kErrorInitCrypt); + + ret = crypt_load(cdev, CRYPT_LUKS, nullptr); + CHECK_INT(ret, "load device failed " + device, -kErrorLoadCrypt); + + ret = crypt_keyslot_add_by_passphrase(cdev, + CRYPT_ANY_SLOT, + recoveryKey.toStdString().c_str(), + recoveryKey.length(), + newPassphrase.toStdString().c_str(), + newPassphrase.length()); + CHECK_INT(ret, "change passphrase by rec key failed " + device, -kErrorAddKeyslot); + Q_ASSERT(keyslot); + *keyslot = ret; + return kSuccess; +} + +int disk_encrypt_funcs::bcGetToken(const QString &device, QString *tokenJson) +{ + Q_ASSERT(tokenJson); + struct crypt_device *cdev { nullptr }; + dfmbase::FinallyUtil finalClear([&] {if (cdev) crypt_free(cdev); }); + + int ret = crypt_init(&cdev, + device.toStdString().c_str()); + CHECK_INT(ret, "init device failed " + device, -kErrorInitCrypt); + + ret = crypt_load(cdev, CRYPT_LUKS, nullptr); + CHECK_INT(ret, "load device failed " + device, -kErrorLoadCrypt); + + for (int i = 0; i < 32 /* LUKS2_TOKENS_MAX */; ++i) { + const char *token { nullptr }; + if ((ret = crypt_token_json_get(cdev, i, &token)) < 0) + continue; + QString json(token); + if (json.contains("usec-tpm2")) { + // qInfo() << "found token:" << json; + QJsonDocument doc = QJsonDocument::fromJson(token); + QJsonObject obj = doc.object(); + obj.insert("token_index", i); + doc.setObject(obj); + *tokenJson = doc.toJson(); + return kSuccess; + } + } + + qInfo() << "token not found." << device; + return kSuccess; +} + +int disk_encrypt_funcs::bcSetToken(const QString &device, const QString &token) +{ + if (token.isEmpty()) + return 0; + + QJsonDocument doc = QJsonDocument::fromJson(token.toLocal8Bit()); + QJsonObject obj = doc.object(); + int tokenIndex = obj.value("token_index").toInt(CRYPT_ANY_TOKEN); + + struct crypt_device *cdev { nullptr }; + dfmbase::FinallyUtil finalClear([&] {if (cdev) crypt_free(cdev); }); + + int ret = crypt_init(&cdev, + device.toStdString().c_str()); + CHECK_INT(ret, "init device failed " + device, -kErrorInitCrypt); + + ret = crypt_load(cdev, CRYPT_LUKS, nullptr); + CHECK_INT(ret, "load device failed " + device, -kErrorLoadCrypt); + + ret = crypt_token_json_set(cdev, + tokenIndex, + token.toStdString().c_str()); + CHECK_INT(ret, "set token failed " + device, -kErrorSetTokenFailed); + return 0; +} + +EncryptVersion block_device_utils::bcDevEncryptVersion(const QString &device) +{ + auto blkDev = block_device_utils::bcCreateBlkDev(device); + if (!blkDev) { + qWarning() << "cannot create block device handler:" + << device; + return kVersionUnknown; + } + + const QString &idType = blkDev->getProperty(dfmmount::Property::kBlockIDType).toString(); + const QString &idVersion = blkDev->getProperty(dfmmount::Property::kBlockIDVersion).toString(); + + if (idType == "crypto_LUKS") { + if (idVersion == "1") + return kVersionLUKS1; + if (idVersion == "2") + return kVersionLUKS2; + return kVersionLUKSUnknown; + } + + if (blkDev->isEncrypted()) + return kVersionUnknown; + + // TODO: this should be completed, not only LUKS encrypt. + + return kNotEncrypted; +} + +DevPtr block_device_utils::bcCreateBlkDev(const QString &device) +{ + auto mng = dfmmount::DDeviceManager::instance(); + Q_ASSERT_X(mng, "cannot create device manager", ""); + auto blkMonitor = mng->getRegisteredMonitor(dfmmount::DeviceType::kBlockDevice) + .objectCast(); + Q_ASSERT_X(blkMonitor, "cannot get valid device monitor", ""); + + auto blkDevs = blkMonitor->resolveDeviceNode(device, {}); + if (blkDevs.isEmpty()) { + qWarning() << "cannot resolve device from" << device; + return nullptr; + } + + auto blkDev = blkMonitor->createDeviceById(blkDevs.constFirst()); + if (!blkDev) { + qWarning() << "cannot create device by" << blkDevs.constFirst(); + return nullptr; + } + return blkDev.objectCast(); +} + +bool block_device_utils::bcIsMounted(const QString &device) +{ + auto blkDev = block_device_utils::bcCreateBlkDev(device); + if (!blkDev) { + qWarning() << "cannot create block device handler:" + << device; + return false; + } + return !blkDev->mountPoints().isEmpty(); +} + +int block_device_utils::bcDevEncryptStatus(const QString &device, EncryptStates *status) +{ + Q_ASSERT(status); + *status = kStatusUnknown; + + auto version = bcDevEncryptVersion(device); + if (version == kNotEncrypted) { + *status = kStatusNotEncrypted; + return kSuccess; + } + + struct crypt_device *cdev { nullptr }; + dfmbase::FinallyUtil finalClear([&] {if (cdev) crypt_free(cdev); }); + + int ret = 0; + + QString backHeader = "/boot/usec-crypt/" + QString(kDecryptHeaderPrefix) + device.mid(5); + if (QFile(backHeader).exists()) { + ret = crypt_init_data_device(&cdev, + backHeader.toStdString().c_str(), + device.toStdString().c_str()); + } else { + ret = crypt_init(&cdev, + device.toStdString().c_str()); + } + CHECK_INT(ret, "init device failed " + device, -kErrorInitCrypt); + + ret = crypt_load(cdev, CRYPT_LUKS, nullptr); + CHECK_INT(ret, "load device failed " + device, -kErrorLoadCrypt); + + crypt_params_reencrypt param; + int state = crypt_reencrypt_status(cdev, ¶m); + if (state == CRYPT_REENCRYPT_NONE) { + *status = kStatusFinished; + return kSuccess; + } + + if (param.mode == CRYPT_REENCRYPT_ENCRYPT) + *status = kStatusEncrypt; + else if (param.mode == CRYPT_REENCRYPT_DECRYPT) + *status = kStatusDecrypt; + + uint32_t flags; + ret = crypt_persistent_flags_get(cdev, + CRYPT_FLAGS_REQUIREMENTS, + &flags); + CHECK_INT(ret, "get device flag failed " + device, -kErrorGetReencryptFlag); + + if (flags & CRYPT_REQUIREMENT_OFFLINE_REENCRYPT) + *status |= kStatusOffline; + if (flags & CRYPT_REQUIREMENT_ONLINE_REENCRYPT) + *status |= kStatusOnline; + if (flags & CRYPT_REQUIREMENT_UNKNOWN) + *status = kStatusUnknown; + + if (*status & (kStatusOnline | kStatusEncrypt)) { + if (!disk_encrypt_utils::bcHasEncryptConfig(device)) + *status |= kStatusNoEncryptConfig; + } + + return kSuccess; +} + +int disk_encrypt_funcs::bcSetLabel(const QString &device, const QString &label) +{ + + struct crypt_device *cdev { nullptr }; + dfmbase::FinallyUtil finalClear([&] {if (cdev) crypt_free(cdev); }); + + int ret = crypt_init(&cdev, + device.toStdString().c_str()); + CHECK_INT(ret, "init device failed " + device, -kErrorInitCrypt); + + ret = crypt_load(cdev, CRYPT_LUKS, nullptr); + CHECK_INT(ret, "load device failed " + device, -kErrorLoadCrypt); + + ret = crypt_set_label(cdev, label.toStdString().c_str(), nullptr); + CHECK_INT(ret, "set label failed " + device, -kErrorSetLabel); + + return kSuccess; +} + +bool disk_encrypt_utils::bcReadEncryptConfig(disk_encrypt::EncryptConfig *config, const QString &device) +{ + Q_ASSERT(config); + + QString encryptConfigPath = kEncConfigPath; + if (!device.isEmpty()) + encryptConfigPath = kEncConfigDevicePath.arg(device.mid(5)); + + QFile encConfig(encryptConfigPath); + if (!encConfig.exists()) { + qInfo() << "the encrypt config file doesn't exist"; + if (encryptConfigPath != kEncConfigPath) { + qInfo() << "try trigger default encrypt device."; + return bcReadEncryptConfig(config, ""); + } + return false; + } + + if (!encConfig.open(QIODevice::ReadOnly)) { + qWarning() << "encrypt config file open failed!"; + return false; + } + + QJsonDocument doc = QJsonDocument::fromJson(encConfig.readAll()); + encConfig.close(); + auto obj = doc.object(); + + config->cipher = obj.value("cipher").toString(); + config->device = obj.value("device").toString(); + config->mountPoint = obj.value("device-mountpoint").toString(); + config->deviceName = obj.value("device-name").toString(); + config->devicePath = obj.value("device-path").toString(); + config->keySize = obj.value("key-size").toString(); + config->mode = obj.value("mode").toString(); + config->recoveryPath = obj.value("recoverykey-path").toString(); + // config->tpmConfig = obj.value("tpm-config");// no tpmconfig will be set in pre-encrypt phase + config->clearDev = obj.value("volume").toString(); + config->configPath = encryptConfigPath; + config->clearDevUUID = obj.value("clear-device-uuid").toString(); + config->isDetachedHeader = obj.value("is-detached-header").toBool(); + config->fsUuid = obj.value("file-system-uuid").toString(); + + return true; +} + +QDBusReply utils::inhibit(const QString &message) +{ + QDBusInterface iface("org.freedesktop.login1", + "/org/freedesktop/login1", + "org.freedesktop.login1.Manager", + QDBusConnection::systemBus()); + QVariantList args; + args << QString("shutdown:sleep:") + << QString("file-manager-daemon") + << QString(message) + << QString("block"); + return iface.callWithArgumentList(QDBus::Block, "Inhibit", args); +} + +int disk_encrypt_funcs::bcOpenDevice(const QString &device, const QString &activeName) +{ + struct crypt_device *cdev { nullptr }; + dfmbase::FinallyUtil finalClear([&] {if (cdev) crypt_free(cdev); }); + + int ret = crypt_init(&cdev, + device.toStdString().c_str()); + CHECK_INT(ret, "init device failed " + device, -kErrorInitCrypt); + + ret = crypt_load(cdev, CRYPT_LUKS, nullptr); + CHECK_INT(ret, "load device failed " + device, -kErrorLoadCrypt); + + auto status = crypt_status(cdev, activeName.toStdString().c_str()); + if (status == CRYPT_INACTIVE) { + // try unlock by empty passphrase to repair reencryption. + ret = crypt_activate_by_passphrase(cdev, activeName.toStdString().c_str(), + CRYPT_ANY_SLOT, + "", + 0, + CRYPT_ACTIVATE_NO_JOURNAL); + CHECK_INT(ret, "open device failed " + device, -kErrorActive); + + // close device avoid operating. + ret = crypt_deactivate(cdev, activeName.toStdString().c_str()); + CHECK_INT(ret, "close device failed " + device, -kErrorDeactive); + } else if (status == CRYPT_INVALID) { + qCritical() << "device encrypt status is invalid!" << device; + return -kErrorActive; + } + + return kSuccess; +} + +bool disk_encrypt_utils::bcSaveRecoveryKey(const QString &dev, const QString &key, const QString &path) +{ + if (!QDir(path).exists()) { + qWarning() << "export path not exists!" << path; + return false; + } + + QString recFileName = QString("%1/%2_recovery_key.txt") + .arg(path) + .arg(dev.mid(5)); + QFile f(recFileName); + if (!f.open(QIODevice::WriteOnly | QIODevice::Truncate)) { + qWarning() << "cannot open file for write recovery key" << recFileName; + return false; + } + + if (f.write(key.toLocal8Bit()) != key.length()) { + qWarning() << "write length not correct!"; + f.close(); + return false; + } + f.close(); + + qInfo() << "recovery key has been wrote to" << recFileName; + return true; +} + +bool disk_encrypt_utils::bcHasEncryptConfig(const QString &dev) +{ + QFile f(disk_encrypt::kEncConfigDevicePath.arg(dev.mid(5))); + if (f.exists()) + return true; + + f.setFileName(disk_encrypt::kEncConfigPath); + if (!f.exists()) + return false; + + if (!f.open(QIODevice::ReadOnly)) { + qWarning() << "cannot open config file for read!"; + return false; + } + QJsonDocument doc = QJsonDocument::fromJson(f.readAll()); + f.close(); + auto obj = doc.object(); + const QString &devPath = obj.value("device-path").toString(); + return devPath == dev; +} + +quint64 block_device_utils::bcGetBlockSize(const QString &device) +{ + auto dev = bcCreateBlkDev(device); + if (!dev) + return 0; + return dev->getProperty(dfmmount::Property::kPartitionSize).toULongLong(); +} + +bool block_device_utils::bcMoveFsForward(const QString &device) +{ + static const quint64 kStepSize = 16 * 1024 * 1024; // luks header size. + + QString dev(device); + QString logFilePath("/boot/usec-crypt/dfm_mv_fs_" + dev.replace("/", "_")); + + QFile logFile(logFilePath); + QFile blockFile(device); + char *buf = new char[kStepSize]; + + auto clearMem = [&] { + if (logFile.isOpen()) + logFile.close(); + if (blockFile.isOpen()) + blockFile.close(); + delete[] buf; + }; + + if (!logFile.exists()) { + if (!logFile.open(QIODevice::Truncate | QIODevice::ReadWrite)) { + qWarning() << "cannot create log file!" << logFilePath; + clearMem(); + return false; + } + logFile.close(); + } + if (!logFile.open(QIODevice::ReadWrite | QIODevice::Unbuffered)) { + qWarning() << "cannot open log file!" << logFilePath; + clearMem(); + return false; + } + + if (!blockFile.open(QIODevice::ReadWrite | QIODevice::Unbuffered)) { + qWarning() << "cannot open device!" << device; + clearMem(); + return false; + } + + // calc total move counts. + quint64 partSize = block_device_utils::bcGetBlockSize(device); + if (partSize == 0) { + qWarning() << "get block size failed!"; + clearMem(); + return false; + } + quint64 mvCount = partSize / kStepSize; + if (partSize % kStepSize) mvCount += 1; + + // read break point. + auto records = logFile.readAll().split(','); + quint64 lastMovedIndex = (records.count() > 0) ? records.last().toULongLong() : 0; + + // start move segments + disk_encrypt_funcs::bcDecryptProgress(100, 99, nullptr); + qApp->processEvents(); + + quint64 currMovedIndex = lastMovedIndex + 1; + for (; currMovedIndex <= mvCount; ++currMovedIndex, ++lastMovedIndex) { + // qInfo() << "moving..." << currMovedIndex << device; + // seek current move position + if (!blockFile.seek(currMovedIndex * kStepSize)) { + qWarning() << "seek pos failed!" << currMovedIndex * kStepSize; + clearMem(); + return false; + } + + // read next step + memset(buf, 0, kStepSize); + quint64 readed = blockFile.read(buf, kStepSize); + + // write to previous step position. + if (!blockFile.seek((lastMovedIndex)*kStepSize)) { + qWarning() << "seek target failed!" << lastMovedIndex * kStepSize; + clearMem(); + return false; + } + quint64 wrote = blockFile.write(buf, readed); + if (wrote != readed) { + qWarning() << "read write size not match!"; + clearMem(); + return false; + } + if (!blockFile.flush() || fsync(blockFile.handle()) != 0) { + qWarning() << "cannot flush device file!" << device; + clearMem(); + return false; + } + + // recore current index. + QString pos = "," + QString::number(currMovedIndex); + logFile.write(pos.toLocal8Bit()); + if (!logFile.flush() || fsync(logFile.handle()) != 0) { + qWarning() << "cannot flush log file!" << logFilePath; + clearMem(); + return false; + } + // qInfo() << "moved..." << currMovedIndex << device; + } + + disk_encrypt_funcs::bcDecryptProgress(100, 100, nullptr); + + clearMem(); + + // remove log file on success. + ::remove(logFilePath.toStdString().c_str()); + + // update udev on move finished. + ::system("udevadm trigger"); + + return true; +} + +int disk_encrypt_funcs::bcDoDecryptDevice(const QString &device, const QString &passphrase, const QString &headerPath) +{ + struct crypt_device *cdev = nullptr; + dfmbase::FinallyUtil finalClear([&] { + if (cdev) crypt_free(cdev); + }); + + int ret = crypt_init_data_device(&cdev, + headerPath.toStdString().c_str(), + device.toStdString().c_str()); + CHECK_INT(ret, "init device failed " + device, -kErrorInitCrypt); + + ret = crypt_load(cdev, CRYPT_LUKS, nullptr); + CHECK_INT(ret, "load device failed " + device, -kErrorLoadCrypt); + + uint32_t flags; + ret = crypt_persistent_flags_get(cdev, + CRYPT_FLAGS_REQUIREMENTS, + &flags); + CHECK_INT(ret, "get device flag failed " + device, -kErrorGetReencryptFlag); + bool underEncrypting = (flags & CRYPT_REQUIREMENT_OFFLINE_REENCRYPT) || (flags & CRYPT_REQUIREMENT_ONLINE_REENCRYPT); + + crypt_params_reencrypt param; + ret = crypt_reencrypt_status(cdev, ¶m); + CHECK_INT(ret, "check reencrypt status failed" + device, -kErrorCheckReencryptStatus); + + underEncrypting &= (param.mode == CRYPT_REENCRYPT_ENCRYPT); + CHECK_BOOL(!underEncrypting, + "device is under encrypting... " + device + " the flags are: " + QString::number(flags), + -kErrorWrongFlags); + + if (ret == CRYPT_REENCRYPT_CRASH) { // repair is needed. + QString dmName = "dm-" + device.mid(5); + ret = crypt_activate_by_passphrase(cdev, dmName.toStdString().c_str(), + CRYPT_ANY_SLOT, + passphrase.toStdString().c_str(), + passphrase.length(), + CRYPT_ACTIVATE_RECOVERY); + CHECK_INT(ret, "open device failed " + device, -kErrorActive); + + // close device avoid operating. + ret = crypt_deactivate(cdev, dmName.toStdString().c_str()); + } + + // if fully decrypted + + ret = crypt_reencrypt_init_by_passphrase(cdev, + nullptr, + passphrase.toStdString().c_str(), + passphrase.length(), + CRYPT_ANY_SLOT, + CRYPT_ANY_SLOT, + nullptr, + nullptr, + decryptParams()); + CHECK_INT(ret, "init reencrypt failed " + device, -kErrorWrongPassphrase); + + ret = crypt_reencrypt(cdev, bcDecryptProgress); + CHECK_INT(ret, "decrypt failed" + device, -kErrorReencryptFailed); + + return kSuccess; +} + +int disk_encrypt_funcs::bcReadHeader(const QString &header) +{ + QFile headerFile(header); + if (!headerFile.open(QIODevice::ReadOnly)) { + qWarning() << "open header failed!"; + return kInvalidHeader; + } + + headerFile.seek(4096); // header json starts at 4096 + QString jsonStr = headerFile.readLine(); + headerFile.close(); + + QJsonDocument doc = QJsonDocument::fromJson(jsonStr.toLocal8Bit()); + auto obj = doc.object(); + + // read segments + auto segments = obj.value("segments").toObject(); + if (segments.isEmpty()) { + qWarning() << "segments not found"; + return kInvalidHeader; + } + bool hasLinear = false, hasCrypt = false; + for (auto iter = segments.begin(); iter != segments.end(); ++iter) { + auto segment = iter.value().toObject(); + auto type = segment.value("type").toString(); + if (type == "linear") + hasLinear = true; + if (type == "crypt") + hasCrypt = true; + } + + // read mode + QString mode; + auto keyslots = obj.value("keyslots").toObject(); + for (auto iter = keyslots.begin(); iter != keyslots.end(); ++iter) { + auto keyslot = iter.value().toObject(); + if (keyslot.value("type").toString() == "reencrypt") { + mode = keyslot.value("mode").toString(); + break; + } + } + + if (mode == "encrypt") { + if (hasLinear && hasCrypt) + return kEncryptInProgress; + if (hasLinear) + return kEncryptInit; + } else if (mode == "decrypt") { + if (hasLinear && hasCrypt) + return kDecryptInProgress; + if (hasCrypt) + return kDecryptInit; + } else { + if (hasLinear && !hasCrypt) + return kDecryptFully; + if (!hasLinear && hasCrypt) + return kEncryptFully; + } + + return kInvalidHeader; +} diff --git a/src/services/diskencrypt/encrypt/diskencrypt.h b/src/services/diskencrypt/encrypt/diskencrypt.h new file mode 100644 index 0000000000..2c1d2fd0c6 --- /dev/null +++ b/src/services/diskencrypt/encrypt/diskencrypt.h @@ -0,0 +1,87 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later +#ifndef DISK_ENCRYPT_H +#define DISK_ENCRYPT_H + +#include "diskencrypt_global.h" + +#include +#include +#include + +namespace dfmmount { +class DBlockDevice; +} // namespace dfmmount + +FILE_ENCRYPT_BEGIN_NS + +enum EncryptVersion { + kNotEncrypted, + kVersionLUKS1, + kVersionLUKS2, + kVersionLUKSUnknown, + + kVersionUnknown = 10000, +}; // enum EncryptVersion + +enum HeaderStatus { + kInvalidHeader = -1, + kEncryptInit, + kEncryptInProgress, + kEncryptFully, + kDecryptInit, + kDecryptInProgress, + kDecryptFully, +}; + +namespace disk_encrypt_funcs { +int bcInitHeaderFile(const EncryptParams ¶ms, QString &headerPath, int *keyslotCipher, int *keyslotRecKey); +int bcGetToken(const QString &device, QString *tokenJson); +int bcInitHeaderDevice(const QString &device, const QString &passphrase, const QString &headerPath); +int bcSetToken(const QString &device, const QString &token); +int bcResumeReencrypt(const QString &device, const QString &passphrase, const QString &clearDev, bool expandFs = true); +int bcChangePassphrase(const QString &device, const QString &oldPassphrase, const QString &newPassphrase, int *keyslot); +int bcChangePassphraseByRecKey(const QString &device, const QString &oldPassphrase, const QString &newPassphrase, int *keyslot); +int bcDecryptDevice(const QString &device, const QString &passphrase); +int bcDoDecryptDevice(const QString &device, const QString &passphrase, const QString &headerPath); +int bcBackupCryptHeader(const QString &device, QString &headerPath); +int bcDoSetupHeader(const EncryptParams ¶ms, QString *headerPath, int *keyslotCipher, int *keyslotRecKey); +int bcPrepareHeaderFile(const QString &device, QString *headerPath); +int bcSetLabel(const QString &device, const QString &label); +int bcOpenDevice(const QString &device, const QString &activeName); +int bcReadHeader(const QString &header); +int bcEncryptProgress(uint64_t size, uint64_t offset, void *usrptr); +int bcDecryptProgress(uint64_t size, uint64_t offset, void *usrptr); + +} // namespace disk_encrypt_funcs + +namespace disk_encrypt_utils { +EncryptParams bcConvertParams(const QVariantMap ¶ms); +bool bcValidateParams(const EncryptParams ¶ms); +bool bcReadEncryptConfig(disk_encrypt::EncryptConfig *config, const QString &device = QString()); + +QString generateRandomString(int length = 24); +QString bcGenRecKey(); +bool bcSaveRecoveryKey(const QString &dev, const QString &key, const QString &path); +bool bcHasEncryptConfig(const QString &dev); +} // namespace disk_encrypt_utils + +typedef QSharedPointer DevPtr; +namespace block_device_utils { +DevPtr bcCreateBlkDev(const QString &device); +EncryptVersion bcDevEncryptVersion(const QString &device); +int bcDevEncryptStatus(const QString &device, disk_encrypt::EncryptStates *status); +bool bcIsMounted(const QString &device); +quint64 bcGetBlockSize(const QString &device); + +bool bcMoveFsForward(const QString &device); +} // namespace block_device_utils + +namespace utils { +QDBusReply inhibit(const QString &message); +} + +FILE_ENCRYPT_END_NS + +#endif // DISK_ENCRYPT_H diff --git a/src/services/diskencrypt/encrypt/encryptworker.cpp b/src/services/diskencrypt/encrypt/encryptworker.cpp new file mode 100644 index 0000000000..336fa55427 --- /dev/null +++ b/src/services/diskencrypt/encrypt/encryptworker.cpp @@ -0,0 +1,760 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later +#include "encryptworker.h" +#include "diskencrypt.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +FILE_ENCRYPT_USE_NS +using namespace disk_encrypt; + +static constexpr char kBootUsecPath[] { "/boot/usec-crypt" }; + +void createRebootFlagFile(const QString &device) +{ + QString dev = device; + QString fileName = kRebootFlagFilePrefix + dev.replace("/", "_"); + QFile f(fileName); + if (!f.open(QIODevice::Truncate | QIODevice::WriteOnly)) { + qWarning() << "cannot create reboot flag file"; + return; + } + f.close(); + qInfo() << "reboot flag created." << fileName; +} + +void createUsecPathIfNotExist() +{ + QDir d(kBootUsecPath); + if (!d.exists()) { + bool ok = d.mkpath(kBootUsecPath); + qDebug() << kBootUsecPath << " path created: " << ok; + } +} + +PrencryptWorker::PrencryptWorker(const QString &jobID, + const QVariantMap ¶ms, + QObject *parent) + : Worker(jobID, parent), + params(params) +{ +} + +void PrencryptWorker::run() +{ + auto fd = utils::inhibit(tr("Preparing encrypt...")); + + auto encParams = disk_encrypt_utils::bcConvertParams(params); + if (params.value(encrypt_param_keys::kKeyIsDetachedHeader).toBool()) { + writeEncryptParams(encParams.device); + return; + } + + QString mpt = params.value(encrypt_param_keys::kKeyMountPoint).toString(); + if (kDisabledEncryptPath.contains(mpt, Qt::CaseInsensitive)) { + qInfo() << "device mounted at disable list, ignore encrypt."; + setExitCode(-kErrorDisabledMountPoint); + return; + } + + if (params.value(encrypt_param_keys::kKeyInitParamsOnly, false).toBool()) { + writeEncryptParams(); + setFstabTimeout(); + setExitCode(-kRebootRequired); + createRebootFlagFile(params.value(encrypt_param_keys::kKeyDevice).toString()); + return; + } + + if (!disk_encrypt_utils::bcValidateParams(encParams)) { + setExitCode(-kErrorParamsInvalid); + qDebug() << "invalid params" << params; + return; + } + + QString localHeaderFile; + int err = disk_encrypt_funcs::bcInitHeaderFile(encParams, + localHeaderFile, + &keyslotCipher, + &keyslotRecKey); + if (err != kSuccess || localHeaderFile.isEmpty()) { + setExitCode(-kErrorCreateHeader); + qDebug() << "cannot generate local header" + << params; + return; + } + + int ret = disk_encrypt_funcs::bcInitHeaderDevice(encParams.device, + encParams.passphrase, + localHeaderFile); + if (ret != 0) { + setExitCode(-kErrorApplyHeader); + qDebug() << "cannot init device encrypt" + << params; + return; + } + + writeEncryptParams(encParams.device); + + if (!encParams.tpmToken.isEmpty()) { + QFile f(QString(TOKEN_FILE_PATH).arg(encParams.device.mid(5))); + if (!f.open(QIODevice::WriteOnly | QIODevice::Truncate)) { + qWarning() << "cannot open file to cache token"; + return; + } + f.write(encParams.tpmToken.toLocal8Bit()); + f.flush(); + f.close(); + } +} + +int PrencryptWorker::writeEncryptParams(const QString &device) +{ + const static QMap encMode { + { 0, "pin" }, + { 1, "tpm-pin" }, + { 2, "tpm" } + }; + + QJsonObject obj; + QString dev = params.value(encrypt_param_keys::kKeyDevice).toString(); + QString dmDev = QString("dm-%1").arg(dev.mid(5)); + if (params.value(encrypt_param_keys::kKeyIsDetachedHeader).toBool()) + dmDev = params.value(encrypt_param_keys::kKeyPrefferDevice).toString(); + QString fsUuid = QString("UUID=%1").arg(params.value(encrypt_param_keys::kKeyUUID).toString()); + QString partUuid = QString("PARTUUID=%1").arg(params.value(encrypt_param_keys::kKeyPartUUID).toString()); + + obj.insert("volume", dmDev); // used to name a opened luks device. + obj.insert("device", partUuid); // used to locate the backing device. + obj.insert("device-path", dev); // used to locate the backing device by device path. + obj.insert("device-name", params.value(encrypt_param_keys::kKeyDeviceName).toString()); // the device name display in dde-file-manager + obj.insert("device-mountpoint", params.value(encrypt_param_keys::kKeyMountPoint).toString()); // the mountpoint of the device + obj.insert("cipher", params.value(encrypt_param_keys::kKeyCipher).toString() + "-xts-plain64"); + obj.insert("key-size", "256"); + obj.insert("mode", encMode.value(params.value(encrypt_param_keys::kKeyEncMode).toInt())); + obj.insert("clear-device-uuid", params.value(encrypt_param_keys::kKeyClearDevUUID).toString()); + obj.insert("is-detached-header", params.value(encrypt_param_keys::kKeyIsDetachedHeader).toBool()); + obj.insert("file-system-uuid", fsUuid); + + QString expPath = params.value(encrypt_param_keys::kKeyRecoveryExportPath).toString(); + if (!expPath.isEmpty()) { + expPath.append(QString("/recovery_key_%1.txt").arg(dev.mid(5))); + expPath.replace("//", "/"); + } + obj.insert("recoverykey-path", expPath); + + QJsonDocument tpmConfig = QJsonDocument::fromJson(params.value(encrypt_param_keys::kKeyTPMConfig).toString().toLocal8Bit()); + obj.insert("tpm-config", tpmConfig.object()); // the tpm info used to decrypt passphrase from tpm. + QJsonDocument doc(obj); + + createUsecPathIfNotExist(); + + QString configPath = QString("%1/encrypt.json").arg(kBootUsecPath); + if (!device.isEmpty() && !params.value(encrypt_param_keys::kKeyIsDetachedHeader).toBool()) { + configPath = QString("%1/encrypt_%2.json").arg(kBootUsecPath).arg(device.mid(5)); + } + + QFile f(configPath); + if (f.exists()) + qInfo() << "has pending job, the pending job will be replaced"; + + if (!f.open(QIODevice::WriteOnly | QIODevice::Truncate)) { + qWarning() << "cannot open file for write!"; + return -kErrorOpenFileFailed; + } + + f.write(doc.toJson()); + f.flush(); + f.close(); + return -kSuccess; +} + +int PrencryptWorker::setFstabTimeout() +{ + static const QString kFstabPath { "/etc/fstab" }; + QFile fstab(kFstabPath); + if (!fstab.open(QIODevice::ReadOnly)) + return kErrorOpenFstabFailed; + + QByteArray fstabContents = fstab.readAll(); + fstab.close(); + + static const QByteArray kTimeoutParam = "x-systemd.device-timeout=0"; + QString devDesc = params.value(encrypt_param_keys::kKeyDevice).toString(); + QString devUUID = QString("UUID=%1").arg(params.value(encrypt_param_keys::kKeyUUID).toString()); + QByteArrayList fstabLines = fstabContents.split('\n'); + QList fstabItems; + bool foundItem = false; + for (const QString &line : fstabLines) { + QStringList items = line.split(QRegularExpression(R"(\t| )"), QString::SkipEmptyParts); + if (items.count() == 6 + && (items[0] == devDesc || items[0] == devUUID) + && !foundItem) { + + if (!items[3].contains(kTimeoutParam)) { + items[3] += ("," + kTimeoutParam); + foundItem = true; + } + } + fstabItems.append(items); + } + + if (foundItem) { + QByteArray newContents; + for (const auto &items : fstabItems) { + newContents += items.join('\t'); + newContents.append('\n'); + } + + if (!fstab.open(QIODevice::Truncate | QIODevice::ReadWrite)) + return kErrorOpenFstabFailed; + + fstab.write(newContents); + fstab.flush(); + fstab.close(); + + qDebug() << "old fstab contents:" + << fstabContents; + qDebug() << "new fstab contents" + << newContents; + } + + return kSuccess; +} + +DecryptWorker::DecryptWorker(const QString &jobID, + const QVariantMap ¶ms, + QObject *parent) + : Worker(jobID, parent), + params(params) +{ +} + +void DecryptWorker::run() +{ + auto fd = utils::inhibit(tr("Decrypting...")); + + const QString &device = params.value(encrypt_param_keys::kKeyDevice).toString(); + EncryptStates status; + int ret = block_device_utils::bcDevEncryptStatus(device, &status); + if (ret != kSuccess) { + qWarning() << "check device status failed!"; + setExitCode(ret); + return; + } + + bool isOnlineEncrypting = (status & kStatusOnline) && (status & kStatusEncrypt); + if (isOnlineEncrypting) { + qWarning() << "encrypt status not finished, cannot decrypt!" << status << device; + setExitCode(-kErrorNotFullyEncrypted); + return; + } + + bool initOnly = params.value(encrypt_param_keys::kKeyInitParamsOnly).toBool(); + if (initOnly) { + writeDecryptParams(); + const QString &clearDevUUID = params.value(encrypt_param_keys::kKeyClearDevUUID, "").toString(); + if (!clearDevUUID.isEmpty()) + ReencryptWorkerV2::setFsPassno(clearDevUUID, "0"); + setExitCode(-kRebootRequired); + createRebootFlagFile(device); + return; + } + + const QString &passphrase = decryptPasswd(params.value(encrypt_param_keys::kKeyPassphrase).toString()); + ret = disk_encrypt_funcs::bcDecryptDevice(device, passphrase); + if (ret < 0) { + setExitCode(ret); + qDebug() << "decrypt devcei failed" + << device + << ret; + return; + } +} + +int DecryptWorker::writeDecryptParams() +{ + createUsecPathIfNotExist(); + + QJsonObject obj; + QString dev = params.value(encrypt_param_keys::kKeyDevice).toString(); + obj.insert("device-path", dev); + + QString srcDev = findEncryptSrcDev(params.value(encrypt_param_keys::kKeyPrefferDevice).toString()); + obj.insert("device", srcDev); + qInfo() << "found source device:" << srcDev; + + QJsonDocument doc(obj); + + QFile f(QString("%1/decrypt.json").arg(kBootUsecPath)); + if (f.exists()) + qWarning() << "the decrypt task will be replaced"; + if (!f.open(QIODevice::WriteOnly | QIODevice::Truncate)) { + qWarning() << "cannot open decrypt file for writing"; + return -kErrorOpenFileFailed; + } + + f.write(doc.toJson()); + f.close(); + return kSuccess; +} + +QString DecryptWorker::findEncryptSrcDev(const QString &activeName) +{ + QFile f("/etc/crypttab"); + if (!f.open(QIODevice::ReadOnly)) { + qWarning() << "cannot open crypttab!"; + return ""; + } + QByteArray contents = f.readAll(); + f.close(); + QByteArrayList lines = contents.split('\n'); + for (auto line : lines) { + auto items = QString(line).split(QRegularExpression(R"( |\t)"), QString::SkipEmptyParts); + if (items.count() != 4) + continue; + if (items.at(0) == activeName) + return items.at(1); + } + return ""; +} + +ChgPassWorker::ChgPassWorker(const QString &jobID, const QVariantMap ¶ms, QObject *parent) + : Worker(jobID, parent), + params(params) +{ +} + +void ChgPassWorker::run() +{ + QString dev = params.value(encrypt_param_keys::kKeyDevice).toString(); + QString oldPass = decryptPasswd(params.value(encrypt_param_keys::kKeyOldPassphrase).toString()); + QString newPass = decryptPasswd(params.value(encrypt_param_keys::kKeyPassphrase).toString()); + + int newSlot = 0; + int ret = 0; + if (params.value(encrypt_param_keys::kKeyValidateWithRecKey, false).toBool()) + ret = disk_encrypt_funcs::bcChangePassphraseByRecKey(dev, oldPass, newPass, &newSlot); + else + ret = disk_encrypt_funcs::bcChangePassphrase(dev, oldPass, newPass, &newSlot); + + QString token = params.value(encrypt_param_keys::kKeyTPMToken).toString(); + if (!token.isEmpty() && ret == 0) { + // The value in keyslots represents the keyslot location where the passphrase is located + QJsonDocument doc = QJsonDocument::fromJson(token.toLocal8Bit()); + QJsonObject obj = doc.object(); + obj.insert("keyslots", QJsonArray::fromStringList({ QString::number(newSlot) })); + doc.setObject(obj); + token = doc.toJson(QJsonDocument::Compact); + + ret = disk_encrypt_funcs::bcSetToken(dev, token); + if (ret != 0) // update token failed, need to rollback the change. + disk_encrypt_funcs::bcChangePassphrase(dev, newPass, oldPass, &newSlot); + } + + setExitCode(ret); +} + +ReencryptWorkerV2::ReencryptWorkerV2(QObject *parent) + : Worker("", parent) +{ +} + +void ReencryptWorkerV2::setEncryptParams(const QVariantMap ¶ms) +{ + QWriteLocker lk(&lockParam); + this->params = params; +} + +void ReencryptWorkerV2::loadReencryptConfig(const QString &device) +{ + disk_encrypt_utils::bcReadEncryptConfig(&config, device); +} + +EncryptConfig ReencryptWorkerV2::encryptConfig() const +{ + return config; +} + +void ReencryptWorkerV2::ignoreParamRequest() +{ + QWriteLocker locker(&lockRequest); + ignoreRequest = true; + qInfo() << "ignore param request."; +} + +void ReencryptWorkerV2::run() +{ + auto fd = utils::inhibit(tr("Encrypting...")); + + if (!hasUnfinishedOnlineEncryption()) { + qInfo() << "no unfinished encryption job exists. exit thread."; + return; + } + + QString clearDev; + // found unfinished encrypt job, disable recovery. + if (config.configPath.endsWith("encrypt.json")) { + disableABRecovery(); + clearDev = config.clearDev; + } + + if (waitForInput() == kIgnoreRequest) { + setExitCode(-kIgnoreRequest); + return; + } + + // this open action here is for repairing the reencrypt process. + int ret = disk_encrypt_funcs::bcOpenDevice(config.devicePath, config.clearDev); + if (ret != kSuccess) { + qWarning() << "cannot open device for reencryption!" << ret; + Q_EMIT deviceReencryptResult(config.devicePath, ret, ""); + return; + } + + if (config.isDetachedHeader) { + if (!setFsPassno(config.clearDevUUID, "0")) { + qCritical() << "set filesystem passno to 0 failed, uuid is " << config.clearDevUUID; + Q_EMIT deviceReencryptResult(config.devicePath, -kErrorSetFsPassno, ""); + return; + } + } + QString msg; + ret = disk_encrypt_funcs::bcResumeReencrypt(config.devicePath, "", clearDev, false); + if (ret == kSuccess) { + // sets the passphrase, token, recovery-key + setPassphrase(); + if (config.isDetachedHeader) { + if (!setFsPassno(config.clearDevUUID, "2")) { + qWarning() << "set filesystem passno to 2 failed, uuid is " << config.clearDevUUID; + } + } + setBakcingDevLabel(); + updateCrypttab(); + removeEncryptFile(); + QString recKey; + bool expKey; + setRecoveryKey(&recKey, &expKey); + if (expKey && !recKey.isEmpty()) { + if (!disk_encrypt_utils::bcSaveRecoveryKey(config.devicePath, + recKey, + params.value(encrypt_param_keys::kKeyRecoveryExportPath).toString())) { + ret = -KErrorRequestExportRecKey; + msg = recKey; + } + } + } else { + setExitCode(ret); + } + Q_EMIT deviceReencryptResult(config.devicePath, ret, msg); +} + +bool ReencryptWorkerV2::hasUnfinishedOnlineEncryption() +{ + if (config.devicePath.isEmpty()) { + qInfo() << "no unfinished encrypt device."; + return false; + } + + // 2. check if it's really unfinished. + EncryptStates status; + if (kSuccess != block_device_utils::bcDevEncryptStatus(config.devicePath, &status)) { + qWarning() << "cannot get encrypt requirements!" << config.devicePath; + return false; + } + + if ((status & kStatusOnline) + && (status & kStatusEncrypt)) { + // 3. start a worker if device is not finished ONLINE encryption. + qInfo() << "device is not finished ONLINE encryption:" << config.devicePath; + return true; + } + return false; +} + +void ReencryptWorkerV2::setPassphrase() +{ + const QString &pass = decryptPasswd(params.value(encrypt_param_keys::kKeyPassphrase).toString()); + const QString &token = params.value(encrypt_param_keys::kKeyTPMToken).toString(); + int passKeyslot = -1; + int ret = disk_encrypt_funcs::bcChangePassphrase(config.devicePath, "", pass, &passKeyslot); + if (ret != kSuccess) { + qCritical() << "cannot set passphrase for device!" << config.devicePath << ret; + setExitCode(ret); + return; + } + + if (!token.isEmpty()) { + // update token keyslot. + auto _token = updateTokenKeyslots(token, passKeyslot); + ret = disk_encrypt_funcs::bcSetToken(config.devicePath, _token); + if (ret != kSuccess) { + qCritical() << "cannot set token for device!" << config.devicePath << ret; + setExitCode(ret); + return; + } + } + + qInfo() << "passphrase has been setted at keyslot:" << passKeyslot; +} + +void ReencryptWorkerV2::setRecoveryKey(QString *key, bool *expKey) +{ + Q_ASSERT(key && expKey); + *expKey = false; + const QString &recPath = params.value(encrypt_param_keys::kKeyRecoveryExportPath).toString(); + if (recPath.isEmpty()) + return; + + *key = disk_encrypt_utils::bcGenRecKey(); + if (key->isEmpty()) { + qWarning() << "generate recovery key failed!"; + return; + } + + int recKeySlot = -1; + const QString &pass = decryptPasswd(params.value(encrypt_param_keys::kKeyPassphrase).toString()); + int ret = disk_encrypt_funcs::bcChangePassphraseByRecKey(config.devicePath, pass, *key, &recKeySlot); + if (ret != kSuccess) { + qCritical() << "cannot set recovery key for device!" << config.devicePath << ret; + setExitCode(ret); + return; + } + *expKey = true; + + QString recToken = QString("{ 'type': 'usec-recoverykey', 'keyslots': ['%1'] }").arg(recKeySlot); + ret = disk_encrypt_funcs::bcSetToken(config.devicePath, recToken); + if (ret != kSuccess) { + qCritical() << "cannot set recovery token for device!" << config.devicePath << ret; + setExitCode(ret); + return; + } + qInfo() << "recovery key has been setted at keyslot:" << recKeySlot; +} + +void ReencryptWorkerV2::setBakcingDevLabel() +{ + int ret = disk_encrypt_funcs::bcSetLabel(config.devicePath, config.deviceName); + if (ret != kSuccess) + qWarning() << "set label to device failed:" << config.devicePath << config.deviceName << ret; + qInfo() << "device name setted." << config.devicePath << config.deviceName; +} + +void ReencryptWorkerV2::updateCrypttab() +{ + qInfo() << "start updating crypttab..."; + + QString tpmToken = params.value(encrypt_param_keys::kKeyTPMToken).toString(); + if (tpmToken.isEmpty()) + return; + + // do update crypttab item, append tpm info: tpm2-device=auto + QFile crypttab("/etc/crypttab"); + if (!crypttab.open(QIODevice::ReadOnly)) { + qWarning() << "cannot open crypttab for reading"; + return; + } + auto contents = crypttab.readAll(); + crypttab.close(); + + bool crypttabUpdated = false; + QByteArrayList lines = contents.split('\n'); + for (auto &line : lines) { + QString _line = line; + if (_line.contains(config.clearDev)) { + if (!_line.contains("tpm2-device=auto")) { + _line.append(",tpm2-device=auto"); + line = _line.toLocal8Bit(); + crypttabUpdated = true; + } + break; + } + } + if (!crypttabUpdated) { + qInfo() << "no need to update crypttab."; + return; + } + + contents = lines.join('\n'); + + if (!crypttab.open(QIODevice::WriteOnly | QIODevice::Truncate)) { + qWarning() << "cannot open crypttab for writing"; + return; + } + crypttab.write(contents.data()); + crypttab.close(); + qInfo() << "crypttab has been updated:\n" + << contents; +} + +void ReencryptWorkerV2::removeEncryptFile() +{ + int ret = ::remove(config.configPath.toStdString().c_str()); + qInfo() << "encrypt job file has been removed." << ret + << config.configPath; +} + +QString ReencryptWorkerV2::updateTokenKeyslots(const QString &token, int keyslot) +{ + QJsonDocument doc = QJsonDocument::fromJson(token.toLocal8Bit()); + auto obj = doc.object(); + obj.insert("keyslots", QJsonArray::fromStringList({ QString::number(keyslot) })); + doc.setObject(obj); + return doc.toJson(QJsonDocument::Compact); +} + +bool ReencryptWorkerV2::validateParams() +{ + if (params.isEmpty()) + return false; + + if (params.value(encrypt_param_keys::kKeyDevice).toString() != config.devicePath) + return false; + + if (params.value(encrypt_param_keys::kKeyPassphrase).toString().isEmpty()) + return false; + + return true; +} + +void ReencryptWorkerV2::disableABRecovery() +{ + QFile cfg("/etc/default/grub.d/13_deepin_ab_recovery.cfg"); + QByteArray cfgContents; + if (cfg.exists()) { + if (!cfg.open(QIODevice::ReadOnly)) { + qWarning() << "cannot open recovery config!"; + return; + } + cfgContents = cfg.readAll(); + cfg.close(); + } + + QByteArrayList lines = cfgContents.split('\n'); + for (int i = 0; i < lines.count(); ++i) { + QString line = lines.at(i); + if (line.startsWith("#")) + continue; + + if (line.contains("DISABLE_AB_ROLLBACK")) { + if (line.contains("export DISABLE_AB_ROLLBACK=true")) { + qInfo() << "rollback already disabled."; + return; + } + + lines.removeAt(i); + break; + } + } + lines.append("export DISABLE_AB_ROLLBACK=true\n"); + cfgContents = lines.join('\n'); + + qDebug() << "the ab recovery contents:\n" + << cfgContents; + + if (!cfg.open(QIODevice::Truncate | QIODevice::WriteOnly)) { + qWarning() << "cannot open recovery config to write!"; + return; + } + cfg.write(cfgContents); + cfg.close(); + + // update grub + auto fd = utils::inhibit(QObject::tr("Updating grub...")); + qInfo() << "blocking reboot:" << fd.value().fileDescriptor(); + QTime t; + t.start(); + int ret = system("update-grub"); + qInfo() << "update grub costs" << t.elapsed() << "ms and result is" << ret; +} + +int ReencryptWorkerV2::waitForInput() +{ + while (true) { + { + QReadLocker lk(&lockParam); + if (validateParams()) + break; + } + { + QReadLocker lk(&lockRequest); + if (ignoreRequest) + return kIgnoreRequest; + } + + Q_EMIT requestEncryptParams(config.keyConfig()); + QThread::sleep(3); // don't request frequently. + } + return kSuccess; +} + +bool ReencryptWorkerV2::setFsPassno(const QString &uuid, const QString &state) +{ + static const QString kFstabPath { "/etc/fstab" }; + QFile fstab(kFstabPath); + if (!fstab.open(QIODevice::ReadOnly)) + return false; + + QByteArray fstabContents = fstab.readAll(); + fstab.close(); + + QString devUUID = QString("UUID=%1").arg(uuid); + QByteArrayList fstabLines = fstabContents.split('\n'); + QList fstabItems; + bool foundItem = false; + int size = fstabLines.size(); + for (int i = 0; i < size; ++i) { + QStringList items; + const QString &line = QString::fromUtf8(fstabLines.at(i)); + if (line.startsWith("#")) { + items << line; + } else { + items = line.split(QRegularExpression(R"(\t| )"), QString::SkipEmptyParts); + if (items.count() == 6 && items[0] == devUUID && !foundItem) { + items[5] = state; + foundItem = true; + } + } + fstabItems.append(items); + } + + if (foundItem) { + QByteArray newContents; + size = fstabItems.size(); + for (int i = 0; i < size; ++i) { + newContents += fstabItems.at(i).join('\t'); + newContents.append('\n'); + } + + if (!fstab.open(QIODevice::Truncate | QIODevice::ReadWrite)) + return false; + + fstab.write(newContents); + fstab.flush(); + fstab.close(); + + qDebug() << "old fstab contents:" + << fstabContents; + qDebug() << "new fstab contents" + << newContents; + + return true; + } else { + return false; + } +} + +QString Worker::decryptPasswd(const QString &passwd) +{ + QByteArray encodedByteArray = passwd.toUtf8(); + QByteArray decodedByteArray = QByteArray::fromBase64(encodedByteArray); + return QString::fromUtf8(decodedByteArray); +} diff --git a/src/services/diskencrypt/encrypt/encryptworker.h b/src/services/diskencrypt/encrypt/encryptworker.h new file mode 100644 index 0000000000..7263173b43 --- /dev/null +++ b/src/services/diskencrypt/encrypt/encryptworker.h @@ -0,0 +1,140 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later +#ifndef ENCRYPTWORKER_H +#define ENCRYPTWORKER_H + +#include "diskencrypt_global.h" + +#include +#include +#include + +FILE_ENCRYPT_BEGIN_NS +#define TOKEN_FILE_PATH QString("/tmp/%1_tpm_token.json") + +class Worker : public QThread +{ + Q_OBJECT +public: + explicit Worker(const QString &jobID, QObject *parent = nullptr) + : QThread(parent), jobID(jobID) {} + + inline int exitError() + { + QMutexLocker locker(&mtx); + return exitCode; + } + +protected: + inline void setExitCode(int code) + { + QMutexLocker locker(&mtx); + exitCode = code; + } + + static QString decryptPasswd(const QString &passwd); + +protected: + int exitCode { disk_encrypt::kSuccess }; + QString jobID; + QMutex mtx; +}; + +class PrencryptWorker : public Worker +{ + Q_OBJECT +public: + explicit PrencryptWorker(const QString &jobID, + const QVariantMap ¶ms, + QObject *parent); + int cipherPos() const { return keyslotCipher; } + int recKeyPos() const { return keyslotRecKey; } + +protected: + void run() override; + int writeEncryptParams(const QString &device = QString()); + int setFstabTimeout(); + +private: + QVariantMap params; + int keyslotCipher { -1 }; + int keyslotRecKey { -1 }; +}; + +class ReencryptWorkerV2 : public Worker +{ + Q_OBJECT + +public: + explicit ReencryptWorkerV2(QObject *parent = nullptr); + void setEncryptParams(const QVariantMap ¶ms); + void loadReencryptConfig(const QString &device = QString()); + disk_encrypt::EncryptConfig encryptConfig() const; + void ignoreParamRequest(); + static bool setFsPassno(const QString &uuid, const QString &state); + +Q_SIGNALS: + void requestEncryptParams(const QVariantMap &encConf); + void deviceReencryptResult(const QString &device, + int result, + const QString &msg); + +protected: + void run() override; + bool hasUnfinishedOnlineEncryption(); + void setPassphrase(); + void setRecoveryKey(QString *key, bool *expKey); + void setBakcingDevLabel(); + void updateCrypttab(); + void removeEncryptFile(); + QString updateTokenKeyslots(const QString &token, int keyslot); + bool validateParams(); + void disableABRecovery(); + int waitForInput(); + +private: + QVariantMap params; + QReadWriteLock lockParam; + + QReadWriteLock lockRequest; + bool ignoreRequest { false }; + + disk_encrypt::EncryptConfig config; +}; + +class DecryptWorker : public Worker +{ + Q_OBJECT +public: + explicit DecryptWorker(const QString &jobID, + const QVariantMap ¶ms, + QObject *parent = nullptr); + +protected: + void run() override; + int writeDecryptParams(); + QString findEncryptSrcDev(const QString &activeName); + +private: + QVariantMap params; +}; + +class ChgPassWorker : public Worker +{ + Q_OBJECT +public: + explicit ChgPassWorker(const QString &jobID, + const QVariantMap ¶ms, + QObject *parent = nullptr); + +protected: + void run() override; + +private: + QVariantMap params; +}; + +FILE_ENCRYPT_END_NS + +#endif // ENCRYPTWORKER_H diff --git a/src/services/diskencrypt/fsresize/fsresize.cpp b/src/services/diskencrypt/fsresize/fsresize.cpp new file mode 100644 index 0000000000..66a2060654 --- /dev/null +++ b/src/services/diskencrypt/fsresize/fsresize.cpp @@ -0,0 +1,77 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later +#include "fsresize.h" + +#include + +using namespace daemonplugin_file_encrypt; + +bool fs_resize::shrinkFileSystem_ext(const QString &device) +{ + // TODO(xust): not find the API of resize2fs, use BIN program temp + QString cmd = QString("e2fsck -f -y %1").arg(device); + int ret = ::system(cmd.toStdString().c_str()); + if (ret != 0) { + qWarning() << "e2fsck failed!" + << ret; + return false; + } + + cmd = QString("resize2fs -M %1").arg(device); + ret = ::system(cmd.toStdString().c_str()); + if (ret != 0) { + qWarning() << "resize2fs failed" + << ret; + return false; + } + + return true; +} + +bool fs_resize::expandFileSystem_ext(const QString &device) +{ + // TODO(xust): not find the API of resize2fs, use BIN program temp + QString cmd = QString("e2fsck -f -y %1").arg(device); + int ret = ::system(cmd.toStdString().c_str()); + if (ret != 0) { + qWarning() << "e2fsck failed!" + << ret; + return false; + } + + cmd = QString("resize2fs %1").arg(device); + ret = ::system(cmd.toStdString().c_str()); + if (ret != 0) { + qWarning() << "resize2fs failed" + << ret; + return false; + } + + return true; +} + +bool fs_resize::recoverySuperblock_ext(const QString &device, + const QString &cryptHeaderPath) +{ + struct stat st; + int ret = stat(cryptHeaderPath.toStdString().c_str(), + &st); + if (ret != 0) { + qWarning() << "cannot stat header file" + << device + << cryptHeaderPath; + return false; + } + + QString cmd = QString("e2image -aro %1 %2 %2") + .arg(st.st_size) + .arg(device); + ret = ::system(cmd.toStdString().c_str()); + if (ret != 0) { + qWarning() << "cannot recovery superblock of" + << device; + return false; + } + return true; +} diff --git a/src/services/diskencrypt/fsresize/fsresize.h b/src/services/diskencrypt/fsresize/fsresize.h new file mode 100644 index 0000000000..9f335bea5c --- /dev/null +++ b/src/services/diskencrypt/fsresize/fsresize.h @@ -0,0 +1,22 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later +#ifndef FSRESIZE_H +#define FSRESIZE_H + +#include "diskencrypt_global.h" + +FILE_ENCRYPT_BEGIN_NS + +namespace fs_resize { +bool shrinkFileSystem(const QString &device); +bool expandFileSystem(const QString &device); + +bool shrinkFileSystem_ext(const QString &device); +bool expandFileSystem_ext(const QString &device); +bool recoverySuperblock_ext(const QString &device, const QString &cryptHeaderPath); +} // namespace fs_resize + +FILE_ENCRYPT_END_NS + +#endif // FSRESIZE_H diff --git a/src/services/diskencrypt/globaltypesdefine.h b/src/services/diskencrypt/globaltypesdefine.h new file mode 100644 index 0000000000..21260202f7 --- /dev/null +++ b/src/services/diskencrypt/globaltypesdefine.h @@ -0,0 +1,162 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#ifndef GLOBALTYPESDEFINE_H +#define GLOBALTYPESDEFINE_H + +#include +#include +#include + +namespace disk_encrypt { +Q_NAMESPACE + +inline constexpr char kEncConfigPath[] { "/boot/usec-crypt/encrypt.json" }; +inline const QString kEncConfigDevicePath { "/boot/usec-crypt/encrypt_%1.json" }; +inline constexpr char kReencryptDesktopFile[] { "/usr/share/applications/dfm-reencrypt.desktop" }; +inline constexpr char kRebootFlagFilePrefix[] { "/tmp/dfm_encrypt_reboot_flag_" }; + +namespace encrypt_param_keys { +inline constexpr char kKeyDevice[] { "device" }; +inline constexpr char kKeyUUID[] { "uuid" }; +inline constexpr char kKeyEncMode[] { "mode" }; +inline constexpr char kKeyPassphrase[] { "passphrase" }; +inline constexpr char kKeyOldPassphrase[] { "oldPassphrase" }; +inline constexpr char kKeyCipher[] { "cipher" }; +inline constexpr char kKeyRecoveryExportPath[] { "exportRecKeyTo" }; +inline constexpr char kKeyInitParamsOnly[] { "initParamsOnly" }; +inline constexpr char kKeyMountPoint[] { "mountpoint" }; +inline constexpr char kKeyTPMConfig[] { "tpmConfig" }; +inline constexpr char kKeyTPMToken[] { "tpmToken" }; +inline constexpr char kKeyValidateWithRecKey[] { "usingRecKey" }; +inline constexpr char kKeyDeviceName[] { "deviceName" }; +inline constexpr char kKeyBackingDevUUID[] { "backingDevUUID" }; +inline constexpr char kKeyClearDevUUID[] { "clearDevUUID" }; +inline constexpr char kKeyIsDetachedHeader[] { "isDetachedHeader" }; +inline constexpr char kKeyPrefferDevice[] { "prefferDevice" }; +inline constexpr char kKeyPartUUID[] { "partUuid" }; +} // namespace encrypt_param_keys + +inline const QStringList kDisabledEncryptPath { + "/", + "/boot", + "/boot/efi", + "/recovery" +}; + +enum EncryptOperationStatus { + kSuccess = 0, + kUserCancelled, + kRebootRequired, + kIgnoreRequest, + + kErrorParamsInvalid, + kErrorDeviceMounted, + kErrorDeviceEncrypted, + kErrorWrongPassphrase, + kErrorEncryptBusy, + kErrorCannotStartEncryptJob, + kErrorCreateHeader, + kErrorBackupHeader, + kErrorApplyHeader, + kErrorInitCrypt, + kErrorInitReencrypt, + kErrorRestoreFromFile, + kErrorActive, + kErrorDeactive, + kErrorLoadCrypt, + kErrorGetReencryptFlag, + kErrorWrongFlags, + kErrorSetOffset, + kErrorFormatLuks, + kErrorAddKeyslot, + kErrorReencryptFailed, + kErrorDecryptFailed, + kErrorOpenFstabFailed, + kErrorChangePassphraseFailed, + kErrorOpenFileFailed, + kErrorSetTokenFailed, + kErrorResizeFs, + kErrorDisabledMountPoint, + kErrorSetLabel, + kErrorNotFullyEncrypted, + KErrorRequestExportRecKey, + kErrorSetFsPassno, + kErrorCheckReencryptStatus, + + kErrorUnknown, +}; + +enum SecKeyType { + kPasswordOnly, + kTPMAndPIN, + kTPMOnly, +}; + +struct DeviceEncryptParam +{ + QString devID; + QString devDesc; + QString uuid; + SecKeyType type; + QString key; + QString newKey; + QString exportPath; + QString deviceDisplayName; + QString mountPoint; + bool initOnly; + bool validateByRecKey; + QString backingDevUUID; + QString clearDevUUID; + bool isDetachedHeader; + QString prefferDevName; +}; + +struct EncryptConfig +{ + QString cipher; + QString device; + QString mountPoint; + QString deviceName; + QString devicePath; + QString keySize; + QString mode; + QString recoveryPath; + QVariantMap tpmConfig; + QString clearDev; + QString configPath; + QString clearDevUUID; + bool isDetachedHeader; + QString fsUuid; + + QVariantMap keyConfig() + { + return QVariantMap { + { "device", device }, + { "device-path", devicePath }, + { "device-name", deviceName }, + { "volume", clearDev }, + { "file-system-uuid", fsUuid } + }; + } +}; + +enum EncryptState { + kStatusNotEncrypted = 0, + kStatusFinished = 1, + kStatusOffline = kStatusFinished << 1, + kStatusOnline = kStatusFinished << 2, + kStatusEncrypt = kStatusFinished << 3, + kStatusDecrypt = kStatusFinished << 4, + kStatusNoEncryptConfig = kStatusFinished << 5, + + kStatusUnknown = kStatusFinished << 7, +}; +Q_ENUMS(EncryptState) +Q_DECLARE_FLAGS(EncryptStates, EncryptState) +Q_DECLARE_OPERATORS_FOR_FLAGS(EncryptStates) + +} + +#endif // GLOBALTYPESDEFINE_H diff --git a/src/services/diskencrypt/main.cpp b/src/services/diskencrypt/main.cpp new file mode 100644 index 0000000000..25a5b7eb49 --- /dev/null +++ b/src/services/diskencrypt/main.cpp @@ -0,0 +1,29 @@ +// SPDX-FileCopyrightText: 2024 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#include "diskencryptdbus.h" +#include "diskencryptadaptor.h" + +#include +#include + +static constexpr char kObjPath[] { "/org/deepin/Filemanager/DiskEncrypt" }; +static constexpr char kServiceName[] { "org.deepin.Filemanager.DiskEncrypt" }; + +int main(int argc, char *argv[]) +{ + QCoreApplication a(argc, argv); + + DiskEncryptDBus encryptServer; + new DiskEncryptAdaptor(&encryptServer); + + QDBusConnection connection = encryptServer.qDbusConnection(); + if (!connection.registerObject(kObjPath, &encryptServer)) { + qWarning() << "failed to register dbus object" << connection.lastError().message(); + } + if (!connection.registerService(kServiceName)) { + qWarning() << "failed to register dbus object" << connection.lastError().message(); + } + return a.exec(); +} diff --git a/src/services/diskencrypt/notification/notifications.cpp b/src/services/diskencrypt/notification/notifications.cpp new file mode 100644 index 0000000000..0d9eeb1118 --- /dev/null +++ b/src/services/diskencrypt/notification/notifications.cpp @@ -0,0 +1,18 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later +#include "notifications.h" + +#include +#include +#include +#include +#include + +FILE_ENCRYPT_USE_NS + +SignalEmitter *SignalEmitter::instance() +{ + static SignalEmitter ins; + return &ins; +} diff --git a/src/services/diskencrypt/notification/notifications.h b/src/services/diskencrypt/notification/notifications.h new file mode 100644 index 0000000000..686c2e1c84 --- /dev/null +++ b/src/services/diskencrypt/notification/notifications.h @@ -0,0 +1,27 @@ +// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later +#ifndef NOTIFICATIONS_H +#define NOTIFICATIONS_H + +#include "diskencrypt_global.h" + +#include + +FILE_ENCRYPT_BEGIN_NS + +class SignalEmitter : public QObject +{ + Q_OBJECT + +public: + static SignalEmitter *instance(); + +Q_SIGNALS: + void updateEncryptProgress(const QString &dev, double progress); + void updateDecryptProgress(const QString &dev, double progress); +}; + +FILE_ENCRYPT_END_NS + +#endif // NOTIFICATIONS_H diff --git a/src/services/diskencrypt/org.deepin.Filemanager.DiskEncrypt.service b/src/services/diskencrypt/org.deepin.Filemanager.DiskEncrypt.service new file mode 100644 index 0000000000..c8bce7f1f7 --- /dev/null +++ b/src/services/diskencrypt/org.deepin.Filemanager.DiskEncrypt.service @@ -0,0 +1,4 @@ +[D-BUS Service] +Name=org.deepin.Filemanager.DiskEncrypt +Exec=/usr/bin/deepin-diskencrypt-service +User=root diff --git a/src/services/diskencrypt/org.deepin.filemanager.diskencrypt.conf b/src/services/diskencrypt/org.deepin.filemanager.diskencrypt.conf new file mode 100644 index 0000000000..c9709f4aea --- /dev/null +++ b/src/services/diskencrypt/org.deepin.filemanager.diskencrypt.conf @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + diff --git a/src/services/diskencrypt/polkit/policy/org.deepin.filemanager.diskencrypt.policy b/src/services/diskencrypt/polkit/policy/org.deepin.filemanager.diskencrypt.policy new file mode 100644 index 0000000000..041f7e8bf9 --- /dev/null +++ b/src/services/diskencrypt/polkit/policy/org.deepin.filemanager.diskencrypt.policy @@ -0,0 +1,45 @@ + + + + + + + Disk encryption + Authentication is required to encrypt the disk + 加密磁盘需要认证 + 加密磁片需要認證 + 加密磁片需要認證 + folder + + no + no + auth_admin + + + + Disk encryption + Authentication is required to decrypt the disk + 取消加密磁盘需要认证 + 取消加密磁片需要認證 + 取消加密磁片需要認證 + folder + + no + no + auth_admin + + + + Disk encryption + Authentication is required to change the passphrase of disk + 修改磁盘密码需要认证 + folder + + no + no + auth_admin + + + diff --git a/src/services/diskencrypt/polkit/rules/99-dde-file-manager-encrypt.pkla b/src/services/diskencrypt/polkit/rules/99-dde-file-manager-encrypt.pkla new file mode 100644 index 0000000000..b0abc0a06e --- /dev/null +++ b/src/services/diskencrypt/polkit/rules/99-dde-file-manager-encrypt.pkla @@ -0,0 +1,13 @@ +[Skip auth when unlock system devices] +Identity=unix-group:* +Action=org.freedesktop.udisks2.encrypted-unlock-system +ResultAny=no +ResultInactive=no +ResultActive=yes + +[Skip auth when unlock devices] +Identity=unix-group:* +Action=org.freedesktop.udisks2.encrypted-unlock +ResultAny=no +ResultInactive=no +ResultActive=yes diff --git a/translations/disk-encrypt-plugin/disk-encrypt.ts b/translations/disk-encrypt-plugin/disk-encrypt.ts new file mode 100644 index 0000000000..8c7572626d --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt.ts @@ -0,0 +1,789 @@ + + + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Continue partition decryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + Device is not fully decrypted, please finish decryption before access. + + + + + Unlocking device failed + + + + + Please click the right disk menu "Continue partition encryption" to complete partition encryption. + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + diff --git a/translations/disk-encrypt-plugin/disk-encrypt_ady.ts b/translations/disk-encrypt-plugin/disk-encrypt_ady.ts new file mode 100644 index 0000000000..48eb876395 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_ady.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_af.ts b/translations/disk-encrypt-plugin/disk-encrypt_af.ts new file mode 100644 index 0000000000..794c306f5d --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_af.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_am_ET.ts b/translations/disk-encrypt-plugin/disk-encrypt_am_ET.ts new file mode 100644 index 0000000000..436d0e259a --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_am_ET.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + መሰረዣ + + + + + Confirm and Reboot + + + + + + Confirm + ማረጋገጫ + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_ar.ts b/translations/disk-encrypt-plugin/disk-encrypt_ar.ts new file mode 100644 index 0000000000..b1f4d194d1 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_ar.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + إلغاء + + + + + Confirm and Reboot + + + + + + Confirm + تأكيد + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_ast.ts b/translations/disk-encrypt-plugin/disk-encrypt_ast.ts new file mode 100644 index 0000000000..52cb73e32a --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_ast.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + Encaboxar + + + + + Confirm and Reboot + + + + + + Confirm + Confirmar + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_az.ts b/translations/disk-encrypt-plugin/disk-encrypt_az.ts new file mode 100644 index 0000000000..0ac6cb230b --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_az.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + İmtina + + + + + Confirm and Reboot + + + + + + Confirm + Tədiqləmək + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_bg.ts b/translations/disk-encrypt-plugin/disk-encrypt_bg.ts new file mode 100644 index 0000000000..360c67a7e4 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_bg.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + Отказ + + + + + Confirm and Reboot + + + + + + Confirm + Потвърждавам + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_bn.ts b/translations/disk-encrypt-plugin/disk-encrypt_bn.ts new file mode 100644 index 0000000000..b00987369e --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_bn.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + বাতিল করুন + + + + + Confirm and Reboot + + + + + + Confirm + নিশ্চিত করুন + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_bo.ts b/translations/disk-encrypt-plugin/disk-encrypt_bo.ts new file mode 100644 index 0000000000..9eea975037 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_bo.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + TPMསྐབས་བསྟུན་གྲངས་རག་མ་ཐུབ། + + + + No available encrypt algorithm. + གསང་སྡོམ་རྩི་ཐབས་སྤྱོད་མི་རུང་། + + + + TPM encrypt failed. + TPM གསང་སྡོམ་བྱེད་མ་ཐུབ། + + + + TPM is locked. + TPM སྒོ་ལྕགས་བརྒྱབ། + + + + Confirm encrypt %1? + གསང་སྡོམ་%1གཏན་ཁེལ་ལམ། + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + ཁུལ་ཚན་འདིར་གསང་སྡོམ་བྱ་རྩིས་ཡོད། དེའི་རིང་དོར་ཐབས་བྲལ་བས་གསང་སྡོམ་བྱ་མིན་གཏན་ཁེལ་བྱོས། + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + *ཁུལ་ཚན་ལ་གསང་སྡོམ་བྱས་རྗེས་རྒྱུད་ཁོངས་ཕྱིར་པར་གཞི་དམའ་བར་ལོག་ཐབས་བྲལ། གསང་སྡོམ་བྱ་མིན་གཏན་ཁེལ་བྱོས། + + + + + Cancel + འདོར་བ། + + + + + Confirm and Reboot + གཏན་ཁེལ་བ་མ་ཟད་བསྐྱར་དུ་འགོ་སློང་བ། + + + + + Confirm + ཆོག + + + + Decrypt %1? + གསང་སྡོམ་%1དོར་དགོས་སམ། + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + གསང་སྡོམ་དོར་བར་དུས་ཡུན་ཅུང་རིང་ཙམ་དགོས་པས། ལེགས་གྲུབ་མ་བྱུང་བར་གློག་ཁུངས་གཏུགས་ནས་གློག་ཡོད་པ་བྱེད་དགོས། + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + གསང་ཨང་། + + + + + + PIN + PIN + + + + + Recovery key + སོར་ཆུད་གསང་ལྡེ། + + + + Validate with %1 + %1སྤྱད་དེ་ར་སྤྲོད་བྱེད་པ། + + + + Please input recovery key + སོར་ཆུད་གསང་ལྡེ་འཇུག་རོགས། + + + + Old %1 + རྙིང་པ་%1 + + + + New %1 + གསར་པ་%1 + + + + Modify %1 + བཟོ་བཅོས་%1 + + + + Please enter %1 again + ཡང་བསྐྱར་འཇུག་རོགས་%1 + + + + Repeat %1 + བསྐྱར་སྒྲིག་%1 + + + + Cancel + འདོར་བ། + + + + + Confirm + གཏན་ཁེལ། + + + + + %1 cannot be empty + %1སྟོང་པ་ཡིན་མི་རུང་། + + + + Recovery key is not valid! + སོར་ཆུད་གསང་ལྡེ་ཁྲིམས་དང་མི་མཐུན། + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + ཉུང་མཐར་ཡང་གྲངས་8དགོས་པ་དང་། A-Z, a-z, 0-9དང་མཚོན་རྟགས་ལས་3ཚུད་དགོས། + + + + %1 inconsistency + %1གཅིག་པ་མིན་པ། + + + + Validate with recovery key + སོར་ཆུད་གསང་ལྡེ་སྤྱད་དེ་ར་སྤྲོད་བྱེད་པ། + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + %1སྤྱད་དེ་ར་སྤྲོད་བྱེད་པ། + + + + + + PIN + PIN + + + + + passphrase + གསང་ཨང་། + + + + Please input %1 to decrypt device + %1བྲིས་ནས་སྒྲིག་ཆས་ཀྱི་གསང་ལྡེ་དོར་བ། + + + + Decrypt device + གསང་ལྡེ་དོར་བ། + + + + Please input recovery key to decrypt device + སོར་ཆུད་གསང་ལྡེ་བྲིས་ནས་སྒྲིག་ཆས་ཀྱི་གསང་སྡོམ་དོར་བ། + + + + Validate with recovery key + སོར་ཆུད་གསང་ལྡེ་སྤྱད་དེ་ར་སྤྲོད་བྱེད་པ། + + + + Passphrase + གསང་ཨང་། + + + + Recovery key + སོར་ཆུད་གསང་ལྡེ། + + + + %1 cannot be empty! + %1སྟོང་པ་ཡིན་མི་རུང་། + + + + Recovery key is not valid! + སོར་ཆུད་གསང་ལྡེ་ཁྲིམས་དང་མི་མཐུན། + + + + Confirm + གཏན་ཁེལ། + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + གསང་སྡོམ་ཁུལ་ཚན་སྒོ་ལྕགས་འབྱེད་པ། + + + + Cancel partition encryption + ཁུལ་ཚན་གྱི་གསང་སྡོམ་མེད་པར་བཟོ་བ། + + + + passphrase + གསང་ཨང་། + + + + Changing the encryption %1 + བཟོ་བཅོས་གསང་ལྡེ་%1 + + + + Continue partition encryption + མུ་མཐུད་དུ་ཁུལ་ཚན་གསང་སྡོམ། + + + + Enable partition encryption + ཁུལ་ཚན་གསང་སྡོམ་ཕྱེ་བ། + + + + + + Error + ནོར་བ། + + + + Cannot resolve passphrase from TPM + TPM ཁྲོད་ནས་གསང་ཨང་རག་ཐབས་བྲལ། + + + + + PIN error + PINནོར་བ། + + + + Change passphrase failed + གསང་ཨང་བཅོས་མ་ཐུབ། + + + + Unlock device failed + སྒྲིག་ཆས་སྒོ་ལྕགས་ཕྱེ་མ་ཐུབ། + + + + Wrong passphrase + གསང་ཨང་ནོར་བ། + + + + Mount device failed + སྒྲིག་ཆས་འགེལ་མ་ཐུབ། + + + + unmount + བཤིག་འདོན། + + + + lock + སྒོ་ལྕགས་བརྒྱབ། + + + + Encrypt failed + གསང་སྡོམ་བྱེད་མ་ཐུབ། + + + + Cannot %1 device %2 + %1སྒྲིག་ཆས་%2མ་ཐུབ། + + + + Reboot to continue encrypt + བསྐྱར་དུ་འགོ་བསླངས་ནས་མུ་མཐུད་གསང་སྡོམ་བྱེད་པ། + + + + Reboot to finish decrypt + བསྐྱར་དུ་འགོ་བསླངས་ནས་གསང་སྡོམ་ལེགས་སྒྲུབ་བྱེད་པ། + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + གསང་ཨང་སྤྱད་དེ་སྒོ་ལྕགས་འབྱེད་པ། + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + དམིགས་བསལ་གྱི་གནས་ཚུལ་དཔེར་ན་གསང་ཨང་བརྗེད་པ་དང་ཡང་ན་གསང་སྡོམ་སྲ་ཆས་འཕྲོ་བརླག་ཤོར་སྐབས། ཁྱེད་ཀྱིས་སོར་ཆུད་གསང་ལྡེ་བརྒྱུད་དེ་གསང་སྡོམ་ཁུལ་ཚན་སྒོ་ལྕགས་ཕྱེ་ཆོག སོར་ཆུད་གསང་ལྡེ་གསང་སྡོམ་མིན་པའི་ཁུལ་ཚན་དུ་འདྲེན་རོགས། + + + + Please select a non-encrypted partition as the key file export path. + གསང་སྡོམ་མིན་པའི་ཁུལ་ཚན་ཞིག་བདམས་ནས་གསང་ལྡེའི་ཡིག་ཆ་འདྲེན་ལམ་བྱེད་པ། + + + + + Passphrase + གསང་ཨང་། + + + + %1 cannot be empty + %1སྟོང་པ་ཡིན་མི་རུང་། + + + + %1 inconsistency + %1གཅིག་པ་མིན་པ། + + + + Recovery key export path cannot be empty! + སོར་ཆུད་གསང་ལྡེ་འདྲེན་ལམ་སྟོང་པ་ཡིན་མི་རུང་། + + + + Recovery key export path is not exists! + སོར་ཆུད་གསང་ལྡེ་འདྲེན་ལམ་མི་འདུག + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + གསང་སྡོམ་མིན་པའི་ཁུལ་ཚན་དང་ཡང་ན་Uསྡེར་སོགས་ཕྱི་མཐུད་སྒྲིག་ཆས་སུ་འདྲེན་རོགས། + + + + This partition is read-only, please export to a writable partition + ཁུལ་ཚན་དེ་ནི་ཀློག་ཙམ་གྱི་དབང་ཚད་ཡིན་པས། འབྲི་རུང་ཁུལ་ཚན་དུ་འདྲེན་རོགས། + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + ཁུལ་ཚན་དེར་གསང་སྡོམ་བྱས་པས། གསང་སྡོམ་མིན་པའི་ཁུལ་ཚན་དང་ཡང་ན་Uསྡེར་སོགས་ཕྱི་མཐུད་སྒྲིག་ཆས་སུ་འདྲེན་རོགས། + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + TPMསྒོ་ལྕགས་བརྒྱབ་པས། ཁུལ་ཚན་གསང་སྡོམ་ལ་སྤྱོད་ཐབས་བྲལ།TPMགསང་ཨང་མེད་པར་བཟོ་བ་དང་ཡང་ན་སྒོ་ལྕགས་འབྱེད་སྟངས་གཞན་འདེམས་རོགས། + + + + + TPM error + TPMནོར་བ། + + + + TPM status error! + TPMརྣམ་པ་རྒྱུན་འགལ། + + + + Next + གོམ་སྟབས་རྗེས་མ། + + + + Please continue to encrypt partition %1 + གསང་སྡོམ་གཏན་ཁེལ་ན་མུ་མཐུད་ཁུལ་ཚན་%1ལ་གསང་སྡོམ་བྱེད་པ། + + + + Previous + གོམ་སྟབས་སྔ་མ། + + + + Export Recovery Key + སོར་ཆུད་གསང་ལྡེ་འདྲེན་པ། + + + + Set %1 + སྒྲིག་འགོད་%1 + + + + Repeat %1 + བསྐྱར་སྒྲིག་%1 + + + + + passphrase + གསང་ཨང་། + + + + Access to the partition will be unlocked using a passphrase. + ཁུལ་ཚན་དུ་འཛུལ་སྐབས་གསང་ཨང་སྤྱད་དེ་སྒོ་ལྕགས་འབྱེད་པ། + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + ཁུལ་ཚན་དུ་འཛུལ་སྐབས་TPMབདེ་འཇགས་ཉིང་ལྷེབ་སྤྱོད་པའམ་PINསྤྱད་དེ་སྒོ་ལྕགས་འབྱེད་པ། + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + ཁུལ་ཚན་དུ་འཛུལ་སྐབས་TPMབདེ་འཇགས་ཉིང་ལྷེབ་སྤྱད་དེ་སྒོ་ལྕགས་རང་བཞིན་འབྱེད་པ་ལས་གསང་ཨང་ར་སྤྲོད་བྱེད་མི་དགོས། + + + + Please enter the %1 again + ཡང་བསྐྱར་འཇུག་རོགས་%1 + + + + Unlock type + སྒོ་ལྕགས་འབྱེད་སྟངས། + + + + Use TPM+PIN to unlock on this computer (recommended) + རྩིས་འཁོར་འདིའི་ཐོག་TPM+PINསྤྱད་དེ་སྒོ་ལྕགས་འབྱེད་པ།(འོས་སྦྱོར།) + + + + Automatic unlocking on this computer by TPM + རྩིས་འཁོར་འདིའི་ཐོག་TPMསྤྱད་དེ་སྒོ་ལྕགས་རང་བཞིན་གྱིས་འབྱེད་པ། + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + ཉུང་མཐར་ཡང་གྲངས་8དགོས་པ་དང་། A-Z, a-z, 0-9དང་མཚོན་རྟགས་ལས་3ཚུད་དགོས། + + + + + Confirm encrypt + གསང་སྡོམ་གཏན་ཁེལ། + + + + + + PIN + PIN + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + གཏན་ཁེལ། + + + + + Re-export the recovery key + ཡང་བསྐྱར་སོར་ཆུད་གསང་ལྡེ་འདྲེན་པ། + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + སོར་ཆུད་གསང་ལྡེའི་ཡིག་ཆ་ཉར་མ་ཐུབ། སོར་ཆུད་གསང་ལྡེ་གསང་སྡོམ་མིན་པའི་ཁུལ་ཚན་དུ་ཡང་བསྐྱར་ཉར་བ་མ་ཟད་བདག་གཅེས་ཡག་པོ་བྱོས། + + + + + Error + ནོར་བ། + + + + Recovery key export path cannot be empty! + སོར་ཆུད་གསང་ལྡེ་འདྲེན་ལམ་སྟོང་པ་ཡིན་མི་རུང་། + + + + Recovery key export path is not exists! + སོར་ཆུད་གསང་ལྡེ་འདྲེན་ལམ་མི་འདུག + + + + This partition is read-only, please export to a writable partition + ཁུལ་ཚན་དེ་ནི་ཀློག་ཙམ་གྱི་དབང་ཚད་ཡིན་པས། འབྲི་རུང་ཁུལ་ཚན་དུ་འདྲེན་རོགས། + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + ཁུལ་ཚན་དེར་གསང་སྡོམ་བྱས་པས། གསང་སྡོམ་མིན་པའི་ཁུལ་ཚན་དང་ཡང་ན་Uསྡེར་སོགས་ཕྱི་མཐུད་སྒྲིག་ཆས་སུ་འདྲེན་རོགས། + + + + Cannot create recovery key file! + སོར་ཆུད་གསང་ལྡེའི་ཡིག་ཆ་བཟོ་མ་ཐུབ། + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + སྔོན་འགྲོའི་གསང་སྡོམ་བྱེད་མ་ཐུབ། + + + + Device %1 has been preencrypt, please reboot to finish encryption. + སྒྲིག་ཆས་%1ལ་སྔོན་འགྲོའི་གསང་སྡོམ་བྱས་ཟིན། འགོ་བསྐྱར་དུ་བསླངས་ནས་གསང་སྡོམ་བཀོལ་སྤྱོད་ལེགས་གྲུབ་བྱོས། + + + + Preencrypt failed + སྔོན་འགྲོའི་གསང་སྡོམ་བྱེད་མ་ཐུབ། + + + + Device %1 preencrypt failed, please see log for more information.(%2) + སྒྲིག་ཆས་%1ལ་སྔོན་འགྲོའི་གསང་སྡོམ་བྱེད་མ་ཐུབ། ཉིན་ཐོར་བལྟས་ནས་ཆ་འཕྲིན་དེ་བས་མང་པ་ཐོབ་ཐབས་བྱེད་པ།(%2) + + + + Wrong passpharse or PIN + གསང་ཨང་ངམ་PINནོར་བ། + + + + passphrase + གསང་ཨང་། + + + + PIN + PIN + + + + Change %1 done + བཟོ་བཅོས་%1བྱས་ཟིན། + + + + %1's %2 has been changed + %1ཡི་%2བཅོས་ཟིན། + + + + + Change %1 failed + %1བཅོས་མ་ཐུབ། + + + + Wrong %1 + %1ནོར་བ། + + + + Device %1 change %2 failed, please see log for more information.(%3) + %1སྒྲིག་ཆས་%2བཅོས་མ་ཐུབ། ཉིན་ཐོར་བལྟས་ནས་ཆ་འཕྲིན་དེ་བས་མང་པ་ཐོབ་ཐབས་བྱེད་པ།(%3) + + + + Encrypt done + གསང་སྡོམ་བྱས་ཟིན། + + + + Device %1 has been encrypted + སྒྲིག་ཆས་%1གསང་སྡོམ་བྱས་ཟིན། + + + + Encrypt failed + གསང་སྡོམ་བྱེད་མ་ཐུབ། + + + + Device %1 encrypt failed, please see log for more information.(%2) + སྒྲིག་ཆས་%1གསང་སྡོམ་བྱེད་མ་ཐུབ། ཉིན་ཐོར་བལྟས་ནས་ཆ་འཕྲིན་དེ་བས་མང་པ་ཐོབ་ཐབས་བྱེད་པ།(%2) + + + + %1 is under encrypting... + %1 གསང་སྡོམ་བྱེད་བཞིན་པ། + + + + The encrypting process may have system lag, please minimize the system operation + གསང་སྡོམ་བྱེད་པའི་བརྒྱུད་རིམ་ཁྲོད་རྒྱུད་ཁོངས་འགག་སྲིད་པས། རྒྱུད་ཁོངས་གང་ཐུབ་ཀྱིས་བཀོལ་སྤྱོད་ཉུང་ཙམ་བྱོས། + + + + %1 is under decrypting... + %1 གསང་སྡོམ་མེད་པར་བཟོ་བཞིན་པ། + + + + The decrypting process may have system lag, please minimize the system operation + དོར་བའི་བརྒྱུད་རིམ་ཁྲོད་རྒྱུད་ཁོངས་འགག་སྲིད་པས། རྒྱུད་ཁོངས་གང་ཐུབ་ཀྱིས་བཀོལ་སྤྱོད་ཉུང་ཙམ་བྱོས། + + + + Error + ནོར་བ། + + + + Decrypt done + གསང་སྡོམ་དོར་བ། + + + + Device %1 has been decrypted + སྒྲིག་ཆས་%1གསང་སྡོམ་དོར་ཟིན། + + + + Decrypt disk + སྡུད་སྡེར་གསང་སྡོམ་དོར་བ། + + + + + Decrypt failed + གསང་སྡོམ་མེད་པར་བཟོ་མ་ཐུབ། + + + + Device %1 is under encrypting, please decrypt after encryption finished. + སྒྲིག་ཆས་%1གསང་སྡོམ་བྱེད་བཞིན་ཡོད། གསང་སྡོམ་ལེགས་གྲུབ་བྱུང་རྗེས་སྒོ་ལྕགས་ཕྱེ་རོགས། + + + + Device %1 Decrypt failed, please see log for more information.(%2) + སྒྲིག་ཆས་%1གསང་སྡོམ་མེད་པར་བཟོ་མ་ཐུབ། ཉིན་ཐོར་བལྟས་ནས་ཆ་འཕྲིན་དེ་བས་མང་པ་ཐོབ་ཐབས་བྱེད་པ།(%2) + + + + TPM status is abnormal, please use the recovery key to unlock it + TPMརྣམ་པ་རྒྱུན་འགལ་ཡིན་པས། སོར་ཆུད་གསང་ལྡེ་སྤྱད་དེ་སྒོ་ལྕགས་ཕྱེ་རོགས། + + + + Wrong PIN + %1ནོར་བ། + + + + Wrong passphrase + གསང་ཨང་ནོར་བ། + + + + TPM error + TPMནོར་བ། + + + + Please use recovery key to unlock device. + སོར་ཆུད་གསང་ལྡེ་སྤྱད་དེ་སྒྲིག་ཆས་ཀྱི་སྒོ་ལྕགས་ཕྱེ་རོགས། + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + འདོར་བ། + + + + Unlock + སྒོ་ལྕགས་འབྱེད་པ། + + + + Unlock encryption partition + གསང་སྡོམ་ཁུལ་ཚན་སྒོ་ལྕགས་འབྱེད་པ། + + + + + Unlock by recovery key + སོར་ཆུད་གསང་ལྡེ་སྤྱད་དེ་སྒོ་ལྕགས་འབྱེད་པ། + + + + Unlock by passphrase + གསང་ཨང་སྤྱད་དེ་སྒོ་ལྕགས་འབྱེད་པ། + + + + Unlock by PIN + PINསྤྱད་དེ་སྒོ་ལྕགས་འབྱེད་པ། + + + + Please input recovery key to unlock device + སོར་ཆུད་གསང་ལྡེ་སྤྱད་དེ་སྒྲིག་ཆས་ཀྱི་སྒོ་ལྕགས་ཕྱེ་རོགས། + + + + Please input passphrase to unlock device + གསང་ཨང་བྲིས་ནས་སྒྲིག་ཆས་ཀྱི་སྒོ་ལྕགས་ཕྱེ་རོགས། + + + + Please input PIN to unlock device + PINབྲིས་ནས་སྒྲིག་ཆས་ཀྱི་སྒོ་ལྕགས་ཕྱེ་རོགས། + + + + Recovery key is not valid! + སོར་ཆུད་གསང་ལྡེ་ཁྲིམས་དང་མི་མཐུན། + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_bqi.ts b/translations/disk-encrypt-plugin/disk-encrypt_bqi.ts new file mode 100644 index 0000000000..403e2d0d3c --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_bqi.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_br.ts b/translations/disk-encrypt-plugin/disk-encrypt_br.ts new file mode 100644 index 0000000000..b787988eab --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_br.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_ca.ts b/translations/disk-encrypt-plugin/disk-encrypt_ca.ts new file mode 100644 index 0000000000..9dd3a82206 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_ca.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + No es pot generar un nombre aleatori per TPM + + + + No available encrypt algorithm. + No hi ha cap algorisme d'encriptació disponible. + + + + TPM encrypt failed. + L'encriptació de TPM ha fallat. + + + + TPM is locked. + El TPM està blocat. + + + + Confirm encrypt %1? + Confirmeu l'encriptació de %1? + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + La partició actual s'està a punt d'encriptar i no es pot cancel·lar durant el procés. Confirmeu-ho. + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + * Després d'encriptar la partició, el sistema no pot tornar a una versió inferior. Confirmeu-ho. + + + + + Cancel + Cancel·la + + + + + Confirm and Reboot + Ho confirmo i reinicia't + + + + + Confirm + Confirmeu-ho + + + + Decrypt %1? + Desencripto %1? + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + La desencriptació pot trigar molt de temps, així que assegureu-vos que l'alimentació d'energia estigui connectada fins que s'hagi completat. + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + contrasenya + + + + + + PIN + PIN + + + + + Recovery key + Clau de recuperació + + + + Validate with %1 + Valida amb %1 + + + + Please input recovery key + Introduïu la clau de recuperació + + + + Old %1 + Antiga %1 + + + + New %1 + Nova %1 + + + + Modify %1 + Modifica %1 + + + + Please enter %1 again + Torneu a introduir %1 + + + + Repeat %1 + Repetiu %1 + + + + Cancel + Cancel·la + + + + + Confirm + Confirma + + + + + %1 cannot be empty + %1 no pot estar buida + + + + Recovery key is not valid! + La clau de recuperació no és vàlida! + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + Com a mínim 8 bits, conté 3 tipus de A-Z, a-z, 0-9 i símbols + + + + %1 inconsistency + %1 inconsistència + + + + Validate with recovery key + Valida amb la clau de recuperació + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + Valida amb %1 + + + + + + PIN + PIN + + + + + passphrase + contrasenya + + + + Please input %1 to decrypt device + Introduïu % 1 per desencriptar el dispositiu + + + + Decrypt device + Desencripta el dispositiu + + + + Please input recovery key to decrypt device + Introduïu la clau de recuperació per desencriptar el dispositiu. + + + + Validate with recovery key + Valida amb la clau de recuperació + + + + Passphrase + Contrasenya + + + + Recovery key + Clau de recuperació + + + + %1 cannot be empty! + %1 no pot estar buida + + + + Recovery key is not valid! + La clau de recuperació no és vàlida! + + + + Confirm + Confirma + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + Desbloca la partició encriptada + + + + Cancel partition encryption + Cancel·la l'encriptació de la partició + + + + passphrase + contrasenya + + + + Changing the encryption %1 + Es canvia l'encriptació: %1 + + + + Continue partition encryption + Continua l'encriptació de la partició + + + + Enable partition encryption + Habilita l'encriptació de particions + + + + + + Error + Error + + + + Cannot resolve passphrase from TPM + No es pot resoldre la contrasenya del TPM + + + + + PIN error + Error de PIN + + + + Change passphrase failed + No s'ha pogut canviar la contrasenya + + + + Unlock device failed + No s'ha pogut desblocar el dispositiu + + + + Wrong passphrase + Contrasenya incorrecta + + + + Mount device failed + Ha fallat el muntatge del dispositiu + + + + unmount + desmunta + + + + lock + bloca + + + + Encrypt failed + Ha fallat l'encriptació. + + + + Cannot %1 device %2 + No es pot %1 el dispositiu %2 + + + + Reboot to continue encrypt + Reinicia per continuar l'encriptació + + + + Reboot to finish decrypt + Reinicia per acabar l'encriptació + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + Desblocat per contrasenya + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + En casos especials, com ara si oblideu la contrasenya o es danya el maquinari d'encriptació, podeu desencriptar la partició amb la clau de recuperació. Exporteu-la a una partició no encriptada i guardeu-la en un lloc segur! + + + + Please select a non-encrypted partition as the key file export path. + Seleccioneu una partició no encriptada com a camí d'exportació del fitxer de clau. + + + + + Passphrase + Contrasenya + + + + %1 cannot be empty + %1 no pot estar buida + + + + %1 inconsistency + %1 inconsistència + + + + Recovery key export path cannot be empty! + El camí d'exportació de la clau de recuperació no pot estar buit! + + + + Recovery key export path is not exists! + El camí d'exportació de la clau de recuperació no existeix! + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + Exporteu-la a un dispositiu extern, com ara una partició no encriptada o una unitat USB. + + + + This partition is read-only, please export to a writable partition + Aquesta partició és només de lectura. Exporteu-ho a una partició en què es pugui escriure. + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + La partició està encriptada. Exporteu-la a una partició no encriptada o a un dispositiu extern, com ara una unitat USB. + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + El TPM està blocat i no es pot usar per a l'encriptació de particions. Cancel·leu la contrasenya del TPM o trieu un altre mètode de desblocatge. + + + + + TPM error + Error de TPM + + + + TPM status error! + Error de l'estat de TPM! + + + + Next + Següent + + + + Please continue to encrypt partition %1 + Continueu l'encriptació de la partició %1 + + + + Previous + Anterior + + + + Export Recovery Key + Exporta la clau de recuperació + + + + Set %1 + Estableix %1 + + + + Repeat %1 + Repetiu %1 + + + + + passphrase + contrasenya + + + + Access to the partition will be unlocked using a passphrase. + L'accés a la partició es desblocarà mitjançant una contrasenya. + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + L'accés a la partició es desblocarà mitjançant el xip de seguretat i el PIN TPM. + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + L'accés a la partició es desblocarà automàticament mitjançant el xip de seguretat TPM. No cal comprovar la contrasenya. + + + + Please enter the %1 again + Torneu a introduir %1 + + + + Unlock type + Tipus de desblocatge + + + + Use TPM+PIN to unlock on this computer (recommended) + Utilitzeu TPM+PIN per desblocar aquest ordinador (recomanat) + + + + Automatic unlocking on this computer by TPM + Desbloqueig automàtic en aquest ordinador mitjançant TPM + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + Com a mínim 8 bits, conté 3 tipus de A-Z, a-z, 0-9 i símbols + + + + + Confirm encrypt + Confirmeu l'encriptació + + + + + + PIN + PIN + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + Confirmeu-ho + + + + + Re-export the recovery key + Torna a exportar la clau de recuperació + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + *No s'ha pogut desar la clau de recuperació. Torneu a desar-la en una partició no encriptada i guardeu-la en un lloc segur. + + + + + Error + Error + + + + Recovery key export path cannot be empty! + El camí d'exportació de la clau de recuperació no pot estar buit! + + + + Recovery key export path is not exists! + El camí d'exportació de la clau de recuperació no existeix! + + + + This partition is read-only, please export to a writable partition + Aquesta partició és només de lectura. Exporteu-ho a una partició en què es pugui escriure. + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + La partició està encriptada. Exporteu-la a una partició no encriptada o a un dispositiu extern, com ara una unitat USB. + + + + Cannot create recovery key file! + No es pot crear un fitxer de clau de recuperació! + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + Preencriptació feta + + + + Device %1 has been preencrypt, please reboot to finish encryption. + El dispositiu %1 s'ha preencriptat, reinicieu per acabar-la. + + + + Preencrypt failed + La preencriptació ha fallat. + + + + Device %1 preencrypt failed, please see log for more information.(%2) + Ha fallat la preencriptació del dispositiu %1. Consulteu el registre per obtenir-ne més informació. (%2) + + + + Wrong passpharse or PIN + Contrasenya o PIN incorrecte + + + + passphrase + contrasenya + + + + PIN + PIN + + + + Change %1 done + Canvi %1 fet + + + + %1's %2 has been changed + El %2 de %1 s'ha canviat + + + + + Change %1 failed + El canvi %1 ha fallat + + + + Wrong %1 + %1 incorrecte + + + + Device %1 change %2 failed, please see log for more information.(%3) + Ha fallat el canvi % 2 del dispositiu %1, consulteu el registre per obtenir més informació. (% 3) + + + + Encrypt done + Encriptació feta + + + + Device %1 has been encrypted + El dispositiu %1 s'ha encriptat. + + + + Encrypt failed + Ha fallat l'encriptació. + + + + Device %1 encrypt failed, please see log for more information.(%2) + Ha fallat encriptar el dispositiu %1. Consulteu el registre per obtenir-ne més informació. (%2) + + + + %1 is under encrypting... + %1 s'encripta... + + + + The encrypting process may have system lag, please minimize the system operation + El procés d'encriptació pot tenir un retard de sistema; minimitzeu-ne el funcionament. + + + + %1 is under decrypting... + %1 es desencripta... + + + + The decrypting process may have system lag, please minimize the system operation + El procés de desencriptació pot tenir un retard de sistema; minimitzeu-ne el funcionament. + + + + Error + Error + + + + Decrypt done + Desencriptació feta + + + + Device %1 has been decrypted + El dispositiu %1 s'ha desencriptat. + + + + Decrypt disk + Desencripta el disc + + + + + Decrypt failed + Ha fallat la desencriptació. + + + + Device %1 is under encrypting, please decrypt after encryption finished. + El dispositiu %1 s'està encriptant. Si us plau, feu la desencriptació un cop hagi acabat. + + + + Device %1 Decrypt failed, please see log for more information.(%2) + Ha fallat desencriptar el dispositiu %1. Consulteu el registre per obtenir-ne més informació. (%2) + + + + TPM status is abnormal, please use the recovery key to unlock it + L'estat del TPM és anormal, utilitzeu la clau de recuperació per desblocar-lo + + + + Wrong PIN + PIN incorrecte + + + + Wrong passphrase + Contrasenya incorrecta + + + + TPM error + Error de TPM + + + + Please use recovery key to unlock device. + Utilitzeu la clau de recuperació per desblocar el dispositiu. + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + Cancel·la + + + + Unlock + Desbloca + + + + Unlock encryption partition + Desbloca la partició encriptada + + + + + Unlock by recovery key + Desbloca amb la clau de recuperació + + + + Unlock by passphrase + Desbloca amb contrasenya + + + + Unlock by PIN + Desbloca amb PIN + + + + Please input recovery key to unlock device + Introduïu la clau de recuperació per desblocar el dispositiu. + + + + Please input passphrase to unlock device + Introduïu la contrasenya per desblocar el dispositiu. + + + + Please input PIN to unlock device + Introduïu el PIN per desblocar el dispositiu. + + + + Recovery key is not valid! + La clau de recuperació no és vàlida! + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_cs.ts b/translations/disk-encrypt-plugin/disk-encrypt_cs.ts new file mode 100644 index 0000000000..451e85811d --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_cs.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + Zrušit + + + + + Confirm and Reboot + + + + + + Confirm + Potvrdit + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_da.ts b/translations/disk-encrypt-plugin/disk-encrypt_da.ts new file mode 100644 index 0000000000..98a96373ed --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_da.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + Annuller + + + + + Confirm and Reboot + + + + + + Confirm + Bekræft + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_de.ts b/translations/disk-encrypt-plugin/disk-encrypt_de.ts new file mode 100644 index 0000000000..1b1222199d --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_de.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + TPM kann keine Zufallszahlen erzeugen + + + + No available encrypt algorithm. + Kein Verschlüsselungsalgorithmus verfügbar. + + + + TPM encrypt failed. + TPM-Verschlüsselung fehlgeschlagen. + + + + TPM is locked. + TPM ist gesperrt. + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + Abbrechen + + + + + Confirm and Reboot + + + + + + Confirm + Bestätigen + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + Passphrase + + + + + + PIN + PIN + + + + + Recovery key + Wiederherstellungsschlüssel + + + + Validate with %1 + Mit %1 validieren + + + + Please input recovery key + Bitte Wiederherstellungsschlüssel eingeben + + + + Old %1 + Alte %1 + + + + New %1 + Neue %1 + + + + Modify %1 + %1 ändern + + + + Please enter %1 again + Bitte %1 erneut eingeben + + + + Repeat %1 + %1 wiederholen + + + + Cancel + Abbrechen + + + + + Confirm + Bestätigen + + + + + %1 cannot be empty + %1 darf nicht leer sein + + + + Recovery key is not valid! + Wiederherstellungsschlüssel ist nicht gültig! + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + Mindestens 8 Bit, enthält 3 Arten von A-Z, a-z, 0-9 und Symbole + + + + %1 inconsistency + %1-Inkonsistenz + + + + Validate with recovery key + Mit Wiederherstellungsschlüssel validieren + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + Mit %1 validieren + + + + + + PIN + PIN + + + + + passphrase + Passphrase + + + + Please input %1 to decrypt device + Bitte geben Sie den/die %1 ein, um das Gerät zu entschlüsseln + + + + Decrypt device + Gerät entschlüsseln + + + + Please input recovery key to decrypt device + Bitte geben Sie den Wiederherstellungsschlüssel ein, um das Gerät zu entschlüsseln + + + + Validate with recovery key + Mit Wiederherstellungsschlüssel validieren + + + + Passphrase + Passphrase + + + + Recovery key + Wiederherstellungsschlüssel + + + + %1 cannot be empty! + %1 darf nicht leer sein! + + + + Recovery key is not valid! + Wiederherstellungsschlüssel ist nicht gültig! + + + + Confirm + Bestätigen + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + Verschlüsselte Partition entsperren + + + + Cancel partition encryption + Partitionsverschlüsselung abbrechen + + + + passphrase + Passphrase + + + + Changing the encryption %1 + Verschlüsselung von %1 ändern + + + + Continue partition encryption + + + + + Enable partition encryption + Partitionsverschlüsselung aktivieren + + + + + + Error + Fehler + + + + Cannot resolve passphrase from TPM + DIe Passphrase des TPM kann nicht gelöst werden + + + + + PIN error + PIN-Fehler + + + + Change passphrase failed + Ändern der Passphrase fehlgeschlagen! + + + + Unlock device failed + Entsperren des Geräts fehlgeschlagen + + + + Wrong passphrase + Falsche Passphrase + + + + Mount device failed + Einhängen des Geräts fehlgeschlagen + + + + unmount + aushängen + + + + lock + sperren + + + + Encrypt failed + Verschlüsseln fehlgeschlagen + + + + Cannot %1 device %2 + Kann nicht %1 Gerät %2 + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + Mit Passphrase entsperrt + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + In manchen Fällen, wie dem Vergessen des Passwortes oder der Beschädigung der Verschlüsselungshardware, kann die verschlüsselte Partition mit dem Wiederherstellungsschlüssel wieder entschlüsselt werden. Bitte exportieren Sie diesen auf eine unverschlüsselte Partition an einem sicheren Ort! + + + + Please select a non-encrypted partition as the key file export path. + Bitte wählen Sie eine nicht verschlüsselte Partition als Exportpfad für den Schlüssel aus. + + + + + Passphrase + Passphrase + + + + %1 cannot be empty + %1 darf nicht leer sein + + + + %1 inconsistency + %1-Inkonsistenz + + + + Recovery key export path cannot be empty! + Der Exportpfad für den Wiederherstellungsschlüssel darf nicht leer sein! + + + + Recovery key export path is not exists! + Wiederherstellungsschlüssel-Exportpfad existiert nicht! + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + Bitte an ein externes Gerät exportieren, z.B. an eine unverschlüsselte Partition oder einen USB-Speicherstick. + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + Die Partition ist verschlüsselt. Bitte an eine unverschlüsselte oder an z.B. einen USB-Speicherstick exportieren. + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + Weiter + + + + Please continue to encrypt partition %1 + + + + + Previous + Zurück + + + + Export Recovery Key + Wiederherstellungsschlüssel exportieren + + + + Set %1 + %1 festlegen + + + + Repeat %1 + %1 wiederholen + + + + + passphrase + Passphrase + + + + Access to the partition will be unlocked using a passphrase. + Zugriff auf die Partition wird nach Eingabe einer Passphrase gegeben. + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + Durch Eingabe der PIN entsperrt der TPM-Sicherheitschip den Zugriff auf die Partition. + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + Der TPM-Sicherheitschip entsperrt automatisch den Zugriff auf die Partition – keine Passphrase nötig. + + + + Please enter the %1 again + Bitte die %1 erneut eingeben + + + + Unlock type + Entsperrungstyp + + + + Use TPM+PIN to unlock on this computer (recommended) + Benutzen Sie TPM+PIN um den Computer zu entsperren (empfohlen) + + + + Automatic unlocking on this computer by TPM + Auf diesem Computer automatische Entsperrung durch TPM + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + Mindestens 8 Zeichen, aus 3 der Arten: A-Z, a-z, 0-9 und Symbole + + + + + Confirm encrypt + + + + + + + PIN + PIN + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + Vor-Verschlüsselung fertig. + + + + Device %1 has been preencrypt, please reboot to finish encryption. + Gerät %1 wurde vorverschlüsselt, bitte rebooten Sie, um die Verschlüsselung abzuschließen. + + + + Preencrypt failed + Vorverschlüsselung gescheitert! + + + + Device %1 preencrypt failed, please see log for more information.(%2) + Vorverschlüsselung von Gerät %1 fehlgeschlagen, bitte sehen Sie sich die Log-Daten für weitere Information an. (%2) + + + + Wrong passpharse or PIN + Falsche Passphrase oder PIN + + + + passphrase + Passphrase + + + + PIN + PIN + + + + Change %1 done + Änderung %1 abgeschlossen. + + + + %1's %2 has been changed + %2 von %1 wurde geändert + + + + + Change %1 failed + Änderung %1 fehlgeschlagen. + + + + Wrong %1 + Falsche %1 + + + + Device %1 change %2 failed, please see log for more information.(%3) + Gerät %1, Änderung %2 fehlgeschlagen, bitte sehen Sie sich die Logdaten für weitere Information an.(%3) + + + + Encrypt done + Verschlüsseln erledigt + + + + Device %1 has been encrypted + Gerät %1 wurde verschlüsselt + + + + Encrypt failed + Verschlüsseln fehlgeschlagen + + + + Device %1 encrypt failed, please see log for more information.(%2) + Vorverschlüsselung von Gerät %1 fehlgeschlagen, bitte sehen Sie sich die Log-Daten für weitere Information an.(%2) + + + + %1 is under encrypting... + %1 wird gerade verschlüsselt… + + + + The encrypting process may have system lag, please minimize the system operation + Der Verschlüsselungsprozess kann das System ausbremsen, bitte beschränken Sie ihre Aufgben ans System + + + + %1 is under decrypting... + %1 wird gerade entschlüsselt… + + + + The decrypting process may have system lag, please minimize the system operation + Der Entschlüsselungsprozess kann das System ausbremsen, bitte beschränken Sie ihre Aufgben ans System + + + + Error + Fehler + + + + Decrypt done + Entschlüsseln erledigt + + + + Device %1 has been decrypted + Gerät %1 wurde entschlüsselt + + + + Decrypt disk + Entschlüsseln der Disk + + + + + Decrypt failed + Entschlüsseln fehlgeschlagen + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + Entschlüsselung von Gerät %1 fehlgeschlagen, bitte sehen Sie sich die Log-Daten für weitere Information an.(%2) + + + + TPM status is abnormal, please use the recovery key to unlock it + Der TPM-Status ist abnormal, bitte verwenden Sie den Wiederherstellungsschlüssel zum Entsperren + + + + Wrong PIN + Falsche PIN + + + + Wrong passphrase + Falsche Passphrase + + + + TPM error + TPM-Fehler + + + + Please use recovery key to unlock device. + Bitte verwenden Sie den Wiederherstellungsschlüssel, um das Gerät zu entsperren. + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + Abbrechen + + + + Unlock + Entsperren + + + + Unlock encryption partition + Verschlüsselte Partition entsperren + + + + + Unlock by recovery key + Mit Wiederherstellungsschlüssel entsperren + + + + Unlock by passphrase + Mit Passphrase entsperren + + + + Unlock by PIN + Mit PIN entsperren + + + + Please input recovery key to unlock device + Bitte geben Sie den Wiederherstellungsschlüssel ein, um das Gerät zu entsperren + + + + Please input passphrase to unlock device + Bitte geben Sie die Passphrase ein, um das Gerät zu entsperren + + + + Please input PIN to unlock device + Bitte geben Sie die PIN ein, um das Gerät zu entsperren + + + + Recovery key is not valid! + Wiederherstellungsschlüssel ist nicht gültig! + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_el.ts b/translations/disk-encrypt-plugin/disk-encrypt_el.ts new file mode 100644 index 0000000000..a59f67f3a3 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_el.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + Άκυρο + + + + + Confirm and Reboot + + + + + + Confirm + Επαλήθευση + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_en_AU.ts b/translations/disk-encrypt-plugin/disk-encrypt_en_AU.ts new file mode 100644 index 0000000000..650cf29c93 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_en_AU.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_en_GB.ts b/translations/disk-encrypt-plugin/disk-encrypt_en_GB.ts new file mode 100644 index 0000000000..fdbfb65580 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_en_GB.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_eo.ts b/translations/disk-encrypt-plugin/disk-encrypt_eo.ts new file mode 100644 index 0000000000..2e8cfc02d9 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_eo.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + Nuligi + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_es.ts b/translations/disk-encrypt-plugin/disk-encrypt_es.ts new file mode 100644 index 0000000000..5f4fdd527f --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_es.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + No se puede generar un número aleatorio mediante TPM + + + + No available encrypt algorithm. + No hay algoritmo de cifrado disponible. + + + + TPM encrypt failed. + Falló el cifrado TPM + + + + TPM is locked. + TPM está bloqueado + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + Cancelar + + + + + Confirm and Reboot + + + + + + Confirm + Confirmar + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + Contraseña + + + + + + PIN + PIN + + + + + Recovery key + Clave de recuperación + + + + Validate with %1 + Validar con %1 + + + + Please input recovery key + Por favor ingrese la clave de recuperación + + + + Old %1 + Antigua %1 + + + + New %1 + Nueva %1 + + + + Modify %1 + Modificada %1 + + + + Please enter %1 again + Por favor ingresa %1 nuevamente + + + + Repeat %1 + Repetida %1 + + + + Cancel + Cancelar + + + + + Confirm + Confirmar + + + + + %1 cannot be empty + %1 no puede estar vacía + + + + Recovery key is not valid! + ¡La clave de recuperación no es válida! + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + Al menos 8 bits, contiene 3 tipos de A-Z, a-z, 0-9 y símbolos + + + + %1 inconsistency + %1 inconsistencia + + + + Validate with recovery key + Validar con clave de recuperación + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + Validar con %1 + + + + + + PIN + PIN + + + + + passphrase + Contraseña + + + + Please input %1 to decrypt device + Ingrese %1 para descifrar el dispositivo + + + + Decrypt device + Dispositivo de descifrado + + + + Please input recovery key to decrypt device + Ingrese la clave de recuperación para descifrar el dispositivo + + + + Validate with recovery key + Validar con clave de recuperación + + + + Passphrase + Contraseña + + + + Recovery key + Clave de recuperación + + + + %1 cannot be empty! + %1 no puede estar vacía + + + + Recovery key is not valid! + ¡La clave de recuperación no es válida! + + + + Confirm + Confirmar + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + Desbloquear partición cifrada + + + + Cancel partition encryption + Cancelar el cifrado de partición + + + + passphrase + Contraseña + + + + Changing the encryption %1 + Cambiando el cifrado %1 + + + + Continue partition encryption + + + + + Enable partition encryption + Habilitar el cifrado de partición + + + + + + Error + Error + + + + Cannot resolve passphrase from TPM + No se puede resolver la contraseña de TPM + + + + + PIN error + PIN error + + + + Change passphrase failed + Error al cambiar la contraseña + + + + Unlock device failed + Error al desbloquear dispositivo + + + + Wrong passphrase + Contraseña incorrecta + + + + Mount device failed + Error al montar el dispositivo + + + + unmount + Desmontar + + + + lock + bloquear + + + + Encrypt failed + ¡Falló el cifrado! + + + + Cannot %1 device %2 + No puede %1 dispositivo %2 + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + Desbloqueado por frase de contraseña + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + En casos especiales, como olvidar la contraseña o que el hardware de cifrado esté dañado, puede descifrar la partición cifrada con la clave de recuperación, expórtela a una partición no cifrada y guárdela en un lugar seguro. + + + + Please select a non-encrypted partition as the key file export path. + Seleccione una partición no cifrada como ruta de exportación del archivo clave. + + + + + Passphrase + Contraseña + + + + %1 cannot be empty + %1 no puede estar vacío + + + + %1 inconsistency + %1 inconsistencia + + + + Recovery key export path cannot be empty! + ¡La ruta de exportación de la clave de recuperación no puede estar vacía! + + + + Recovery key export path is not exists! + ¡La ruta de exportación de la clave de recuperación no existe! + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + Exporte a un dispositivo externo, como una partición no cifrada o una unidad flash USB. + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + La partición está cifrada; expórtela a una partición no cifrada o a un dispositivo externo, como una unidad flash USB. + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + Siguiente + + + + Please continue to encrypt partition %1 + + + + + Previous + Anteriror + + + + Export Recovery Key + Exportar clave de recuperación + + + + Set %1 + Definir %1 + + + + Repeat %1 + Repetir %1 + + + + + passphrase + frase de contraseña + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + Por favor, vuelva a introducir %1 + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + Utilice TPM+PIN para desbloquear en esta computadora (recomendado) + + + + Automatic unlocking on this computer by TPM + Desbloqueo automático en esta computadora por TPM + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + Al menos 8 bits, contiene 3 tipos de A-Z, a-z, 0-9 y símbolos + + + + + Confirm encrypt + + + + + + + PIN + PIN + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + Precifrado hecho + + + + Device %1 has been preencrypt, please reboot to finish encryption. + El dispositivo %1 ha sido preencriptado, por favor reinicie para finalizar la encriptación. + + + + Preencrypt failed + Falló el cifrado previo + + + + Device %1 preencrypt failed, please see log for more information.(%2) + Fallo el cifrado previo del dispositivo %1; consulte el registro para obtener más información.(%2) + + + + Wrong passpharse or PIN + Contraseña o PIN incorrecto + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_et.ts b/translations/disk-encrypt-plugin/disk-encrypt_et.ts new file mode 100644 index 0000000000..b03e756a62 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_et.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + Loobu + + + + + Confirm and Reboot + + + + + + Confirm + Kinnita + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_fa.ts b/translations/disk-encrypt-plugin/disk-encrypt_fa.ts new file mode 100644 index 0000000000..cf3029e42d --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_fa.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + لغو + + + + + Confirm and Reboot + + + + + + Confirm + تایید + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_fi.ts b/translations/disk-encrypt-plugin/disk-encrypt_fi.ts new file mode 100644 index 0000000000..4f3875a3ca --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_fi.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + Satunnaislukua ei voida luoda TPM:llä + + + + No available encrypt algorithm. + Salausalgoritmia ei ole saatavilla. + + + + TPM encrypt failed. + TPM-salaus ei onnistunut. + + + + TPM is locked. + TPM on lukittu. + + + + Confirm encrypt %1? + Vahvistatko salauksen %1? + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + Nykyinen osio salataan, eikä sitä voi peruuttaa prosessin aikana. Vahvista salaminen. + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + * Osion salaamisen jälkeen järjestelmää ei voi palauttaa alempaan versioon. Vahvista salaaminen + + + + + Cancel + Peruuta + + + + + Confirm and Reboot + Vahvista ja käynnistä uudelleen + + + + + Confirm + Vahvista + + + + Decrypt %1? + Pura salaus %1? + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + Salauksen purkaminen voi kestää kauan. Varmista, että virta on kytketty, kunnes salauksen purku on valmis. + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + salausavain + + + + + + PIN + PIN + + + + + Recovery key + Palautusavain + + + + Validate with %1 + Vahvista %1 + + + + Please input recovery key + Anna palautusavain + + + + Old %1 + Vanha %1 + + + + New %1 + Uusi %1 + + + + Modify %1 + Muokkaa %1 + + + + Please enter %1 again + Anna %1 uudelleen + + + + Repeat %1 + Uudelleen %1 + + + + Cancel + Peruuta + + + + + Confirm + Vahvista + + + + + %1 cannot be empty + %1 ei voi olla tyhjä + + + + Recovery key is not valid! + Palautusavain ei kelpaa! + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + Vähintään 8 bittiä, sisältäen 3 tyyppiä A-Z, a-z, 0-9 ja symboleja + + + + %1 inconsistency + %1 ristiriita + + + + Validate with recovery key + Vahvista palautusavaimella + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + Vahvista %1 + + + + + + PIN + PIN + + + + + passphrase + salausavain + + + + Please input %1 to decrypt device + Anna %1 laitteen salauksen purkamiseksi + + + + Decrypt device + Pura laitteen salaus + + + + Please input recovery key to decrypt device + Anna palautusavain salauksen purkamiseksi + + + + Validate with recovery key + Vahvista palautusavaimella + + + + Passphrase + Salausavain + + + + Recovery key + Palautusavain + + + + %1 cannot be empty! + %1 ei voi olla tyhjä! + + + + Recovery key is not valid! + Palautusavain ei kelpaa! + + + + Confirm + Vahvista + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + Avaa salatun osion lukitus + + + + Cancel partition encryption + Peruuta osion salaaminen + + + + passphrase + salausavain + + + + Changing the encryption %1 + Vaihdetaan salausta %1 + + + + Continue partition encryption + Jatka osion salaamista + + + + Enable partition encryption + Käytä osion salausta + + + + + + Error + Virhe + + + + Cannot resolve passphrase from TPM + Salausavainta ei voi selvittää TPM:stä + + + + + PIN error + PIN virhe + + + + Change passphrase failed + Salausavaimen vaihtaminen epäonnistui + + + + Unlock device failed + Lukituksen avaaminen epäonnistui + + + + Wrong passphrase + Väärä salalausavain + + + + Mount device failed + Laitteen kytkeminen epäonnistui + + + + unmount + irrota + + + + lock + lukko + + + + Encrypt failed + Salaus epäonnistui + + + + Cannot %1 device %2 + Ei voi %1 laite %2 + + + + Reboot to continue encrypt + Käynnistä uudelleen ja jatka salausta + + + + Reboot to finish decrypt + Käynnistä uudelleen ja viimeistele salauksen purku + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + Avattu salausavaimella + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + Erikoistilanteissa, kuten salasanan unohtaminen tai salauslaitteiston vaurio, voit purkaa salatun osion palautusavaimella. Vie se salaamattomalle levylle tai säilytä se turvallisessa paikassa! + + + + Please select a non-encrypted partition as the key file export path. + Valitse avaintiedoston vientipoluksi salaamaton osio. + + + + + Passphrase + Salausavain + + + + %1 cannot be empty + %1 ei voi olla tyhjä + + + + %1 inconsistency + %1 ristiriita + + + + Recovery key export path cannot be empty! + Palautusavaimen vientipolku ei voi olla tyhjä! + + + + Recovery key export path is not exists! + Palautusavaimen vientipolkua ei ole olemassa! + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + Vie ulkoiseen laitteeseen, kuten salaamattomaan osioon tai USB-muistitikulle. + + + + This partition is read-only, please export to a writable partition + Tämä osio on muodossa "vain luku", vie osioon johon voi kirjoittaa + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + Osio on salattu. Vie salaamattomaan osioon tai ulkoiseen laitteeseen, kuten USB-muistitikulle. + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + TPM on lukittu, eikä sitä voi käyttää osion salaukseen. Peruuta TPM-salasana tai valitse joku toinen lukituksen avaustapa. + + + + + TPM error + TPM virhe + + + + TPM status error! + TPM tilavirhe! + + + + Next + Seuraava + + + + Please continue to encrypt partition %1 + Jatka osion %1 salaamista + + + + Previous + Edellinen + + + + Export Recovery Key + Vie palautusavain + + + + Set %1 + Aseta %1 + + + + Repeat %1 + Uudelleen %1 + + + + + passphrase + salausavain + + + + Access to the partition will be unlocked using a passphrase. + Pääsy osioon avataan salasanalla. + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + Pääsy osioon avataan TPM-suojaussirun ja PIN-koodin avulla. + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + Pääsy osioon avataan automaattisesti TPM-suojaussirun avulla, salalausen tarkistusta ei vaadita. + + + + Please enter the %1 again + Anna %1 uudelleen + + + + Unlock type + Avaustyyppi + + + + Use TPM+PIN to unlock on this computer (recommended) + Käytä TPM+PIN-koodia lukituksen avaamiseen tässä tietokoneessa (suositus) + + + + Automatic unlocking on this computer by TPM + Automaattinen lukituksen avaaminen tässä tietokoneessa TPM:llä + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + Vähintään 8 bittiä, sisältäen 3 tyyppiä A-Z, a-z, 0-9 ja symboleja + + + + + Confirm encrypt + Vahvista salaus + + + + + + PIN + PIN + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + Vahvista + + + + + Re-export the recovery key + Vie palautusavain uudestaan + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + *Palautusavaimen tallentaminen epäonnistui, tallenna palautusavain uudelleen salaamattomaan osioon ja säilytä se turvallisessa paikassa! + + + + + Error + Virhe + + + + Recovery key export path cannot be empty! + Palautusavaimen vientipolku ei voi olla tyhjä! + + + + Recovery key export path is not exists! + Palautusavaimen vientipolkua ei ole olemassa! + + + + This partition is read-only, please export to a writable partition + Tämä osio on muodossa "vain luku", vie osioon johon voi kirjoittaa + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + Osio on salattu. Vie salaamattomaan osioon tai ulkoiseen laitteeseen, kuten USB-muistitikulle. + + + + Cannot create recovery key file! + Palautusavaimen tiedostoa ei voi luoda! + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + Esisalaus valmis + + + + Device %1 has been preencrypt, please reboot to finish encryption. + Laite %1 on esisalattu. Viimeistele salaus käynnistämällä uudelleen. + + + + Preencrypt failed + Esisalaus epäonnistui + + + + Device %1 preencrypt failed, please see log for more information.(%2) + Laitteen %1 esisalaus epäonnistui, katso lisätietoja lokista (%2) + + + + Wrong passpharse or PIN + Väärä salalausavain tai pin + + + + passphrase + salausavain + + + + PIN + PIN + + + + Change %1 done + Vaihto %1 tehty + + + + %1's %2 has been changed + %1:n %2 on vaihdettu + + + + + Change %1 failed + Vaihto %1 epäonnistui + + + + Wrong %1 + Väärä %1 + + + + Device %1 change %2 failed, please see log for more information.(%3) + Laitteen %1 vaihto %2 epäonnistui, katso lisätietoja lokista (%3) + + + + Encrypt done + Salaus tehty + + + + Device %1 has been encrypted + Laite %1 on salattu + + + + Encrypt failed + Salaus epäonnistui + + + + Device %1 encrypt failed, please see log for more information.(%2) + Laitteen %1 salaus epäonnistui, katso lisätietoja lokista (%2) + + + + %1 is under encrypting... + %1 on salauksessa... + + + + The encrypting process may have system lag, please minimize the system operation + Salausprosessissa voi olla järjestelmäviivettä. Minimoi järjestelmään aiheutuvaa kuormaa + + + + %1 is under decrypting... + %1 on purkuvaiheessa... + + + + The decrypting process may have system lag, please minimize the system operation + Salauksen purkuprosessissa voi olla järjestelmäviivettä. Minimoi järjestelmään aiheutuvaa kuormaa + + + + Error + Virhe + + + + Decrypt done + Salauksen purku tehty + + + + Device %1 has been decrypted + Laitteen %1 salaus on purettu + + + + Decrypt disk + Pura levyn salaus + + + + + Decrypt failed + Salauksen purku epäonnistui + + + + Device %1 is under encrypting, please decrypt after encryption finished. + Laitetta %1 salataan, voit purkaa salauksen, kun salaus on valmis. + + + + Device %1 Decrypt failed, please see log for more information.(%2) + Laitteen %1 salauksen purku epäonnistui, katso lisätietoja lokista (%2) + + + + TPM status is abnormal, please use the recovery key to unlock it + TPM-tila on epänormaali, avaa se palautusavaimella + + + + Wrong PIN + Väärä PIN + + + + Wrong passphrase + Väärä salalausavain + + + + TPM error + TPM virhe + + + + Please use recovery key to unlock device. + Käytä palautusavainta lukituksen avaamiseen. + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + Peruuta + + + + Unlock + Avaa + + + + Unlock encryption partition + Avaa salatun osion lukitus + + + + + Unlock by recovery key + Avaa lukitus palautusavaimella + + + + Unlock by passphrase + Avaa salausavaimella + + + + Unlock by PIN + Avaa PIN-koodilla + + + + Please input recovery key to unlock device + Avaa lukitus antamalla palautusavain + + + + Please input passphrase to unlock device + Avaa lukitus antamalla salausavain + + + + Please input PIN to unlock device + Avaa lukitus antamalla PIN-koodi + + + + Recovery key is not valid! + Palautusavain ei kelpaa! + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_fil.ts b/translations/disk-encrypt-plugin/disk-encrypt_fil.ts new file mode 100644 index 0000000000..40a1d96649 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_fil.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_fr.ts b/translations/disk-encrypt-plugin/disk-encrypt_fr.ts new file mode 100644 index 0000000000..eaa7b44e85 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_fr.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + Annuler + + + + + Confirm and Reboot + + + + + + Confirm + Confirmer + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_gl_ES.ts b/translations/disk-encrypt-plugin/disk-encrypt_gl_ES.ts new file mode 100644 index 0000000000..5178ce9828 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_gl_ES.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + Cancelar + + + + + Confirm and Reboot + + + + + + Confirm + Confirmar + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_he.ts b/translations/disk-encrypt-plugin/disk-encrypt_he.ts new file mode 100644 index 0000000000..05c5a8f433 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_he.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_hi_IN.ts b/translations/disk-encrypt-plugin/disk-encrypt_hi_IN.ts new file mode 100644 index 0000000000..c001a507b0 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_hi_IN.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + रद्द करें + + + + + Confirm and Reboot + + + + + + Confirm + पुष्टि करें + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_hr.ts b/translations/disk-encrypt-plugin/disk-encrypt_hr.ts new file mode 100644 index 0000000000..382e8db5be --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_hr.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + Otkaži + + + + + Confirm and Reboot + + + + + + Confirm + Potvrdi + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + Molim unesite %1 ponovno + + + + Repeat %1 + Ponovi %1 + + + + Cancel + Otkaži + + + + + Confirm + Potvrdi + + + + + %1 cannot be empty + %1 ne može biti prazan + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + PIN + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + %1 ne može biti prazan + + + + Recovery key is not valid! + + + + + Confirm + Potvrdi + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + Greška + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_hu.ts b/translations/disk-encrypt-plugin/disk-encrypt_hu.ts new file mode 100644 index 0000000000..5151b15c79 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_hu.ts @@ -0,0 +1,768 @@ + + + QObject + + + Cannot generate random number by TPM + Nem generálható véletlen szám a TPM segítségével + + + + No available encrypt algorithm. + Nincs elérhető titkosítási algoritmus. + + + + TPM encrypt failed. + A TPM titkosítása sikertelen. + + + + TPM is locked. + A TPM zárolva. + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + Mégsem + + + + + Confirm and Reboot + + + + + + Confirm + Megerősítés + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + Jelszó + + + + + + PIN + PIN-kód + + + + + Recovery key + Helyreállítási kulcs + + + + Validate with %1 + Érvényesítés a %1-el + + + + Please input recovery key + Kérjük adja meg a helyreállítási kulcsot + + + + Old %1 + Régi %1 + + + + New %1 + Új %1 + + + + Modify %1 + Módosítás %1 + + + + Please enter %1 again + Kérjük adja meg a %1-et mégegyszer + + + + Repeat %1 + Ismétlés %1 + + + + Cancel + Mégsem + + + + + Confirm + Megerősítés + + + + + %1 cannot be empty + A %1 nem lehet üres + + + + Recovery key is not valid! + A helyreállítási kulcs nem érvényes! + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + Legalább 8 bit, 3 típusú A-Z, a-z, 0-9 és szimbólumokat tartalmaz + + + + %1 inconsistency + %1 inkonzisztencia + + + + Validate with recovery key + Érvényesítse a helyreállítási kulccsal + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + Érvényesítés a %1-el + + + + + + PIN + PIN-kód + + + + + passphrase + Jelszó + + + + Please input %1 to decrypt device + Kérjük adja meg a %1-et a lemez visszafejtéséhez + + + + Decrypt device + Eszköz visszafejtése + + + + Please input recovery key to decrypt device + Kérjük adja meg a helyreálíítási kulcsot a lemez visszafejtéséhez + + + + Validate with recovery key + Érvényesítse a helyreállítási kulccsal + + + + Passphrase + Jelszó + + + + Recovery key + Helyreállítási kulcs + + + + %1 cannot be empty! + A %1 nem lehet üres! + + + + Recovery key is not valid! + A helyreállítási kulcs nem érvényes! + + + + Confirm + Megerősítés + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + A titkosított partíció feloldása + + + + Cancel partition encryption + A partíció titkosításának megszakítása + + + + passphrase + Jelszó + + + + Changing the encryption %1 + A titkosítás módosítása %1 -re + + + + Continue partition encryption + + + + + Enable partition encryption + A partíció titkosításának engedélyezése + + + + + + Error + Hiba + + + + Cannot resolve passphrase from TPM + Nem sikerült feloldani a jelszót a TPM-ből + + + + + PIN error + PIN kód hiba + + + + Change passphrase failed + Jelszó megváltoztatása sikertelen + + + + Unlock device failed + Az eszköz feloldása sikertelen + + + + Wrong passphrase + Helytelen jelszó + + + + Mount device failed + Az eszköz csatolása sikertelen + + + + unmount + Leválasztás + + + + lock + Zárolás + + + + Encrypt failed + A visszafejtés sikertelen + + + + Cannot %1 device %2 + Nem sikerült %1 eszköz %2 + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + Jelszóval feloldva + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + Speciális esetekben, mint például a jelszó elfelejtése vagy a titkosító hardver megsérülése, a titkosított partíciót a helyreállítási kulccsal visszafejthető, kérjük exportálja nem titkosított partícióra és tartsa biztonságos helyen a kulcsot! + + + + Please select a non-encrypted partition as the key file export path. + Kérjük válasszon egy nem titkosított partíciót a kulcsfájl exportálási útjaként. + + + + + Passphrase + Jelszó + + + + %1 cannot be empty + A %1 nem lehet üres + + + + %1 inconsistency + %1 inkonzisztencia + + + + Recovery key export path cannot be empty! + A helyreállítási kulcs exportálási útvonala nem lehet üres! + + + + Recovery key export path is not exists! + A helyreállítási kulcs exportálási útvonala nem létezik! + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + Exportáljon külső eszközre, például nem titkosított partícióra vagy USB flash meghajtóra. + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + A partíció titkosított, kérjük exportálja egy nem titkosított partícióra vagy külső eszközre, például USB flash meghajtóra.  +  +  + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + Következő + + + + Please continue to encrypt partition %1 + + + + + Previous + Előző + + + + Export Recovery Key + Helyreállítási kulcs exportálása + + + + Set %1 + %1 beállítása + + + + Repeat %1 + %1 ismétlése + + + + + passphrase + Jelszó + + + + Access to the partition will be unlocked using a passphrase. + A partícióhoz való hozzáférés egy jelszó segítségével fel van oldva. + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + A partícióhoz való hozzáférés egy TPM biztonsági chip és PIN kód használatával fel van oldva. + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + A partícióhoz való hozzáférés egy TPM biztonsági chip használatával fel van oldva, a jelszó ellenőrzése nem szükséges. + + + + Please enter the %1 again + Kérjük adja meg a %1-et mégegyszer + + + + Unlock type + Feloldás típusa + + + + Use TPM+PIN to unlock on this computer (recommended) + Használja a TPM+PIN kódot a zárolás feloldásához ezen a számítógépen (ajánlott) + + + + Automatic unlocking on this computer by TPM + Automatikus feloldás ezen a számítógépen TPM segítségével + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + Legalább 8 bit, 3 típusú A-Z, a-z, 0-9 és szimbólumokat tartalmaz + + + + + Confirm encrypt + + + + + + + PIN + PIN-kód + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + Előtitkosítás kész + + + + Device %1 has been preencrypt, please reboot to finish encryption. + A %1 eszköz előtitkosított, kérjük indítsa újra a titkosítás befejezéséhez. + + + + Preencrypt failed + Előtitkosítás sikertelen + + + + Device %1 preencrypt failed, please see log for more information.(%2) + A %1 eszköz előtitkosítása sikertelen, kérjük tekintse meg a naplót a további részletekért (%2) + + + + Wrong passpharse or PIN + Helytelen jelkód vagy PIN kód + + + + passphrase + Jelszó + + + + PIN + PIN kód + + + + Change %1 done + %1 módosítása kész + + + + %1's %2 has been changed + A %1's %2 megváltozott + + + + + Change %1 failed + %1 módosítása sikertelen + + + + Wrong %1 + Helytelen %1 + + + + Device %1 change %2 failed, please see log for more information.(%3) + %1 eszköz megváltoztatva, %2 sikertelen, kérjük tekintse meg a naplót a további részletekért (%3) + + + + Encrypt done + Visszafejtés kész + + + + Device %1 has been encrypted + A %1 eszköz visszafejtve + + + + Encrypt failed + A visszafejtés sikertelen + + + + Device %1 encrypt failed, please see log for more information.(%2) + A %1 eszköz titkosítása sikertelen, kérjük tekintse meg a naplót a további részletekért (%2) + + + + %1 is under encrypting... + A %1 titkosítása folyamatban... + + + + The encrypting process may have system lag, please minimize the system operation + A titkosítási folyamat rendszer lassulását, akadozását eredményezheti, kérjük minimalizálja a rendszer műveleteket + + + + %1 is under decrypting... + A %1 visszafejtése folyamatban... + + + + The decrypting process may have system lag, please minimize the system operation + A visszafejtési folyamat rendszer lassulását, akadozását eredményezheti, kérjük minimalizálja a rendszer műveleteket + + + + Error + Hiba + + + + Decrypt done + Visszafejtés kész + + + + Device %1 has been decrypted + A %1 eszköz visszafejtve + + + + Decrypt disk + Lemez visszafejtése + + + + + Decrypt failed + A visszafejtés sikertelen + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + A %1 eszköz visszafejtése sikertelen, kérjük tekintse meg a naplót a további részletekért (%2) + + + + TPM status is abnormal, please use the recovery key to unlock it + A TPM állapota rendellenes, kérjük használja a helyreállítási kulcsot a feloldáshoz + + + + Wrong PIN + Helytelen PIN kód + + + + Wrong passphrase + Helytelen jelszó + + + + TPM error + TPM hiba + + + + Please use recovery key to unlock device. + Kérjük használja a helyreállítási kulcsot az eszköz feloldásához. + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + Mégsem + + + + Unlock + Feloldás + + + + Unlock encryption partition + Titkosított partíció feloldása + + + + + Unlock by recovery key + Feloldás helyreállítási kulccsal + + + + Unlock by passphrase + Feloldás jelszóval + + + + Unlock by PIN + Feloldás PIN kóddal + + + + Please input recovery key to unlock device + Kérjük adja meg a helyreállítási kulcsot az eszköz feloldásához + + + + Please input passphrase to unlock device + Kérjük adja meg a jelszót az eszköz feloldásához + + + + Please input PIN to unlock device + Kérjük adja meg a PIN kódot az eszköz feloldásához + + + + Recovery key is not valid! + A helyreállítási kulcs nem érvényes! + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_hy.ts b/translations/disk-encrypt-plugin/disk-encrypt_hy.ts new file mode 100644 index 0000000000..b38ea058dd --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_hy.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_id.ts b/translations/disk-encrypt-plugin/disk-encrypt_id.ts new file mode 100644 index 0000000000..c3f1aabe36 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_id.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + Batal + + + + + Confirm and Reboot + + + + + + Confirm + Pastikan + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_it.ts b/translations/disk-encrypt-plugin/disk-encrypt_it.ts new file mode 100644 index 0000000000..00985c93fe --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_it.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + Impossibile generare un numero casuale tramite TPM + + + + No available encrypt algorithm. + Nessun algoritmo di crittografia disponibile. + + + + TPM encrypt failed. + TPM crittografia fallita. + + + + TPM is locked. + TPM è + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + Annulla + + + + + Confirm and Reboot + + + + + + Confirm + Conferma + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + passphrase + + + + + + PIN + PIN + + + + + Recovery key + Chiave di recupero + + + + Validate with %1 + Valida con %1 + + + + Please input recovery key + Per favore inserisci la chiave di recupero + + + + Old %1 + Vecchia %1 + + + + New %1 + Nuova %1 + + + + Modify %1 + Modifica %1 + + + + Please enter %1 again + Per favore, inserisci di nuovo %1 + + + + Repeat %1 + Ripeti %1 + + + + Cancel + Annulla + + + + + Confirm + Conferma + + + + + %1 cannot be empty + %1 non può essere vuoto + + + + Recovery key is not valid! + La chiave di ripristino non è valida! + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + Almeno 8 bit, che contengano 3 formati come A-Z, a-z, 0-9 e simboli + + + + %1 inconsistency + %1 inconsistenza + + + + Validate with recovery key + Per favore inserisci la chiave di recupero + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + Valida con %1 + + + + + + PIN + PIN + + + + + passphrase + passphrase + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_ja.ts b/translations/disk-encrypt-plugin/disk-encrypt_ja.ts new file mode 100644 index 0000000000..8ff6385f0b --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_ja.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + キャンセル + + + + + Confirm and Reboot + + + + + + Confirm + 確定 + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_ka.ts b/translations/disk-encrypt-plugin/disk-encrypt_ka.ts new file mode 100644 index 0000000000..d43fefa119 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_ka.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_kab.ts b/translations/disk-encrypt-plugin/disk-encrypt_kab.ts new file mode 100644 index 0000000000..dc10ec2199 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_kab.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_km_KH.ts b/translations/disk-encrypt-plugin/disk-encrypt_km_KH.ts new file mode 100644 index 0000000000..5a43033a6b --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_km_KH.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_kn_IN.ts b/translations/disk-encrypt-plugin/disk-encrypt_kn_IN.ts new file mode 100644 index 0000000000..fad8a12d53 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_kn_IN.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_ko.ts b/translations/disk-encrypt-plugin/disk-encrypt_ko.ts new file mode 100644 index 0000000000..4b5a9efe38 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_ko.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + 취소 + + + + + Confirm and Reboot + + + + + + Confirm + 확정 + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_ku.ts b/translations/disk-encrypt-plugin/disk-encrypt_ku.ts new file mode 100644 index 0000000000..9912366620 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_ku.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_ku_IQ.ts b/translations/disk-encrypt-plugin/disk-encrypt_ku_IQ.ts new file mode 100644 index 0000000000..6b4dd3014b --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_ku_IQ.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_ky.ts b/translations/disk-encrypt-plugin/disk-encrypt_ky.ts new file mode 100644 index 0000000000..2f648ca9ee --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_ky.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_ky@Arab.ts b/translations/disk-encrypt-plugin/disk-encrypt_ky@Arab.ts new file mode 100644 index 0000000000..bdcc872683 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_ky@Arab.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_lt.ts b/translations/disk-encrypt-plugin/disk-encrypt_lt.ts new file mode 100644 index 0000000000..559cb25969 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_lt.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + Atsisakyti + + + + + Confirm and Reboot + + + + + + Confirm + Patvirtinti + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_ml.ts b/translations/disk-encrypt-plugin/disk-encrypt_ml.ts new file mode 100644 index 0000000000..f17aa2dcc8 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_ml.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + റദ്ദാക്കുക + + + + + Confirm and Reboot + + + + + + Confirm + ഉറപ്പാക്കുക + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_mn.ts b/translations/disk-encrypt-plugin/disk-encrypt_mn.ts new file mode 100644 index 0000000000..548ec42da8 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_mn.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_mr.ts b/translations/disk-encrypt-plugin/disk-encrypt_mr.ts new file mode 100644 index 0000000000..59ba2c708c --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_mr.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_ms.ts b/translations/disk-encrypt-plugin/disk-encrypt_ms.ts new file mode 100644 index 0000000000..fa52d6dd8a --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_ms.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + Batal + + + + + Confirm and Reboot + + + + + + Confirm + Sahkan + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_nb.ts b/translations/disk-encrypt-plugin/disk-encrypt_nb.ts new file mode 100644 index 0000000000..0c27dfd2b0 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_nb.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + Avbryt + + + + + Confirm and Reboot + + + + + + Confirm + Bekrefte + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_ne.ts b/translations/disk-encrypt-plugin/disk-encrypt_ne.ts new file mode 100644 index 0000000000..ab0358dcfb --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_ne.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + रद्द गर्नुहोस् + + + + + Confirm and Reboot + + + + + + Confirm + पुष्टि गर्नुहोस् + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_nl.ts b/translations/disk-encrypt-plugin/disk-encrypt_nl.ts new file mode 100644 index 0000000000..45fce11ae3 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_nl.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + TPM kan geen willekeurig getal genereren + + + + No available encrypt algorithm. + Er is geen algoritme beschikbaar. + + + + TPM encrypt failed. + TPM kan niet worden versleuteld. + + + + TPM is locked. + TPM is vergrendeld. + + + + Confirm encrypt %1? + Versleutelen van ‘%1’ bevestigen + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + De huidige partitie staat op het punt om versleuteld te worden. Dit proces kan niet worden afgebroken. Bevestig dat je dit wilt gaan doen. + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + * Let op: na het versleutelen van de partitie kan het systeem niet meer worden teruggezet naar een eerdere versie + + + + + Cancel + Annuleren + + + + + Confirm and Reboot + Bevestigen en herstarten + + + + + Confirm + Oké + + + + Decrypt %1? + Ontsleutelen van ‘%1’ bevestigen + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + Het ontsleutelen kan enige tijd duren. Zorg dat de computer gedurende het proces verbonden is met de netstroom. + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + toegangszin + + + + + + PIN + pincode + + + + + Recovery key + Reservesleutel + + + + Validate with %1 + Verifiëren met %1 + + + + Please input recovery key + Voer de reservesleutel in + + + + Old %1 + Oude %1 + + + + New %1 + Nieuwe %1 + + + + Modify %1 + %1 bewerken + + + + Please enter %1 again + Voer nogmaals de %1 in + + + + Repeat %1 + %1 herhalen + + + + Cancel + Annuleren + + + + + Confirm + Oké + + + + + %1 cannot be empty + %1 mag niet blanco zijn + + + + Recovery key is not valid! + De reservesleutel is ongeldig! + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + Minimaal 8 tekens: A-Z, a-z, 0-9 en speciale tekens + + + + %1 inconsistency + %1 komt niet overeen + + + + Validate with recovery key + Verifiëren met reservesleutel + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + Verifiëren met %1 + + + + + + PIN + pincode + + + + + passphrase + toegangszin + + + + Please input %1 to decrypt device + Voer je %1 in om de schijf te ontgrendelen + + + + Decrypt device + Schijf ontgrendelen + + + + Please input recovery key to decrypt device + Voer je reservesleutel in om de schijf te ontgrendelen + + + + Validate with recovery key + Verifiëren met reservesleutel + + + + Passphrase + Toegangszin + + + + Recovery key + Reservesleutel + + + + %1 cannot be empty! + %1 mag niet blanco zijn! + + + + Recovery key is not valid! + De reservesleutel is ongeldig! + + + + Confirm + Oké + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + Versleutelde partitie ontgrendelen + + + + Cancel partition encryption + Vergrendeling afbreken + + + + passphrase + toegangszin + + + + Changing the encryption %1 + Bezig met bewerken van %1-versleuteling + + + + Continue partition encryption + Partitie versleutelen + + + + Enable partition encryption + Partitie versleutelen + + + + + + Error + Foutmelding + + + + Cannot resolve passphrase from TPM + De toegangszin kan niet uit TPM worden gehaald + + + + + PIN error + De pincode is onjuist + + + + Change passphrase failed + De toegangszin kan niet worden gewijzigd + + + + Unlock device failed + Het ontgrendelen is mislukt + + + + Wrong passphrase + De toegangszin is onjuist + + + + Mount device failed + Het aankoppelen is mislukt + + + + unmount + Afkoppelen + + + + lock + Vergrendelen + + + + Encrypt failed + Het versleutelen is mislukt + + + + Cannot %1 device %2 + Het apparaat %2 kan niet worden %1 + + + + Reboot to continue encrypt + Herstarten om door te gaan + + + + Reboot to finish decrypt + Herstarten om te voltooien + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + Ontgrendeld met toegangszin + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + In bepaalde gevallen, zoals het vergeten van het wachtwoord of het beschadigen van de versleutelingshardware, kun je de versleutelde partitie ontgrendelen met behulp van de reservesleutel. Bewaar de sleutel op een veilige (onvergrendelde) plek! + + + + Please select a non-encrypted partition as the key file export path. + Kies een onvergrendelde partitie. + + + + + Passphrase + Toegangszin + + + + %1 cannot be empty + %1 mag niet blanco zijn + + + + %1 inconsistency + %1 komt niet overeen + + + + Recovery key export path cannot be empty! + Kies een locatie voor de reservesleutel! + + + + Recovery key export path is not exists! + De locatie bestaat niet! + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + Bewaar de sleutel op een externe locatie, zoals een onvergrendelde partitie of usb-schijf. + + + + This partition is read-only, please export to a writable partition + Deze partitie is alleen-lezen + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + De partitie is vergrendeld. Bewaar de sleutel op een onvergrendelde partitie of extern apparaat, zoals een usb-schijf. + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + TPM is vergrendeld en kan niet worden gebruikt voor het versleutelen van partities. Wis het TPM-wachtwoord of kies een andere ontgrendelmethode. + + + + + TPM error + TPM-foutmelding + + + + TPM status error! + TPM-statusfout! + + + + Next + Volgende + + + + Please continue to encrypt partition %1 + Ga door met het versleutelen van ‘%1’ + + + + Previous + Vorige + + + + Export Recovery Key + Reservesleutel opslaan + + + + Set %1 + %1 instellen + + + + Repeat %1 + %1 herhalen + + + + + passphrase + toegangszin + + + + Access to the partition will be unlocked using a passphrase. + Je hebt toegang tot de partitie met behulp van een toegangszin. + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + Je hebt toegang tot de partitie met behulp van de TPM-chip en een pincode. + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + Je hebt toegang tot de partitie met behulp van de TPM-chip, maar zonder toegangszin. + + + + Please enter the %1 again + Voer nogmaals de %1 in + + + + Unlock type + Ontgrendelmethode + + + + Use TPM+PIN to unlock on this computer (recommended) + TPM+Pincode gebruiken om te ontgrendelen (aanbevolen) + + + + Automatic unlocking on this computer by TPM + Automatisch ontgrendelen met behulp van TPM + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + Minimaal 8 tekens: A-Z, a-z, 0-9 en speciale tekens + + + + + Confirm encrypt + Versleutelen bevestigen + + + + + + PIN + Pincode + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + Oké + + + + + Re-export the recovery key + Reservesleutel opslaan + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + * De reservesleutel kan niet worden opgeslagen. Sla de sleutel op een onversleutelde partitie op om hem veilig te bewaren. + + + + + Error + Foutmelding + + + + Recovery key export path cannot be empty! + Kies een locatie voor de reservesleutel! + + + + Recovery key export path is not exists! + De locatie bestaat niet! + + + + This partition is read-only, please export to a writable partition + Deze partitie is alleen-lezen + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + De partitie is vergrendeld. Bewaar de sleutel op een onvergrendelde partitie of extern apparaat, zoals een usb-schijf. + + + + Cannot create recovery key file! + Het bestand kan niet worden aangemaakt! + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + Voorversleutelen voltooid + + + + Device %1 has been preencrypt, please reboot to finish encryption. + %1 is voorversleuteld. Herstart om het proces af te ronden. + + + + Preencrypt failed + Voorversleutelen mislukt + + + + Device %1 preencrypt failed, please see log for more information.(%2) + %1 kan niet worden voorversleuteld. Bekijk voor meer informatie het logboek. (%2) + + + + Wrong passpharse or PIN + De toegangszin of pincode is onjuist + + + + passphrase + toegangszin + + + + PIN + pincode + + + + Change %1 done + De %1 is gewijzigd + + + + %1's %2 has been changed + De %2 van %1 is gewijzigd + + + + + Change %1 failed + De %1 kan niet worden gewijzigd + + + + Wrong %1 + Onjuiste %1 + + + + Device %1 change %2 failed, please see log for more information.(%3) + %1 kan niet worden gewijzigd (%2). Bekijk voor meer informatie het logboek. (%3) + + + + Encrypt done + Vergrendelen voltooid + + + + Device %1 has been encrypted + %1 is vergrendeld + + + + Encrypt failed + Vergrendelen mislukt + + + + Device %1 encrypt failed, please see log for more information.(%2) + %1 kan niet worden vergrendeld. Bekijk voor meer informatie het logboek. (%2) + + + + %1 is under encrypting... + Bezig met versleutelen van %1… + + + + The encrypting process may have system lag, please minimize the system operation + Let op: het versleutelproces kan systeemvertraging veroorzaken, dus doe in de tussentijd zo min mogelijk + + + + %1 is under decrypting... + Bezig met ontsleutelen van %1… + + + + The decrypting process may have system lag, please minimize the system operation + Let op: het ontsleutelproces kan systeemvertraging veroorzaken, dus doe in de tussentijd zo min mogelijk + + + + Error + Foutmelding + + + + Decrypt done + Ontgrendelen voltooid + + + + Device %1 has been decrypted + %1 is ontgrendeld + + + + Decrypt disk + Schijf ontgrendelen + + + + + Decrypt failed + Ontgrendelen mislukt + + + + Device %1 is under encrypting, please decrypt after encryption finished. + ‘%1’ is momenteel vergrendeld. Wacht tot het proces is afgerond en probeer het opnieuw. + + + + Device %1 Decrypt failed, please see log for more information.(%2) + %1 kan niet worden ontgrendeld. Bekijk voor meer informatie het logboek. (%2) + + + + TPM status is abnormal, please use the recovery key to unlock it + De TPM-status is niet in orde. Gebruik de reservesleutel om te ontgrendelen. + + + + Wrong PIN + De pincode is onjuist + + + + Wrong passphrase + De toegangszin is onjuist + + + + TPM error + TPM-fout + + + + Please use recovery key to unlock device. + Voer je reservesleutel in om het apparaat te ontgrendelen. + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + Annuleren + + + + Unlock + Ontgrendelen + + + + Unlock encryption partition + Versleutelde partitie ontgrendelen + + + + + Unlock by recovery key + Ontgrendelen met reservesleutel + + + + Unlock by passphrase + Ontgrendelen met toegangszin + + + + Unlock by PIN + Ontgrendelen met pincode + + + + Please input recovery key to unlock device + Voer je reservesleutel in om het apparaat te ontgrendelen. + + + + Please input passphrase to unlock device + Voer je toegangszin in om het apparaat te ontgrendelen. + + + + Please input PIN to unlock device + Voer je pincode in om het apparaat te ontgrendelen. + + + + Recovery key is not valid! + De reservesleutel is onjuist! + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_pa.ts b/translations/disk-encrypt-plugin/disk-encrypt_pa.ts new file mode 100644 index 0000000000..6a05611e88 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_pa.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + ਰੱਦ ਕਰੋ + + + + + Confirm and Reboot + + + + + + Confirm + ਤਸਦੀਕ ਕਰੋ + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_pam.ts b/translations/disk-encrypt-plugin/disk-encrypt_pam.ts new file mode 100644 index 0000000000..b3adb029f3 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_pam.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_pl.ts b/translations/disk-encrypt-plugin/disk-encrypt_pl.ts new file mode 100644 index 0000000000..54a5fb885d --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_pl.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + Nie można wygenerować losowej liczby poprzez TPM + + + + No available encrypt algorithm. + Brak dostępnego algorytmu szyfrowania + + + + TPM encrypt failed. + Błąd szyfrowania TPM. + + + + TPM is locked. + TPM jest zablokowany. + + + + Confirm encrypt %1? + Potwierdź szyfrowanie %1 + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + Bieżąca partycja zostanie zaszyfrowana, a procesu nie będzie można przerwać. Potwierdź szyfrowanie. + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + * Po zaszyfrowaniu, nie będzie można przywrócić systemu do starszej wersji. Potwierdź szyfrowanie. + + + + + Cancel + Anuluj + + + + + Confirm and Reboot + Potwierdź i uruchom ponownie + + + + + Confirm + Potwierdź + + + + Decrypt %1? + Rozszyfrować %1? + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + Proces rozszyfrowania może zająć dużo czasu, więc upewnij się, że masz stały dostęp do zasilania. + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + hasło + + + + + + PIN + PIN + + + + + Recovery key + Klucz przywracania + + + + Validate with %1 + Waliduj za pomocą %1 + + + + Please input recovery key + Wprowadź klucz przywracania + + + + Old %1 + Stary %1 + + + + New %1 + Nowy %1 + + + + Modify %1 + Modyfikuj %1 + + + + Please enter %1 again + Wprowadź ponownie %1 + + + + Repeat %1 + Powtórz %1 + + + + Cancel + Anuluj + + + + + Confirm + Potwierdź + + + + + %1 cannot be empty + %1 nie może być puste + + + + Recovery key is not valid! + Klucz przywracania jest nieprawidłowy! + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + Co najmniej 8 bitów, zawiera 3 typy A-Z, a-z, 0-9 i symbole + + + + %1 inconsistency + %1 niespójności + + + + Validate with recovery key + Waliduj za pomocą klucza przywracania + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + Waliduj za pomocą %1 + + + + + + PIN + PIN + + + + + passphrase + hasło + + + + Please input %1 to decrypt device + Wprowadź %1, aby rozszyfrować urządzenie + + + + Decrypt device + Rozszyfruj urządzenie + + + + Please input recovery key to decrypt device + Wprowadź klucz przywracania, aby rozszyfrować urządzenie + + + + Validate with recovery key + Walidujza pomocą klucza przywracania + + + + Passphrase + Hasło + + + + Recovery key + Klucz przywracania + + + + %1 cannot be empty! + %1 nie może być puste! + + + + Recovery key is not valid! + Klucz przywracania jest nieprawidłowy! + + + + Confirm + Potwierdź + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + Odblokuj partycję szyfrowaną + + + + Cancel partition encryption + Anuluj szyfrowanie partycji + + + + passphrase + hasło + + + + Changing the encryption %1 + Zmieniam szyfrowanie %1 + + + + Continue partition encryption + Kontynuuj szyfrowanie partycji + + + + Enable partition encryption + Włącz szyfrowanie partycji + + + + + + Error + Błąd + + + + Cannot resolve passphrase from TPM + Nie można rozwiązać hasła z modułu TPM + + + + + PIN error + Błąd PIN + + + + Change passphrase failed + Wystąpił błąd podczas zmiany hasła + + + + Unlock device failed + Nie udało się odblokować urządzenia + + + + Wrong passphrase + Błędne hasło + + + + Mount device failed + Nie udało się zamontować urządzenia + + + + unmount + odmontuj + + + + lock + zablokuj + + + + Encrypt failed + Błąd szyfrowania + + + + Cannot %1 device %2 + Nie można %1 urządzenia %2 + + + + Reboot to continue encrypt + Uruchom ponownie, aby kontynuować szyfrowanie + + + + Reboot to finish decrypt + Uruchom ponownie, aby zakończyć rozszyfrowywanie + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + Odblokowano za pomocą hasła + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + W niektórych przypadkach, gdy zapomnisz hasła lub urządzenie zostanie uszkodzone, możesz rozszyfrować urządzenie kluczem przywracania. Wyeksportuj je na niezaszyfrowaną partycję i zachowaj ją w bezpiecznym miejscu! + + + + Please select a non-encrypted partition as the key file export path. + Wybierz partycję niezaszyfrowaną jako ścieżkę do eksportu pliku klucza. + + + + + Passphrase + Hasło + + + + %1 cannot be empty + %1 nie może być puste + + + + %1 inconsistency + %1 niespójności + + + + Recovery key export path cannot be empty! + Ścieżka eksportu klucza przywracania nie może być pusta! + + + + Recovery key export path is not exists! + Ścieżka eksportu klucza przywracania nie istnieje! + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + Wyeksportuj do urządzenia zewnętrznego takiego jak partycja niezaszyfrowana lub pamięć USB. + + + + This partition is read-only, please export to a writable partition + Partycja jest tylko-do-odczytu, eksportuj partycję zapisywalną + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + Ta partycja jest szyfrowana, eksportuj do partycji nieszyfrowanej lub urządzenia zewnętrznego takiego jak pamięć USB. + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + Nie można zaszyfrować partycji, ponieważ TPM jest zablokowany. Odblokuj TPM lub wybierz inną metodę odblokowania. + + + + + TPM error + Błąd TPM + + + + TPM status error! + Błąd statusu TPM! + + + + Next + Dalej + + + + Please continue to encrypt partition %1 + Kontynuuj szyfrowanie partycji %1 + + + + Previous + Poprzednia + + + + Export Recovery Key + Eksportuj klucz przywracania + + + + Set %1 + Ustaw %1 + + + + Repeat %1 + Potwórz %1 + + + + + passphrase + hasło + + + + Access to the partition will be unlocked using a passphrase. + Partycja zostanie odblokowana za pomocą hasła. + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + Partycja zostanie odblokowana za pomocą modułu TPM i kodu PIN. + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + Partycja zostanie automatycznie odblokowana za pomocą modułu TPM, podanie hasła nie będzie wymagane. + + + + Please enter the %1 again + Wprowadź ponownie %1 + + + + Unlock type + Typ odblokowania + + + + Use TPM+PIN to unlock on this computer (recommended) + Użyj TPM+PIN, aby odblokować ten komputer (zalecane) + + + + Automatic unlocking on this computer by TPM + Automatyczne odblokowywanie komputera przez TPM + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + Co najmniej 8 bitów, zawiera 3 typy A-Z, a-z, 0-9 i symbole + + + + + Confirm encrypt + Potwierdź szyfrowanie + + + + + + PIN + PIN + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + Potwierdź + + + + + Re-export the recovery key + Eksportuj ponownie klucz przywracania + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + * Nie udało się zapisać klucza przywracania, zapisz klucz na partycji nieszyfrowanej w bezpiecznym miejscu! + + + + + Error + Błąd + + + + Recovery key export path cannot be empty! + Ścieżka eksportu klucza przywracania nie może być pusta! + + + + Recovery key export path is not exists! + Ścieżka eksportu klucza przywracania nie istnieje! + + + + This partition is read-only, please export to a writable partition + Partycja jest tylko-do-odczytu, eksportuj partycję zapisywalną + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + Ta partycja jest szyfrowana, eksportuj do partycji nieszyfrowanej lub urządzenia zewnętrznego takiego jak pamięć USB. + + + + Cannot create recovery key file! + Nie można utworzyć klucza przywracania! + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + Szyfrowanie wstępne zakończone + + + + Device %1 has been preencrypt, please reboot to finish encryption. + Urządzenie %1 zostało wstępnie zaszyfrowane, uruchom ponownie, aby zakończyć. + + + + Preencrypt failed + Błąd szyfrowania wstępnego + + + + Device %1 preencrypt failed, please see log for more information.(%2) + Urządzenie %1 napotkało błąd szyfrowania wstępnego, zaloguj się po więcej informacji.(%2) + + + + Wrong passpharse or PIN + Błędne hasło lub PIN + + + + passphrase + hasło + + + + PIN + PIN + + + + Change %1 done + Zmiana %1 zakończona + + + + %1's %2 has been changed + %1 %2 został zmieniony + + + + + Change %1 failed + Nie udało się zmienić %1 + + + + Wrong %1 + Błędny %1 + + + + Device %1 change %2 failed, please see log for more information.(%3) + Urządzenie %1 zmiana %2 zakończona niepowodzeniem, sprawdź logi po więcej informacji.(%3) + + + + Encrypt done + Szyfrowanie zakończone + + + + Device %1 has been encrypted + Urządzenie %1 zostało zaszyfrowane + + + + Encrypt failed + Błąd szyfrowania + + + + Device %1 encrypt failed, please see log for more information.(%2) + Urządzenie %1 napotkało błąd szyfrowania, zaloguj się po więcej informacji.(%2) + + + + %1 is under encrypting... + %1 jest w trakcie szyfrowania... + + + + The encrypting process may have system lag, please minimize the system operation + Proces szyfrowania może obciążyć system, prosimy o zamknięcie aplikacji w tle + + + + %1 is under decrypting... + %1 jest w trakcie odszyfrowywania... + + + + The decrypting process may have system lag, please minimize the system operation + Proces odszyfrowywania może obciążyć system, prosimy o zamknięcie aplikacji w tle + + + + Error + Błąd + + + + Decrypt done + Rozszyfrowanie zakończone + + + + Device %1 has been decrypted + Urządzenie %1 zostało rozszyfrowane + + + + Decrypt disk + Rozszyfruj dysk + + + + + Decrypt failed + Błąd rozszyfrowania + + + + Device %1 is under encrypting, please decrypt after encryption finished. + Urządzenie %1 jest w trakcie szyfrowania, rozszyfruj je po zakończeniu. + + + + Device %1 Decrypt failed, please see log for more information.(%2) + Urządzenie %1 napotkało błąd rozszyfrowania, zaloguj się po więcej informacji.(%2) + + + + TPM status is abnormal, please use the recovery key to unlock it + Status TPM jest nieprawidłowy, użyj klucza przywracania, aby odblokować + + + + Wrong PIN + Błędny PIN + + + + Wrong passphrase + Błędne hasło + + + + TPM error + Błąd TPM + + + + Please use recovery key to unlock device. + Użyj klucza przywracania, aby odblokować urządzenie. + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + Anuluj + + + + Unlock + Odblokuj + + + + Unlock encryption partition + Odblokuj partycję szyfrowaną + + + + + Unlock by recovery key + Odblokuj kluczem przywracania + + + + Unlock by passphrase + Odblokuj hasłem + + + + Unlock by PIN + Odblokuj kodem PIN + + + + Please input recovery key to unlock device + Wprowadź klucz przywracania, aby odblokować urządzenie + + + + Please input passphrase to unlock device + Wprowadź hasło, aby odblokować urządzenie + + + + Please input PIN to unlock device + Wprowadź PIN, aby odblokować urządzenie + + + + Recovery key is not valid! + Klucz przywracania jest nieprawidłowy! + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_pt.ts b/translations/disk-encrypt-plugin/disk-encrypt_pt.ts new file mode 100644 index 0000000000..4df671ff67 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_pt.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + Falha ao gerar número aleatório pelo TPM + + + + No available encrypt algorithm. + Nenhum algoritmo de encriptação disponível. + + + + TPM encrypt failed. + Falha na encriptação TPM + + + + TPM is locked. + TPM bloqueado. + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + Cancelar + + + + + Confirm and Reboot + + + + + + Confirm + Confirmar + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + senha + + + + + + PIN + PIN + + + + + Recovery key + Chave de recuperação + + + + Validate with %1 + Validar com %1 + + + + Please input recovery key + Introduza a chave de recuperação + + + + Old %1 + Antiga %1 + + + + New %1 + Nova %1 + + + + Modify %1 + Modificar %1 + + + + Please enter %1 again + Por favor introduza %1 novamente + + + + Repeat %1 + Repita %1 + + + + Cancel + Cancelar + + + + + Confirm + Confirmar + + + + + %1 cannot be empty + %1 não pode ser em branco + + + + Recovery key is not valid! + Chave de recuperação inválida! + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + Mínimo de 8 bits, contendo 3 tipos de A-Z, a-z, 0-9 e símbolos + + + + %1 inconsistency + inconsistência %1 + + + + Validate with recovery key + Validar com chave de recuperação + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + Validar com %1 + + + + + + PIN + PIN + + + + + passphrase + senha + + + + Please input %1 to decrypt device + Introduza %1 para desencriptar dispositivo + + + + Decrypt device + Desencriptar dispositivo + + + + Please input recovery key to decrypt device + Por favor introduza a chave de recuperação para desencriptar dispositivo + + + + Validate with recovery key + Validar com chave de recuperação + + + + Passphrase + Senha + + + + Recovery key + Chave de recuperação + + + + %1 cannot be empty! + %1 não pode ser em branco! + + + + Recovery key is not valid! + Chave de recuperação inválida! + + + + Confirm + Confirmar + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + Desbloquear partição encriptada + + + + Cancel partition encryption + Cancelar encriptação de partição + + + + passphrase + senha + + + + Changing the encryption %1 + A alterar a encriptação %1 + + + + Continue partition encryption + + + + + Enable partition encryption + Ativar encriptação de partição + + + + + + Error + Erro + + + + Cannot resolve passphrase from TPM + Falha ao resolver senha pelo TPM + + + + + PIN error + Erro de PIN + + + + Change passphrase failed + Falha ao mudar senha + + + + Unlock device failed + Falha ao desbloquear dispositivo + + + + Wrong passphrase + Senha errada + + + + Mount device failed + Falha ao montar dispositivo + + + + unmount + desmontar + + + + lock + bloquear + + + + Encrypt failed + Falha ao encriptar + + + + Cannot %1 device %2 + Falha ao %1 dispositivo %2 + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + Desbloqueado por senha + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + Em casos especiais tais como esquecimento de senha ou danos físicos no hardware, pode desencriptar a partição com a chave de recuperação. Exporte-a para uma partição não-encriptada e mantenha-a segura! + + + + Please select a non-encrypted partition as the key file export path. + Por favor indique uma partição não encriptada como caminho para exportar o ficheiro-chave. + + + + + Passphrase + Senha + + + + %1 cannot be empty + %1 não pode ser em branco + + + + %1 inconsistency + inconsistência em %1 + + + + Recovery key export path cannot be empty! + O caminho de exportação da chave de recuperação não pode ser vazio! + + + + Recovery key export path is not exists! + O caminho de exportação da chave de recuperação não existe! + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + Por favor exporte para um suporte de dados externo tais como uma partição não-encriptada ou pen USB. + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + A partição encontra-se encriptada, por favor exporte para um suporte de dados externo tais como uma partição não-encriptada ou pen USB. + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + Seguinte + + + + Please continue to encrypt partition %1 + + + + + Previous + Anterior + + + + Export Recovery Key + Exportar chave de recuperação + + + + Set %1 + Definir %1 + + + + Repeat %1 + Repetir %1 + + + + + passphrase + senha + + + + Access to the partition will be unlocked using a passphrase. + O acesso à partição será desbloqueado com senha. + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + O acesso à partição será desbloqueado com o chip de segurança TPM e PIN. + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + O acesso à partição será automaticamente desbloqueado com recurso ao chip de segurança TPM, sem necessidade de senhas adicionais. + + + + Please enter the %1 again + Por favor introduza %1 novamente + + + + Unlock type + Tipo de desbloqueio + + + + Use TPM+PIN to unlock on this computer (recommended) + Utilizar TPM+PIN para desbloquear este computador (recomendado) + + + + Automatic unlocking on this computer by TPM + Desbloquear automaticamente este computador com recurso ao TPM + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + Mínimo de 8 bits, contendo 3 tipos de A-Z, a-z, 0-9 e símbolos + + + + + Confirm encrypt + + + + + + + PIN + PIN + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + Pré-encriptação concluída + + + + Device %1 has been preencrypt, please reboot to finish encryption. + Dispositivo %1 foi pré encriptado, por favor reinicie para concluir. + + + + Preencrypt failed + Falha ao pré-encriptar + + + + Device %1 preencrypt failed, please see log for more information.(%2) + Falha ao pré-encriptar %1, verifique o relatório de erro para mais informação. (%2) + + + + Wrong passpharse or PIN + Senha ou PIN errado + + + + passphrase + senha + + + + PIN + PIN + + + + Change %1 done + Alteração de %1 concluída + + + + %1's %2 has been changed + %1's %2 foi alterado + + + + + Change %1 failed + Falha ao alterar %1 + + + + Wrong %1 + %1 errado + + + + Device %1 change %2 failed, please see log for more information.(%3) + Falha ao alterar %2 no dispositivo %1, por favor verifique o relatório de erro para mais informação. (%3) + + + + Encrypt done + Encriptação concluída + + + + Device %1 has been encrypted + O dispositivo %1 foi encriptado + + + + Encrypt failed + Falha ao encriptar + + + + Device %1 encrypt failed, please see log for more information.(%2) + Falha ao encriptar dispositivo %1, por favor verifique o relatório de erro para mais informação. (%2) + + + + %1 is under encrypting... + Tarefa de encriptação em %1 a decorrer... + + + + The encrypting process may have system lag, please minimize the system operation + O processo de encriptação pode aumentar o tempo de resposta do sistema, por favor reduza ao minimo necessário a utilização do sistema + + + + %1 is under decrypting... + Tarefa de desencriptação em %1 a decorrer... + + + + The decrypting process may have system lag, please minimize the system operation + O processo de desencriptação pode aumentar o tempo de resposta do sistema, por favor reduza ao minimo necessário a utilização do sistema + + + + Error + Erro + + + + Decrypt done + Desencriptação concluída + + + + Device %1 has been decrypted + O dispositivo %1 foi desencriptado + + + + Decrypt disk + Desencriptar disco + + + + + Decrypt failed + Falha ao desencriptar + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + Falha ao desencriptar dispositivo %1, por favor verifique o relatório de erro para mais informação. (%2) + + + + TPM status is abnormal, please use the recovery key to unlock it + TPM em estado anormal, por favor use a chave de recuperação para desbloquear + + + + Wrong PIN + PIN errado + + + + Wrong passphrase + Senha errada + + + + TPM error + Erro de TPM + + + + Please use recovery key to unlock device. + Por favor introduza a chave de recuperação para desbloquear dispositivo + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + Cancelar + + + + Unlock + Desbloquear + + + + Unlock encryption partition + Desbloquear partição de encriptação + + + + + Unlock by recovery key + Desbloquear com chave de recuperação + + + + Unlock by passphrase + Desbloquear com senha + + + + Unlock by PIN + Desbloquear com PIN + + + + Please input recovery key to unlock device + Por favor introduza a chave de recuperação para desbloquear dispositivo + + + + Please input passphrase to unlock device + Por favor introduza a senha para desbloquear dispositivo + + + + Please input PIN to unlock device + Por favor introduza PIN para desbloquear dispositivo + + + + Recovery key is not valid! + Chave de recuperação inválida! + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_pt_BR.ts b/translations/disk-encrypt-plugin/disk-encrypt_pt_BR.ts new file mode 100644 index 0000000000..4ae087d42b --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_pt_BR.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + Cancelar + + + + + Confirm and Reboot + + + + + + Confirm + Confirmar + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + PIN + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + Cancelar + + + + + Confirm + Confirmar + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + PIN + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_ro.ts b/translations/disk-encrypt-plugin/disk-encrypt_ro.ts new file mode 100644 index 0000000000..5160af3747 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_ro.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + Anulare + + + + + Confirm and Reboot + + + + + + Confirm + Confirmare + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_ru.ts b/translations/disk-encrypt-plugin/disk-encrypt_ru.ts new file mode 100644 index 0000000000..ae7993b10d --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_ru.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + Отмена + + + + + Confirm and Reboot + + + + + + Confirm + Подтвердить + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_sc.ts b/translations/disk-encrypt-plugin/disk-encrypt_sc.ts new file mode 100644 index 0000000000..567db810f9 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_sc.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_si.ts b/translations/disk-encrypt-plugin/disk-encrypt_si.ts new file mode 100644 index 0000000000..0c0bf25412 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_si.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_si_LK.ts b/translations/disk-encrypt-plugin/disk-encrypt_si_LK.ts new file mode 100644 index 0000000000..4c1d8c9aa1 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_si_LK.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_sk.ts b/translations/disk-encrypt-plugin/disk-encrypt_sk.ts new file mode 100644 index 0000000000..aa9a4effe6 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_sk.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + Zrušiť + + + + + Confirm and Reboot + + + + + + Confirm + Potvrdiť + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_sl.ts b/translations/disk-encrypt-plugin/disk-encrypt_sl.ts new file mode 100644 index 0000000000..54a72f8803 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_sl.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + Prekini + + + + + Confirm and Reboot + + + + + + Confirm + Potrdi + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_sq.ts b/translations/disk-encrypt-plugin/disk-encrypt_sq.ts new file mode 100644 index 0000000000..f56ed0668a --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_sq.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + S’mund të prodhohet numër kuturu nga TMP-ja + + + + No available encrypt algorithm. + S’ka algoritëm fshehtëzimi. + + + + TPM encrypt failed. + Fshehtëzimi me TMP dështoi. + + + + TPM is locked. + TPM-ja është e kyçur. + + + + Confirm encrypt %1? + E ripohoni fshehtëzimin e %1? + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + Është gati të fshehtëzohet pjesa e tanishme dhe kjo s’mund të anulohet gjatë procesit të fshehtëzimit, ju lutemi, ripohoni fshehtëzimin. + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + * Pas fshehtëzimit të pjesës, sistemi s’mund të kthehet prapa te një version më i ulët, ju lutemi, ripohoni fshehtëzimin + + + + + Cancel + Anuloje + + + + + Confirm and Reboot + Ripohojeni dhe Riniseni + + + + + Confirm + Ripohojeni + + + + Decrypt %1? + Të shfshehtëzohet %1? + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + Shfshehtëzimi mund të zgjasë një kohë të madhe, ndaj sigurohuni se është i lidhur me rrjetin e energjisë deri sa të je të plotësuar shfshehtëzimi. + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + frazëkalim + + + + + + PIN + PIN + + + + + Recovery key + Kyç Rimarrjesh + + + + Validate with %1 + Vleftësoje me %1 + + + + Please input recovery key + Ju lutemi, jepni një kyç rimarrjesh + + + + Old %1 + %1 i vjetër + + + + New %1 + %1 i ri + + + + Modify %1 + Ndryshoni %1 + + + + Please enter %1 again + Ju lutemi, rijepeni %1 + + + + Repeat %1 + Përsëriteni %1 + + + + Cancel + Anuloje + + + + + Confirm + Ripohojeni + + + + + %1 cannot be empty + %1 s’mund të jetë i zbrazët + + + + Recovery key is not valid! + Kyçi i rimarrjeve s’është i vlefshëm! + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + Të paktën 8 bite, të përmbajë 3 lloje shenjash, A-Z, a-z, 0-9 dhe simbole + + + + %1 inconsistency + Mospërputhje %1 + + + + Validate with recovery key + Vleftësoje me kyç rimarrjesh + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + Vleftësoje me %1 + + + + + + PIN + PIN + + + + + passphrase + frazëkalim + + + + Please input %1 to decrypt device + Që të çfshehtëzohet pajisja, ju lutemi, jepni %1 + + + + Decrypt device + Çfshehtëzoje pajisjen + + + + Please input recovery key to decrypt device + Që të shfshehtëzohet pajisja, ju lutemi, jepni kyç rimarrjesh + + + + Validate with recovery key + Vleftësoje me kyç rimarrjesh + + + + Passphrase + Frazëkalim + + + + Recovery key + Kyç Rimarrjesh + + + + %1 cannot be empty! + %1 s’mund të jetë i zbrazët! + + + + Recovery key is not valid! + Kyçi i rimarrjeve s’është i vlefshëm! + + + + Confirm + Ripohojeni + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + Shkyç pjesë të fshehtëzuar + + + + Cancel partition encryption + Anulo fshehtëzim pjesësh + + + + passphrase + frazëkalim + + + + Changing the encryption %1 + Po ndryshohet %1 fshehtëzimi + + + + Continue partition encryption + Vazhdo fshehtëzimin e pjesës + + + + Enable partition encryption + Aktivizo fshehtëzim pjesësh + + + + + + Error + Gabim + + + + Cannot resolve passphrase from TPM + S’ftillohet dot frazëkalim nga TPM + + + + + PIN error + Gabim PIN-i + + + + Change passphrase failed + Ndryshimi i frazëkalimit dështoi + + + + Unlock device failed + Shkyçja e pajisjes dështoi + + + + Wrong passphrase + Frazëkalim i gabuar + + + + Mount device failed + Montimi i pajisjes dështoi + + + + unmount + çmontoje + + + + lock + kyçje + + + + Encrypt failed + Fshehtëzimi dështoi + + + + Cannot %1 device %2 + S’mund të %1 pajisjen %2 + + + + Reboot to continue encrypt + Që të vazhdohet fshehtëzimi, bëni rinisjen + + + + Reboot to finish decrypt + Që të përfundojë shfshehtëzimi, bëni rinisjen + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + Shkyçur me frazëkalim + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + Në raste të posaçme, f.v., harrim fjalëkalimi, ose nëse hardware-i i fshehtëzimit është dëmtuar, mund ta shfshehtëzoni pjesën e fshehtëzuar me kyçin e rimarrjeve, ju lutemi, eksportojeni te një pjesë e pafshehtëzuar dhe ruajeni në një vend të parrezik! + + + + Please select a non-encrypted partition as the key file export path. + Ju lutemi, si shteg eksportimi kartele kyçi, përzgjidhni një pjesë të pafshehtëzuar. + + + + + Passphrase + Frazëkalim + + + + %1 cannot be empty + %1 s’mund të jetë i zbrazët + + + + %1 inconsistency + Mospërputhje %1 + + + + Recovery key export path cannot be empty! + Shtegu i eksportimit të kyçit të rimarrjeve s’mund të jetë i zbrazët! + + + + Recovery key export path is not exists! + Shtegu i eksportimit të kyçit të rimarrjeve s’ekziston! + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + Ju lutemi, eksportojeni te një pajisje e jashtme, bie fjala, një pjesë jo e fshehtëzuar, ose një diskth USB. + + + + This partition is read-only, please export to a writable partition + Kjo pjesë është vetëm lexim, ju lutemi, eksportojeni te një pjesë e shkrueshme + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + Pjesa është e fshehtëzuar, ju lutemi, eksportojeni te një pjesë jo e fshehtëzuar, ose te një pajisje e jashtme, bie fjala, një diskth USB. + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + TPM-ja është e kyçur dhe s’mund të përdoret për fshehtëzim pjese. Ju lutemi, anulojeni fjalëkalimin TPM, ose zgjidhni një tjetër metodë shkyçjeje. + + + + + TPM error + Gabim TPM + + + + TPM status error! + Gabim gjendjeje TPM! + + + + Next + Pasuesi + + + + Please continue to encrypt partition %1 + Ju lutemi, vazhdoni të fshehtëzoni pjesën %1 + + + + Previous + I mëparshmi + + + + Export Recovery Key + Eksportoni Kyç Rimarrjesh + + + + Set %1 + Ujdisni %1 + + + + Repeat %1 + Përsëriteni %1 + + + + + passphrase + frazëkalim + + + + Access to the partition will be unlocked using a passphrase. + Hyrja te pjesa do të zhbllokohet duke përdorur një frazëkalim. + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + Hyrja te pjesa do të zhbllokohet duke përdorur një modul hardware sigurie TPM dhe PIN. + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + Hyrja te pjesa do të zhbllokohet automatikisht duke përdorur një modul hardware sigurie TPM, s’ka nevojë për kontroll frazëkalimi. + + + + Please enter the %1 again + Ju lutemi, rijepeni %1 + + + + Unlock type + Lloj zhbllokimi + + + + Use TPM+PIN to unlock on this computer (recommended) + Përdorni TPM+PIN që të shkyçni këtë kompjuter (e këshilluar) + + + + Automatic unlocking on this computer by TPM + Shkyçje e automatizuar në këtë kompjuter nga TPM + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + Të paktën 8 bite, të përmbajë 3 lloje shenjash, A-Z, a-z, 0-9 dhe simbole + + + + + Confirm encrypt + Ripohoni fshehtëzimin + + + + + + PIN + PIN + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + Ripohojeni + + + + + Re-export the recovery key + Rieksporto kyçin e rimarrjeve + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + *Ruajtja e kyçit të rimarrjeve dështoi, ju lutemi, rijepeni kyçin e rimarrjeve te një pjesë e pafshehtëzuar dhe ruajeni në një vend të parrezik! + + + + + Error + Gabim + + + + Recovery key export path cannot be empty! + Shtegu i eksportimit të kyçit të rimarrjes s’mund të jetë i zbrazët! + + + + Recovery key export path is not exists! + Shtegu i eksportimit të kyçit të rimarrjeve s’ekziston! + + + + This partition is read-only, please export to a writable partition + Kjo pjesë është vetëm lexim, ju lutemi, eksportojeni te një pjesë e shkrueshme + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + Pjesa është e fshehtëzuar, ju lutemi, eksportojeni te një pjesë jo e fshehtëzuar, ose te një pajisje e jashtme, bie fjala, një diskth USB. + + + + Cannot create recovery key file! + S’krijohet dot kartelë kyçi rimarrjesh! + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + Parafshehtëzimi u bë + + + + Device %1 has been preencrypt, please reboot to finish encryption. + Pajisja %1 është parafshehtëzuar, ju lutemi, që të përfundojë fshehtëzimi, bëni rinisjen. + + + + Preencrypt failed + Parafshehtëzimi dështoi + + + + Device %1 preencrypt failed, please see log for more information.(%2) + Parafshehtëzimi i pajisjes %1 dështoi, për më tepër hollësi, shihni regjistrat.(%2) + + + + Wrong passpharse or PIN + Frazëkalim, ose PIN i gabuar + + + + passphrase + frazëkalim + + + + PIN + PIN + + + + Change %1 done + Ndryshimi i %1 u bë + + + + %1's %2 has been changed + %2 i %1 u ndryshua + + + + + Change %1 failed + Ndryshimi i %1 dështoi + + + + Wrong %1 + %1 i gabuar + + + + Device %1 change %2 failed, please see log for more information.(%3) + Ndryshimi i %2 për pajisjen %1 dështoi, ju lutemi, për më tepër hollësi, shihni regjistrat.(%3) + + + + Encrypt done + Fshehtëzimi u bë + + + + Device %1 has been encrypted + Pajisja %1 është fshehtëzuar + + + + Encrypt failed + Fshehtëzimi dështoi + + + + Device %1 encrypt failed, please see log for more information.(%2) + Fshehtëzimi i pajisjes %1 dështoi, ju lutemi, për më tepër hollësi shihni regjistrat.(%2) + + + + %1 is under encrypting... + %1 është nën fshehtëzim… + + + + The encrypting process may have system lag, please minimize the system operation + Procesi i fshehtëzimit mund të sjellë vonesë në sistem, ju lutemi, minimizoni funksionimin e sistemit + + + + %1 is under decrypting... + %1 është nën shfshehtëzim… + + + + The decrypting process may have system lag, please minimize the system operation + Procesi i shfshehtëzimit mund të sjellë vonesë në sistem, ju lutemi, minimizoni funksionimin e sistemit + + + + Error + Gabim + + + + Decrypt done + Shfshehtëzimi u bë + + + + Device %1 has been decrypted + Pajisja %1 është shfshehtëzuar + + + + Decrypt disk + Shfshehtëzoje diskun + + + + + Decrypt failed + Shfshehtëzimi dështoi + + + + Device %1 is under encrypting, please decrypt after encryption finished. + Pajisja %1 gjendet nën fshehtëzim, ju lutemi, shfshehtëzojeni pasi të ketë përfunduar fshehtëzimi. + + + + Device %1 Decrypt failed, please see log for more information.(%2) + Shfshehtëzimi i pajisjes %1 dështoi, ju lutemi, për më tepër hollësi shihni regjistrat.(%2) + + + + TPM status is abnormal, please use the recovery key to unlock it + Gjendja e TPM-së është jonormale, ju lutemi, përdorni kyçin e rimarrjeve për ta shkyçur + + + + Wrong PIN + PIN i Gabuar + + + + Wrong passphrase + Frazëkalim i gabuar + + + + TPM error + Gabim TPM-je + + + + Please use recovery key to unlock device. + Ju lutemi, që të shkyçet pajisja, përdorni kyç rimarrjesh. + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + Anuloje + + + + Unlock + Shkyçe + + + + Unlock encryption partition + Shkyç pjesë fshehtëzimi + + + + + Unlock by recovery key + Shkyçe me kyç rimarrjesh + + + + Unlock by passphrase + Shkyçe me frazëkalim + + + + Unlock by PIN + Shkyçe me PIN + + + + Please input recovery key to unlock device + Që të shkyçet pajisja, ju lutemi, jepni kyç rimarrjesh + + + + Please input passphrase to unlock device + Që të shkyçet pajisja, ju lutemi, frazëkalim + + + + Please input PIN to unlock device + Që të shkyçet pajisja, ju lutemi, jepni PIN-in + + + + Recovery key is not valid! + Kyçi i rimarrjeve s’është i vlefshëm! + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_sr.ts b/translations/disk-encrypt-plugin/disk-encrypt_sr.ts new file mode 100644 index 0000000000..1c78314d95 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_sr.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + Откажи + + + + + Confirm and Reboot + + + + + + Confirm + Потврди + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_sv.ts b/translations/disk-encrypt-plugin/disk-encrypt_sv.ts new file mode 100644 index 0000000000..8de04decbb --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_sv.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + Avbryt + + + + + Confirm and Reboot + + + + + + Confirm + Bekräfta + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_sw.ts b/translations/disk-encrypt-plugin/disk-encrypt_sw.ts new file mode 100644 index 0000000000..54bd0dea49 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_sw.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_ta.ts b/translations/disk-encrypt-plugin/disk-encrypt_ta.ts new file mode 100644 index 0000000000..06bafbecc8 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_ta.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_th.ts b/translations/disk-encrypt-plugin/disk-encrypt_th.ts new file mode 100644 index 0000000000..c1211ce46f --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_th.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_tr.ts b/translations/disk-encrypt-plugin/disk-encrypt_tr.ts new file mode 100644 index 0000000000..eb5b4a307f --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_tr.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + İptal + + + + + Confirm and Reboot + + + + + + Confirm + Onayla + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_tzm.ts b/translations/disk-encrypt-plugin/disk-encrypt_tzm.ts new file mode 100644 index 0000000000..c348a06b43 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_tzm.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + Sser + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_ug.ts b/translations/disk-encrypt-plugin/disk-encrypt_ug.ts new file mode 100644 index 0000000000..f93126ef0e --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_ug.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + TPM ئىختىيارىي سانىغا ئېرىشەلمىدى + + + + No available encrypt algorithm. + ئىشلەتكىلى بولىدىغان پاروللاش ھېسابلاش ئۇسۇلى يوق. + + + + TPM encrypt failed. + TPM پاروللاش مەغلۇب بولدى. + + + + TPM is locked. + TPM قۇلۇپلاندى. + + + + Confirm encrypt %1? + %1 نى پاروللامسىز؟ + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + بۇ رايون پاروللىنىش ئالدىدا تۇرماقتا، بۇ جەرياندا ئەمەلدىن قالدۇرغىلى بولمايدۇ، پاروللاشنى جەزملەشتۈرۈڭ. + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + * رايون پاروللاغاندىن كېيىن، سىستېمىنى تۆۋەن نەشرىگە قايتۇرغىلى بولمايدۇ، پاروللاشنى جەزملەشتۈرۈڭ + + + + + Cancel + بىكار قىلىش + + + + + Confirm and Reboot + جەزملەش ۋە قايتا قوزغىتىش + + + + + Confirm + جەزملەشتۈرۈش + + + + Decrypt %1? + %1 نى پاروللاشنى بىكار قىلامسىز؟ + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + پاروللاشنى بىكار قىلىشقا بىر ئاز ئۇزۇن ۋاقىت كېتىدۇ، بىكار قىلىنىپ بولغۇچە توكقا چېتىلىشىغا كاپالەتلىك قىلىڭ. + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + پارول + + + + + + PIN + PIN نومۇرى + + + + + Recovery key + ئاچقۇچنى ئەسلىگە قايتۇرۇش + + + + Validate with %1 + %1 ئارقىلىق دەلىللەش + + + + Please input recovery key + ئەسلىگە قايتۇرۇش ئاچقۇچىنى كىرگۈزۈڭ + + + + Old %1 + كونا %1 + + + + New %1 + يېڭى %1 + + + + Modify %1 + %1 نى ئۆزگەرتىش + + + + Please enter %1 again + %1 نى قايتا كىرگۈزۈڭ + + + + Repeat %1 + %1 نىڭ تەڭشىكىنى قايتا بېكىتىش + + + + Cancel + بىكار قىلىش + + + + + Confirm + جەزملەش + + + + + %1 cannot be empty + %1 قۇرۇق قالمىسۇن + + + + Recovery key is not valid! + ئاچقۇچىنى ئەسلىگە قايتۇرۇش قائىدىگە ئۇيغۇن ئەمەس! + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + كەم دېگەندە 8 خانە بولۇشى، A-Z, a-z, 0-9 لار ۋە ھەرپ ئىچىدىكى 3 تۈرنى ئۆز ئىچىگە ئېلىشى كېرەك + + + + %1 inconsistency + %1 بىردەك ئەمەس + + + + Validate with recovery key + ئەسلىگە قايتۇرۇش ئاچقۇچى ئارقىلىق دەلىللەش + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + %1 ئارقىلىق دەلىللەش + + + + + + PIN + PIN نومۇرى + + + + + passphrase + پارول + + + + Please input %1 to decrypt device + %1 نى كىرگۈزۈپ ئۈسكۈنىنىڭ پارولىنى بىكار قىلىڭ + + + + Decrypt device + پارولنى بىكار قىلىش + + + + Please input recovery key to decrypt device + ئاچقۇچنى كىرگۈزۈپ ئۈسكۈنىنىڭ پارولىنى بىكار قىلىڭ + + + + Validate with recovery key + ئەسلىگە قايتۇرۇش ئاچقۇچى ئارقىلىق دەلىللەش + + + + Passphrase + پارول + + + + Recovery key + ئاچقۇچنى ئەسلىگە قايتۇرۇش + + + + %1 cannot be empty! + %1 قۇرۇق قالمىسۇن + + + + Recovery key is not valid! + ئاچقۇچىنى ئەسلىگە قايتۇرۇش قائىدىگە ئۇيغۇن ئەمەس! + + + + Confirm + جەزملەش + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + پارولنى يېشىش-پاروللاش رايونى + + + + Cancel partition encryption + رايون پارولىنى بىكار قىلىش + + + + passphrase + پارول + + + + Changing the encryption %1 + %1 نىڭ پارولىنى ئۆزگەرتىش + + + + Continue partition encryption + داۋاملىق رايون پاروللاش + + + + Enable partition encryption + رايون پاروللاشنى ئېچىش + + + + + + Error + خاتالىق كۆرۈلدى + + + + Cannot resolve passphrase from TPM + TPM  تىن پارولنى ئالغىلى بولمىدى + + + + + PIN error + PIN خاتا + + + + Change passphrase failed + پارول ئۆزگەرمىدى + + + + Unlock device failed + ئۈسكۈنە قۇلۇپىنى يېشەلمىدى + + + + Wrong passphrase + پارول خاتا + + + + Mount device failed + ئۈسكۈنىگە يۈكلەش مەغلۇب بولدى + + + + unmount + ئۆچۈرۈش + + + + lock + قۇلۇپلاش + + + + Encrypt failed + پاروللانمىدى + + + + Cannot %1 device %2 + ئۈسكۈنە %1 نى %2 قىلغىلى بولمىدى + + + + Reboot to continue encrypt + قايتا قوزغىتىپ داۋاملىق پاروللاڭ + + + + Reboot to finish decrypt + قايتا قوزغىتىپ پاروللاشنى تاماملاڭ + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + پارول ئارقىلىق قۇلۇپنى يېشىش + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + بەزى ئالاھىدە ئەھۋاللاردا، مەسىلەن، پارولنى ئۇنتۇپ قېلىش ياكى پاروللانغان قاتتىق دېتال بۇزۇلۇپ كېتىش قاتارلىق ئەھۋاللاردا، سىز ئاچقۇچنى ئەسلىگە كەلتۈرۈش ئارقىلىق پاروللانغان رايوننى ئاچالايسىز، ئەسلىگە كەلتۈرۈش ئاچقۇچىنى پاروللانمىغان رايونغا ئەكىرىپ بىخەتەر ساقلاڭ! + + + + Please select a non-encrypted partition as the key file export path. + بىر پاروللانمىغان رايوننى تاللاپ، ئاچقۇچنى چىقىرىش مۇندەرىجىسى قىلىڭ. + + + + + Passphrase + پارول + + + + %1 cannot be empty + %1 قۇرۇق قالمىسۇن + + + + %1 inconsistency + %1 بىردەك ئەمەس + + + + Recovery key export path cannot be empty! + ئاچقۇچنى چىقىرىش مۇندەرىجىسى قۇرۇق قالمىسۇن! + + + + Recovery key export path is not exists! + ئاچقۇچنى چىقىرىش مۇندەرىجىسى مەۋجۇت ئەمەس! + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + پاروللانمىغان رايون ياكى بارماق دىسكا قاتارلىق سىرتقى ئۈسكۈنىگە چىقىرىڭ. + + + + This partition is read-only, please export to a writable partition + بۇ رايوننى ئوقۇشقىلا بولىدۇ، يازغىلى بولىدىغان رايونغا چىقىرىڭ. + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + بۇ رايون پاروللانغان، پاروللانمىغان رايون ياكى بارماق دىسكا قاتارلىق سىرتقى ئۈسكۈنىگە چىقىرىڭ. + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + TPM قۇلۇپلانغان، رايون پاروللاشقا ئىشلەتكىلى بولمايدۇ. TPM مەخپىي نومۇرىنى بىكار قىلىڭ ياكى باشقا ئېچىش ئۇسۇلىنى تاللاڭ. + + + + + TPM error + TPM خاتا + + + + TPM status error! + TPM ھالىتى بىنورمال! + + + + Next + كىيىنكى قەدەم + + + + Please continue to encrypt partition %1 + پاروللاشنى جەزملەپ %1 رايوننى داۋاملىق پاروللاڭ + + + + Previous + ئالدىنقى قەدەم + + + + Export Recovery Key + ئەسلىگە قايتۇرۇش ئاچقۇچىنى چىقىرىش + + + + Set %1 + %1 تەڭشىكى + + + + Repeat %1 + %1 نىڭ تەڭشىكىنى قايتا بېكىتىش + + + + + passphrase + پارول + + + + Access to the partition will be unlocked using a passphrase. + رايونغا كىرگەندە پارول ئارقىلىق قۇلۇپنى يېشىش كېرەك + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + رايونغا كىرگەندە TPM بىخەتەرلىك ئۆزىكى ۋە PIN نومۇرى ئارقىلىق قۇلۇپنى يېشىدۇ. + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + رايونغا كىرگەندە TPM بىخەتەرلىك ئۆزىكى ئارقىلىق قۇلۇپنى ئاپتوماتىك يېشىدۇ، دەلىللەش كەتمەيدۇ. + + + + Please enter the %1 again + %1 نى قايتا كىرگۈزۈڭ + + + + Unlock type + يېشىش ئۇسۇلى + + + + Use TPM+PIN to unlock on this computer (recommended) + بۇ كومپيۇتېردا قۇلۇپنى TPM+PINئارقىلىق يەشسۇن (تەۋسىيە) + + + + Automatic unlocking on this computer by TPM + بۇ كومپيۇتېردا قۇلۇپنى TPMئارقىلىق ئاپتوماتىك يەشسۇن + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + كەم دېگەندە 8 خانە بولۇشى، A-Z, a-z, 0-9 لار ۋە ھەرپ ئىچىدىكى 3 تۈرنى ئۆز ئىچىگە ئېلىشى كېرەك + + + + + Confirm encrypt + پاروللايمەن + + + + + + PIN + PIN نومۇرى + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + جەزملەش + + + + + Re-export the recovery key + ئەسلىگە قايتۇرۇش ئاچقۇچىنى قايتا چىقىرىش + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + ئەسلىگە قايتۇرۇش ھۆججىتىنى ساقلىغىلى بولمىدى، ئەسلىگە قايتۇرۇش ئاچقۇچىنى پاروللانمىغان رايونغا قايتا ساقلاڭ! + + + + + Error + خاتالىق كۆرۈلدى + + + + Recovery key export path cannot be empty! + ئەسلىگە قايتۇرۇش ئاچقۇچنى چىقىرىش مۇندەرىجىسى قۇرۇق قالمىسۇن! + + + + Recovery key export path is not exists! + ئەسلىگە قايتۇرۇش ئاچقۇچنى چىقىرىش مۇندەرىجىسى مەۋجۇت ئەمەس! + + + + This partition is read-only, please export to a writable partition + بۇ رايوننى ئوقۇشقىلا بولىدۇ، يازغىلى بولىدىغان رايونغا چىقىرىڭ. + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + بۇ رايون پاروللانغان، پاروللانمىغان رايون ياكى بارماق دىسكا قاتارلىق سىرتقى ئۈسكۈنىگە چىقىرىڭ. + + + + Cannot create recovery key file! + ئەسلىگە قايتۇرۇش ئاچقۇچ ھۆججىتىنى قۇرالمىدى! + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + ئالدىن پاروللاش مەغلۇب بولدى + + + + Device %1 has been preencrypt, please reboot to finish encryption. + ئۈسكۈنە %1 ئالدىن پاروللانغان، قايتا قوزغىتىپ پاروللاش مەشغۇلىتىنى تاماملاڭ. + + + + Preencrypt failed + ئالدىن پاروللاش مەغلۇب بولدى + + + + Device %1 preencrypt failed, please see log for more information.(%2) + ئۈسكۈنە %1 نى ئالدىن پاروللاش مەغلۇب بولدى، خاتىرىنى كۆرۈپ تېخىمۇ كۆپ ئۇچۇرغا ئېرىشىڭ. (%2) + + + + Wrong passpharse or PIN + پارول ياكى PIN نومۇرى خاتا + + + + passphrase + پارول + + + + PIN + PIN نومۇرى + + + + Change %1 done + %1 ئۆزگەرتىلدى + + + + %1's %2 has been changed + %1 نىڭ %2 سى ئۆزگەرتىلدى + + + + + Change %1 failed + %1 نى ئۆزگەرتىش مەغلۇب بولدى + + + + Wrong %1 + %1 تە خاتالىق كۆرۈلدى + + + + Device %1 change %2 failed, please see log for more information.(%3) + ئۈسكۈنە %1 نىڭ %2 سىنى ئۆزگەرتىش مەغلۇب بولدى، خاتىرىنى كۆرۈپ تېخىمۇ كۆپ ئۇچۇرغا ئېرىشىڭ. (%3) + + + + Encrypt done + پاروللاندى + + + + Device %1 has been encrypted + ئۈسكۈنە %1 پاروللاندى + + + + Encrypt failed + پاروللانمىدى + + + + Device %1 encrypt failed, please see log for more information.(%2) + ئۈسكۈنە %1 پاروللانمىدى، خاتىرىنى كۆرۈپ تېخىمۇ كۆپ ئۇچۇرغا ئېرىشىڭ. (%2) + + + + %1 is under encrypting... + %1 پاروللىنىۋاتىدۇ... + + + + The encrypting process may have system lag, please minimize the system operation + پاروللاش جەريانىدا سىستېما قېتىۋېلىشى مۇمكىن، سىستېما مەشغۇلاتىنى ئىمكانقەدەر ئازايتىڭ + + + + %1 is under decrypting... + %1 نىڭ پارولى بىكار قىلىنىۋاتىدۇ... + + + + The decrypting process may have system lag, please minimize the system operation + بىكار قىلىش جەريانىدا سىستېما قېتىۋېلىشى مۇمكىن، سىستېما مەشغۇلاتىنى ئىمكانقەدەر ئازايتىڭ + + + + Error + خاتالىق كۆرۈلدى + + + + Decrypt done + پارول بىكار قىلىندى + + + + Device %1 has been decrypted + ئۈسكۈنە %1 نىڭ پارولى بىكار قىلىندى + + + + Decrypt disk + دىسكا پارولىنى بىكار قىلىش + + + + + Decrypt failed + پارولنى بىكار قىلىش مەغلۇب بولدى + + + + Device %1 is under encrypting, please decrypt after encryption finished. + ئۈسكۈنە %1 پاروللىنىۋاتىدۇ، پاروللىنىپ بولغاندىن كېيىن يېشىڭ. + + + + Device %1 Decrypt failed, please see log for more information.(%2) + ئۈسكۈنە %1 پاروللانمىدى، خاتىرىنى كۆرۈپ تېخىمۇ كۆپ ئۇچۇرغا ئېرىشىڭ. (%2) + + + + TPM status is abnormal, please use the recovery key to unlock it + TPM نىڭ ھالىتى نورمال ئەمەس، ئاچقۇچنى ئەسلىگە كەلتۈرۈش ئارقىلىق قۇلۇپنى يېشىڭ + + + + Wrong PIN + PIN نومۇرى خاتا + + + + Wrong passphrase + پارول خاتا + + + + TPM error + TPM خاتا + + + + Please use recovery key to unlock device. + ئاچقۇچنى كىرگۈزۈپ ئۈسكۈنىنىڭ قۇلۇپىنى يېشىڭ. + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + بىكار قىلىش + + + + Unlock + قۇلۇپ ئېچىش + + + + Unlock encryption partition + پاروللانغان رايوننىڭ قۇلۇپىنى يېشىش + + + + + Unlock by recovery key + ئاچقۇچ ئارقىلىق قۇلۇپنى يېشىش + + + + Unlock by passphrase + پارول ئارقىلىق قۇلۇپنى يېشىش + + + + Unlock by PIN + PIN ئارقىلىق قۇلۇپنى يېشىش + + + + Please input recovery key to unlock device + ئاچقۇچنى كىرگۈزۈپ ئۈسكۈنىنىڭ قۇلۇپىنى يېشىڭ + + + + Please input passphrase to unlock device + پارولنى كىرگۈزۈپ ئۈسكۈنىنىڭ قۇلۇپىنى يېشىڭ + + + + Please input PIN to unlock device + PIN نى كىرگۈزۈپ ئۈسكۈنىنىڭ قۇلۇپىنى يېشىڭ + + + + Recovery key is not valid! + ئاچقۇچىنى ئەسلىگە قايتۇرۇش قائىدىگە ئۇيغۇن ئەمەس! + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_uk.ts b/translations/disk-encrypt-plugin/disk-encrypt_uk.ts new file mode 100644 index 0000000000..ec99b92da8 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_uk.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + Не вдалося згенерувати випадкове число за допомогою TPM + + + + No available encrypt algorithm. + Немає доступного алгоритму шифрування. + + + + TPM encrypt failed. + Не вдалося виконати шифрування TPM! + + + + TPM is locked. + TPM заблоковано. + + + + Confirm encrypt %1? + Підтверджуєте шифрування %1? + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + Зараз розпочнеться шифрування поточного розділу, яке не можна буде скасувати під час його виконання. Будь ласка, підтвердьте шифрування. + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + * Після шифрування розділу систему вже не можна буде повернути до попередньої версії. Будь ласка, підтвердьте ваше бажання щодо шифрування + + + + + Cancel + Скасувати + + + + + Confirm and Reboot + Підтвердити і перезавантажити + + + + + Confirm + Підтвердити + + + + Decrypt %1? + Розшифрувати %1? + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + Розшифровування може бути тривалим, тому вам слід забезпечити живлення пристрою аж до завершення розшифровування. + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + пароль + + + + + + PIN + PIN-код + + + + + Recovery key + Ключ відновлення + + + + Validate with %1 + Перевірити за допомогою %1 + + + + Please input recovery key + Будь ласка, введіть ключ відновлення + + + + Old %1 + Старий %1 + + + + New %1 + Новий %1 + + + + Modify %1 + Змінити %1 + + + + Please enter %1 again + Будь ласка, введіть %1 ще раз + + + + Repeat %1 + Повторіть %1 + + + + Cancel + Скасувати + + + + + Confirm + Підтвердити + + + + + %1 cannot be empty + %1 не може бути порожнім + + + + Recovery key is not valid! + Ключ відновлення є некоректним! + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + Принаймні 8 символів, може містити A-Z, a-z, 0-9 та символи пунктуації + + + + %1 inconsistency + Невідповідність %1 + + + + Validate with recovery key + Перевірити за допомогою ключа відновлення + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + Перевірити за допомогою %1 + + + + + + PIN + PIN-код + + + + + passphrase + пароль + + + + Please input %1 to decrypt device + Будь ласка, введіть %1 для розшифрування диску + + + + Decrypt device + Розшифрувати пристрій + + + + Please input recovery key to decrypt device + Будь ласка, введіть ключ відновлення для розшифрування диску + + + + Validate with recovery key + Перевірити за допомогою ключа відновлення + + + + Passphrase + Пароль + + + + Recovery key + Ключ відновлення + + + + %1 cannot be empty! + %1 не може бути порожнім! + + + + Recovery key is not valid! + Ключ відновлення є некоректним! + + + + Confirm + Підтвердити + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + Розблокувати зашифрований розділ + + + + Cancel partition encryption + Скасувати шифрування розділу + + + + passphrase + пароль + + + + Changing the encryption %1 + Зміна шифрування %1 + + + + Continue partition encryption + Продовжити шифрування розділу + + + + Enable partition encryption + Увімкнути шифрування розділу + + + + + + Error + Помилка + + + + Cannot resolve passphrase from TPM + Не вдалося розібрати пароль від TPM + + + + + PIN error + Помилковий PIN-код + + + + Change passphrase failed + Не вдалося змінити пароль + + + + Unlock device failed + Не вдалося розблокувати пристрій + + + + Wrong passphrase + Помилковий пароль + + + + Mount device failed + Не вдалося змонтувати пристрій + + + + unmount + демонтувати + + + + lock + заблокувати + + + + Encrypt failed + Не вдалося зашифрувати + + + + Cannot %1 device %2 + Не вдалося %1 пристрій %2 + + + + Reboot to continue encrypt + Перезавантажити для продовження шифрування + + + + Reboot to finish decrypt + Перезавантажити для завершення розшифрування + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + Розблоковано паролем + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + В особливих випадках, зокрема випадках, коли ви забули пароль, або коли обладнання для шифрування пошкоджено, ви можете розшифрувати зашифрований розділ за допомогою ключа відновлення. Будь ласка, експортуйте його на незашифрований розділ і зберігайте у безпечному місці! + + + + Please select a non-encrypted partition as the key file export path. + Будь ласка, виберіть незашифрований розділ як шлях експортування файла ключа. + + + + + Passphrase + Пароль + + + + %1 cannot be empty + %1 не може бути порожнім + + + + %1 inconsistency + Невідповідність %1 + + + + Recovery key export path cannot be empty! + Шлях експортування ключа відновлення не може бути порожнім! + + + + Recovery key export path is not exists! + Шлях для експортування ключа відновлення не існує! + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + Будь ласка, експортуйте дані на зовнішній пристрій, наприклад, незашифрований розділ або флешку USB. + + + + This partition is read-only, please export to a writable partition + Цей розділ призначено лише для читання. Будь ласка, експортуйте дані на придатному для запису розділі + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + Розділ зашифровано, будь ласка, експортуйте дані на незашифрований розділ або зовнішній пристрій, наприклад флешку USB. + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + TPM заблоковано, і ним не можна скористатися для шифрування розділу. Будь ласка, скасуйте пароль TPM або виберіть інший спосіб розблокування. + + + + + TPM error + Помилка TPM + + + + TPM status error! + Помилковий стан TPM! + + + + Next + Далі + + + + Please continue to encrypt partition %1 + Будь ласка, продовжте шифрування розділу %1 + + + + Previous + Назад + + + + Export Recovery Key + Експортувати ключ відновлення + + + + Set %1 + Встановити %1 + + + + Repeat %1 + Повторіть %1 + + + + + passphrase + пароль + + + + Access to the partition will be unlocked using a passphrase. + Доступ до розділу буде розблоковано після введення пароля. + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + Доступ до розділу буде розблоковано за допомогою чіпу захисту TPM та PIN-коду. + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + Доступ до розділу буде розблоковано автоматично за допомогою чіпу захисту TPM, перевірка пароля не потрібна. + + + + Please enter the %1 again + Будь ласка, введіть %1 ще раз + + + + Unlock type + Тип розблокування + + + + Use TPM+PIN to unlock on this computer (recommended) + Використати TPM+PIN для розблокування на цьому комп'ютері (рекомендовано) + + + + Automatic unlocking on this computer by TPM + Автоматичне розблокування на цьому комп'ютері за допомогою TPM + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + Принаймні 8 символів, може містити A-Z, a-z, 0-9 та символи пунктуації + + + + + Confirm encrypt + Підтвердження шифрування + + + + + + PIN + PIN-код + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + Підтвердити + + + + + Re-export the recovery key + Повторно експортувати ключ відновлення + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + *Не вдалося зберегти ключ відновлення. Будь ласка, виконайте повторне зберігання ключа відновлення на незашифрованому розділі і зберігайте його у безпечному місці! + + + + + Error + Помилка + + + + Recovery key export path cannot be empty! + Шлях експортування ключа відновлення не може бути порожнім! + + + + Recovery key export path is not exists! + Шлях для експортування ключа відновлення не існує! + + + + This partition is read-only, please export to a writable partition + Цей розділ призначено лише для читання. Будь ласка, експортуйте дані на придатному для запису розділі + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + Розділ зашифровано, будь ласка, експортуйте дані на незашифрований розділ або зовнішній пристрій, наприклад флешку USB. + + + + Cannot create recovery key file! + Не вдалося створити файл ключа відновлення! + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + Попереднє шифрування виконано + + + + Device %1 has been preencrypt, please reboot to finish encryption. + Виконано попереднє шифрування пристрою %1. Будь ласка, перезавантажте систему для завершення шифрування. + + + + Preencrypt failed + Не вдалося виконати попереднє шифрування + + + + Device %1 preencrypt failed, please see log for more information.(%2) + Не вдалося виконати попереднє шифрування пристрою %1. Будь ласка, ознайомтеся із журналом, щоб дізнатися більше. (%2) + + + + Wrong passpharse or PIN + Помилковий пароль або PIN-код + + + + passphrase + пароль + + + + PIN + PIN-код + + + + Change %1 done + Виконано зміну %1 + + + + %1's %2 has been changed + %2 %1 було змінено + + + + + Change %1 failed + Не вдалося змінити %1 + + + + Wrong %1 + Помилковий %1 + + + + Device %1 change %2 failed, please see log for more information.(%3) + Не вдалося змінити %2 пристрою %1. Будь ласка, ознайомтеся із журналом, щоб дізнатися більше. (%3) + + + + Encrypt done + Шифрування виконано + + + + Device %1 has been encrypted + Пристрій %1 зашифровано + + + + Encrypt failed + Не вдалося зашифрувати + + + + Device %1 encrypt failed, please see log for more information.(%2) + Не вдалося виконати шифрування пристрою %1. Будь ласка, ознайомтеся із журналом, щоб дізнатися більше. (%2) + + + + %1 is under encrypting... + Виконуємо шифрування %1… + + + + The encrypting process may have system lag, please minimize the system operation + Процес шифрування може значно навантажити ресурси системи. Будь ласка, мінімізуйте роботу під час процесу шифрування + + + + %1 is under decrypting... + Виконуємо розшифровування %1… + + + + The decrypting process may have system lag, please minimize the system operation + Процес розшифрування може значно навантажити ресурси системи. Будь ласка, мінімізуйте роботу під час процесу розшифрування + + + + Error + Помилка + + + + Decrypt done + Розшифрування виконано + + + + Device %1 has been decrypted + Пристрій %1 розшифровано + + + + Decrypt disk + Розшифрувати диск + + + + + Decrypt failed + Не вдалося розшифрувати + + + + Device %1 is under encrypting, please decrypt after encryption finished. + Пристрій %1 перебуває у процесі шифрування. Будь ласка, виконайте розшифровування після завершення шифрування. + + + + Device %1 Decrypt failed, please see log for more information.(%2) + Не вдалося розшифрувати пристрій %1. Будь ласка, ознайомтеся із журналом, щоб дізнатися більше. (%2) + + + + TPM status is abnormal, please use the recovery key to unlock it + Стан TPM є нештатним. Будь ласка, скористайтеся ключем відновлення, щоб його розблокувати + + + + Wrong PIN + Помилковий PIN + + + + Wrong passphrase + Помилковий пароль + + + + TPM error + Помилка TPM + + + + Please use recovery key to unlock device. + Будь ласка, скористайтеся ключем відновлення для розблокування пристрою. + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + Скасувати + + + + Unlock + Розблокувати + + + + Unlock encryption partition + Розблокувати зашифрований розділ + + + + + Unlock by recovery key + Розблокувати за допомогою ключа відновлення + + + + Unlock by passphrase + Розблокувати за допомогою пароля + + + + Unlock by PIN + Розблокувати за допомогою PIN-коду + + + + Please input recovery key to unlock device + Будь ласка, введіть ключ відновлення для розблокування пристрою + + + + Please input passphrase to unlock device + Будь ласка, введіть пароль для розблокування пристрою + + + + Please input PIN to unlock device + Будь ласка, введіть PIN-код для розблокування пристрою + + + + Recovery key is not valid! + Ключ відновлення є некоректним! + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_ur.ts b/translations/disk-encrypt-plugin/disk-encrypt_ur.ts new file mode 100644 index 0000000000..4007e241d8 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_ur.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_uz.ts b/translations/disk-encrypt-plugin/disk-encrypt_uz.ts new file mode 100644 index 0000000000..759bdc7968 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_uz.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_vi.ts b/translations/disk-encrypt-plugin/disk-encrypt_vi.ts new file mode 100644 index 0000000000..52a34b7580 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_vi.ts @@ -0,0 +1,766 @@ + + + QObject + + + Cannot generate random number by TPM + + + + + No available encrypt algorithm. + + + + + TPM encrypt failed. + + + + + TPM is locked. + + + + + Confirm encrypt %1? + + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + + + + + + Cancel + + + + + + Confirm and Reboot + + + + + + Confirm + + + + + Decrypt %1? + + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + + + + + + + PIN + + + + + + Recovery key + + + + + Validate with %1 + + + + + Please input recovery key + + + + + Old %1 + + + + + New %1 + + + + + Modify %1 + + + + + Please enter %1 again + + + + + Repeat %1 + + + + + Cancel + + + + + + Confirm + + + + + + %1 cannot be empty + + + + + Recovery key is not valid! + + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + %1 inconsistency + + + + + Validate with recovery key + + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + + + + + + + PIN + + + + + + passphrase + + + + + Please input %1 to decrypt device + + + + + Decrypt device + + + + + Please input recovery key to decrypt device + + + + + Validate with recovery key + + + + + Passphrase + + + + + Recovery key + + + + + %1 cannot be empty! + + + + + Recovery key is not valid! + + + + + Confirm + + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + + + + + Cancel partition encryption + + + + + passphrase + + + + + Changing the encryption %1 + + + + + Continue partition encryption + + + + + Enable partition encryption + + + + + + + Error + + + + + Cannot resolve passphrase from TPM + + + + + + PIN error + + + + + Change passphrase failed + + + + + Unlock device failed + + + + + Wrong passphrase + + + + + Mount device failed + + + + + unmount + + + + + lock + + + + + Encrypt failed + + + + + Cannot %1 device %2 + + + + + Reboot to continue encrypt + + + + + Reboot to finish decrypt + + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + + + + + Please select a non-encrypted partition as the key file export path. + + + + + + Passphrase + + + + + %1 cannot be empty + + + + + %1 inconsistency + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + + + + + + TPM error + + + + + TPM status error! + + + + + Next + + + + + Please continue to encrypt partition %1 + + + + + Previous + + + + + Export Recovery Key + + + + + Set %1 + + + + + Repeat %1 + + + + + + passphrase + + + + + Access to the partition will be unlocked using a passphrase. + + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + + + + + Please enter the %1 again + + + + + Unlock type + + + + + Use TPM+PIN to unlock on this computer (recommended) + + + + + Automatic unlocking on this computer by TPM + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + + + + + + Confirm encrypt + + + + + + + PIN + + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + + + + + + Re-export the recovery key + + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + + + + + + Error + + + + + Recovery key export path cannot be empty! + + + + + Recovery key export path is not exists! + + + + + This partition is read-only, please export to a writable partition + + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + + + + + Cannot create recovery key file! + + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + + + + + Device %1 has been preencrypt, please reboot to finish encryption. + + + + + Preencrypt failed + + + + + Device %1 preencrypt failed, please see log for more information.(%2) + + + + + Wrong passpharse or PIN + + + + + passphrase + + + + + PIN + + + + + Change %1 done + + + + + %1's %2 has been changed + + + + + + Change %1 failed + + + + + Wrong %1 + + + + + Device %1 change %2 failed, please see log for more information.(%3) + + + + + Encrypt done + + + + + Device %1 has been encrypted + + + + + Encrypt failed + + + + + Device %1 encrypt failed, please see log for more information.(%2) + + + + + %1 is under encrypting... + + + + + The encrypting process may have system lag, please minimize the system operation + + + + + %1 is under decrypting... + + + + + The decrypting process may have system lag, please minimize the system operation + + + + + Error + + + + + Decrypt done + + + + + Device %1 has been decrypted + + + + + Decrypt disk + + + + + + Decrypt failed + + + + + Device %1 is under encrypting, please decrypt after encryption finished. + + + + + Device %1 Decrypt failed, please see log for more information.(%2) + + + + + TPM status is abnormal, please use the recovery key to unlock it + + + + + Wrong PIN + + + + + Wrong passphrase + + + + + TPM error + + + + + Please use recovery key to unlock device. + + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + + + + + Unlock + + + + + Unlock encryption partition + + + + + + Unlock by recovery key + + + + + Unlock by passphrase + + + + + Unlock by PIN + + + + + Please input recovery key to unlock device + + + + + Please input passphrase to unlock device + + + + + Please input PIN to unlock device + + + + + Recovery key is not valid! + + + + \ No newline at end of file diff --git a/translations/disk-encrypt-plugin/disk-encrypt_zh_CN.ts b/translations/disk-encrypt-plugin/disk-encrypt_zh_CN.ts new file mode 100644 index 0000000000..7462c87f29 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_zh_CN.ts @@ -0,0 +1,789 @@ + + + + + QObject + + + Cannot generate random number by TPM + TPM 随机数获取失败 + + + + No available encrypt algorithm. + 无可用加密算法。 + + + + TPM encrypt failed. + TPM 加密失败。 + + + + TPM is locked. + TPM 已锁定。 + + + + Confirm encrypt %1? + 确认加密%1? + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + 该分区即将进行加密,过程中无法取消,请确认加密。 + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + * 分区加密成功后,系统无法回退到低版本,请确认加密 + + + + + Cancel + 取 消 + + + + + Confirm and Reboot + 确定并重启 + + + + + Confirm + 确 定 + + + + Decrypt %1? + 取消加密%1? + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + 取消加密时间较长,请确保电源接入直到取消完成。 + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + 口令 + + + + + + PIN + PIN码 + + + + + Recovery key + 恢复密钥 + + + + Validate with %1 + 使用%1验证 + + + + Please input recovery key + 请输入恢复密钥 + + + + Old %1 + 旧%1 + + + + New %1 + 新%1 + + + + Modify %1 + 修改%1 + + + + Please enter %1 again + 请再次输入%1 + + + + Repeat %1 + 重复设置%1 + + + + Cancel + 取消 + + + + + Confirm + 确认 + + + + + %1 cannot be empty + %1不能为空 + + + + Recovery key is not valid! + 恢复密钥不合法! + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + 至少8位,包含A-Z,a-z,0-9和符号中的3种 + + + + %1 inconsistency + %1不一致 + + + + Validate with recovery key + 使用恢复密钥验证 + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + 使用%1验证 + + + + + + PIN + PIN码 + + + + + passphrase + 口令 + + + + Please input %1 to decrypt device + 请输入%1来对设备取消加密 + + + + Decrypt device + 取消加密 + + + + Please input recovery key to decrypt device + 请输入恢复密钥对设备取消加密 + + + + Validate with recovery key + 使用恢复密钥验证 + + + + Passphrase + 口令 + + + + Recovery key + 恢复密钥 + + + + %1 cannot be empty! + %1不能为空 + + + + Recovery key is not valid! + 恢复密钥不合法! + + + + Confirm + 确认 + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + 解锁加密分区 + + + + Cancel partition encryption + 取消分区加密 + + + + passphrase + 口令 + + + + Changing the encryption %1 + 修改加密%1 + + + + Continue partition encryption + 继续分区加密 + + + + Continue partition decryption + 继续取消加密 + + + + Enable partition encryption + 开启分区加密 + + + + + + Error + 错误 + + + + Cannot resolve passphrase from TPM + 无法从 TPM 中获取口令 + + + + + PIN error + PIN码错误 + + + + Change passphrase failed + 修改口令失败 + + + + Unlock device failed + 解锁设备失败 + + + + Wrong passphrase + 口令错误 + + + + Mount device failed + 挂载设备失败 + + + + unmount + 卸载 + + + + lock + 锁定 + + + + Encrypt failed + 加密失败 + + + + Cannot %1 device %2 + 无法%1设备%2 + + + + Reboot to continue encrypt + 重新启动以继续加密 + + + + Reboot to finish decrypt + 重新启动以完成加密 + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + 使用口令解锁 + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + 在一些特定场景下,例如忘记密码或者加密硬件损坏,你可以通过恢复密钥解锁加密分区,请导出恢复密钥到非加密分区并安全保存! + + + + Please select a non-encrypted partition as the key file export path. + 请选择一个非加密分区用于密钥文件导出路径。 + + + + + Passphrase + 口令 + + + + %1 cannot be empty + %1不能为空 + + + + %1 inconsistency + %1不一致 + + + + Recovery key export path cannot be empty! + 恢复密钥导出路径不能为空! + + + + Recovery key export path is not exists! + 恢复密钥导出路径不存在! + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + 请导出到非加密分区或U盘等外接设备。 + + + + This partition is read-only, please export to a writable partition + 该分区为只读权限,请导出到可写分区。 + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + 该分区已加密,请导出到非加密分区或U盘等外接设备。 + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + TPM已上锁,无法用于分区加密。请取消TPM密码或选择其他解锁方式。 + + + + + TPM error + TPM错误 + + + + TPM status error! + TPM 状态异常! + + + + Next + 下一步 + + + + Please continue to encrypt partition %1 + 确认加密请继续加密分区%1 + + + + Previous + 上一步 + + + + Export Recovery Key + 导出恢复密钥 + + + + Set %1 + 设置%1 + + + + Repeat %1 + 重复设置%1 + + + + + passphrase + 口令 + + + + Access to the partition will be unlocked using a passphrase. + 进入分区时将使用密码解锁。 + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + 进入分区时将使用TPM安全芯片和PIN码解锁。 + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + 进入分区时将使用TPM安全芯片自动解锁,无需验密。 + + + + Please enter the %1 again + 请再次输入%1 + + + + Unlock type + 解锁方式 + + + + Use TPM+PIN to unlock on this computer (recommended) + 在此计算机上使用TPM+PIN码解锁(推荐) + + + + Automatic unlocking on this computer by TPM + 在此计算机上使用TPM自动解锁 + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + 至少8位,包含A-Z,a-z,0-9和符号中的3种 + + + + + Confirm encrypt + 确认加密 + + + + + + PIN + PIN码 + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + 确认 + + + + + Re-export the recovery key + 重新导出恢复密钥 + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + 恢复密钥文件保存失败,请重新保存恢复密钥到非加密分区并妥善保管! + + + + + Error + 错误 + + + + Recovery key export path cannot be empty! + 恢复密钥导出路径不能为空! + + + + Recovery key export path is not exists! + 恢复密钥导出路径不存在! + + + + This partition is read-only, please export to a writable partition + 该分区为只读权限,请导出到可写分区。 + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + 该分区已加密,请导出到非加密分区或U盘等外接设备。 + + + + Cannot create recovery key file! + 无法创建恢复密钥文件! + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + 预加密失败 + + + + Device %1 has been preencrypt, please reboot to finish encryption. + 设备%1已进行预加密,请重启完成加密操作。 + + + + Preencrypt failed + 预加密失败 + + + + Device %1 preencrypt failed, please see log for more information.(%2) + 设备%1预加密失败,请查看日志以获取更多信息。(%2) + + + + Wrong passpharse or PIN + 口令或PIN码错误 + + + + passphrase + 口令 + + + + PIN + PIN码 + + + + Change %1 done + 修改%1完成 + + + + %1's %2 has been changed + %1的%2已修改 + + + + + Change %1 failed + 修改%1失败 + + + + Wrong %1 + %1错误 + + + + Device %1 change %2 failed, please see log for more information.(%3) + 设备%1修改%2失败,请查看日志以获取更多信息。(%3) + + + + Encrypt done + 加密完成 + + + + Device %1 has been encrypted + 设备%1已完成加密 + + + + Encrypt failed + 加密失败 + + + + Device %1 encrypt failed, please see log for more information.(%2) + 设备%1加密失败,请查看日志以获取更多信息。(%2) + + + + %1 is under encrypting... + %1 正在加密... + + + + The encrypting process may have system lag, please minimize the system operation + 加密过程可能存在系统卡顿,请尽量减少系统操作 + + + + %1 is under decrypting... + %1 正在取消加密... + + + + The decrypting process may have system lag, please minimize the system operation + 取消过程可能存在系统卡顿,请尽量减少系统操作 + + + + + Error + 错误 + + + + Decrypt done + 取消加密完成 + + + + Device %1 has been decrypted + 设备%1已取消加密 + + + + Decrypt disk + 取消磁盘加密 + + + + + Decrypt failed + 取消加密失败 + + + + Device %1 is under encrypting, please decrypt after encryption finished. + 设备 %1 正在加密,请在加密完成后解密。 + + + + Device %1 Decrypt failed, please see log for more information.(%2) + 设备%1取消加密失败,请查看日志以获取更多信息。(%2) + + + + Device is not fully decrypted, please finish decryption before access. + 设备未完全解密,访问设备前请先完成解密。 + + + + Unlocking device failed + 解锁设备失败 + + + + Please click the right disk menu "Continue partition encryption" to complete partition encryption. + 请先点击磁盘右键菜单“继续分区加密”完成分区加密。 + + + + TPM status is abnormal, please use the recovery key to unlock it + TPM状态异常,请使用恢复秘钥解锁 + + + + Wrong PIN + PIN码错误 + + + + Wrong passphrase + 口令错误 + + + + TPM error + TPM错误 + + + + Please use recovery key to unlock device. + 请使用恢复密钥来解锁设备。 + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + 取消 + + + + Unlock + 解锁 + + + + Unlock encryption partition + 解锁加密分区 + + + + + Unlock by recovery key + 使用恢复密钥解锁 + + + + Unlock by passphrase + 使用口令解锁 + + + + Unlock by PIN + 使用PIN解锁 + + + + Please input recovery key to unlock device + 请输入恢复密钥来解锁设备 + + + + Please input passphrase to unlock device + 请输入口令来解锁设备 + + + + Please input PIN to unlock device + 请输入PIN来解锁设备 + + + + Recovery key is not valid! + 恢复密钥不合法! + + + diff --git a/translations/disk-encrypt-plugin/disk-encrypt_zh_HK.ts b/translations/disk-encrypt-plugin/disk-encrypt_zh_HK.ts new file mode 100644 index 0000000000..c2bec971d8 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_zh_HK.ts @@ -0,0 +1,768 @@ + + + + + QObject + + + Cannot generate random number by TPM + TPM 隨機數獲取失敗 + + + + No available encrypt algorithm. + 無可用加密算法。 + + + + TPM encrypt failed. + TPM 加密失敗。 + + + + TPM is locked. + TPM 已鎖定。 + + + + Confirm encrypt %1? + 確認加密%1? + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + 該分區即將進行加密,過程中無法取消,請確認加密。 + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + * 分區加密成功後,系統無法回退到低版本,請確認加密 + + + + + Cancel + 取 消 + + + + + Confirm and Reboot + 確定並重啓 + + + + + Confirm + 確 定 + + + + Decrypt %1? + 取消加密%1? + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + 取消加密時間較長,請確保電源接入直到取消完成。 + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + 口令 + + + + + + PIN + PIN碼 + + + + + Recovery key + 恢復密鑰 + + + + Validate with %1 + 使用%1驗證 + + + + Please input recovery key + 請輸入恢復密鑰 + + + + Old %1 + 舊%1 + + + + New %1 + 新%1 + + + + Modify %1 + 修改%1 + + + + Please enter %1 again + 請再次輸入%1 + + + + Repeat %1 + 重複設置%1 + + + + Cancel + 取消 + + + + + Confirm + 確認 + + + + + %1 cannot be empty + %1不能為空 + + + + Recovery key is not valid! + 恢復密鑰不合法! + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + 至少8位,包含A-Z,a-z,0-9和符號中的3種 + + + + %1 inconsistency + %1不一致 + + + + Validate with recovery key + 使用恢復密鑰驗證 + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + 使用%1驗證 + + + + + + PIN + PIN碼 + + + + + passphrase + 口令 + + + + Please input %1 to decrypt device + 請輸入%1來對設備取消加密 + + + + Decrypt device + 取消加密 + + + + Please input recovery key to decrypt device + 請輸入恢復密鑰對設備取消加密 + + + + Validate with recovery key + 使用恢復密鑰驗證 + + + + Passphrase + 口令 + + + + Recovery key + 恢復密鑰 + + + + %1 cannot be empty! + %1不能為空! + + + + Recovery key is not valid! + 恢復密鑰不合法! + + + + Confirm + 確認 + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + 解鎖加密分區 + + + + Cancel partition encryption + 取消分區加密 + + + + passphrase + 口令 + + + + Changing the encryption %1 + 修改加密%1 + + + + Continue partition encryption + 繼續分區加密 + + + + Enable partition encryption + 開啟分區加密 + + + + + + Error + 錯誤 + + + + Cannot resolve passphrase from TPM + 無法從 TPM 中獲取口令 + + + + + PIN error + PIN碼錯誤 + + + + Change passphrase failed + 修改口令失敗 + + + + Unlock device failed + 解鎖設備失敗 + + + + Wrong passphrase + 口令錯誤 + + + + Mount device failed + 掛載設備失敗 + + + + unmount + 卸載 + + + + lock + 鎖定 + + + + Encrypt failed + 加密失敗 + + + + Cannot %1 device %2 + 無法%1設備%2 + + + + Reboot to continue encrypt + 重新啟動以繼續加密 + + + + Reboot to finish decrypt + 重新啟動以完成加密 + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + 使用口令解鎖 + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + 在一些特定場景下,例如忘記密碼或者加密硬件損壞,你可以通過恢復密鑰解鎖加密分區,請導出恢復密鑰到非加密分區並安全保存! + + + + Please select a non-encrypted partition as the key file export path. + 請選擇一個非加密分區用於密鑰文件導出路徑。 + + + + + Passphrase + 口令 + + + + %1 cannot be empty + %1不能為空 + + + + %1 inconsistency + %1不一致 + + + + Recovery key export path cannot be empty! + 恢復密鑰導出路徑不能為空! + + + + Recovery key export path is not exists! + 恢復密鑰導出路徑不存在! + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + 請導出到非加密分區或USB等外接設備。 + + + + This partition is read-only, please export to a writable partition + 該分區為只讀權限,請導出到可寫分區。 + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + 該分區已加密,請導出到非加密分區或USB等外接設備。 + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + TPM已上鎖,無法用於分區加密。請取消TPM密碼或選擇其他解鎖方式。 + + + + + TPM error + TPM錯誤 + + + + TPM status error! + TPM 狀態異常! + + + + Next + 下一步 + + + + Please continue to encrypt partition %1 + 請繼續加密分區%1 + + + + Previous + 上一步 + + + + Export Recovery Key + 導出恢復密鑰 + + + + Set %1 + 設置%1 + + + + Repeat %1 + 重複設置%1 + + + + + passphrase + 口令 + + + + Access to the partition will be unlocked using a passphrase. + 進入分區時將使用密碼解鎖。 + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + 進入分區時將使用TPM安全晶片和PIN碼解鎖。 + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + 進入分區時將使用TPM安全晶片自動解鎖,無需驗密。 + + + + Please enter the %1 again + 請再次輸入%1 + + + + Unlock type + 解鎖方式 + + + + Use TPM+PIN to unlock on this computer (recommended) + 在此計算機上使用TPM+PIN碼解鎖(推薦) + + + + Automatic unlocking on this computer by TPM + 在此計算機上使用TPM自動解鎖 + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + 至少8位,包含A-Z,a-z,0-9和符號中的3種 + + + + + Confirm encrypt + 確認加密 + + + + + + PIN + PIN碼 + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + 確認 + + + + + Re-export the recovery key + 重新導出恢復密鑰 + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + 恢復密鑰文件保存失敗,請重新保存恢復密鑰到非加密分區並妥善保管! + + + + + Error + 錯誤 + + + + Recovery key export path cannot be empty! + 恢復密鑰導出路徑不能為空! + + + + Recovery key export path is not exists! + 恢復密鑰導出路徑不存在! + + + + This partition is read-only, please export to a writable partition + 該分區為只讀權限,請導出到可寫分區。 + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + 該分區已加密,請導出到非加密分區或USB等外接設備。 + + + + Cannot create recovery key file! + 無法創建恢復密鑰文件! + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + 預加密完成 + + + + Device %1 has been preencrypt, please reboot to finish encryption. + 設備%1已進行預加密,請重啟完成加密操作。 + + + + Preencrypt failed + 預加密失敗 + + + + Device %1 preencrypt failed, please see log for more information.(%2) + 設備%1預加密失敗,請查看日誌以獲取更多資訊。(%2) + + + + Wrong passpharse or PIN + 口令或PIN碼錯誤 + + + + passphrase + 口令 + + + + PIN + PIN碼 + + + + Change %1 done + 修改%1完成 + + + + %1's %2 has been changed + %1的%2已修改 + + + + + Change %1 failed + 修改%1失敗 + + + + Wrong %1 + %1錯誤 + + + + Device %1 change %2 failed, please see log for more information.(%3) + 設備%1修改%2失敗,請查看日誌以獲取更多資訊。(%3) + + + + Encrypt done + 加密完成 + + + + Device %1 has been encrypted + 設備%1已完成加密 + + + + Encrypt failed + 加密失敗 + + + + Device %1 encrypt failed, please see log for more information.(%2) + 設備%1加密失敗,請查看日誌以獲取更多資訊。(%2) + + + + %1 is under encrypting... + %1 正在加密... + + + + The encrypting process may have system lag, please minimize the system operation + 加密過程可能存在系統卡頓,請盡量減少系統操作 + + + + %1 is under decrypting... + %1 正在取消加密... + + + + The decrypting process may have system lag, please minimize the system operation + 取消過程可能存在系統卡頓,請盡量減少系統操作 + + + + Error + 錯誤 + + + + Decrypt done + 取消加密完成 + + + + Device %1 has been decrypted + 設備%1已取消加密 + + + + Decrypt disk + 取消磁盤加密 + + + + + Decrypt failed + 取消加密失敗 + + + + Device %1 is under encrypting, please decrypt after encryption finished. + 設備 %1 正在加密,請在加密完成後解密。 + + + + Device %1 Decrypt failed, please see log for more information.(%2) + 設備%1取消加密失敗,請查看日誌以獲取更多資訊。(%2) + + + + TPM status is abnormal, please use the recovery key to unlock it + TPM狀態異常,請使用恢復祕鑰解鎖 + + + + Wrong PIN + PIN碼錯誤 + + + + Wrong passphrase + 口令錯誤 + + + + TPM error + TPM錯誤 + + + + Please use recovery key to unlock device. + 請使用恢復密鑰來解鎖設備。 + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + 取消 + + + + Unlock + 解鎖 + + + + Unlock encryption partition + 解鎖加密分區 + + + + + Unlock by recovery key + 使用恢復密鑰解鎖 + + + + Unlock by passphrase + 使用口令解鎖 + + + + Unlock by PIN + 使用PIN解鎖 + + + + Please input recovery key to unlock device + 請輸入恢復密鑰來解鎖設備 + + + + Please input passphrase to unlock device + 請輸入口令來解鎖設備 + + + + Please input PIN to unlock device + 請輸入PIN來解鎖設備 + + + + Recovery key is not valid! + 恢復密鑰不合法! + + + diff --git a/translations/disk-encrypt-plugin/disk-encrypt_zh_TW.ts b/translations/disk-encrypt-plugin/disk-encrypt_zh_TW.ts new file mode 100644 index 0000000000..c4e777ba32 --- /dev/null +++ b/translations/disk-encrypt-plugin/disk-encrypt_zh_TW.ts @@ -0,0 +1,768 @@ + + + + + QObject + + + Cannot generate random number by TPM + TPM 隨機數獲取失敗 + + + + No available encrypt algorithm. + 無可用加密演算法。 + + + + TPM encrypt failed. + TPM 加密失敗。 + + + + TPM is locked. + TPM 已鎖定。 + + + + Confirm encrypt %1? + 確認加密%1? + + + + The current partition is about to be encrypted and cannot be canceled during the encryption process, please confirm the encryption. + 該分區即將進行加密,過程中無法取消,請確認加密。 + + + + * After encrypting the partition, the system cannot be rolled back to a lower version, please confirm the encryption + * 分區加密成功後,系統無法回退到低版本,請確認加密 + + + + + Cancel + 取 消 + + + + + Confirm and Reboot + 確定並重啓 + + + + + Confirm + 確 定 + + + + Decrypt %1? + 確認加密%1? + + + + Decryption can take a long time, so make sure power is connected until the decryption is complete. + 取消加密時間較長,請確保電源接入直到取消完成。 + + + + dfmplugin_diskenc::ChgPassphraseDialog + + + + + passphrase + 口令 + + + + + + PIN + PIN碼 + + + + + Recovery key + 復原金鑰 + + + + Validate with %1 + 使用%1驗證 + + + + Please input recovery key + 請輸入復原金鑰 + + + + Old %1 + 舊%1 + + + + New %1 + 新%1 + + + + Modify %1 + 修改%1 + + + + Please enter %1 again + 請再次輸入%1 + + + + Repeat %1 + 重複設定%1 + + + + Cancel + 取消 + + + + + Confirm + 確認 + + + + + %1 cannot be empty + %1不能為空 + + + + Recovery key is not valid! + 復原金鑰不合法! + + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + 至少8位,包含A-Z,a-z,0-9和符號中的3種 + + + + %1 inconsistency + %1不一致 + + + + Validate with recovery key + 使用復原金鑰驗證 + + + + dfmplugin_diskenc::DecryptParamsInputDialog + + + Validate with %1 + 使用%1驗證 + + + + + + PIN + PIN碼 + + + + + passphrase + 口令 + + + + Please input %1 to decrypt device + 請輸入%1來對裝置取消加密 + + + + Decrypt device + 取消加密 + + + + Please input recovery key to decrypt device + 請輸入復原金鑰對裝置取消加密 + + + + Validate with recovery key + 使用復原金鑰驗證 + + + + Passphrase + 口令 + + + + Recovery key + 復原金鑰 + + + + %1 cannot be empty! + %1不能為空! + + + + Recovery key is not valid! + 復原金鑰不合法! + + + + Confirm + 確認 + + + + dfmplugin_diskenc::DiskEncryptMenuScene + + + Unlock encrypted partition + 解鎖加密分區 + + + + Cancel partition encryption + 取消分區加密 + + + + passphrase + 口令 + + + + Changing the encryption %1 + 修改加密%1 + + + + Continue partition encryption + 繼續分區加密 + + + + Enable partition encryption + 開啟分區加密 + + + + + + Error + 錯誤 + + + + Cannot resolve passphrase from TPM + 無法從 TPM 中獲取口令 + + + + + PIN error + PIN碼錯誤 + + + + Change passphrase failed + 修改口令失敗 + + + + Unlock device failed + 解鎖裝置失敗 + + + + Wrong passphrase + 口令錯誤 + + + + Mount device failed + 掛載裝置失敗 + + + + unmount + 移除 + + + + lock + 鎖定 + + + + Encrypt failed + 加密失敗 + + + + Cannot %1 device %2 + 無法%1裝置%2 + + + + Reboot to continue encrypt + 重新啟動以繼續加密 + + + + Reboot to finish decrypt + 重新啟動以完成加密 + + + + dfmplugin_diskenc::EncryptParamsInputDialog + + + Unlocked by passphrase + 使用口令解鎖 + + + + In special cases such as forgetting the password or the encryption hardware is damaged, you can decrypt the encrypted partition with the recovery key, please export it to a non-encrypted partition and keep it in a safe place! + 在一些特定場景下,例如忘記密碼或者加密硬體損壞,你可以透過復原金鑰解鎖加密分區,請匯出復原金鑰到非加密分區並安全儲存! + + + + Please select a non-encrypted partition as the key file export path. + 請選擇一個非加密分區用於金鑰文件匯出路徑。 + + + + + Passphrase + 口令 + + + + %1 cannot be empty + %1不能為空 + + + + %1 inconsistency + %1不一致 + + + + Recovery key export path cannot be empty! + 復原金鑰匯出路徑不能為空! + + + + Recovery key export path is not exists! + 復原金鑰匯出路徑不存在! + + + + Please export to an external device such as a non-encrypted partition or USB flash drive. + 請匯出到非加密分區或隨身碟等外接裝置。 + + + + This partition is read-only, please export to a writable partition + 該分區為唯讀權限,請匯出到可寫分區。 + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + 該分區已加密,請匯出到非加密分區或隨身碟等外接裝置。 + + + + TPM is locked and cannot be used for partition encryption. Please cancel the TPM password or choose another unlocking method. + TPM已上鎖,無法用於分區加密。請取消TPM密碼或選擇其他解鎖方式。 + + + + + TPM error + TPM錯誤 + + + + TPM status error! + TPM 狀態異常! + + + + Next + 下一步 + + + + Please continue to encrypt partition %1 + 請繼續加密分區%1 + + + + Previous + 上一步 + + + + Export Recovery Key + 匯出復原金鑰 + + + + Set %1 + 設定%1 + + + + Repeat %1 + 重複設置%1 + + + + + passphrase + 口令 + + + + Access to the partition will be unlocked using a passphrase. + 進入分區時將使用密碼解鎖。 + + + + Access to the partition will be unlocked using the TPM security chip and PIN. + 進入分區時將使用TPM安全晶片和PIN碼解鎖。 + + + + Access to the partition will be automatically unlocked using the TPM security chip, no passphrase checking is required. + 進入分區時將使用TPM安全晶片自動解鎖,無需驗密。 + + + + Please enter the %1 again + 請再次輸入%1 + + + + Unlock type + 解鎖方式 + + + + Use TPM+PIN to unlock on this computer (recommended) + 在此電腦上使用TPM+PIN碼解鎖(推薦) + + + + Automatic unlocking on this computer by TPM + 在此電腦上使用TPM自動解鎖 + + + + + At least 8 bits, contains 3 types of A-Z, a-z, 0-9 and symbols + 至少8位,包含A-Z,a-z,0-9和符號中的3種 + + + + + Confirm encrypt + 確認加密 + + + + + + PIN + PIN碼 + + + + dfmplugin_diskenc::EncryptProgressDialog + + + Confirm + 確認 + + + + + Re-export the recovery key + 重新匯出復原金鑰 + + + + *Recovery key saving failed, please re-save the recovery key to a non-encrypted partition and keep it in a safe place! + 復原金鑰文件儲存失敗,請重新儲存復原金鑰到非加密分區並妥善保管! + + + + + Error + 錯誤 + + + + Recovery key export path cannot be empty! + 復原金鑰匯出路徑不能為空! + + + + Recovery key export path is not exists! + 復原金鑰匯出路徑不存在! + + + + This partition is read-only, please export to a writable partition + 該分區為唯讀權限,請匯出到可寫分區。 + + + + The partition is encrypted, please export to a non-encrypted partition or external device such as a USB flash drive. + 該分區已加密,請匯出到非加密分區或隨身碟等外接裝置。 + + + + Cannot create recovery key file! + 無法建立復原金鑰文件! + + + + dfmplugin_diskenc::EventsHandler + + + Preencrypt done + 預加密完成 + + + + Device %1 has been preencrypt, please reboot to finish encryption. + 裝置%1已進行預加密,請重啟完成加密操作。 + + + + Preencrypt failed + 預加密失敗 + + + + Device %1 preencrypt failed, please see log for more information.(%2) + 裝置%1預加密失敗,請查看日誌以獲取更多資訊。(%2) + + + + Wrong passpharse or PIN + 口令或PIN碼錯誤 + + + + passphrase + 口令 + + + + PIN + PIN碼 + + + + Change %1 done + 修改%1完成 + + + + %1's %2 has been changed + %1的%2已修改 + + + + + Change %1 failed + 修改%1失敗 + + + + Wrong %1 + %1錯誤 + + + + Device %1 change %2 failed, please see log for more information.(%3) + 裝置%1修改%2失敗,請查看日誌以獲取更多資訊。(%3) + + + + Encrypt done + 加密完成 + + + + Device %1 has been encrypted + 裝置%1已完成加密 + + + + Encrypt failed + 加密失敗 + + + + Device %1 encrypt failed, please see log for more information.(%2) + 裝置%1加密失敗,請查看日誌以獲取更多資訊。(%2) + + + + %1 is under encrypting... + %1 正在加密... + + + + The encrypting process may have system lag, please minimize the system operation + 加密過程可能存在系統卡頓,請盡量減少系統操作 + + + + %1 is under decrypting... + %1 正在取消加密... + + + + The decrypting process may have system lag, please minimize the system operation + 取消過程可能存在系統卡頓,請盡量減少系統操作 + + + + Error + 錯誤 + + + + Decrypt done + 取消加密完成 + + + + Device %1 has been decrypted + 裝置%1已取消加密 + + + + Decrypt disk + 取消磁碟加密 + + + + + Decrypt failed + 取消加密失敗 + + + + Device %1 is under encrypting, please decrypt after encryption finished. + 裝置 %1 正在加密,請在加密完成後解密。 + + + + Device %1 Decrypt failed, please see log for more information.(%2) + 裝置%1取消加密失敗,請查看日誌以獲取更多資訊。(%2) + + + + TPM status is abnormal, please use the recovery key to unlock it + TPM狀態異常,請使用復原秘鑰解鎖 + + + + Wrong PIN + PIN碼錯誤 + + + + Wrong passphrase + 口令錯誤 + + + + TPM error + TPM錯誤 + + + + Please use recovery key to unlock device. + 請使用復原金鑰來解鎖裝置。 + + + + dfmplugin_diskenc::UnlockPartitionDialog + + + Cancel + 取消 + + + + Unlock + 解鎖 + + + + Unlock encryption partition + 解鎖加密分區 + + + + + Unlock by recovery key + 使用復原金鑰解鎖 + + + + Unlock by passphrase + 使用口令解鎖 + + + + Unlock by PIN + 使用PIN解鎖 + + + + Please input recovery key to unlock device + 請輸入復原金鑰來解鎖裝置 + + + + Please input passphrase to unlock device + 請輸入口令來解鎖裝置 + + + + Please input PIN to unlock device + 請輸入PIN來解鎖裝置 + + + + Recovery key is not valid! + 復原金鑰不合法! + + +