diff options
author | Katja Marttila <katja.marttila@qt.io> | 2021-03-22 07:49:31 +0000 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2021-03-22 07:49:31 +0000 |
commit | 0ec58b6586f688c7d46c707c3eedfcc807387c3f (patch) | |
tree | bd0be8ee66a9d8b55c8282ac2c18a3b636f5fec6 | |
parent | a9f02505f780e84c0c99770682c5e3db94c3a0a1 (diff) | |
parent | 29ed7cb3ca2e1caeb56eabba327442ce0ccadbf6 (diff) |
Merge "commit 29ed7cb3ca2e1caeb56eabba327442ce0ccadbf6 1616145450 -t--sp"
-rw-r--r-- | Changelog | 41 | ||||
-rwxr-xr-x | coin/create_ifw_installer.py | 2 | ||||
-rw-r--r-- | coin/instructions/common_environment.yaml | 5 | ||||
-rw-r--r-- | coin/instructions/make_instructions.yaml | 80 | ||||
-rw-r--r-- | coin/instructions/qmake_module_build.yaml | 10 | ||||
-rw-r--r-- | coin/qt-installer-package-config.json | 8 | ||||
-rw-r--r-- | doc/installerfw-using.qdoc | 9 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore.cpp | 8 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore.h | 1 | ||||
-rw-r--r-- | src/sdk/translations/ifw_ar.ts | 2740 | ||||
-rw-r--r-- | src/sdk/translations/ifw_de.ts | 83 |
11 files changed, 2949 insertions, 38 deletions
@@ -1,3 +1,44 @@ +4.1.0 +- Emit signal when components are recalculated (QTIFW-2172) +- Add Arabic translation (QTIFW-1425) +- Update side widget with the binary marker changes in introduction page (QTIFW-2150) +- Fix App Error when trying to launch a running installer (QTIFW-2149) +- Fix value overwrite from command line (QTIFW-2021) +- Fix DesktopDir value for AllUsers +- CLI: Add warning when cli-only options are used without command keyword (QTIFW-2046) +- Translations: Update existing TS files (QTIFW-2126) +- Add possibility to move component in component tree (QTIFW-594) +- Try rerunning execute operation (QTIFW-2125) +- CLI: Exit when expecting user input and the output device is not a TTY (QTIFW-1949) +- Add support for setting minimum wizard dimensions in config.xml (QTIFW-1903) +- Save Execute operation with predefined variable (QTIFW-2124) +- Make LicenseAgreementPage license list & details browser user-resizable (QTIFW-1987) +- Fix wizard page addition before ComponentSelectionPage (QTIFW-1168) +- Remove double calculation of uninstall components (QTIFW-1021) +- Replace usage of derived LazyPlainTextEdit class with QTextEdit (QTIFW-1994) +- Fix InstallIcons and CreateDesktopEntry operations usage as root (QTIFW-2093) +- Add support for generating offline installer from online (QTIFW-1945) +- Provide tooltip texts for buttons (QTIFW-2073) +- Allow disabling undo in CreateLocalRepository operation during uninstall (QTIFW-2094) +- Remove 'Reject Licenses' radio button and change 'Accept Licenses' to checkbox (QTIFW-2057) +- Add highdpi support for watermark, banner, background and pagelistpixmaps (QTIFW-2084) +- Fix translating from component script (QTIFW-392) +- Allow disabling undo in RegisterFileType operation during uninstall (QTIFW-2089) +- Allow disabling undo in SimpleMoveFile operation during uninstall (2090) +- Allow disabling undo in CopyDirectory during uninstall (QTIFW-2088) +- Allow disabling undo of GlobalSettings during uninstall (QTIFW-1973) +- Introduce ForcedUpdate element for component (QTIFW-1565) +- Add high dpi image support for Logo and ProductImages (QTIFW-2061, QTIFW-2060) +- Copy highdpi images as resource to installer (QTIFW-2080) +- Tools: fix binarycreator usage with unified meta-only repositories (QTIFW-2051) +- Add option to define operations in component.xml (QTIFW-507) +- Print package information in xml format (QTIFW-1950) +- Arrange licenses and filter duplicates +- CLI: Print extra archive information with higher verbosity level (QTIFW-1998) +- Allow to set ForcedInstallation from component script (QTIFW-675) +- Automatically uninstall unneeded virtual components (QTBUG-76210) +- CLI: Add possibility to filter installed packages with regexp (QTIFW-1953) + 4.0.1 - Enable HighDPI support in X11 - Fix AppendFile undo (QTIFW-2020) diff --git a/coin/create_ifw_installer.py b/coin/create_ifw_installer.py index aacb6adeb..6da4f1d16 100755 --- a/coin/create_ifw_installer.py +++ b/coin/create_ifw_installer.py @@ -76,7 +76,7 @@ def create_installer_package(src_dir: str, bld_dir: str, target_dir: str, target check_call(["strip", os.path.join(package_dir, 'bin/repogen')]) # Copy remaining payload to package dir - shutil.copytree(os.path.join(bld_dir, 'doc'), os.path.join(package_dir, 'doc')) + shutil.copytree(os.path.join(bld_dir, 'doc/html'), os.path.join(package_dir, 'doc/html')) shutil.copytree(os.path.join(src_dir, 'examples'), os.path.join(package_dir, 'examples')) shutil.copy(os.path.join(src_dir, 'README'), package_dir) diff --git a/coin/instructions/common_environment.yaml b/coin/instructions/common_environment.yaml index 4bef13a71..c3fd59f15 100644 --- a/coin/instructions/common_environment.yaml +++ b/coin/instructions/common_environment.yaml @@ -62,3 +62,8 @@ instructions: condition: property property: host.os equals_value: Linux + - type: Group + instructions: + - type: EnvironmentVariable + variableName: PACKAGING_KEYS_CONFIG_URL + variableValue: "http://ci-files01-hki.intra.qt.io/input/semisecure/packaging/packaging_secure.ini" diff --git a/coin/instructions/make_instructions.yaml b/coin/instructions/make_instructions.yaml index f9f1dd406..003e9d746 100644 --- a/coin/instructions/make_instructions.yaml +++ b/coin/instructions/make_instructions.yaml @@ -81,8 +81,77 @@ instructions: property: target.compiler in_values: [MSVC2013, MSVC2015, MSVC2017, MSVC2019] + - type: Group + instructions: + - type: ChangeDirectory + directory: "{{.InstallRoot}}/{{.AgentWorkingDir}}" + - type: ExecuteCommand + command: "python3 {{.SourceDir}}/coin/create_ifw_installer.py --src-dir {{.SourceDir}} --bld-dir {{.SourceDir}} --target-dir {{.SourceDir}} --target-name QtInstallerFramework-linux-x64-4.1.0.run" + maxTimeInSeconds: 36000 + maxTimeBetweenOutput: 3600 + userMessageOnFailure: "Failed to create ifw installer." + - type: Rename + sourcePath: "{{.SourceDir}}/QtInstallerFramework-linux-x64-4.1.0.run" + targetPath: "{{.InstallRoot}}/{{.AgentWorkingDir}}/QtInstallerFramework-linux-x64-4.1.0.run" + userMessageOnFailure: "Failed to copy installer." + enable_if: + condition: and + conditions: + - condition: property + property: host.os + equals_value: Linux + + - type: Group + instructions: + - type: ChangeDirectory + directory: "{{.InstallRoot}}/{{.AgentWorkingDir}}" + - type: ExecuteCommand + command: "python3 {{.SourceDir}}/coin/create_ifw_installer.py --src-dir {{.SourceDir}} --bld-dir {{.SourceDir}} --target-dir {{.SourceDir}} --target-name QtInstallerFramework-macOS-x86_64-4.1.0.app" + maxTimeInSeconds: 36000 + maxTimeBetweenOutput: 3600 + userMessageOnFailure: "Failed to create ifw installer." + - type: EnvironmentVariable + variableName: QT_CODESIGN_IDENTITY_KEY + variableValue: "A5GTH44LYL" + - type: ExecuteCommand + command: "{{.AgentWorkingDir}}/qtsdk/qtsdk/packaging-tools/sign_installer.py mac --file={{.SourceDir}}/QtInstallerFramework-macOS-x86_64-4.1.0.app" + maxTimeInSeconds: 36000 + maxTimeBetweenOutput: 3600 + userMessageOnFailure: "Failed to sign the ifw installer" + - type: ExecuteCommand + command: "{{.AgentWorkingDir}}/qtsdk/qtsdk/packaging-tools/notarize.py --dmg={{.SourceDir}}/QtInstallerFramework-macOS-x86_64-4.1.0.dmg" + maxTimeInSeconds: 36000 + maxTimeBetweenOutput: 3600 + userMessageOnFailure: "Failed to notarize the ifw installer" + - type: Rename + sourcePath: "{{.SourceDir}}/QtInstallerFramework-macOS-x86_64-4.1.0.dmg" + targetPath: "{{.InstallRoot}}/{{.AgentWorkingDir}}/QtInstallerFramework-macOS-x86_64-4.1.0.dmg" + userMessageOnFailure: "Failed to copy installer." + enable_if: + condition: and + conditions: + - condition: property + property: host.os + equals_value: MacOS + + - type: Group + instructions: + - type: ChangeDirectory + directory: "{{.SourceDir}}" + - type: ExecuteCommand + command: "{{.Env.PYTHON3_PATH}}\\python {{.SourceDir}}\\coin\\create_ifw_installer.py --src-dir {{.SourceDir}} --bld-dir {{.SourceDir}} --target-dir C:\\{{.SourceDir}} --target-name QtInstallerFramework-windows-x86-4.1.0" + maxTimeInSeconds: 1200 + maxTimeBetweenOutput: 1200 + userMessageOnFailure: "Failed to create ifw installer." + enable_if: + condition: and + conditions: + - condition: property + property: host.os + equals_value: Windows + - type: SignPackage - directory: "{{.InstallRoot}}/{{.AgentWorkingDir}}" + directory: "{{.SourceDir}}" maxTimeInSeconds: 1200 maxTimeBetweenOutput: 1200 enable_if: @@ -90,6 +159,15 @@ instructions: property: host.os equals_value: Windows + - type: Rename + sourcePath: "{{.SourceDir}}/QtInstallerFramework-windows-x86-4.1.0.exe" + targetPath: "{{.InstallRoot}}/{{.AgentWorkingDir}}/QtInstallerFramework-windows-x86-4.1.0.exe" + userMessageOnFailure: "Failed to copy installer." + enable_if: + condition: property + property: host.os + equals_value: Windows + - type: UploadArtifact archiveDirectory: "{{.InstallRoot}}/{{.AgentWorkingDir}}" transferType: UploadModuleBuildArtifact diff --git a/coin/instructions/qmake_module_build.yaml b/coin/instructions/qmake_module_build.yaml index 120a7745f..37ff0f396 100644 --- a/coin/instructions/qmake_module_build.yaml +++ b/coin/instructions/qmake_module_build.yaml @@ -3,6 +3,16 @@ instructions: - type: MakeDirectory directory: ".git" + - type: Group + instructions: + - type: InstallSourceArchive + maxTimeInSeconds: 600 + maxTimeBetweenOutput: 600 + project: qtsdk/qtsdk + ref: master + directory: qtsdk/qtsdk + userMessageOnFailure: "Could not install qtsdk/qtsdk source archive. Please investigate why." + - type: SetBuildDirectory directory: "{{.SourceDir}}" disable_if: diff --git a/coin/qt-installer-package-config.json b/coin/qt-installer-package-config.json new file mode 100644 index 000000000..563110519 --- /dev/null +++ b/coin/qt-installer-package-config.json @@ -0,0 +1,8 @@ +{ + "version": "1", + "module-split": { + "__extract__": [ + "**/*QtInstallerFramework-*" + ] + } +} diff --git a/doc/installerfw-using.qdoc b/doc/installerfw-using.qdoc index 8786cd005..f0205755f 100644 --- a/doc/installerfw-using.qdoc +++ b/doc/installerfw-using.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2020 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the Qt Installer Framework. @@ -484,7 +484,7 @@ beforehand with appropriate options: \code - installer.exe --root "C:\MyInstallation" --accept-licenses --default-answer install componentA + installer.exe --root "C:\MyInstallation" --accept-licenses --default-answer --confirm-command install componentA \endcode In this example, \c --accept-licenses is used to automatically accept all license agreements @@ -494,4 +494,9 @@ queries, for example to confirm overwriting of an existing directory, you could use \c {--auto-answer OverwriteTargetDirectory=Yes}. Automatic answers are shown on the console output and installation log. + + By default, the installer and maintenance tool will print a summary of components to be + affected by the command and then ask for permission to continue performing the action, + to prevent accidental changes. For unattended usage, this can be skipped by using the + \c --confirm-command option. */ diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp index e03179ebb..c512c23b5 100644 --- a/src/libs/installer/packagemanagercore.cpp +++ b/src/libs/installer/packagemanagercore.cpp @@ -428,6 +428,13 @@ using namespace QInstaller; Emitted when installer binary marker \a magicMarker has changed. */ +/*! + \fn QInstaller::PackageManagerCore::componentsRecalculated() + + Emitted when the component tree is recalculated. In a graphical interface, + this signal is emitted also after the categories are fetched. +*/ + Q_GLOBAL_STATIC(QMutex, globalModelMutex); static QFont *sVirtualComponentsFont = nullptr; Q_GLOBAL_STATIC(QMutex, globalVirtualComponentsFontMutex); @@ -1576,6 +1583,7 @@ bool PackageManagerCore::fetchPackagesTree(const PackagesList &packages, const L if (success && !d->statusCanceledOrFailed()) d->setStatus(Success); + emit componentsRecalculated(); return success; } diff --git a/src/libs/installer/packagemanagercore.h b/src/libs/installer/packagemanagercore.h index a5554782d..750c03b15 100644 --- a/src/libs/installer/packagemanagercore.h +++ b/src/libs/installer/packagemanagercore.h @@ -393,6 +393,7 @@ Q_SIGNALS: void guiObjectChanged(QObject *gui); void unstableComponentFound(const QString &type, const QString &errorMessage, const QString &component); void installerBinaryMarkerChanged(qint64 magicMarker); + void componentsRecalculated(); private: struct Data { diff --git a/src/sdk/translations/ifw_ar.ts b/src/sdk/translations/ifw_ar.ts new file mode 100644 index 000000000..df8b6ffc2 --- /dev/null +++ b/src/sdk/translations/ifw_ar.ts @@ -0,0 +1,2740 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="ar"> +<context> + <name>QInstaller::ProxyCredentialsDialog</name> + <message> + <source>Dialog</source> + <translation>نافذة الحوار</translation> + </message> + <message> + <source>The proxy %1 requires a username and password.</source> + <translation>الوكيل %1 بتطلب اسم مستخدم وكلمة مرور.</translation> + </message> + <message> + <source>Username:</source> + <translation>اسم المستخدم:</translation> + </message> + <message> + <source>Username</source> + <translation>اسم المستخدم</translation> + </message> + <message> + <source>Password:</source> + <translation>كلمة المرور:</translation> + </message> + <message> + <source>Password</source> + <translation>كلمة المرور</translation> + </message> + <message> + <source>Proxy Credentials</source> + <translation>اعتماديات الوكيل</translation> + </message> +</context> +<context> + <name>QInstaller::ServerAuthenticationDialog</name> + <message> + <source>Server Requires Authentication</source> + <translation>يحتاج الخادم إلى مصادقة</translation> + </message> + <message> + <source>You need to supply a username and password to access this site.</source> + <translation>يجب أن تدخل اسم مستخدم وكلمة مرور للوصول إلى هذا الموقع.</translation> + </message> + <message> + <source>Username:</source> + <translation>اسم المستخدم:</translation> + </message> + <message> + <source>Password:</source> + <translation>كلمة المرور:</translation> + </message> + <message> + <source>%1 at %2</source> + <translation>%1 في %2</translation> + </message> +</context> +<context> + <name>Dialog</name> + <message> + <source>Http authentication required</source> + <translation>مصادقة Http مطلوبة</translation> + </message> + <message> + <source>You need to supply a Username and Password to access this site.</source> + <translation>تحتاج إلى اسم مستخدم وكلمة مرور للوصول إلى هذا الموقع.</translation> + </message> + <message> + <source>Username:</source> + <translation>اسم المستخدم:</translation> + </message> + <message> + <source>Password:</source> + <translation>كلمة المرور:</translation> + </message> + <message> + <source>%1 at %2</source> + <translation>%1 في %2</translation> + </message> +</context> +<context> + <name>SettingsDialog</name> + <message> + <source>Settings</source> + <translation>الإعدادات</translation> + </message> + <message> + <source>Network</source> + <translation>الشبكة</translation> + </message> + <message> + <source>No proxy</source> + <translation>لا وكيل</translation> + </message> + <message> + <source>System proxy settings</source> + <translation>إعدادات وكيل النظام</translation> + </message> + <message> + <source>Manual proxy configuration</source> + <translation>إعدادات الوكيل اليدوية</translation> + </message> + <message> + <source>HTTP proxy:</source> + <translation>وكيل HTTP:</translation> + </message> + <message> + <source>Port:</source> + <translation>المنفذ:</translation> + </message> + <message> + <source>FTP proxy:</source> + <translation>وكيل FTP:</translation> + </message> + <message> + <source>Repositories</source> + <translation>المستودعات</translation> + </message> + <message> + <source>Add Username and Password for authentication if needed.</source> + <translation>أضف اسم المستخدم وكلمة المرور للمصادقة إذا لزم الأمر.</translation> + </message> + <message> + <source>Use temporary repositories only</source> + <translation>استخدم المستودعات المؤقتة فقط</translation> + </message> + <message> + <source>Add</source> + <translation>أضف</translation> + </message> + <message> + <source>Remove</source> + <translation>احذف</translation> + </message> + <message> + <source>Test</source> + <translation>اختبر</translation> + </message> + <message> + <source>Select All</source> + <translation>حدّد الكل</translation> + </message> + <message> + <source>Deselect All</source> + <translation>ألغِ تحديد الكل</translation> + </message> + <message> + <source>Show Passwords</source> + <translation>أظهر كلمات المرور</translation> + </message> + <message> + <source>Check this to use repository during fetch.</source> + <translation>حدّد هذا لاستخدام المستودع أثناء جلب البيانات.</translation> + </message> + <message> + <source>Add the username to authenticate on the server.</source> + <translation>أضف اسم المستخدم للمصادقة على الخادم.</translation> + </message> + <message> + <source>Add the password to authenticate on the server.</source> + <translation>أضف اسم كلمة المرور للمصادقة على الخادم.</translation> + </message> + <message> + <source>The servers URL that contains a valid repository.</source> + <translation>رابط الخادم المحتوي على مستوع صالح.</translation> + </message> + <message> + <source>An error occurred while testing this repository.</source> + <translation>حدث خطأ أثناء اختبار هذا المستودع.</translation> + </message> + <message> + <source>The repository was tested successfully.</source> + <translation>اختُبر المستودع بنجاح.</translation> + </message> + <message> + <source>Do you want to disable the repository?</source> + <translation>هل تريط تعطيل هذا المستودع؟</translation> + </message> + <message> + <source>Do you want to enable the repository?</source> + <translation>هل تريد تمكين هذا المستودع؟</translation> + </message> + <message> + <source>Hide Passwords</source> + <translation>أخف كلمات المرور</translation> + </message> + <message> + <source>Use</source> + <translation>استخدم</translation> + </message> + <message> + <source>Username</source> + <translation>اسم المستخدم</translation> + </message> + <message> + <source>Password</source> + <translation>كلمة المرور</translation> + </message> + <message> + <source>Repository</source> + <translation>المستودع</translation> + </message> + <message> + <source>Default repositories</source> + <translation>المستودعات الافتراضية</translation> + </message> + <message> + <source>Temporary repositories</source> + <translation>المستودعات المؤقتة</translation> + </message> + <message> + <source>User defined repositories</source> + <translation>المستودعات المعرفة من قبل المستخدم</translation> + </message> +</context> +<context> + <name>QObject</name> + <message> + <source>Authorization required</source> + <translation>المصادقة مطلوبة</translation> + </message> + <message> + <source>Enter your password to authorize for sudo:</source> + <translation>أدخل كلمة مرورك لمصادقة sudo:</translation> + </message> + <message> + <source>Error acquiring admin rights</source> + <translation>فشل الحصول على صلاحيات المدير</translation> + </message> + <message> + <source>Another %1 instance is already running. Wait until it finishes, close it, or restart your system.</source> + <translation type="unfinished">نسخة أخرى من %1 تعمل بالفعل. انتظر حتى تنتهي أو أغلقها أو أعد تشغيل نظامك.</translation> + </message> + <message> + <source>Please make sure that the current user has reading access to file "%1" or try running %2 as an administrator.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Cannot start installer binary as updater.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Cannot start installer binary as package manager.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Cannot start installer binary as uninstaller.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Empty repository list for option 'addRepository'.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Empty repository list for option 'addTempRepository'.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Empty repository list for option 'setTempRepository'.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Empty repository list for option 'installCompressedRepository'.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>The file %1 does not exist.</source> + <translation type="unfinished">الملف %1 ليس موجوداً.</translation> + </message> + <message> + <source>Arguments missing for option %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Invalid button value %1 </source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Incorrect arguments for %1</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>QInstaller</name> + <message> + <source>No marker found, stopped after %1.</source> + <translation>لم يُعثر على أي علامات، تم التوقف بعد %1.</translation> + </message> + <message> + <source>Cannot open file "%1" for reading: %2</source> + <translation>لا يمكن فتح الملف "%1" للقراءة: %2</translation> + </message> + <message> + <source>Cannot open file "%1" for writing: %2</source> + <translation>لا يمكن فتح الملف "%1" للكتابة: %2</translation> + </message> + <message> + <source>Read failed after %1 bytes: %2</source> + <translation>فشلت القراءة بعد %1 بايت: %2</translation> + </message> + <message> + <source>Copy failed: %1</source> + <translation>فشل النسخ: %1</translation> + </message> + <message> + <source>Write failed after %1 bytes: %2</source> + <translation>فشل الكتابة بعد %1 بايت: %2</translation> + </message> + <message> + <source>bytes</source> + <translation>بايت</translation> + </message> + <message> + <source>KB</source> + <translation>كيلو بايت</translation> + </message> + <message> + <source>MB</source> + <translation>ميجا بايت</translation> + </message> + <message> + <source>GB</source> + <translation>جيجا بايت</translation> + </message> + <message> + <source>TB</source> + <translation>تيرا بايت</translation> + </message> + <message> + <source>PB</source> + <translation>بيتا بايت</translation> + </message> + <message> + <source>EB</source> + <translation>إكسا بايت</translation> + </message> + <message> + <source>ZB</source> + <translation>زيتا بايت</translation> + </message> + <message> + <source>YB</source> + <translation>يوتا بايت</translation> + </message> + <message> + <source>Cannot remove file "%1": %2</source> + <translation>لا يمكن حذف الملف "%1": %2</translation> + </message> + <message> + <source>Cannot remove directory "%1": %2</source> + <translation>لا يمكن حذف المجلد "%1" :%2</translation> + </message> + <message> + <source>Cannot create directory "%1".</source> + <translation></translation> + </message> + <message> + <source>Cannot copy file from "%1" to "%2": %3</source> + <translation></translation> + </message> + <message> + <source>Cannot move file from "%1" to "%2": %3</source> + <translation></translation> + </message> + <message> + <source>Cannot create directory "%1": %2</source> + <translation></translation> + </message> + <message> + <source>Cannot open temporary file: %1</source> + <translation></translation> + </message> + <message> + <source>Cannot open temporary file for template %1: %2</source> + <translation></translation> + </message> + <message> + <source>Cannot copy file "%1" to "%2": %3</source> + <translation type="unfinished">لا يمكن نسخ الملف "%1" إلى "%2": %3</translation> + </message> + <message> + <source>Cannot copy file "%1" to "%2".</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>The specified module could not be found.</source> + <translation></translation> + </message> + <message> + <source>Invalid content in "%1".</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>BinaryLayout</name> + <message> + <source>Cannot seek to %1 to read the embedded meta data count.</source> + <translation>لا يمكن الوصول إلى %1 لقراءة عدد بيانات التعريف المضمنة.</translation> + </message> + <message> + <source>Cannot seek to %1 to read the resource collection segment.</source> + <translation>لا يمكن الوصول إلى %1 لقراءة مقطع تجميع الموارد.</translation> + </message> + <message> + <source>Unexpected mismatch of meta resources. Read %1, expected: %2.</source> + <translation>عدم تطابق غير متوقع لمصادر التعريف. بينما المتوقع: %2، قُرأ %1.</translation> + </message> +</context> +<context> + <name>BinaryContent</name> + <message> + <source>Cannot seek to %1 to read the operation data.</source> + <translation>لا يمكن الوصول إلى %1 لقراءة بيانات العملية.</translation> + </message> + <message> + <source>Cannot seek to %1 to read the resource collection block.</source> + <translation>لا يمكن الوصول إلى %1 لقراءة كتلة مجموعة الموارد.</translation> + </message> + <message> + <source>Cannot open meta resource %1.</source> + <translation>لا يمكن فتح تعريف المصدر %1.</translation> + </message> +</context> +<context> + <name>QInstaller::Resource</name> + <message> + <source>Cannot open resource %1 for reading.</source> + <translation>لا يمكن فتح المصدر %1 للقراءة.</translation> + </message> + <message> + <source>Read failed after %1 bytes: %2</source> + <translation>فشلت القراءة بعد %1 بايت: %2</translation> + </message> + <message> + <source>Write failed after %1 bytes: %2</source> + <translation>فشلت الكتابة بعد %1 بايت: %2</translation> + </message> +</context> +<context> + <name>ResourceCollectionManager</name> + <message> + <source>Cannot open resource %1: %2</source> + <translation>لا يمكن فتح المصدر %1: %2</translation> + </message> +</context> +<context> + <name>QInstaller::Component</name> + <message> + <source>Components cannot have children in updater mode.</source> + <translation>لا يمكن للمكونات أن تحتوي على أطفال في وضع التحديث.</translation> + </message> + <message> + <source>Cannot open the requested UI file "%1": %2</source> + <translation>لا يمكن فتح ملف واجهة المستخدم المطلوب "%1": %2</translation> + </message> + <message> + <source>Cannot load the requested UI file "%1": %2</source> + <translation>لا يمكن تحميل ملف واجهة المتسخدم المطلوب "%1": %2</translation> + </message> + <message> + <source>Cannot open the requested license file "%1": %2</source> + <translation>لا يمكن فتح ملف الرخصة المطلوب "%1": %2</translation> + </message> + <message> + <source>Error</source> + <translation>خطأ</translation> + </message> + <message> + <source>Error: Operation %1 does not exist.</source> + <translation>خطأ: العملية %1 ليست موجودة.</translation> + </message> + <message> + <source>Cannot resolve isDefault in %1</source> + <translation></translation> + </message> + <message> + <source>There was an error loading the selected component. This component can not be installed.</source> + <translation>كان هناك خطأ أثناء تحميل المكون المحدد. هذا المكون لا يمكن تثبيته.</translation> + </message> + <message> + <source>Update Info: </source> + <translation>معلومات التحديث: </translation> + </message> + <message> + <source>There was an error loading the selected component. This component can not be updated.</source> + <translation>كان هناك خطأ أثناء تحميل المكون المحدد. هذا المكون لا يمكن تحديثه.</translation> + </message> +</context> +<context> + <name>QInstaller::ComponentModel</name> + <message> + <source>Component is marked for installation.</source> + <translation>المكون مُعَلّم للتثبيت.</translation> + </message> + <message> + <source>Component is marked for uninstallation.</source> + <translation>المكون مُعَلّم لإزالة التثبيت.</translation> + </message> + <message> + <source>Component is installed.</source> + <translation>المكون مُثبّت.</translation> + </message> + <message> + <source>Component is not installed.</source> + <translation>المكون غير مثبت.</translation> + </message> + <message> + <source>Component Name</source> + <translation>اسم المكون</translation> + </message> + <message> + <source>Action</source> + <translation>الإجراء</translation> + </message> + <message> + <source>Installed Version</source> + <translation>الإصدار المثبت</translation> + </message> + <message> + <source>New Version</source> + <translation>الإصدار الجديد</translation> + </message> + <message> + <source>Release Date</source> + <translation>تاريخ الإصدار</translation> + </message> + <message> + <source>Size</source> + <translation>الحجم</translation> + </message> +</context> +<context> + <name>QInstaller::ComponentSelectionPage</name> + <message> + <source>Alt+A</source> + <comment>select default components</comment> + <translation>Alt+A</translation> + </message> + <message> + <source>Def&ault</source> + <translation>الاف&تراضي</translation> + </message> + <message> + <source>Select default components in the tree view.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Alt+R</source> + <comment>reset to already installed components</comment> + <translation>Alt+R</translation> + </message> + <message> + <source>&Reset</source> + <translation>&أعد الضبط</translation> + </message> + <message> + <source>Reset all components to their original selection state in the tree view.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Alt+S</source> + <comment>select all components</comment> + <translation>Alt+S</translation> + </message> + <message> + <source>&Select All</source> + <translation>&حدّد الكل</translation> + </message> + <message> + <source>Select all components in the tree view.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Alt+D</source> + <comment>deselect all components</comment> + <translation>Alt+D</translation> + </message> + <message> + <source>&Deselect All</source> + <translation>&ألغِ تحديد الكل</translation> + </message> + <message> + <source>Deselect all components in the tree view.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>&Browse QBSP files</source> + <translation>&تصفح ملفات QBSP</translation> + </message> + <message> + <source>Select a Qt Board Support Package file to install additional content that is not directly available from the online repositories.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Filter the enabled repository categories to selection.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>This component will occupy approximately %1 on your hard disk drive.</source> + <translation>سيشغل هذا المكون %1 تقريباً على قرصك الصلب.</translation> + </message> + <message> + <source>Open File</source> + <translation>فتح ملف</translation> + </message> + <message> + <source>Select Components</source> + <translation>حدّد المكونات</translation> + </message> + <message> + <source>Please select the components you want to update.</source> + <translation></translation> + </message> + <message> + <source>Please select the components you want to install.</source> + <translation>يرجى تحديد المكونات التي تريد تثبيتها.</translation> + </message> + <message> + <source>Please select the components you want to uninstall.</source> + <translation>يرجى تحديد المكونات التي تريد إزالتها.</translation> + </message> + <message> + <source>Select the components to install. Deselect installed components to uninstall them. Any components already installed will not be updated.</source> + <translation>حدّد المكونات التي تريد تثبيتها. ألغِ تحديد المكونات المثبتة لإزالتها. أي مكونات مثبتة بالفعل لن يتم تحديثها.</translation> + </message> + <message> + <source>Mandatory components need to be updated first before you can select other components to update.</source> + <translation>المكونات الضرورية التي يجب تحديثها أولاً قبل اختيار المكونات الآخرى للتحديث.</translation> + </message> +</context> +<context> + <name>QInstaller::ComponentSelectionPagePrivate</name> + <message> + <source>Filter</source> + <translation>رشّح</translation> + </message> + <message> + <source>Error</source> + <translation>خطأ</translation> + </message> +</context> +<context> + <name>QInstaller::ConsumeOutputOperation</name> + <message> + <source><to be saved installer key name> <executable> [argument1] [argument2] [...]</source> + <translation><اسم مفتاح المثبت المراد حفظه> <الملف التنفيذي> [المعامل الأول] [العامل الثاني] [...]</translation> + </message> + <message> + <source>Needed installer object in %1 operation is empty.</source> + <translation>كائن المثبت المطلوب في العملية %1 فارغ.</translation> + </message> + <message> + <source>Cannot save the output of "%1" to an empty installer key value.</source> + <translation>لا يمكن حفظ إخراج "%1" إلى قيمة مفتاح تثبيت فارغة.</translation> + </message> + <message> + <source>File "%1" does not exist or is not an executable binary.</source> + <translation>الملف "%1" غير موجود أو ليس قابلاً للتنفيذ.</translation> + </message> + <message> + <source>Running "%1" resulted in a crash.</source> + <translation>تشغيل "%1" تسبب في إنهيار.</translation> + </message> +</context> +<context> + <name>QInstaller::CopyDirectoryOperation</name> + <message> + <source><source> <target> ["forceOverwrite"]</source> + <translation><المصدر> <الوجهة> ["إجبار إعادة الكتابة"]</translation> + </message> + <message> + <source>Invalid argument in %1: Third argument needs to be forceOverwrite, if specified.</source> + <translation>معامل غير صحيح في %1: المعامل الثالث يجب أن يكون 'forceOverwrite'، إن تم تحديد ذلك.</translation> + </message> + <message> + <source>Invalid argument in %1: Directory "%2" is invalid.</source> + <translation>معامل غير صحيح في %1: المجلد "%2" غير صحيح.</translation> + </message> + <message> + <source>Cannot create directory "%1".</source> + <translation>لا يمكن إنشاء المجلد "%1".</translation> + </message> + <message> + <source>Failed to overwrite "%1".</source> + <translation>فشلت إعادة كتابة "%1".</translation> + </message> + <message> + <source>Cannot copy file "%1" to "%2": %3</source> + <translation>لا يمكن نسخ الملف "%1" إلى "%2": %3</translation> + </message> + <message> + <source>Cannot remove file "%1".</source> + <translation>لا يمكن حذف الملف "%1".</translation> + </message> +</context> +<context> + <name>QInstaller::CopyFileTask</name> + <message> + <source>Invalid task item count.</source> + <translation>عدد عناصر المهمة غير صحيح.</translation> + </message> + <message> + <source>Cannot open file "%1" for reading: %2</source> + <translation>لا يمكن فتح الملف "%1" للقراءة: %2</translation> + </message> + <message> + <source>Cannot open file "%1" for writing: %2</source> + <translation>لا يمكن فتح الملف "%1" للكتابة: %2</translation> + </message> + <message> + <source>Writing to file "%1" failed: %2</source> + <translation>فشلت الكتابة إلى الملف "%1": %2</translation> + </message> +</context> +<context> + <name>QInstaller::CreateDesktopEntryOperation</name> + <message> + <source>Cannot backup file "%1": %2</source> + <translation>لا يمكن إنشاء نسخة احتياطية من الملف "%1": %2</translation> + </message> + <message> + <source>Failed to overwrite file "%1".</source> + <translation>فشلت إعادة كتابة الملف "%1".</translation> + </message> + <message> + <source>Cannot write desktop entry to "%1".</source> + <translation>لا يمكن كتابة ملف سطح المكتب إلى "%1".</translation> + </message> +</context> +<context> + <name>QInstaller::CreateLinkOperation</name> + <message> + <source>Cannot create link from "%1" to "%2".</source> + <translation>لا يمكن إنشاء رابط من "%1" إلى "%2".</translation> + </message> + <message> + <source>Cannot remove link from "%1" to "%2".</source> + <translation>لا يمكن حذف الرابط بين "%1" و"%2".</translation> + </message> +</context> +<context> + <name>QInstaller::CreateLocalRepositoryOperation</name> + <message> + <source>Cannot set permissions for file "%1".</source> + <translation>لا يمكن تعيين أذونات للملف "%1".</translation> + </message> + <message> + <source>Cannot remove file "%1": %2</source> + <translation>لا يمكن حذف الملف "%1":%2</translation> + </message> + <message> + <source>Cannot move file "%1" to "%2": %3</source> + <translation>لا يمكن نقل الملف "%1" إلى "%2": %3</translation> + </message> + <message> + <source>Installer at "%1" needs to be an offline one.</source> + <translation>يجب أن يكون المثبت في "%1" غير متصل بالإنترنت.</translation> + </message> + <message> + <source>Cannot create path "%1".</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Cannot remove directory "%1".</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Cannot open file "%1" for reading.</source> + <translation>لا يمكن فتح الملف "%1" للقراءة.</translation> + </message> + <message> + <source>Cannot read file "%1": %2</source> + <translation>لا يمكن قراءة الملف "%1": %2</translation> + </message> + <message> + <source>Cannot open file "%1" for reading: %2</source> + <translation>لا يمكن فتح الملف "%1" للقراءة: %2</translation> + </message> + <message> + <source>Cannot create target directory: "%1".</source> + <translation>لا يمكن إنشاء مجلد الوجهة: "%1".</translation> + </message> + <message> + <source>Unknown exception caught: %1.</source> + <translation>اكتُشف استثناء غير معروف: %1.</translation> + </message> + <message> + <source>Removing file "%1".</source> + <translation>إزالة الملف "%1".</translation> + </message> + <message> + <source>Cannot remove file "%1".</source> + <translation>لا يمكن حذف الملف "%1".</translation> + </message> + <message> + <source>Cannot remove directory "%1": %2</source> + <translation>لا يمكن حذف المجلد "%1": %2</translation> + </message> +</context> +<context> + <name>QInstaller::CreateShortcutOperation</name> + <message> + <source><target> <link location> [target arguments] ["workingDirectory=..."] ["iconPath=..."] ["iconId=..."] ["description=..."]</source> + <translation><الوجهة> <مكان الرابط> [معاملات الوجهة] ["مسار العمل"] ["مسار الأيقونة"] ["رمز الأيقونة"] ["الوصف"]</translation> + </message> + <message> + <source>Cannot create directory "%1": %2</source> + <translation>لا يمكن إنشاء المجلد "%1": %2</translation> + </message> + <message> + <source>Failed to overwrite "%1": %2</source> + <translation>فشلت إعادة كتابة "%1": %2</translation> + </message> + <message> + <source>Cannot create link "%1": %2</source> + <translation>لا يمكن إنشاء الارتباط "%1": %2</translation> + </message> +</context> +<context> + <name>QInstaller::DownloadArchivesJob</name> + <message> + <source>Canceled</source> + <translation>أُلغيت</translation> + </message> + <message> + <source>Downloading hash signature failed.</source> + <translation>فشل تنزيل توقيع التجزئة.</translation> + </message> + <message> + <source>Download Error</source> + <translation>خطأ في التنزيل</translation> + </message> + <message> + <source>Hash verification while downloading failed. This is a temporary error, please retry.</source> + <translation>فشل التحقق من التجزئة أثناء التنزيل. هذا خطأ مؤقت، يرجى إعادة المحاولة.</translation> + </message> + <message> + <source>Cannot verify Hash</source> + <translation>لا يمكن التحقق من التحزئة</translation> + </message> + <message> + <source>Cannot download archive %1: %2</source> + <translation>لا يمكن تنزيل الأرشيف %1: %2</translation> + </message> + <message> + <source>Cannot fetch archives: %1 +Error while loading %2</source> + <translation>لا يمكن جلب الأرشيفات: %1 +خطأ أثناء تحميل %2</translation> + </message> + <message> + <source>Downloading archive "%1" for component %2.</source> + <translation>تنزيل الأرشيف "%1" للمكون %2.</translation> + </message> + <message> + <source>Scheme %1 not supported (URL: %2).</source> + <translation>الصيغة %1 غير مدعومة (الرابط: %2).</translation> + </message> + <message> + <source>Cannot find component for %1.</source> + <translation>لا يمكن العثور على المكون لـ %1.</translation> + </message> +</context> +<context> + <name>QInstaller::Downloader</name> + <message> + <source>Target file "%1" already exists but is not a file.</source> + <translation>ملف الوجهة "%1" موجود بالفعل ولكنه ليس ملفاً.</translation> + </message> + <message> + <source>Cannot open file "%1" for writing: %2</source> + <extracomment>%2 is a sentence describing the error</extracomment> + <translation>لا يمكن فتح الملف "%1" للكتابة: %2</translation> + </message> + <message> + <source>File "%1" not open for writing: %2</source> + <extracomment>%2 is a sentence describing the error.</extracomment> + <translation>الملف "%1" غير مفتوح للكتابة: %2</translation> + </message> + <message> + <source>Writing to file "%1" failed: %2</source> + <extracomment>%2 is a sentence describing the error.</extracomment> + <translation>فشلت الكتابة إلى الملف "%1": %2</translation> + </message> + <message> + <source>Redirect loop detected for "%1".</source> + <translation>اكتُشفت حلقة إعادة توجيه لـ "%1".</translation> + </message> + <message> + <source>Network error while downloading '%1': %2.</source> + <translation>خطأ في الشبكة أثناء تنزيل "%1": %2.</translation> + </message> + <message> + <source>Unknown network error while downloading "%1".</source> + <extracomment>%1 is a sentence describing the error</extracomment> + <translation>خطأ غير معروف في الشبكة أثناء تنزيل "%1".</translation> + </message> + <message> + <source>Network transfers canceled.</source> + <translation>أُلغيت تحويلات الشبكة.</translation> + </message> + <message> + <source>Pause and resume not supported by network transfers.</source> + <translation>التوقف المؤقت والاستئناف غير مدعوم من قبل ناقلات الشبكة.</translation> + </message> + <message> + <source>Invalid source URL "%1": %2</source> + <extracomment>%2 is a sentence describing the error</extracomment> + <translation>الرابط المصدري "%1" غير صحيح: %2</translation> + </message> +</context> +<context> + <name>AuthenticationRequiredException</name> + <message> + <source>%1 at %2</source> + <translation>%1 في %2</translation> + </message> + <message> + <source>Proxy requires authentication.</source> + <translation>يتطلب الوكيل المصادقة.</translation> + </message> +</context> +<context> + <name>QInstaller::ElevatedExecuteOperation</name> + <message> + <source>Cannot start detached: "%1"</source> + <translation>لا يمكن بدأ "%1" منفصلاً</translation> + </message> + <message> + <source>Cannot start: "%1": %2</source> + <translation>لا يمكن بدأ "%1": %2</translation> + </message> + <message> + <source>Program crashed: "%1"</source> + <translation>انهار البرنامج: "%1"</translation> + </message> + <message> + <source>Execution failed (Unexpected exit code: %1): "%2"</source> + <translation>فشل التنفيذ (رمز الخروج %1 غير متوقع): "%2"</translation> + </message> +</context> +<context> + <name>UpdateOperation</name> + <message> + <source>Cannot write to registry path %1.</source> + <translation>لا يمكن الكتابة إلى مسار التسجيل %1.</translation> + </message> + <message> + <source>Registry path %1 is not writable.</source> + <translation>مسار التسجيل %1 غير قابل للكتابة.</translation> + </message> + <message> + <source>exactly %1</source> + <translation>%1 بالضبط</translation> + </message> + <message> + <source>at least %1</source> + <translation>%1 على الأقل</translation> + </message> + <message> + <source>not more than %1</source> + <translation>ليس أكثر من %1</translation> + </message> + <message> + <source>%1 or %2</source> + <translation>%1 أو %2</translation> + </message> + <message> + <source>%1 to %2</source> + <translation>%1 إلى %2</translation> + </message> + <message numerus="yes"> + <source>Invalid arguments in %1: %n arguments given, %2 arguments expected.</source> + <translation> + <numerusform>معاملات غير صحيحة في %1: بينما المعاملات المتوقعة %2، المعاملات المعطاة %n.</numerusform> + <numerusform>معامل غير صحيح في %1: بينما المعامل المتوقع %2، المعامل المعطى %n.</numerusform> + <numerusform>معاملان غير صحيحين في %1: بينما المعاملان المتوقعان %2، المعاملان المعطان %n.</numerusform> + <numerusform>معاملات غير صحيحة في %1: بينما المعاملات المتوقعة %2، المعاملات المعطاة %n.</numerusform> + <numerusform>معاملات غير صحيحة في %1: بينما المعاملات المتوقعة %2، المعاملات المعطاة %n.</numerusform> + <numerusform>معاملات غير صحيحة في %1: بينما المعاملات المتوقعة %2، المعاملات المعطاة %n.</numerusform> + </translation> + </message> + <message numerus="yes"> + <source>Invalid arguments in %1: %n arguments given, %2 arguments expected in the form: %3.</source> + <translation> + <numerusform>معاملات غير صحيحة في %1: بينما المعاملات المتوقعة %2 على الصورة %3، المعاملات المعطاة %n.</numerusform> + <numerusform>معامل غير صحيح في %1: بينما المعامل المتوقع %2 على الصورة %3، المعامل المعطى %n.</numerusform> + <numerusform>معاملان غير صحيحين في %1: بينما المعاملان المتوقعان %2 على الصورة %3، المعاملان المعطان %n.</numerusform> + <numerusform>معاملات غير صحيحة في %1: بينما المعاملات المتوقعة %2 على الصورة %3، المعاملات المعطاة %n.</numerusform> + <numerusform>معاملات غير صحيحة في %1: بينما المعاملات المتوقعة %2 على الصورة %3، المعاملات المعطاة %n.</numerusform> + <numerusform>معاملات غير صحيحة في %1: بينما المعاملات المتوقعة %2 على الصورة %3، المعاملات المعطاة %n.</numerusform> + </translation> + </message> + <message> + <source>Renaming file "%1" to "%2" failed: %3</source> + <translation>فشلت إعادة تسمية الملف "%1" إلى "%2": %3</translation> + </message> +</context> +<context> + <name>QInstaller::ExtractArchiveOperation</name> + <message> + <source>Extracting "%1"</source> + <translation>استخراج "%1"</translation> + </message> +</context> +<context> + <name>QInstaller::ExtractArchiveOperation::Runnable</name> + <message> + <source>Cannot open archive "%1" for reading: %2</source> + <translation>لا يمكن فتح الأرشيف "%1" للقراءة: %2</translation> + </message> + <message> + <source>Error while extracting archive "%1": %2</source> + <translation>خطأ أثناء استخراج الأرشيف "%1": %2</translation> + </message> + <message> + <source>Unknown exception caught while extracting "%1".</source> + <translation>اكتُشف خطأ غير معروف أثناء استخراج "%1".</translation> + </message> +</context> +<context> + <name>QInstaller::FakeStopProcessForUpdateOperation</name> + <message> + <source>Cannot get package manager core.</source> + <translation>لا يمكن الحصول على نواة مدير الحزم.</translation> + </message> + <message> + <source>This process should be stopped before continuing: %1</source> + <translation>هذه العملية يجب أن تتوقف قبل الاستمرار: %1</translation> + </message> + <message> + <source>These processes should be stopped before continuing: %1</source> + <translation>هذه العمليات يجب أن تتوقف قبل الاستمرار: %1</translation> + </message> +</context> +<context> + <name>QInstaller::GlobalSettingsOperation</name> + <message> + <source>Settings are not writable.</source> + <translation>الإعدادات غير قابلة للكتابة.</translation> + </message> + <message> + <source>Failed to write settings.</source> + <translation>فشلت كتابة الإعدادات.</translation> + </message> +</context> +<context> + <name>InstallerCalculator</name> + <message> + <source>Components added as automatic dependencies:</source> + <translation>المكونات المضافة كاعتماديات تلقائية:</translation> + </message> + <message> + <source>Components added as dependency for "%1":</source> + <translation>المكونات المضافة كاعتمادية لـ "%1":</translation> + </message> + <message> + <source>Components that have resolved dependencies:</source> + <translation>المكونات المُستوفاة اعتمادياتها:</translation> + </message> + <message> + <source>Selected components without dependencies:</source> + <translation>المكونات المحددة دون اعتماديات:</translation> + </message> + <message> + <source>Recursion detected, component "%1" already added with reason: "%2"</source> + <translation>اكتُشف تكرار، المكون "%1" مضاف بالفعل مع السبب: "%2"</translation> + </message> + <message> + <source>Cannot find missing dependency "%1" for "%2".</source> + <translation>لا يمكن العثور على الاعتمادية المفقودة "%1" لـ "%2".</translation> + </message> +</context> +<context> + <name>QInstaller::InstallIconsOperation</name> + <message> + <source><source path> [vendor prefix]</source> + <translation><مسار المصدر> [اختصار المزود]</translation> + </message> + <message> + <source>Invalid Argument: source directory must not be empty.</source> + <translation>معامل غير صحيح: مجلد المصدر يجب ألا يكون فارغاً.</translation> + </message> + <message> + <source>Cannot backup file "%1": %2</source> + <translation>لا يمكن إنشاء نسخة احتياطية من الملف "%1": %2</translation> + </message> + <message> + <source>Failed to overwrite "%1": %2</source> + <translation>فشلت إعادة كتابة "%1": %2</translation> + </message> + <message> + <source>Failed to copy file "%1": %2</source> + <translation>فشل نسخ الملف "%1": %2</translation> + </message> + <message> + <source>Cannot create directory "%1": %2</source> + <translation>لا يمكن إنشاء المجلد "%1": %2</translation> + </message> +</context> +<context> + <name>Lib7z</name> + <message> + <source>internal code: %1</source> + <translation>الرمز الداخلي: %1</translation> + </message> + <message> + <source>not enough memory</source> + <translation>لا توجد ذاكرة كافية</translation> + </message> + <message> + <source>Error: %1</source> + <translation>خطأ: %1</translation> + </message> + <message> + <source>Cannot retrieve property %1 for item %2.</source> + <translation>لا يمكن الحصول على الخاصية %1 للعتصر %2.</translation> + </message> + <message> + <source>Property %1 for item %2 not of type VT_FILETIME but %3.</source> + <translation>الخاصية %1 للعنصر %2 ليست من نوع VT_FILETIME لكن %3.</translation> + </message> + <message> + <source>Cannot convert UTC file time to system time.</source> + <translation>لا يمكن تحويل التوقيت العالمي الموحد للملف إلى توقيت النظام.</translation> + </message> + <message> + <source>Cannot load codecs.</source> + <translation>لا يمكن تحميل برامج الترميز.</translation> + </message> + <message> + <source>Cannot open archive "%1".</source> + <translation>لا يمكن فتح الأرشيف "%1".</translation> + </message> + <message> + <source>Cannot retrieve number of items in archive.</source> + <translation>لا يمكن الحصول على عدد العناصر في الأرشيف.</translation> + </message> + <message> + <source>Cannot retrieve path of archive item "%1".</source> + <translation>لا يمكن الحصول على مسار عنصر الأرشيف "%1".</translation> + </message> + <message> + <source>Unknown exception caught (%1).</source> + <translation>اكتُشف استثناء مجهول (%1).</translation> + </message> + <message> + <source>Cannot create temporary file: %1</source> + <translation>لا يمكن إنشاء الملف المؤقت: %1</translation> + </message> + <message> + <source>Unsupported archive type.</source> + <translation>نوع الأرشيف غير مدعوم.</translation> + </message> + <message> + <source>Cannot create archive "%1"</source> + <translation>لا يمكن إنشاء الأرشيف "%1"</translation> + </message> + <message> + <source>Cannot create archive "%1": %2</source> + <translation>لا يمكن إنشاء الأرشيف "%1": %2</translation> + </message> + <message> + <source>Cannot remove old archive "%1": %2</source> + <translation>لا يمكن حذف الأرشيف القديم "%1": %2</translation> + </message> + <message> + <source>Cannot rename temporary archive "%1" to "%2": %3</source> + <translation>لا يمكن إعادة تسمية الأرشيف المؤقت "%1" إلى "%2": %3</translation> + </message> + <message> + <source>Unknown exception caught (%1)</source> + <translation>اكتُشف استثناء مجهول (%1)</translation> + </message> +</context> +<context> + <name>DirectoryGuard</name> + <message> + <source>Path "%1" exists but is not a directory.</source> + <translation>المسار %1 موجود بالفعل لكنه ليس مجلداً.</translation> + </message> + <message> + <source>Cannot create directory "%1".</source> + <translation>لا يمكن إنشاء المجلد "%1".</translation> + </message> +</context> +<context> + <name>ExtractCallbackImpl</name> + <message> + <source>Cannot retrieve path of archive item %1.</source> + <translation>لا يمكن الحصول على مسار عنصر الأرشيف %1.</translation> + </message> + <message> + <source>Cannot remove already existing symlink %1.</source> + <translation>لا يمكن حذف الارتباط الموجود بالفعل %1.</translation> + </message> + <message> + <source>Cannot open file "%1" for writing: %2</source> + <translation>لا يمكن فتح الملف "%1" للكتابة: %2</translation> + </message> + <message> + <source>Cannot create symlink at "%1". Another one is already existing.</source> + <translation>لا يمكن إنشاء الارتباط في "%1". ارتباط آخر موجود بالفعل.</translation> + </message> + <message> + <source>Cannot read symlink target from file "%1".</source> + <translation>لا يمكن قراءة وجهة الارتباط من الملف "%1".</translation> + </message> + <message> + <source>Cannot create symlink at %1: %2</source> + <translation>لا يمكن إنشاء الارتباط في %1: %2</translation> + </message> +</context> +<context> + <name>QInstaller::LicenseOperation</name> + <message> + <source>No license files found to copy.</source> + <translation>لم يُعثر على ملفات ترخيص موجودة لنسخها.</translation> + </message> + <message> + <source>Needed installer object in %1 operation is empty.</source> + <translation>كائن المثبت المطلوب في العملية %1 فارغ.</translation> + </message> + <message> + <source>Can not write license file "%1".</source> + <translation>لا يمكن كتابة ملف الرخصة "%1".</translation> + </message> + <message> + <source>No license files found to delete.</source> + <translation>لم يُعثر على ملفات ترخيص لحذفها.</translation> + </message> +</context> +<context> + <name>QInstaller::LineReplaceOperation</name> + <message> + <source>Invalid argument in %1: Empty search argument is not supported.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Cannot open file "%1" for reading: %2</source> + <translation>لا يمكن فتح الملف "%1" للقراءة: %2</translation> + </message> + <message> + <source>Cannot open file "%1" for writing: %2</source> + <translation>لا يمكن فتح الملف "%1" للكتابة: %2</translation> + </message> +</context> +<context> + <name>QInstaller::MetadataJob</name> + <message> + <source>Missing package manager core engine.</source> + <translation>محرك نواة مدير الحزم مفقود.</translation> + </message> + <message> + <source>Preparing meta information download...</source> + <translation>جارٍ تحضير تنزيل ملفات التعريف...</translation> + </message> + <message> + <source>Unpacking compressed repositories. This may take a while...</source> + <translation>جارٍ فك ضغط المستودعات المضغوطة. قد يستغرق هذا بعص الوقت...</translation> + </message> + <message> + <source>Meta data download canceled.</source> + <translation>أُلغي تحميل ملفات التعريف.</translation> + </message> + <message> + <source>Unknown exception during extracting.</source> + <translation>حدث خطأ غير معروف أثناء الاستخراج.</translation> + </message> + <message> + <source>Missing proxy credentials.</source> + <translation>بيانات اعتماد الوكيل مفقودة.</translation> + </message> + <message> + <source>Authentication failed.</source> + <translation>فشلت المصادقة.</translation> + </message> + <message> + <source>Unknown exception during download.</source> + <translation>حدث استثناء غير معروف أثناء التنزيل.</translation> + </message> + <message> + <source>Failure to fetch repositories.</source> + <translation>فشل جلب المستودعات.</translation> + </message> + <message> + <source>Extracting meta information...</source> + <translation>جارٍ استخراج معلومات التعريف...</translation> + </message> + <message> + <source>Checksum mismatch detected for "%1".</source> + <translation>اكتُشف عدم تطابق تدقيق المجموع لـ "%1".</translation> + </message> + <message> + <source>Retrieving meta information from remote repository... %1/%2 </source> + <translation>جارٍ الحصول على معلومات التعريف من المستودع البعيد... %1/%2 </translation> + </message> + <message> + <source>Retrieving meta information from remote repository... </source> + <translation>جارٍ الحصول على معلومات التعريف من المستودع البعيد... </translation> + </message> + <message> + <source>Error while extracting archive "%1": %2</source> + <translation>حدث خطأ أثناء إستخراج الأرشيف "%1": %2</translation> + </message> + <message> + <source>Unknown exception caught while extracting archive "%1".</source> + <translation>اكتُشف استثناء غير معروف أثناء استخراج الأرشيف "%1".</translation> + </message> + <message> + <source>Cannot open file "%1" for reading: %2</source> + <translation>لا يمكن فتح الملف "%1" للقراءة: %2</translation> + </message> +</context> +<context> + <name>QInstaller::FileTaskObserver</name> + <message> + <source>%1 of %2</source> + <translation>%1 من %2</translation> + </message> + <message> + <source>%1 received.</source> + <translation>استُقبل %1.</translation> + </message> + <message> + <source>(%1/sec)</source> + <translation>(%1/ثانية)</translation> + </message> + <message numerus="yes"> + <source>%n day(s), </source> + <translation> + <numerusform>%n يوم(أيام)، </numerusform> + <numerusform>يوم، </numerusform> + <numerusform>يومان </numerusform> + <numerusform>%n أيام، </numerusform> + <numerusform>%n يوم، </numerusform> + <numerusform>%n يوم، </numerusform> + </translation> + </message> + <message numerus="yes"> + <source>%n hour(s), </source> + <translation> + <numerusform>%n ساعة(ساعات)، </numerusform> + <numerusform>ساعة، </numerusform> + <numerusform>ساعتان، </numerusform> + <numerusform>%n ساعات، </numerusform> + <numerusform>%n ساعة، </numerusform> + <numerusform>%n ساعة، </numerusform> + </translation> + </message> + <message numerus="yes"> + <source>%n minute(s)</source> + <translation> + <numerusform>%n دقيقة(دقائق)</numerusform> + <numerusform>دقيقة</numerusform> + <numerusform>دقيقتان</numerusform> + <numerusform>%n دقائق</numerusform> + <numerusform>%n دقيقة</numerusform> + <numerusform>%n دقيقة</numerusform> + </translation> + </message> + <message numerus="yes"> + <source>%n second(s)</source> + <translation> + <numerusform>%n ثانية(ثوان)</numerusform> + <numerusform>ثانية</numerusform> + <numerusform>ثانيتان</numerusform> + <numerusform>%n ثوان</numerusform> + <numerusform>%n ثانية</numerusform> + <numerusform>%n ثانية</numerusform> + </translation> + </message> + <message> + <source> - %1%2%3%4 remaining.</source> + <translation> - يتبقى %1%2%3%4.</translation> + </message> + <message> + <source> - unknown time remaining.</source> + <translation> - الوقت المتبقي غير معلوم.</translation> + </message> +</context> +<context> + <name>QInstaller::PackageManagerCore</name> + <message> + <source>Error writing Maintenance Tool</source> + <translation>خطأ في كتابة أداة الصيانة</translation> + </message> + <message> + <source> +Downloading packages...</source> + <translation> +جارٍ تنزيل الحزم...</translation> + </message> + <message> + <source>Installation canceled by user.</source> + <translation>ألغى المستخدم التحديث.</translation> + </message> + <message> + <source>All downloads finished.</source> + <translation>انتهت كل التنزيلات.</translation> + </message> + <message> + <source>Cancelling the Installer</source> + <translation>إلغاء المثبت</translation> + </message> + <message> + <source>Authentication Error</source> + <translation>حدث خطأ في المصادقة</translation> + </message> + <message> + <source>Some components could not be removed completely because administrative rights could not be acquired: %1.</source> + <translation>لا يمكن حذف بعص المكونات كاملاً لتعذر الحصول على صلاحيات المسؤول: %1.</translation> + </message> + <message> + <source>Unknown error.</source> + <translation>خطأ غير معروف.</translation> + </message> + <message> + <source>Some components could not be removed completely because an unknown error happened.</source> + <translation>لا يمكن حذف بعض المكونات كاملاً لحدوث خطأ غير معروف.</translation> + </message> + <message> + <source>User input is required but the output device is not associated with a terminal.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>The directory you selected already exists and contains an installation. Choose a different target for installation.</source> + <translation type="unfinished">المجلد الذي اخترته موجود بالفعل ويحتوي على تثبيت. اختر وجهة مختلفة للتثبيت.</translation> + </message> + <message> + <source>Warning</source> + <translation type="unfinished">تحذير</translation> + </message> + <message> + <source>You have selected an existing, non-empty directory for installation. +Note that it will be completely wiped on uninstallation of this application. +It is not advisable to install into this directory as installation might fail. +Do you want to continue?</source> + <translation type="unfinished">لقد اخترت مجلداً موجودأ وغير فارغ للتثبيت. +سيتم حذفه تماماً عند إزالة تثبيت هذا التطبيق. +لا يُنصح بالتثبيت إلى هذا المجلد لاحتمالية فشل التثبيت. +هل تريد الاستمرار؟</translation> + </message> + <message> + <source>You have selected an existing file or symlink, please choose a different target for installation.</source> + <translation type="unfinished">لقد حددت ملفاً موجوداً أو اختصاراً، يرجى اختيار وجهة مختلفة للتثبيت.</translation> + </message> + <message> + <source>The installation path cannot be empty, please specify a valid directory.</source> + <translation type="unfinished">لا يمكن أن يكون مسار التثبيت فارغاً. يرجى تحديد مجلد صالح.</translation> + </message> + <message> + <source>The installation path cannot be relative, please specify an absolute path.</source> + <translation type="unfinished">لا يمكن أن يكون مسار التثبيت نسبياً، يرجى تحديد مسار مطلق.</translation> + </message> + <message> + <source>The path or installation directory contains non ASCII characters. This is currently not supported! Please choose a different path or installation directory.</source> + <translation type="unfinished">المسار أو مجلد التثبيت لا يحتوي على محارف ASCII. هذا غير مدعوم حالياً يرجى اختيار مسار أو مجلد تثبيت مختلف.</translation> + </message> + <message> + <source>As the install directory is completely deleted, installing in %1 is forbidden.</source> + <translation type="unfinished">التثبيت في %1 محظور لأن مجلد التثبيت سيُمسح تماماً.</translation> + </message> + <message> + <source>The path you have entered is too long, please make sure to specify a valid path.</source> + <translation type="unfinished">المسار الذي أدخلته طويل جداً، يرجى التأكد من تخصيص مسار صالح.</translation> + </message> + <message> + <source>The path you have entered is not valid, please make sure to specify a valid target.</source> + <translation type="unfinished">المسار الذي أدخلته غير صالح، يرحى التأكد من تخصيص وجهة صالحة.</translation> + </message> + <message> + <source>The path you have entered is not valid, please make sure to specify a valid drive.</source> + <translation type="unfinished">المسار الذي أدخلته غير صالح، يرحى التأكد من تخصيص قرص صالح.</translation> + </message> + <message> + <source>The installation path must not end with '.', please specify a valid directory.</source> + <translation type="unfinished">يجب ألا ينتهي مسار التثبيت بنقطة "."، يرجى تخصيص مجلد صالح.</translation> + </message> + <message> + <source>The installation path must not contain "%1", please specify a valid directory.</source> + <translation type="unfinished">يجب ألا يحتوي مسار التثبيت على "%1"، يرجى تخصيص مجلد صالح.</translation> + </message> + <message> + <source>Application not running in Package Manager mode.</source> + <translation>لا يعمل التطبيق في وضع مدير الحزم.</translation> + </message> + <message> + <source>No installed packages found.</source> + <translation>لم يُعثر على حزم مثبتة.</translation> + </message> + <message> + <source>Cannot register component! Component with identifier %1 already exists.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Application running in Uninstaller mode.</source> + <translation>يعمل التطبيق في وضع إزالة التثبيت.</translation> + </message> + <message> + <source>There is an important update available, please run the updater first.</source> + <translation>هناك تحديث مهم متاح يرجى تشغيل المحدث أولاً.</translation> + </message> + <message> + <source>Cannot resolve all dependencies.</source> + <translation>لا يمكن الحصول على كافة الاعتماديات.</translation> + </message> + <message> + <source>Components about to be removed.</source> + <translation>المكونات على وشك الحذف.</translation> + </message> + <message> + <source>Cannot install %1. Component not found. +</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Cannot install component %1. Component is installed only as automatic dependency to %2. +</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Cannot install component %1. Component is not checkable meaning you have to select one of the subcomponents. +</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Component %1 already installed +</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Cannot install %1. Component is virtual. +</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Running processes found.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Cannot elevate access rights while running from command line. Please restart the application as administrator.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Error while elevating access rights.</source> + <translation>خطأ أثناء رفع حقوق الوصول.</translation> + </message> + <message> + <source>Error</source> + <translation>خطأ</translation> + </message> + <message> + <source>Not enough disk space to store temporary files and the installation. %1 are available, while %2 are at least required.</source> + <translation type="unfinished">لا توجد مساحة كافية لتخزين الملفات المؤقتة والتثبيت! بينما المساحة المطلوبة هي %2 على الأقل، المساحة المتاحة هي %1.</translation> + </message> + <message> + <source>Not enough disk space to store all selected components! %1 are available while %2 are at least required.</source> + <translation type="unfinished">لا توجد مساحة كافية لتخزين جميع المكونات المحددة! بينما المساحة المطلوبة هي %2 على الأقل، المساحة المتاحة هي %1.</translation> + </message> + <message> + <source>Not enough disk space to store temporary files! %1 are available while %2 are at least required.</source> + <translation type="unfinished">لا توجد مساحة كافية لتخزين الملفات المؤقتة!. بينما المساحة المطلوبة هي %2 على الأقل، المساحة المتاحة هي %1.</translation> + </message> + <message> + <source>The volume you selected for installation seems to have sufficient space for installation, but there will be less than 1% of the volume's space available afterwards.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>The volume you selected for installation seems to have sufficient space for installation, but there will be less than 100 MB available afterwards.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Installation will use %1 of disk space.</source> + <translation type="unfinished">سيستخدم التثبيت %1 من مساحة القرص الصلب.</translation> + </message> + <message> + <source>invalid</source> + <translation>غير صالح</translation> + </message> +</context> +<context> + <name>QInstaller::PackageManagerCorePrivate</name> + <message> + <source>Unresolved dependencies</source> + <translation>الاعتماديات التي لم يُحصل عليها</translation> + </message> + <message> + <source>Error</source> + <translation>خطأ</translation> + </message> + <message> + <source>Access error</source> + <translation>خطأ في الوصول</translation> + </message> + <message> + <source>Format error</source> + <translation>خطأ في التنسيق</translation> + </message> + <message> + <source>Cannot write installer configuration to %1: %2</source> + <translation>لا يمكن كتابة إعدادات المثبت إلى %1: %2</translation> + </message> + <message> + <source>Stop Processes</source> + <translation>أوقف العمليات</translation> + </message> + <message> + <source>These processes should be stopped to continue: +%1</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Installation canceled by user</source> + <translation>ألغى المستخدم التثبيت</translation> + </message> + <message> + <source>Retry count exceeded</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Writing maintenance tool.</source> + <translation>كتابة أداة الصيانة.</translation> + </message> + <message> + <source>Failed to seek in file %1: %2</source> + <translation>فشل البحث في الملف %1: %2</translation> + </message> + <message> + <source>Maintenance tool is not a bundle</source> + <translation>أداة الصيانة ليست حزمة</translation> + </message> + <message> + <source>Cannot remove data file "%1": %2</source> + <translation>لا يمكن حذف ملف البيانات "%1":%2</translation> + </message> + <message> + <source>Cannot write maintenance tool data to %1: %2</source> + <translation>لا يمكن كتابة بيانات أداة الصيانة إلى %1: %2</translation> + </message> + <message> + <source>Cannot write maintenance tool to "%1": %2</source> + <translation>لا يمكن كتابة أداة الصيانة إلى "%1": %2</translation> + </message> + <message> + <source>Cannot remove temporary data file "%1": %2</source> + <translation>لا يمكن حذف بيانات الملف المؤقت "%1": %2</translation> + </message> + <message> + <source>Cannot write maintenance tool binary data to %1: %2</source> + <translation>لا يمكن كتابة البيانات الثنائية لأداة الصيانة إلى %1: %2</translation> + </message> + <message> + <source>Writing offline base binary.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Cannot remove file "%1": %2</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Cannot create directory "%1".</source> + <translation type="unfinished">لا يمكن إنشاء المجلد "%1".</translation> + </message> + <message> + <source>Cannot write offline binary to "%1": %2</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Cannot remove temporary file "%1": %2</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Variable 'TargetDir' not set.</source> + <translation>المتغير 'TargetDir' غير مضبوط.</translation> + </message> + <message> + <source>Preparing the installation...</source> + <translation>جارٍ تحضير التثبيت...</translation> + </message> + <message> + <source>It is not possible to install from network location</source> + <translation>لا يمكن التثبيت من موقع في الشبكة</translation> + </message> + <message> + <source>Creating local repository</source> + <translation>إنشاء مستودع محلي</translation> + </message> + <message> + <source>Creating Maintenance Tool</source> + <translation>إنشاء أداة الصيانة</translation> + </message> + <message> + <source> +Installation finished!</source> + <translation> +انتهى التثبيت!</translation> + </message> + <message> + <source> +Installation aborted!</source> + <translation> +أُلغي التثبيت!</translation> + </message> + <message> + <source>It is not possible to run that operation from a network location</source> + <translation>لا يمكن تشغيل تلك العملية من موقع في الشبكة</translation> + </message> + <message> + <source>Removing deselected components...</source> + <translation>جارٍ حذف المكونات الغير محددة...</translation> + </message> + <message> + <source> +Update finished!</source> + <translation> +انتهى التحديث!</translation> + </message> + <message> + <source> +Update aborted!</source> + <translation> +أُلغي التحديث!</translation> + </message> + <message> + <source>Uninstallation completed successfully.</source> + <translation>أُزيل التثبيت بنجاح.</translation> + </message> + <message> + <source>Uninstallation aborted.</source> + <translation>أُلغيت إزالة التثبيت.</translation> + </message> + <message> + <source>Cannot create target directory for installer.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Preparing offline generation...</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Preparing installer configuration...</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Creating the installer...</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Failed to create offline installer. %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Cannot remove temporary directory "%1".</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Offline generation completed successfully.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Offline generation aborted!</source> + <translation type="unfinished"></translation> + </message> + <message> + <source> +Installing component %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Installer Error</source> + <translation>خطأ المثبت</translation> + </message> + <message> + <source>Error during installation process (%1): +%2</source> + <translation>حدث خطأ أثناء عملية التثبيت (%1) : +%2</translation> + </message> + <message> + <source>Done</source> + <translation>انتهى</translation> + </message> + <message> + <source>Cannot prepare uninstall</source> + <translation>لا يمكن تحضير إزالة التثبيت</translation> + </message> + <message> + <source>Cannot start uninstall</source> + <translation>لا يمكن بدأ إزالة التثبيت</translation> + </message> + <message> + <source>Error during uninstallation process: +%1</source> + <translation>حدث خطأ أثناء عملية إزالة التثبيت : +%1</translation> + </message> + <message> + <source>Unknown error</source> + <translation>خطأ غير معروف</translation> + </message> + <message> + <source>Cannot retrieve remote tree %1.</source> + <translation>لا يمكن الحصول على الشجرة البعيدة %1.</translation> + </message> + <message> + <source>Failure to read packages from %1.</source> + <translation>فشلت قراءة الحزم من %1.</translation> + </message> + <message> + <source>Cannot retrieve meta information: %1</source> + <translation>لا يمكن الحصول على بيانات التعريف: %1</translation> + </message> + <message> + <source>Cannot add temporary update source information.</source> + <translation>لا تمكن إضافة معلومات مصدر التحديث المؤقت.</translation> + </message> + <message> + <source>Cannot find any update source information.</source> + <translation>لا يمكن العثور على أي معلومات مصدر تحديث.</translation> + </message> + <message> + <source>Dependency cycle between components "%1" and "%2" detected.</source> + <translation>اكتُشفت دورة اعتماديات بين المكونان "%1" و"%2".</translation> + </message> +</context> +<context> + <name>QInstaller::PackageManagerGui</name> + <message> + <source>%1 Setup</source> + <translation>إعداد %1</translation> + </message> + <message> + <source>Maintain %1</source> + <translation>صيانة %1</translation> + </message> + <message> + <source>Do you want to cancel the installation process?</source> + <translation>هل تريد إلغاء عملية التثبيت؟</translation> + </message> + <message> + <source>Do you want to cancel the uninstallation process?</source> + <translation>هل تريد إلغاء عملية إزالة التثبيت؟</translation> + </message> + <message> + <source>Do you want to quit the installer application?</source> + <translation>هل تريد الخروج من برنامج المثبت؟</translation> + </message> + <message> + <source>Do you want to quit the uninstaller application?</source> + <translation>هل تريد الخروج من برنامج إزالة التثبيت؟</translation> + </message> + <message> + <source>Do you want to quit the maintenance application?</source> + <translation>هل تريد الخروج من تطبيق الصيانة؟</translation> + </message> + <message> + <source>%1 Question</source> + <translation>سؤال %1</translation> + </message> + <message> + <source>Settings</source> + <translation>الإعدادات</translation> + </message> + <message> + <source>Specify proxy settings and configure repositories for add-on components.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Error</source> + <translation>خطأ</translation> + </message> + <message> + <source>It is not possible to install from network location. +Please copy the installer to a local drive</source> + <translation>من غير الممكن التثبيت من موقع في الشبكة +يرجى نسخ المثبت إلى فرص محلي</translation> + </message> +</context> +<context> + <name>QInstaller::IntroductionPage</name> + <message> + <source>Setup - %1</source> + <translation>الإعداد - %1</translation> + </message> + <message> + <source>Welcome to the %1 Setup Wizard.</source> + <translation>مرحباً بك في إعداد %1.</translation> + </message> + <message> + <source>&Add or remove components</source> + <translation>&أضف أو أزل المكونات</translation> + </message> + <message> + <source>&Update components</source> + <translation>&حدّث المكونات</translation> + </message> + <message> + <source>&Remove all components</source> + <translation>&احذف جميع المكونات</translation> + </message> + <message> + <source>Retrieving information from remote installation sources...</source> + <translation>جارٍ الحصول على المعلومات من مصادر التثبيت عن بعد...</translation> + </message> + <message> + <source>At least one valid and enabled repository required for this action to succeed.</source> + <translation>يجب أن يكون هناك مستودع واحد مفعل وصالح على الأقل لنجاخ هذا الإجراء.</translation> + </message> + <message> + <source>No updates available.</source> + <translation>لا تحديثات متوفرة.</translation> + </message> + <message> + <source> Only local package management available.</source> + <translation> إدارة الحزم المحلية هي المتاحة فقط.</translation> + </message> + <message> + <source>&Quit</source> + <translation>&اخرج</translation> + </message> +</context> +<context> + <name>QInstaller::LicenseAgreementPage</name> + <message> + <source>License Agreement</source> + <translation>اتفاقية الترخيص</translation> + </message> + <message> + <source>Alt+A</source> + <comment>agree license</comment> + <translation>Alt+A</translation> + </message> + <message> + <source>Please read the following license agreement. You must accept the terms contained in this agreement before continuing with the installation.</source> + <translation>يرجى قراءة اتفاقية الترخيص الآتية. يجب أن توافق على الشروط الواردة في هذه الاتفاقية قبل متابعة التثبيت.</translation> + </message> + <message> + <source>I accept the license.</source> + <translation>أقبل الرخصة.</translation> + </message> + <message> + <source>Please read the following license agreements. You must accept the terms contained in these agreements before continuing with the installation.</source> + <translation>يرجى قراءة اتفاقيات الترخيص الآتية. يجب أن توافق على الشروط الواردة في هذه الاتفاقيات قبل متابعة التثبيت.</translation> + </message> + <message> + <source>I accept the licenses.</source> + <translation>أقبل الرخص.</translation> + </message> +</context> +<context> + <name>QInstaller::TargetDirectoryPage</name> + <message> + <source>Installation Folder</source> + <translation>مجلد التثبيت</translation> + </message> + <message> + <source>Please specify the directory where %1 will be installed.</source> + <translation>يرجى تخصيص مجلد تثبيت %1.</translation> + </message> + <message> + <source>Alt+R</source> + <comment>browse file system to choose a file</comment> + <translation>Alt+R</translation> + </message> + <message> + <source>B&rowse...</source> + <translation>ا&ستعرض...</translation> + </message> + <message> + <source>Browse file system to choose the installation directory.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Select Installation Folder</source> + <translation>اختر مجلد التثبيت</translation> + </message> +</context> +<context> + <name>QInstaller::StartMenuDirectoryPage</name> + <message> + <source>Start Menu shortcuts</source> + <translation>اختصارات قائمة ابدأ</translation> + </message> + <message> + <source>Select the Start Menu in which you would like to create the program's shortcuts. You can also enter a name to create a new directory.</source> + <translation>حدّد قائمة ابدأ التي تريد إنشاء اختصارات البرنامج فيها. يمكنك أيضاً إدخال اسم لإنشاء مجلد جديد.</translation> + </message> +</context> +<context> + <name>QInstaller::ReadyForInstallationPage</name> + <message> + <source>U&ninstall</source> + <translation>أ&زل التثبيت</translation> + </message> + <message> + <source>Ready to Uninstall</source> + <translation>جاهز لإزالة التثبيت</translation> + </message> + <message> + <source>Setup is now ready to begin removing %1 from your computer.<br><font color="red">The program directory %2 will be deleted completely</font>, including all content in that directory!</source> + <translation>الإعداد جاهز الآن لبدأ حذف %1 من حاسوبك. .<br><font color="red">مجلد البرنامج %2 سيُحذف تماماً</font> مع كل المحتوى فيه!</translation> + </message> + <message> + <source>U&pdate</source> + <translation>ح&دث</translation> + </message> + <message> + <source>Ready to Update Packages</source> + <translation>جاهز لتحديث الحزم</translation> + </message> + <message> + <source>Setup is now ready to begin updating your installation.</source> + <translation>الإعداد جاهز لبدأ تحديث تثبيتك.</translation> + </message> + <message> + <source>&Install</source> + <translation>&ثبت</translation> + </message> + <message> + <source>Ready to Install</source> + <translation>جاهز للتثبيت</translation> + </message> + <message> + <source>Setup is now ready to begin installing %1 on your computer.</source> + <translation>الإعداد جاهز الآن لبدأ تثبيت %1 على حاسوبك.</translation> + </message> + <message> + <source>Ready to Update</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>QInstaller::PerformInstallationPage</name> + <message> + <source>U&ninstall</source> + <translation>أ&زل التثبيت</translation> + </message> + <message> + <source>Uninstalling %1</source> + <translation>إزالة تثبيت %1</translation> + </message> + <message> + <source>&Update</source> + <translation>&حدّث</translation> + </message> + <message> + <source>Updating components of %1</source> + <translation>تحديث مكونات %1</translation> + </message> + <message> + <source>&Install</source> + <translation>&ثبت</translation> + </message> + <message> + <source>Installing %1</source> + <translation>تثبيت %1</translation> + </message> + <message> + <source>Installing</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Updating</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Uninstalling</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>QInstaller::FinishedPage</name> + <message> + <source>Completing the %1 Wizard</source> + <translation>إكمال معالج %1</translation> + </message> + <message> + <source>Finished</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Click %1 to exit the %2 Wizard.</source> + <translation>اضغط %1 للخروج من معالج %2.</translation> + </message> + <message> + <source>Restart</source> + <translation>أعد التشغيل</translation> + </message> + <message> + <source>Run %1 now.</source> + <translation>شغل %1 الآن.</translation> + </message> + <message> + <source>The %1 Wizard failed.</source> + <translation>فشل معالج %1.</translation> + </message> +</context> +<context> + <name>QInstaller::RestartPage</name> + <message> + <source>Completing the %1 Setup Wizard</source> + <translation>إكمال معالج إعداد %1</translation> + </message> +</context> +<context> + <name>QInstaller::PerformInstallationForm</name> + <message> + <source>&Show Details</source> + <translation>&اعرض التفاصيل</translation> + </message> + <message> + <source>&Hide Details</source> + <translation>&أخف التفاصيل</translation> + </message> +</context> +<context> + <name>QInstaller::RegisterFileTypeOperation</name> + <message> + <source>Registering file types is only supported on Windows.</source> + <translation>تسجيل أنواع الملفات متاح فقط على نظام Windows.</translation> + </message> + <message> + <source>Register File Type: Invalid arguments</source> + <translation>تسجيل أنواع الملفات: معاملات غير صحيحة</translation> + </message> +</context> +<context> + <name>RemoteClient</name> + <message> + <source>Cannot get authorization.</source> + <translation>لا يمكن الحصول على المصادقة.</translation> + </message> + <message> + <source>Cannot get authorization that is needed for continuing the installation. +Please start the setup program as a user with the appropriate rights. +Or accept the elevation of access rights if being asked.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Cannot get authorization that is needed for continuing the installation. + Either abort the installation or use the fallback solution by running +%1 +as a user with the appropriate rights and then clicking OK.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>QInstaller::RemoteObject</name> + <message> + <source>Cannot read all data after sending command: %1. Bytes expected: %2, Bytes received: %3. Error: %4</source> + <translation>لا يمكن قراءة جميع البيانات بعد إرسال الأمر: %1. البايت المتوقع: %2، البايت المُستقبل: %3. الخطأ: %4</translation> + </message> +</context> +<context> + <name>QInstaller::ReplaceOperation</name> + <message> + <source>Current search argument calling "%1" with empty search argument is not supported.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Current mode argument calling "%1" with arguments "%2" is not supported. Please use string or regex.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Cannot open file "%1" for reading: %2</source> + <translation>لا يمكن فتح الملف "%1" للقراءة: %2</translation> + </message> + <message> + <source>Cannot open file "%1" for writing: %2</source> + <translation>لا يمكن فتح الملف "%1" للكتابة: %2</translation> + </message> +</context> +<context> + <name>QInstaller::ScriptEngine</name> + <message> + <source>Cannot open script file at %1: %2</source> + <translation>لا يمكن فتح ملف النص البرمجي في %1: %2</translation> + </message> + <message> + <source>Exception while loading the component script "%1": %2</source> + <translation>حدث استثناء أثناء تحميل النص البرمجي للمكون %1": %2</translation> + </message> + <message> + <source>Unknown error.</source> + <translation>خطأ غير معروف.</translation> + </message> + <message> + <source>on line number: </source> + <translation>الرقم على الخط: </translation> + </message> +</context> +<context> + <name>QInstaller::SelfRestartOperation</name> + <message> + <source>Installer object needed in operation %1 is empty.</source> + <translation>كائن المثبت المطلوب في العملية %1 فارغ.</translation> + </message> + <message> + <source>Self Restart: Only valid within updater or packagemanager mode.</source> + <translation>إعادة التشغيل التلقائية: متاحة فقط في وضع المحدث أو وضع مدير الحزم.</translation> + </message> + <message> + <source>Self Restart: Invalid arguments</source> + <translation>إعادة التشغيل التلقائية: معاملات غير صحيحة</translation> + </message> +</context> +<context> + <name>Settings</name> + <message> + <source>Cannot open settings file %1 for reading: %2</source> + <translation>لا يمكن فتح ملف الإعدادات %1 للقراءة: %2</translation> + </message> + <message> + <source>Select Categories</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>QInstaller::SettingsOperation</name> + <message> + <source>Missing argument(s) "%1" calling %2 with arguments "%3".</source> + <translation>هناك معامل (معاملات) مفقودة "%1" يستدعي %2 بالمعامل "%3".</translation> + </message> + <message> + <source>Current method argument calling "%1" with arguments "%2" is not supported. Please use set, remove, add_array_value or remove_array_value.</source> + <translation>معامل الدالة الحالية المستدعاة "%1" بالمعاملات "%2" غير مدعوم. يرجى استخدام set أو remove أو add_array_value أو remove_array_value.</translation> + </message> +</context> +<context> + <name>QInstaller::SimpleMoveFileOperation</name> + <message> + <source>None of the arguments can be empty: source "%1", target "%2".</source> + <translation>لا يمكن أن تكون المعاملات الآتية فارغة: المصدر "%1" والوجهة "%2".</translation> + </message> + <message> + <source>Cannot move file from "%1" to "%2", because the target path exists and is not removable.</source> + <translation>لا يمكن نقل الملف من "%1" إلى "%2"، لأن مسار الوجهة موجود وغير قابل للحذف.</translation> + </message> + <message> + <source>Cannot move file "%1" to "%2": %3</source> + <translation>لا يمكن نقل الملف "%1" إلى "%2": %3</translation> + </message> + <message> + <source>Moving file "%1" to "%2".</source> + <translation>جارٍ نقل الملف "%1" إلى "%2".</translation> + </message> +</context> +<context> + <name>QInstaller::TestRepository</name> + <message> + <source>Missing package manager core engine.</source> + <translation>محرك نواة مدير الحزم مفقود.</translation> + </message> + <message> + <source>Empty repository URL.</source> + <translation>رابط المستودع فارع.</translation> + </message> + <message> + <source>Download canceled.</source> + <translation>أُلغي التنزيل.</translation> + </message> + <message> + <source>Timeout while testing repository "%1".</source> + <translation>نفذ الوقت أثناء اختبار المستودع "%1".</translation> + </message> + <message> + <source>Cannot parse Updates.xml: %1</source> + <translation>لا يمكن فرز ملف Updates.xml: %1</translation> + </message> + <message> + <source>Cannot open Updates.xml for reading: %1</source> + <translation>لا يمكن فتح ملف Updates.xml للقراءة: %1</translation> + </message> + <message> + <source>Authentication failed.</source> + <translation>فشلت المصادقة.</translation> + </message> + <message> + <source>Unknown error while testing repository "%1".</source> + <translation>حدث خطأ غير معروف أثناء اختبار المستودع "%1".</translation> + </message> +</context> +<context> + <name>KDUpdater::FileDownloader</name> + <message> + <source>Download finished.</source> + <translation>انتهى التنزيل.</translation> + </message> + <message> + <source>Cryptographic hashes do not match.</source> + <translation>تجزئة التشفير لا تتطابق.</translation> + </message> + <message> + <source>Download canceled.</source> + <translation>أُلغي التنزيل.</translation> + </message> + <message> + <source>%1 of %2</source> + <translation>%1 من %2</translation> + </message> + <message> + <source>%1 downloaded.</source> + <translation>حُمّل %1.</translation> + </message> + <message> + <source>(%1/sec)</source> + <translation>(%1/ثانية)</translation> + </message> + <message numerus="yes"> + <source>%n day(s), </source> + <translation> + <numerusform>%n يوم(أيام)، </numerusform> + <numerusform>يوم، </numerusform> + <numerusform>يومان، </numerusform> + <numerusform>%n أيام، </numerusform> + <numerusform>%n يوم، </numerusform> + <numerusform>%n يوم، </numerusform> + </translation> + </message> + <message numerus="yes"> + <source>%n hour(s), </source> + <translation> + <numerusform>%n ساعة(ساعات)، </numerusform> + <numerusform>ساعة، </numerusform> + <numerusform>ساعتان، </numerusform> + <numerusform>%n ساعات، </numerusform> + <numerusform>%n ساعة، </numerusform> + <numerusform>%n ساعة، </numerusform> + </translation> + </message> + <message numerus="yes"> + <source>%n minute(s)</source> + <translation> + <numerusform>%n دقيقة(دقائق)</numerusform> + <numerusform>دقيقة</numerusform> + <numerusform>دقيقتان</numerusform> + <numerusform>%n دقائق</numerusform> + <numerusform>%n دقيقة</numerusform> + <numerusform>%n دقيقة</numerusform> + </translation> + </message> + <message numerus="yes"> + <source>%n second(s)</source> + <translation> + <numerusform>%n ثانية(ثوان)</numerusform> + <numerusform>ثانية</numerusform> + <numerusform>ثانيتان</numerusform> + <numerusform>%n ثوان</numerusform> + <numerusform>%n ثانية</numerusform> + <numerusform>%n ثانية</numerusform> + </translation> + </message> + <message> + <source> - %1%2%3%4 remaining.</source> + <translation> - يتبقى %1%2%3%4.</translation> + </message> + <message> + <source> - unknown time remaining.</source> + <translation> - الوقت المتبقي غير معلوم.</translation> + </message> +</context> +<context> + <name>KDUpdater::LocalFileDownloader</name> + <message> + <source>Cannot open file "%1" for reading: %2</source> + <translation>لا يمكن فتح الملف "%1" للقراءة: %2</translation> + </message> + <message> + <source>Cannot open file "%1" for writing: %2</source> + <translation>لا يمكن فتح الملف "%1" للكتابة: %2</translation> + </message> + <message> + <source>Writing to file "%1" failed: %2</source> + <translation>فشلت الكتابة إلى الملف "%1": %2</translation> + </message> +</context> +<context> + <name>KDUpdater::ResourceFileDownloader</name> + <message> + <source>Cannot read resource file "%1": %2</source> + <translation>لا يمكن قراءة ملف المصادر "%1": %2</translation> + </message> +</context> +<context> + <name>KDUpdater::HttpDownloader</name> + <message> + <source>Cannot download %1. Writing to file "%2" failed: %3</source> + <translation>لا يمكن تنزيل %1. فشلت الكتابة إلى الملف "%2": %3</translation> + </message> + <message> + <source>Cannot download %1. Cannot create file "%2": %3</source> + <translation>لا يمكن تنزيل %1. لا يمكن إنشاء الملف "%2": %3</translation> + </message> + <message> + <source>%1 at %2</source> + <translation>%1 في %2</translation> + </message> + <message> + <source>Authentication request canceled.</source> + <translation>أُلغي طلب المصادقة.</translation> + </message> + <message> + <source>Secure Connection Failed</source> + <translation>فشل الاتصال الآمن</translation> + </message> + <message> + <source>There was an error during connection to: %1.</source> + <translation>كان هناك خطأ أثناء الاتصال إلى: %1.</translation> + </message> + <message> + <source>This could be a problem with the server's configuration, or it could be someone trying to impersonate the server.</source> + <translation>يمكن أن يكون هذا مشكلة في إعدادات الخادم، أو شخص ما يحاول انتحال الخادم.</translation> + </message> + <message> + <source>If you have connected to this server successfully in the past or trust this server, the error may be temporary and you can try again.</source> + <translation>إن اتصلت بالخادم بنجاحٍ في الماضي أو أنك تثق بهذا الخادم، قد يكون الخطأ مؤقتاً ويمكنك المحاولة مرة أخرى.</translation> + </message> + <message> + <source>Try again</source> + <translation>حاول مرة آخرى</translation> + </message> +</context> +<context> + <name>Job</name> + <message> + <source>Canceled</source> + <translation>ملغاة</translation> + </message> +</context> +<context> + <name>LocalPackageHub</name> + <message> + <source>%1 contains invalid content: %2</source> + <translation>%1 يحتوي على محتوى غير صالح: %2</translation> + </message> + <message> + <source>The file %1 does not exist.</source> + <translation>الملف %1 ليس موجوداً.</translation> + </message> + <message> + <source>Cannot open %1.</source> + <translation>لا يمكن فتح %1.</translation> + </message> + <message> + <source>Parse error in %1 at %2, %3: %4</source> + <translation>خطأ فرز في %1 في %2، %3، %4</translation> + </message> + <message> + <source>Root element %1 unexpected, should be 'Packages'.</source> + <translation>عنصر الجذر %1 غير متوقع، يجب أن يكون 'Packages'.</translation> + </message> +</context> +<context> + <name>LockFile</name> + <message> + <source>Cannot create lock file "%1": %2</source> + <translation>لا يمكن إنشاء ملف القفل "%1": %2</translation> + </message> + <message> + <source>Cannot write PID to lock file "%1": %2</source> + <translation>لا يمكن كتابة PID لإقفال الملف "%1": %2</translation> + </message> + <message> + <source>Cannot obtain the lock for file "%1": %2</source> + <translation>لا يمكن الحصول على القفل للملف "%1": %2</translation> + </message> + <message> + <source>Cannot release the lock for file "%1": %2</source> + <translation>لا يمكن فك القفل للملف "%1": %2</translation> + </message> +</context> +<context> + <name>KDUpdater::Task</name> + <message> + <source>%1 started</source> + <translation>بدأ %1</translation> + </message> + <message> + <source>%1 cannot be stopped</source> + <translation>لا يمكن إيقاف %1</translation> + </message> + <message> + <source>Cannot stop task %1</source> + <translation>لا يمكن إيقاف العملية %1</translation> + </message> + <message> + <source>%1 cannot be paused</source> + <translation>لا يمكن الإيقاف المؤقت لـ %1</translation> + </message> + <message> + <source>Cannot pause task %1</source> + <translation>لا يمكن الإيقاف المؤقت للعملية %1</translation> + </message> + <message> + <source>Cannot resume task %1</source> + <translation>لا يمكن استئناف العملية %1</translation> + </message> + <message> + <source>%1 done</source> + <translation>انتهى %1</translation> + </message> +</context> +<context> + <name>KDUpdater::UpdateFinder</name> + <message> + <source>Cannot access the package information of this application.</source> + <translation>لا يمكن الوصول إلى معلومات الحزمة لهذا التطبيق.</translation> + </message> + <message> + <source>No package sources set for this application.</source> + <translation>لم تُعين مصادر حزم لهذا التطبيق.</translation> + </message> + <message numerus="yes"> + <source>%n update(s) found.</source> + <translation> + <numerusform>عثر على %n تحديث(تحديثات).</numerusform> + <numerusform>عثر على تحديث.</numerusform> + <numerusform>عثر على تحديثين.</numerusform> + <numerusform>عثر على %n تحديثات.</numerusform> + <numerusform>عثر على %n تحديث.</numerusform> + <numerusform>عثر على %n تحديث.</numerusform> + </translation> + </message> + <message> + <source>Downloading Updates.xml from update sources.</source> + <translation>جارٍ تنزيل ملف Updates.xml من مصادر التحديثات.</translation> + </message> + <message> + <source>Cannot download package source %1 from "%2".</source> + <translation>لا يمكن تحميل مصدر الحزمة %1 من "%2".</translation> + </message> + <message> + <source>Updates.xml file(s) downloaded from update sources.</source> + <translation>نُزّل ملف (ملفات) Updates.xml من مصادر التحديث.</translation> + </message> + <message> + <source>Computing applicable updates.</source> + <translation>جارٍ حساب التحديثات القابلة للتطبيق.</translation> + </message> + <message> + <source>Application updates computed.</source> + <translation>حُسبت تحديثات التطبيق.</translation> + </message> +</context> +<context> + <name>KDUpdater::CopyOperation</name> + <message> + <source>Cannot backup file "%1".</source> + <translation>لا يمكن إنشاء نسخة احتياطية من الملف "%1".</translation> + </message> + <message> + <source>Cannot copy a non-existent file: %1</source> + <translation>لا يمكن نسخ ملف غير موجود: %1</translation> + </message> + <message> + <source>Cannot remove file "%1": %2</source> + <translation>لا يمكن حذف الملف "%1":%2</translation> + </message> + <message> + <source>Cannot copy file "%1" to "%2": %3</source> + <translation>لا يمكن نسخ الملف "%1" إلى "%2": %3</translation> + </message> + <message> + <source>Cannot delete file "%1": %2</source> + <translation>لا يمكن حذف الملف "%1" %2</translation> + </message> + <message> + <source>Cannot restore backup file into "%1": %2</source> + <translation>لا يمكن استعادة ملف النسخة الاحتياطية إلى "%1": %2</translation> + </message> +</context> +<context> + <name>KDUpdater::MoveOperation</name> + <message> + <source>Cannot backup file "%1".</source> + <translation>لا يمكن إنشاء نسخة احتياطية من الملف "%1".</translation> + </message> + <message> + <source>Cannot remove file "%1": %2</source> + <translation>لا يمكن حذف الملف "%1": %2</translation> + </message> + <message> + <source>Cannot copy file "%1" to "%2": %3</source> + <translation>لا يمكن نسخ الملف "%1" إلى "%2": %3</translation> + </message> + <message> + <source>Cannot remove file "%1".</source> + <translation>لا يمكن حذف الملف "%1".</translation> + </message> + <message> + <source>Cannot restore backup file for "%1": %2</source> + <translation>لا يمكن استعادة ملف النسخة الاحتياطية لـ "%1": %2</translation> + </message> +</context> +<context> + <name>KDUpdater::DeleteOperation</name> + <message> + <source>Cannot create backup of file "%1": %2</source> + <translation>لا يمكن إنشاء نسخة احتياطية من الملف "%1": %2</translation> + </message> + <message> + <source>Cannot restore backup file for "%1": %2</source> + <translation>لا يمكن استعادة ملف النسخة الاحتياطية لـ "%1": %2</translation> + </message> +</context> +<context> + <name>KDUpdater::MkdirOperation</name> + <message> + <source>Cannot create directory "%1": %2</source> + <translation>لا يمكن إنشاء المجلد "%1": %2</translation> + </message> + <message> + <source>Unknown error.</source> + <translation>خطأ غير معروف.</translation> + </message> + <message> + <source>Cannot remove directory "%1": %2</source> + <translation>لا يمكن حذف المجلد "%1": %2</translation> + </message> +</context> +<context> + <name>KDUpdater::RmdirOperation</name> + <message> + <source>Cannot remove directory "%1": %2</source> + <translation>لا يمكن حذف المجلد "%1": %2</translation> + </message> + <message> + <source>The directory does not exist.</source> + <translation>المجلد غير موجود.</translation> + </message> + <message> + <source>Cannot recreate directory "%1": %2</source> + <translation>لا يمكن إعادة إنشاء المجلد "%1": %2</translation> + </message> +</context> +<context> + <name>KDUpdater::AppendFileOperation</name> + <message> + <source>Cannot backup file "%1": %2</source> + <translation>لا يمكن إنشاء نسخة احتياطية من الملف "%1": %2</translation> + </message> + <message> + <source>Cannot open file "%1" for writing: %2</source> + <translation>لا يمكن فتح الملف "%1" للكتابة: %2</translation> + </message> + <message> + <source>Cannot find backup file for "%1".</source> + <translation>لا يمكن العثور على ملف النسخة الاحتياطية لـ "%1".</translation> + </message> + <message> + <source>Cannot restore backup file for "%1".</source> + <translation>لا يمكن استعادة ملف النسخة الاحتياطية لـ "%1".</translation> + </message> + <message> + <source>Cannot restore backup file for "%1": %2</source> + <translation>لا يمكن استعادة ملف النسخة الاحتياطية لـ "%1": %2</translation> + </message> +</context> +<context> + <name>KDUpdater::PrependFileOperation</name> + <message> + <source>Cannot backup file "%1": %2</source> + <translation>لا يمكن إنشاء نسخة احتياطية من الملف "%1": %2</translation> + </message> + <message> + <source>Cannot open file "%1" for reading: %2</source> + <translation>لا يمكن فتح الملف "%1" للقراءة: %2</translation> + </message> + <message> + <source>Cannot open file "%1" for writing: %2</source> + <translation>لا يمكن فتح الملف "%1" للكتابة: %2</translation> + </message> + <message> + <source>Cannot find backup file for "%1".</source> + <translation>لا يمكن العثور على ملف النسخة الاحتياطية لـ "%1".</translation> + </message> + <message> + <source>Cannot restore backup file for "%1".</source> + <translation>لا يمكن استعادة ملف النسخة الاحتياطية لـ "%1".</translation> + </message> + <message> + <source>Cannot restore backup file for "%1": %2</source> + <translation>لا يمكن استعادة ملف النسخة الاحتياطية لـ "%1": %2</translation> + </message> +</context> +<context> + <name>KDUpdater::UpdatesInfoData</name> + <message> + <source>Updates.xml contains invalid content: %1</source> + <translation>يشتمل ملف Updates.xml على محتوى غير صالح: %1</translation> + </message> + <message> + <source>Cannot read "%1"</source> + <translation>لا يمكن قراءة "%1'</translation> + </message> + <message> + <source>Parse error in %1 at %2, %3: %4</source> + <translation>خطأ في فرز %1 في %2، %3:%4</translation> + </message> + <message> + <source>Root element %1 unexpected, should be "Updates".</source> + <translation>عنصر الجذر %1 غير متوقع، يجب أن يكون "Updates".</translation> + </message> + <message> + <source>ApplicationName element is missing.</source> + <translation>عنصر ApplicationName مفقود.</translation> + </message> + <message> + <source>ApplicationVersion element is missing.</source> + <translation>عنصر ApplicationVersion مفقود.</translation> + </message> + <message> + <source>PackageUpdate element without Name</source> + <translation>عنصر PackageUpdate بدون Name</translation> + </message> + <message> + <source>PackageUpdate element without Version</source> + <translation>عنصر PackageUpdate بدون Version</translation> + </message> + <message> + <source>PackageUpdate element without ReleaseDate</source> + <translation>عنصر PackageUpdate بدون ReleaseDate</translation> + </message> +</context> +<context> + <name>QInstaller::QFileDialogProxy</name> + <message> + <source>User input is required but the output device is not associated with a terminal.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>InstallerBase</name> + <message> + <source>Unable to start installer</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS>
\ No newline at end of file diff --git a/src/sdk/translations/ifw_de.ts b/src/sdk/translations/ifw_de.ts index 381c739da..39b541c8d 100644 --- a/src/sdk/translations/ifw_de.ts +++ b/src/sdk/translations/ifw_de.ts @@ -104,6 +104,13 @@ </message> </context> <context> + <name>InstallerBase</name> + <message> + <source>Unable to start installer</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>InstallerCalculator</name> <message> <source>Components added as automatic dependencies:</source> @@ -703,7 +710,7 @@ </message> <message> <source>Cannot copy file from "%1" to "%2": %3</source> - <translation>Konnte Datei "%1" nicht nach "%1" kopieren: %3</translation> + <translation>Konnte Datei "%1" nicht nach "%2" kopieren: %3</translation> </message> <message> <source>Cannot move file from "%1" to "%2": %3</source> @@ -723,7 +730,7 @@ </message> <message> <source>Cannot copy file "%1" to "%2": %3</source> - <translation type="unfinished"></translation> + <translation>Konnte Datei "%1" nicht nach "%2" kopieren: %3</translation> </message> <message> <source>Cannot copy file "%1" to "%2".</source> @@ -766,7 +773,7 @@ </message> <message> <source>Cannot resolve isDefault in %1</source> - <translation>Kann isDefault in %1 nicht auflösen.</translation> + <translation>Kann isDefault in %1 nicht auflösen</translation> </message> <message> <source>There was an error loading the selected component. This component can not be installed.</source> @@ -924,6 +931,17 @@ </message> </context> <context> + <name>QInstaller::ComponentSelectionPagePrivate</name> + <message> + <source>Filter</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Error</source> + <translation>Fehler</translation> + </message> +</context> +<context> <name>QInstaller::ConsumeOutputOperation</name> <message> <source><to be saved installer key name> <executable> [argument1] [argument2] [...]</source> @@ -1213,6 +1231,13 @@ Fehler beim Laden von %2</translation> </message> </context> <context> + <name>QInstaller::ExtractArchiveOperation</name> + <message> + <source>Extracting "%1"</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>QInstaller::ExtractArchiveOperation::Runnable</name> <message> <source>Cannot open archive "%1" for reading: %2</source> @@ -1301,7 +1326,7 @@ Fehler beim Laden von %2</translation> </message> <message> <source>Finished</source> - <translation type="unfinished"></translation> + <translation>Abschließen</translation> </message> <message> <source>Click %1 to exit the %2 Wizard.</source> @@ -1516,7 +1541,7 @@ Fehler beim Laden von %2</translation> </message> <message> <source>Retrieving meta information from remote repository... </source> - <translation type="unfinished"></translation> + <translation>Metainformationen werden vom Installationsserver empfangen ... </translation> </message> <message> <source>Error while extracting archive "%1": %2</source> @@ -1572,6 +1597,10 @@ Pakete werden heruntergeladen ...</translation> <translation>Einige Komponenten konnten nicht vollständig entfernt werden, weil ein unbekannter Fehler aufgetreten ist.</translation> </message> <message> + <source>User input is required but the output device is not associated with a terminal.</source> + <translation type="unfinished"></translation> + </message> + <message> <source>The directory you selected already exists and contains an installation. Choose a different target for installation.</source> <translation>Der ausgewählte Verzeichnis existiert bereits und enthält eine Installation. Bitte wählen Sie einen anderen Zielordner aus.</translation> </message> @@ -1638,6 +1667,10 @@ Möchten Sie trotzdem fortsetzen?</translation> <translation>Keine installierten Pakete gefunden.</translation> </message> <message> + <source>Cannot register component! Component with identifier %1 already exists.</source> + <translation type="unfinished"></translation> + </message> + <message> <source>Application running in Uninstaller mode.</source> <translation>Die Anwendung läuft im Deinstallationsmodus.</translation> </message> @@ -1823,7 +1856,7 @@ Möchten Sie trotzdem fortsetzen?</translation> </message> <message> <source>Cannot remove file "%1": %2</source> - <translation type="unfinished"></translation> + <translation>Konnte Datei "%1" nicht löschen: %2</translation> </message> <message> <source>Cannot create directory "%1".</source> @@ -2064,7 +2097,7 @@ Bitte kopieren Sie den Installer auf ein lokales Laufwerk</translation> </message> <message> <source>Installing</source> - <translation type="unfinished"></translation> + <translation>Installieren</translation> </message> <message> <source>Updating</source> @@ -2107,6 +2140,13 @@ Bitte kopieren Sie den Installer auf ein lokales Laufwerk</translation> </message> </context> <context> + <name>QInstaller::QFileDialogProxy</name> + <message> + <source>User input is required but the output device is not associated with a terminal.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>QInstaller::ReadyForInstallationPage</name> <message> <source>U&ninstall</source> @@ -2611,11 +2651,11 @@ als root aufrufen und dann "Ok" auswählen.</translation> </message> <message> <source>Select All</source> - <translation type="unfinished"></translation> + <translation>Alle auswählen</translation> </message> <message> <source>Deselect All</source> - <translation type="unfinished"></translation> + <translation>Alle abwählen</translation> </message> </context> <context> @@ -2667,29 +2707,4 @@ als root aufrufen und dann "Ok" auswählen.</translation> <translation>Verbleibende Datei "%1" wegen "%2": %3</translation> </message> </context> -<context> - <name>QInstaller::ComponentSelectionPagePrivate</name> - <message> - <source>Filter</source> - <translation type="unfinished"></translation> - </message> - <message> - <source>Error</source> - <translation>Fehler</translation> - </message> -</context> -<context> - <name>QInstaller::ExtractArchiveOperation</name> - <message> - <source>Extracting "%1"</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>InstallerBase</name> - <message> - <source>Unable to start installer</source> - <translation type="unfinished"></translation> - </message> -</context> </TS> |