diff --git a/src/Umbraco.Web.UI.Client/.storybook/preview.js b/src/Umbraco.Web.UI.Client/.storybook/preview.js
index b601e2b586..262cfe4e44 100644
--- a/src/Umbraco.Web.UI.Client/.storybook/preview.js
+++ b/src/Umbraco.Web.UI.Client/.storybook/preview.js
@@ -88,6 +88,12 @@ const documentTreeStoreProvider = (story) => html`
export const decorators = [documentStoreProvider, documentTreeStoreProvider, dataTypeStoreProvider, storybookProvider];
export const parameters = {
+ docs: {
+ source: {
+ excludeDecorators: true,
+ format: 'html', // see storybook docs for more info on this format https://storybook.js.org/docs/api/doc-blocks/doc-block-source#format
+ },
+ },
options: {
storySort: {
method: 'alphabetical',
diff --git a/src/Umbraco.Web.UI.Client/.vscode/lit.code-snippets b/src/Umbraco.Web.UI.Client/.vscode/lit.code-snippets
index b8907220b6..4920d8011b 100644
--- a/src/Umbraco.Web.UI.Client/.vscode/lit.code-snippets
+++ b/src/Umbraco.Web.UI.Client/.vscode/lit.code-snippets
@@ -1,30 +1,30 @@
{
- "Create Lit Component": {
- "prefix": "lit new",
+ "UmbNewLitElement": {
+ "prefix": "new umb element",
"scope": "typescript",
"body": [
- "import { UmbTextStyles } from '@umbraco-ui/backoffice/style';",
- "import { css, html } from 'lit';",
- "import { customElement } from 'lit/decorators.js';",
+ "import { css, customElement, html } from '@umbraco-cms/backoffice/external/lit';",
"import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';",
+ "import { UmbTextStyles } from '@umbraco-cms/backoffice/style';",
"",
"@customElement('umb-${TM_FILENAME_BASE/(.*)\\..+$/$1/}')",
- "export class Umb${TM_FILENAME_BASE/(.*)\\..+$/${1:/pascalcase}/}Element extends UmbLitElement {",
- "\trender() {",
- "\t\treturn html`${0:umb-${TM_FILENAME_BASE/(.*)\\..+$/$1/}}`;",
+ "export class Umb${TM_FILENAME_BASE/(.*)$/${1:/pascalcase}/}Element extends UmbLitElement {",
+ "\toverride render() {",
+ "\t\treturn html`$0`;",
"\t}",
"",
- "\tstatic styles = [UmbTextStyles, css``];",
+ "\tstatic override readonly styles = [UmbTextStyles, css``];",
"}",
"",
- "export default Umb${TM_FILENAME_BASE/(.*)\\..+$/${1:/pascalcase}/}Element",
+ "export { Umb${TM_FILENAME_BASE/(.*)$/${1:/pascalcase}/}Element as element };",
"",
"declare global {",
"\tinterface HTMLElementTagNameMap {",
- "\t\t'umb-${TM_FILENAME_BASE/(.*)\\..+$/$1/}': Umb${TM_FILENAME_BASE/(.*)\\..+$/${1:/pascalcase}/}Element;",
+ "\t\t'umb-${TM_FILENAME_BASE/(.*)\\..+$/$1/}': Umb${TM_FILENAME_BASE/(.*)$/${1:/pascalcase}/}Element;",
"\t}",
- "}"
+ "}",
+ "",
],
- "description": "Create a new Lit Component"
- }
+ "description": "Create a new Umbraco Lit element",
+ },
}
diff --git a/src/Umbraco.Web.UI.Client/devops/build/global-types.js b/src/Umbraco.Web.UI.Client/devops/build/global-types.js
new file mode 100644
index 0000000000..88d16199b6
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/devops/build/global-types.js
@@ -0,0 +1,25 @@
+import { createImportMap } from '../importmap/index.js';
+import { writeFileWithDir } from '../utils/index.js';
+
+const tsPath = './dist-cms/packages/extension-types/index.d.ts';
+
+const importmap = createImportMap({
+ rootDir: './src',
+ replaceModuleExtensions: true,
+});
+
+const paths = Object.keys(importmap.imports);
+
+const content = `
+${paths.map((path) => `import '${path}';`).join('\n')}
+`;
+
+writeFileWithDir(tsPath, content, (err) => {
+ if (err) {
+ // eslint-disable-next-line no-undef
+ console.log(err);
+ }
+
+ // eslint-disable-next-line no-undef
+ console.log(`global-types file generated`);
+});
diff --git a/src/Umbraco.Web.UI.Client/devops/importmap/index.js b/src/Umbraco.Web.UI.Client/devops/importmap/index.js
index b97682d3e6..3ea95ebf89 100644
--- a/src/Umbraco.Web.UI.Client/devops/importmap/index.js
+++ b/src/Umbraco.Web.UI.Client/devops/importmap/index.js
@@ -8,14 +8,14 @@ export const createImportMap = (args) => {
// Iterate over the exports in package.json
for (const [key, value] of Object.entries(packageJsonExports || {})) {
// remove leading ./
- if (value) {
+ if (value && value.endsWith('.js')) {
const moduleName = key.replace(/^\.\//, '');
// replace ./dist-cms with src and remove /index.js
let modulePath = value;
if (typeof args.rootDir !== 'undefined') modulePath = modulePath.replace(/^\.\/dist-cms/, args.rootDir);
if (args.replaceModuleExtensions) modulePath = modulePath.replace('.js', '.ts');
- console.log('replacing', value, 'with', modulePath)
+ console.log('replacing', value, 'with', modulePath);
const importAlias = `${packageJsonName}/${moduleName}`;
imports[importAlias] = modulePath;
diff --git a/src/Umbraco.Web.UI.Client/devops/utils/index.js b/src/Umbraco.Web.UI.Client/devops/utils/index.js
new file mode 100644
index 0000000000..69244f16a2
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/devops/utils/index.js
@@ -0,0 +1,13 @@
+import { writeFile, mkdir } from 'fs';
+import * as pathModule from 'path';
+
+const path = pathModule.default;
+const getDirName = path.dirname;
+
+export const writeFileWithDir = (path, contents, cb) => {
+ mkdir(getDirName(path), { recursive: true }, function (err) {
+ if (err) return cb(err);
+
+ writeFile(path, contents, cb);
+ });
+};
diff --git a/src/Umbraco.Web.UI.Client/examples/manifest-picker/manifest-picker-dashboard.ts b/src/Umbraco.Web.UI.Client/examples/manifest-picker/manifest-picker-dashboard.ts
index 988ad6197a..43be6cfdd4 100644
--- a/src/Umbraco.Web.UI.Client/examples/manifest-picker/manifest-picker-dashboard.ts
+++ b/src/Umbraco.Web.UI.Client/examples/manifest-picker/manifest-picker-dashboard.ts
@@ -1,11 +1,13 @@
import { css, html, customElement, state, when, nothing } from '@umbraco-cms/backoffice/external/lit';
import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';
-import { UmbInputManifestElement } from '@umbraco-cms/backoffice/components';
+import type { UmbInputManifestElement } from '@umbraco-cms/backoffice/components';
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
-import { UUISelectEvent } from '@umbraco-cms/backoffice/external/uui';
+import type { UUISelectEvent } from '@umbraco-cms/backoffice/external/uui';
+// eslint-disable-next-line local-rules/enforce-umb-prefix-on-element-name
@customElement('example-manifest-picker-dashboard')
+// eslint-disable-next-line local-rules/enforce-element-suffix-on-element-class-name, local-rules/umb-class-prefix
export class ExampleManifestPickerDashboard extends UmbLitElement {
#options: Array
لا حاجة إلى اتخاذ أي إجراءات أخرى. اضغط على التالي للمتابعة.",
- defaultUserPassChanged: "تم تغيير كلمة مرور المستخدم الافتراضي بنجاح منذ التثبيت!
لا حاجة إلى اتخاذ أي إجراءات أخرى. اضغط على التالي للمتابعة.",
- defaultUserPasswordChanged: "تم تغيير كلمة المرور!",
- greatStart: "ابدأ بداية رائعة، شاهد مقاطع الفيديو التمهيدية الخاصة بنا",
- licenseText: "بالنقر على الزر التالي (أو تعديل umbracoConfigurationStatus في web.config)، فإنك توافق على رخصة هذا البرنامج كما هو موضح في الصندوق أدناه. لاحظ أن توزيع Umbraco يتكون من رخصتين مختلفتين، رخصة MIT مفتوحة المصدر للإطار ورخصة البرمجيات المجانية الخاصة بـ Umbraco التي تغطي واجهة المستخدم.",
- None: "لم يتم تثبيته بعد.",
- permissionsAffectedFolders: "الملفات والمجلدات المتأثرة",
- permissionsAffectedFoldersMoreInfo: "مزيد من المعلومات حول إعداد الأذونات لـ Umbraco هنا",
- permissionsAffectedFoldersText: "يجب منح أذونات تعديل لـ ASP.NET على الملفات/المجلدات التالية",
- permissionsAlmostPerfect: "إعدادات الأذونات الخاصة بك تقريبًا مثالية!
\n يمكنك تشغيل Umbraco بدون مشاكل، لكن لن تتمكن من تثبيت الحزم الموصى بها للاستفادة الكاملة من Umbraco.",
- permissionsHowtoResolve: "كيفية الحل",
- permissionsHowtoResolveLink: "اضغط هنا لقراءة النسخة النصية",
- permissionsHowtoResolveText: "شاهد الفيديو التعليمي الخاص بإعداد أذونات المجلدات لـ Umbraco أو اقرأ النسخة النصية.",
- permissionsMaybeAnIssue: "قد تكون إعدادات الأذونات الخاصة بك مشكلة!\n
\n يمكنك تشغيل Umbraco بدون مشاكل، لكن لن تتمكن من إنشاء مجلدات أو تثبيت الحزم الموصى بها للاستفادة الكاملة من Umbraco.",
- permissionsNotReady: "إعدادات الأذونات الخاصة بك غير جاهزة لـ Umbraco!\n
\n لتشغيل Umbraco، ستحتاج إلى تحديث إعدادات الأذونات الخاصة بك.",
- permissionsPerfect: "إعدادات الأذونات الخاصة بك مثالية!
\n أنت جاهز لتشغيل Umbraco وتثبيت الحزم!",
- permissionsResolveFolderIssues: "حل مشكلة المجلد",
- permissionsResolveFolderIssuesLink: "اتبع هذا الرابط للحصول على مزيد من المعلومات حول مشاكل ASP.NET وإنشاء المجلدات",
- permissionsSettingUpPermissions: "إعداد أذونات المجلدات",
- permissionsText: "يحتاج Umbraco إلى أذونات الكتابة/التعديل لبعض الأدلة لتخزين الملفات مثل الصور وملفات PDF. كما أنه يخزن بيانات مؤقتة (المعروفة باسم: ذاكرة التخزين المؤقت) لتحسين أداء موقع الويب الخاص بك.",
- runwayFromScratch: "أريد البدء من الصفر",
- runwayFromScratchText: "موقع الويب الخاص بك فارغ تمامًا في الوقت الحالي، وهذا مثالي إذا كنت ترغب في البدء من الصفر وإنشاء الأنواع الوثائق والقوالب الخاصة بك. (تعرف على الكيفية) لا يزال بإمكانك اختيار تثبيت Runway لاحقًا. يرجى الانتقال إلى قسم المطور واختيار الحزم.",
- runwayHeader: "لقد قمت بإعداد منصة Umbraco نظيفة. ماذا تريد أن تفعل بعد ذلك؟",
- runwayInstalled: "تم تثبيت Runway",
- runwayInstalledText: "لديك الأساس في مكانه. اختر الوحدات التي ترغب في تثبيتها فوقه. \n هذه هي قائمتنا الموصى بها من الوحدات، قم بتحديد الوحدات التي ترغب في تثبيتها، أو عرض القائمة الكاملة للوحدات",
- runwayOnlyProUsers: "يوصى بها فقط للمستخدمين ذوي الخبرة",
- runwaySimpleSite: "أريد البدء بموقع ويب بسيط",
- runwaySimpleSiteText: "
\"Runway\" هو موقع ويب بسيط يوفر بعض الأنواع الوثائق والقوالب الأساسية. يمكن للمثبت إعداد Runway لك تلقائيًا، لكن يمكنك بسهولة تحريره أو توسيعه أو إزالته. ليس ضروريًا ويمكنك استخدام Umbraco بشكل مثالي بدونها. ومع ذلك، يوفر Runway أساسًا سهلًا يعتمد على أفضل الممارسات لبدء التشغيل بسرعة أكبر من أي وقت مضى. إذا اخترت تثبيت Runway، يمكنك اختيار الوحدات الأساسية الاختيارية المعروفة باسم وحدات Runway لتعزيز صفحات Runway الخاصة بك.
\n متضمن مع Runway: الصفحة الرئيسية، صفحة البدء، صفحة تثبيت الوحدات. \n الوحدات الاختيارية: التنقل العلوي، خريطة الموقع، الاتصال، المعرض.",
- runwayWhatIsRunway: "ما هو Runway",
- step1: "الخطوة 1/5 قبول الترخيص",
- step2: "الخطوة 2/5: تكوين قاعدة البيانات",
- step3: "الخطوة 3/5: التحقق من أذونات الملفات",
- step4: "الخطوة 4/5: التحقق من أمان Umbraco",
- step5: "الخطوة 5/5: Umbraco جاهز للبدء",
- thankYou: "شكرًا لاختيارك Umbraco",
- theEndBrowseSite: "
تصفح موقعك الجديد
\nلقد قمت بتثبيت Runway، فلماذا لا ترى كيف يبدو موقع الويب الجديد الخاص بك.",
- theEndFurtherHelp: "
مزيد من المساعدة والمعلومات
\nاحصل على المساعدة من مجتمعنا الحائز على جوائز، تصفح الوثائق أو شاهد بعض مقاطع الفيديو المجانية حول كيفية بناء موقع بسيط، كيفية استخدام الحزم ودليل سريع لمصطلحات Umbraco",
- theEndHeader: "تم تثبيت Umbraco %0% وهو جاهز للاستخدام",
- theEndInstallFailed: "لإكمال التثبيت، ستحتاج إلى تحرير /web.config file يدويًا وتحديث المفتاح AppSetting UmbracoConfigurationStatus في الأسفل إلى القيمة '%0%'.",
- theEndInstallSuccess: "يمكنك البدء فورًا بالنقر على زر \"إطلاق Umbraco\" أدناه. إذا كنت جديدًا على Umbraco، يمكنك العثور على الكثير من الموارد على صفحات البدء الخاصة بنا.",
- theEndOpenUmbraco: "
إطلاق Umbraco
\nلإدارة موقع الويب الخاص بك، افتح ببساطة الخلفية لـ Umbraco وابدأ بإضافة المحتوى أو تحديث القوالب والأنماط أو إضافة ميزات جديدة",
- Unavailable: "فشل الاتصال بقاعدة البيانات.",
- Version3: "إصدار Umbraco 3",
- Version4: "إصدار Umbraco 4",
- watch: "شاهد",
- welcomeIntro: "سيقوم هذا المعالج بتوجيهك خلال عملية تكوين Umbraco %0% لتثبيت جديد أو الترقية من الإصدار 3.0.\n
\n اضغط على التالي لبدء المعالج."
- },
+ installer: {
+ databaseErrorCannotConnect: 'لا يمكن للمثبت الاتصال بقاعدة البيانات.',
+ databaseErrorWebConfig: 'تعذر حفظ ملف web.config. يرجى تعديل سلسلة الاتصال يدويًا.',
+ databaseFound: 'تم العثور على قاعدة بياناتك وتم التعرف عليها كـ',
+ databaseHeader: 'تكوين قاعدة البيانات',
+ databaseInstall: 'اضغط على زر التثبيت لتثبيت قاعدة بيانات Umbraco %0%',
+ databaseInstallDone: 'تم نسخ Umbraco %0% الآن إلى قاعدة بياناتك. اضغط على التالي للمتابعة.',
+ databaseNotFound:
+ '
لم يتم العثور على قاعدة البيانات! يرجى التحقق من أن المعلومات في سلسلة الاتصال في ملف "web.config" صحيحة.
\n
للمتابعة، يرجى تعديل ملف "web.config" (باستخدام Visual Studio أو محرر النصوص المفضل لديك)، والتمرير إلى الأسفل، وإضافة سلسلة الاتصال لقاعدة البيانات الخاصة بك في المفتاح المسمى "UmbracoDbDSN" وحفظ الملف.
',
+ databaseText:
+ 'لإكمال هذه الخطوة، يجب أن تكون لديك بعض المعلومات حول خادم قاعدة البيانات الخاص بك ("سلسلة الاتصال"). \n يرجى الاتصال بمزود خدمة الإنترنت الخاص بك إذا لزم الأمر.\n إذا كنت تقوم بالتثبيت على جهاز محلي أو خادم، قد تحتاج إلى معلومات من مسؤول النظام الخاص بك.',
+ databaseUpgrade:
+ '
اضغط على زر الترقية لترقية قاعدة البيانات إلى Umbraco %0%
\n
لا تقلق - لن يتم حذف أي محتوى وكل شيء سيستمر في العمل بعد ذلك!
',
+ databaseUpgradeDone:
+ 'تم ترقية قاعدة البيانات الخاصة بك إلى الإصدار النهائي %0%. اضغط على التالي للمتابعة.',
+ databaseUpToDate: 'قاعدة البيانات الحالية محدثة! اضغط على التالي لمتابعة معالج التكوين',
+ defaultUserChangePass: 'يجب تغيير كلمة مرور المستخدم الافتراضي!',
+ defaultUserDisabled:
+ 'تم تعطيل المستخدم الافتراضي أو لا يمكنه الوصول إلى Umbraco!
لا حاجة إلى اتخاذ أي إجراءات أخرى. اضغط على التالي للمتابعة.',
+ defaultUserPassChanged:
+ 'تم تغيير كلمة مرور المستخدم الافتراضي بنجاح منذ التثبيت!
لا حاجة إلى اتخاذ أي إجراءات أخرى. اضغط على التالي للمتابعة.',
+ defaultUserPasswordChanged: 'تم تغيير كلمة المرور!',
+ greatStart: 'ابدأ بداية رائعة، شاهد مقاطع الفيديو التمهيدية الخاصة بنا',
+ licenseText:
+ 'بالنقر على الزر التالي (أو تعديل umbracoConfigurationStatus في web.config)، فإنك توافق على رخصة هذا البرنامج كما هو موضح في الصندوق أدناه. لاحظ أن توزيع Umbraco يتكون من رخصتين مختلفتين، رخصة MIT مفتوحة المصدر للإطار ورخصة البرمجيات المجانية الخاصة بـ Umbraco التي تغطي واجهة المستخدم.',
+ None: 'لم يتم تثبيته بعد.',
+ permissionsAffectedFolders: 'الملفات والمجلدات المتأثرة',
+ permissionsAffectedFoldersMoreInfo: 'مزيد من المعلومات حول إعداد الأذونات لـ Umbraco هنا',
+ permissionsAffectedFoldersText: 'يجب منح أذونات تعديل لـ ASP.NET على الملفات/المجلدات التالية',
+ permissionsAlmostPerfect:
+ 'إعدادات الأذونات الخاصة بك تقريبًا مثالية!
\n يمكنك تشغيل Umbraco بدون مشاكل، لكن لن تتمكن من تثبيت الحزم الموصى بها للاستفادة الكاملة من Umbraco.',
+ permissionsHowtoResolve: 'كيفية الحل',
+ permissionsHowtoResolveLink: 'اضغط هنا لقراءة النسخة النصية',
+ permissionsHowtoResolveText:
+ 'شاهد الفيديو التعليمي الخاص بإعداد أذونات المجلدات لـ Umbraco أو اقرأ النسخة النصية.',
+ permissionsMaybeAnIssue:
+ 'قد تكون إعدادات الأذونات الخاصة بك مشكلة!\n
\n يمكنك تشغيل Umbraco بدون مشاكل، لكن لن تتمكن من إنشاء مجلدات أو تثبيت الحزم الموصى بها للاستفادة الكاملة من Umbraco.',
+ permissionsNotReady:
+ 'إعدادات الأذونات الخاصة بك غير جاهزة لـ Umbraco!\n
\n لتشغيل Umbraco، ستحتاج إلى تحديث إعدادات الأذونات الخاصة بك.',
+ permissionsPerfect:
+ 'إعدادات الأذونات الخاصة بك مثالية!
\n أنت جاهز لتشغيل Umbraco وتثبيت الحزم!',
+ permissionsResolveFolderIssues: 'حل مشكلة المجلد',
+ permissionsResolveFolderIssuesLink:
+ 'اتبع هذا الرابط للحصول على مزيد من المعلومات حول مشاكل ASP.NET وإنشاء المجلدات',
+ permissionsSettingUpPermissions: 'إعداد أذونات المجلدات',
+ permissionsText:
+ 'يحتاج Umbraco إلى أذونات الكتابة/التعديل لبعض الأدلة لتخزين الملفات مثل الصور وملفات PDF. كما أنه يخزن بيانات مؤقتة (المعروفة باسم: ذاكرة التخزين المؤقت) لتحسين أداء موقع الويب الخاص بك.',
+ runwayFromScratch: 'أريد البدء من الصفر',
+ runwayFromScratchText:
+ 'موقع الويب الخاص بك فارغ تمامًا في الوقت الحالي، وهذا مثالي إذا كنت ترغب في البدء من الصفر وإنشاء الأنواع الوثائق والقوالب الخاصة بك. (تعرف على الكيفية) لا يزال بإمكانك اختيار تثبيت Runway لاحقًا. يرجى الانتقال إلى قسم المطور واختيار الحزم.',
+ runwayHeader: 'لقد قمت بإعداد منصة Umbraco نظيفة. ماذا تريد أن تفعل بعد ذلك؟',
+ runwayInstalled: 'تم تثبيت Runway',
+ runwayInstalledText:
+ 'لديك الأساس في مكانه. اختر الوحدات التي ترغب في تثبيتها فوقه. \n هذه هي قائمتنا الموصى بها من الوحدات، قم بتحديد الوحدات التي ترغب في تثبيتها، أو عرض القائمة الكاملة للوحدات',
+ runwayOnlyProUsers: 'يوصى بها فقط للمستخدمين ذوي الخبرة',
+ runwaySimpleSite: 'أريد البدء بموقع ويب بسيط',
+ runwaySimpleSiteText:
+ '
"Runway" هو موقع ويب بسيط يوفر بعض الأنواع الوثائق والقوالب الأساسية. يمكن للمثبت إعداد Runway لك تلقائيًا، لكن يمكنك بسهولة تحريره أو توسيعه أو إزالته. ليس ضروريًا ويمكنك استخدام Umbraco بشكل مثالي بدونها. ومع ذلك، يوفر Runway أساسًا سهلًا يعتمد على أفضل الممارسات لبدء التشغيل بسرعة أكبر من أي وقت مضى. إذا اخترت تثبيت Runway، يمكنك اختيار الوحدات الأساسية الاختيارية المعروفة باسم وحدات Runway لتعزيز صفحات Runway الخاصة بك.
\n متضمن مع Runway: الصفحة الرئيسية، صفحة البدء، صفحة تثبيت الوحدات. \n الوحدات الاختيارية: التنقل العلوي، خريطة الموقع، الاتصال، المعرض.',
+ runwayWhatIsRunway: 'ما هو Runway',
+ step1: 'الخطوة 1/5 قبول الترخيص',
+ step2: 'الخطوة 2/5: تكوين قاعدة البيانات',
+ step3: 'الخطوة 3/5: التحقق من أذونات الملفات',
+ step4: 'الخطوة 4/5: التحقق من أمان Umbraco',
+ step5: 'الخطوة 5/5: Umbraco جاهز للبدء',
+ thankYou: 'شكرًا لاختيارك Umbraco',
+ theEndBrowseSite:
+ '
تصفح موقعك الجديد
\nلقد قمت بتثبيت Runway، فلماذا لا ترى كيف يبدو موقع الويب الجديد الخاص بك.',
+ theEndFurtherHelp:
+ '
مزيد من المساعدة والمعلومات
\nاحصل على المساعدة من مجتمعنا الحائز على جوائز، تصفح الوثائق أو شاهد بعض مقاطع الفيديو المجانية حول كيفية بناء موقع بسيط، كيفية استخدام الحزم ودليل سريع لمصطلحات Umbraco',
+ theEndHeader: 'تم تثبيت Umbraco %0% وهو جاهز للاستخدام',
+ theEndInstallFailed:
+ "لإكمال التثبيت، ستحتاج إلى تحرير /web.config file يدويًا وتحديث المفتاح AppSetting UmbracoConfigurationStatus في الأسفل إلى القيمة '%0%'.",
+ theEndInstallSuccess:
+ 'يمكنك البدء فورًا بالنقر على زر "إطلاق Umbraco" أدناه. إذا كنت جديدًا على Umbraco، يمكنك العثور على الكثير من الموارد على صفحات البدء الخاصة بنا.',
+ theEndOpenUmbraco:
+ '
إطلاق Umbraco
\nلإدارة موقع الويب الخاص بك، افتح ببساطة الخلفية لـ Umbraco وابدأ بإضافة المحتوى أو تحديث القوالب والأنماط أو إضافة ميزات جديدة',
+ Unavailable: 'فشل الاتصال بقاعدة البيانات.',
+ Version3: 'إصدار Umbraco 3',
+ Version4: 'إصدار Umbraco 4',
+ watch: 'شاهد',
+ welcomeIntro:
+ 'سيقوم هذا المعالج بتوجيهك خلال عملية تكوين Umbraco %0% لتثبيت جديد أو الترقية من الإصدار 3.0.\n
\n اضغط على التالي لبدء المعالج.',
+ },
language: {
- cultureCode: 'رمز الثقافة',
- displayName: 'اسم الثقافة',
- noFallbackLanguages: 'لا توجد لغات أخرى للاختيار من بينها',
- },
- lockout: {
- lockoutWillOccur: "لقد كنت غير نشط وسيتم تسجيل خروجك تلقائيًا في",
- renewSession: 'جدد الآن لحفظ عملك',
- },
- login: {
- greeting0: 'مرحبًا! بداية أسبوع مثمرة مع Umbraco!',
- greeting1: 'مرحبًا! يوم ثلاثاء إبداعي في Umbraco!',
- greeting2: 'مرحبًا! يوم أربعاء موفق في إدارة محتواك!',
- greeting3: 'مرحبًا! يوم خميس مليء بالإنجازات مع Umbraco!',
- greeting4: 'مرحبًا! إنه يوم جمعة رائع لإدارة محتوى موقعك!',
- greeting5: 'مرحبًا! عطلة نهاية أسبوع سعيدة مع Umbraco!',
- greeting6: 'مرحبًا! يوم أحد جديد، فرص جديدة في Umbraco!',
- instruction: 'سجل الدخول إلى Umbraco',
- signInWith: 'سجل الدخول باستخدام {0}',
- timeout: 'انتهت جلستك. يرجى تسجيل الدخول مرة أخرى أدناه.',
- },
- main: {
- dashboard: 'لوحة التحكم',
- sections: 'الأقسام',
- tree: 'المحتوى',
- },
- moveOrCopy: {
- choose: 'اختر الصفحة أعلاه...',
- copyDone: '%0% تم نسخه إلى %1%',
- copyTo: 'حدد المكان الذي يجب نسخ الوثيقة %0% إليه أدناه',
- moveDone: '%0% تم نقله إلى %1%',
- moveTo: 'حدد المكان الذي يجب نقل الوثيقة %0% إليه أدناه',
- nodeSelected: "تم تحديده كجذر لمحتواك الجديد، انقر على 'موافق' أدناه.",
- noNodeSelected: "لم يتم تحديد أي عقدة بعد، يرجى تحديد عقدة في القائمة أعلاه قبل النقر على 'موافق'",
- notAllowedByContentType: 'العقدة الحالية غير مسموح بها تحت العقدة المحددة بسبب نوعها',
- notAllowedByPath: 'لا يمكن نقل العقدة الحالية إلى إحدى صفحاتها الفرعية، ولا يمكن أن تكون الوالد والوجهة هي نفسها',
- notAllowedAtRoot: 'لا يمكن أن توجد العقدة الحالية في الجذر',
- notValid: "لا يُسمح بالإجراء نظرًا لأن لديك أذونات غير كافية على 1 أو أكثر من الوثيقة الفرعية.\n",
- relateToOriginal: 'ربط العناصر المنسوخة بالأصل',
- },
- notifications: {
- editNotifications: 'حدد إشعارك لـ %0%',
- notificationsSavedFor: 'تم حفظ إعدادات الإشعارات لـ',
- notifications: 'الإشعارات',
- },
- packager: {
- actions: 'إجراءات',
- created: 'أنشئ',
- createPackage: 'إنشاء حزمة',
- chooseLocalPackageText: '\n اختر حزمة من جهازك، بالنقر على زر تصفح \n وتحديد الحزمة. عادةً ما تحتوي حزم Umbraco على امتداد ".umb" أو ".zip".\n ',
- deletewarning: 'سيؤدي ذلك إلى حذف الحزمة',
- includeAllChildNodes: 'تضمين جميع العقد الفرعية',
- installed: 'مثبتة',
- installedPackages: 'الحزم المثبتة',
- installInstructions: 'تعليمات التثبيت',
- noConfigurationView: 'لا تحتوي هذه الحزمة على عرض تكوين',
- noPackagesCreated: 'لم يتم إنشاء أي حزم بعد',
- noPackages: 'لم يتم تثبيت أي حزم',
- noPackagesDescription: "تصفح الحزم المتاحة باستخدام أيقونة 'الحزم' في أعلى يمين الشاشة",
- packageContent: 'محتوى الحزمة',
- packageLicense: 'الرخصة',
- packageSearch: 'البحث عن الحزم',
- packageSearchResults: 'نتائج البحث عن',
- packageNoResults: 'لم نجد شيئًا لـ',
- packageNoResultsDescription: 'يرجى محاولة البحث عن حزمة أخرى أو تصفح الفئات\n',
- packagesPopular: 'الأكثر شيوعًا',
- packagesPromoted: 'مروج لها',
- packagesNew: 'الإصدارات الجديدة',
- packageHas: 'لديه',
- packageKarmaPoints: 'نقاط الكارما',
- packageInfo: 'معلومات',
- packageOwner: 'المالك',
- packageContrib: 'المساهمون',
- packageCreated: 'أنشئ',
- packageCurrentVersion: 'الإصدار الحالي',
- packageNetVersion: 'إصدار .NET',
- packageDownloads: 'التنزيلات',
- packageLikes: 'الإعجابات',
- packageCompatibility: 'التوافق',
- packageCompatibilityDescription: 'تكون هذه الحزمة متوافقة مع الإصدارات التالية من Umbraco، حسب\n ما أبلغ عنه أعضاء المجتمع. لا يمكن ضمان التوافق الكامل للإصدارات المبلغ عنها أقل من 100%\n ',
- packageExternalSources: 'المصادر الخارجية',
- packageAuthor: 'المؤلف',
- packageDocumentation: 'الوثائق',
- packageMetaData: 'بيانات الحزمة',
- packageName: 'اسم الحزمة',
- packageNoItemsHeader: "لا تحتوي الحزمة على أي عناصر",
- packageNoItemsText: 'لا تحتوي هذه الحزمة على أي عناصر لإلغاء التثبيت.
\n يمكنك إزالة هذا بأمان من النظام بالنقر على "إلغاء تثبيت الحزمة" أدناه.',
- packageOptions: 'خيارات الحزمة',
- packageMigrationsRun: 'تشغيل ترحيلات الحزمة المعلقة',
- packageMigrationsComplete: 'تم إكمال ترحيلات الحزمة بنجاح.',
- packageMigrationsNonePending: 'تم إكمال جميع ترحيلات الحزمة بنجاح.',
- packageReadme: 'ملف README الخاص بالحزمة',
- packageRepository: 'مستودع الحزمة',
- packageUninstallConfirm: 'تأكيد إلغاء تثبيت الحزمة',
- packageUninstalledHeader: 'تم إلغاء تثبيت الحزمة',
- packageUninstalledText: 'تم إلغاء تثبيت الحزمة بنجاح',
- packageUninstallHeader: 'إلغاء تثبيت الحزمة',
- packageUninstallText: 'يمكنك إلغاء تحديد العناصر التي لا ترغب في إزالتها في الوقت الحالي أدناه. عند النقر على "تأكيد الإلغاء"، ستتم إزالة جميع العناصر المحددة. \n ملاحظة: أي مستندات أو وسائط تعتمد على العناصر التي تقوم بإزالتها، ستتوقف عن العمل، وقد يؤدي ذلك إلى عدم استقرار النظام، لذا قم بإلغاء التثبيت بحذر. إذا كان لديك أي شكوك، اتصل بمؤلف الحزمة.',
- packageVersion: 'إصدار الحزمة',
- verifiedToWorkOnUmbracoCloud: 'تم التحقق من عمله على Umbraco Cloud',
- },
+ cultureCode: 'رمز الثقافة',
+ displayName: 'اسم الثقافة',
+ noFallbackLanguages: 'لا توجد لغات أخرى للاختيار من بينها',
+ },
+ lockout: {
+ lockoutWillOccur: 'لقد كنت غير نشط وسيتم تسجيل خروجك تلقائيًا في',
+ renewSession: 'جدد الآن لحفظ عملك',
+ },
+ login: {
+ greeting0: 'مرحبًا! بداية أسبوع مثمرة مع Umbraco!',
+ greeting1: 'مرحبًا! يوم ثلاثاء إبداعي في Umbraco!',
+ greeting2: 'مرحبًا! يوم أربعاء موفق في إدارة محتواك!',
+ greeting3: 'مرحبًا! يوم خميس مليء بالإنجازات مع Umbraco!',
+ greeting4: 'مرحبًا! إنه يوم جمعة رائع لإدارة محتوى موقعك!',
+ greeting5: 'مرحبًا! عطلة نهاية أسبوع سعيدة مع Umbraco!',
+ greeting6: 'مرحبًا! يوم أحد جديد، فرص جديدة في Umbraco!',
+ instruction: 'سجل الدخول إلى Umbraco',
+ signInWith: 'سجل الدخول باستخدام {0}',
+ timeout: 'انتهت جلستك. يرجى تسجيل الدخول مرة أخرى أدناه.',
+ },
+ main: {
+ dashboard: 'لوحة التحكم',
+ sections: 'الأقسام',
+ tree: 'المحتوى',
+ },
+ moveOrCopy: {
+ choose: 'اختر الصفحة أعلاه...',
+ copyDone: '%0% تم نسخه إلى %1%',
+ copyTo: 'حدد المكان الذي يجب نسخ الوثيقة %0% إليه أدناه',
+ moveDone: '%0% تم نقله إلى %1%',
+ moveTo: 'حدد المكان الذي يجب نقل الوثيقة %0% إليه أدناه',
+ nodeSelected: "تم تحديده كجذر لمحتواك الجديد، انقر على 'موافق' أدناه.",
+ noNodeSelected: "لم يتم تحديد أي عقدة بعد، يرجى تحديد عقدة في القائمة أعلاه قبل النقر على 'موافق'",
+ notAllowedByContentType: 'العقدة الحالية غير مسموح بها تحت العقدة المحددة بسبب نوعها',
+ notAllowedByPath: 'لا يمكن نقل العقدة الحالية إلى إحدى صفحاتها الفرعية، ولا يمكن أن تكون الوالد والوجهة هي نفسها',
+ notAllowedAtRoot: 'لا يمكن أن توجد العقدة الحالية في الجذر',
+ notValid: 'لا يُسمح بالإجراء نظرًا لأن لديك أذونات غير كافية على 1 أو أكثر من الوثيقة الفرعية.\n',
+ relateToOriginal: 'ربط العناصر المنسوخة بالأصل',
+ },
+ notifications: {
+ editNotifications: 'حدد إشعارك لـ %0%',
+ notificationsSavedFor: 'تم حفظ إعدادات الإشعارات لـ',
+ notifications: 'الإشعارات',
+ },
+ packager: {
+ actions: 'إجراءات',
+ created: 'أنشئ',
+ createPackage: 'إنشاء حزمة',
+ chooseLocalPackageText:
+ '\n اختر حزمة من جهازك، بالنقر على زر تصفح \n وتحديد الحزمة. عادةً ما تحتوي حزم Umbraco على امتداد ".umb" أو ".zip".\n ',
+ deletewarning: 'سيؤدي ذلك إلى حذف الحزمة',
+ includeAllChildNodes: 'تضمين جميع العقد الفرعية',
+ installed: 'مثبتة',
+ installedPackages: 'الحزم المثبتة',
+ installInstructions: 'تعليمات التثبيت',
+ noConfigurationView: 'لا تحتوي هذه الحزمة على عرض تكوين',
+ noPackagesCreated: 'لم يتم إنشاء أي حزم بعد',
+ noPackages: 'لم يتم تثبيت أي حزم',
+ noPackagesDescription: "تصفح الحزم المتاحة باستخدام أيقونة 'الحزم' في أعلى يمين الشاشة",
+ packageContent: 'محتوى الحزمة',
+ packageLicense: 'الرخصة',
+ packageSearch: 'البحث عن الحزم',
+ packageSearchResults: 'نتائج البحث عن',
+ packageNoResults: 'لم نجد شيئًا لـ',
+ packageNoResultsDescription: 'يرجى محاولة البحث عن حزمة أخرى أو تصفح الفئات\n',
+ packagesPopular: 'الأكثر شيوعًا',
+ packagesPromoted: 'مروج لها',
+ packagesNew: 'الإصدارات الجديدة',
+ packageHas: 'لديه',
+ packageKarmaPoints: 'نقاط الكارما',
+ packageInfo: 'معلومات',
+ packageOwner: 'المالك',
+ packageContrib: 'المساهمون',
+ packageCreated: 'أنشئ',
+ packageCurrentVersion: 'الإصدار الحالي',
+ packageNetVersion: 'إصدار .NET',
+ packageDownloads: 'التنزيلات',
+ packageLikes: 'الإعجابات',
+ packageCompatibility: 'التوافق',
+ packageCompatibilityDescription:
+ 'تكون هذه الحزمة متوافقة مع الإصدارات التالية من Umbraco، حسب\n ما أبلغ عنه أعضاء المجتمع. لا يمكن ضمان التوافق الكامل للإصدارات المبلغ عنها أقل من 100%\n ',
+ packageExternalSources: 'المصادر الخارجية',
+ packageAuthor: 'المؤلف',
+ packageDocumentation: 'الوثائق',
+ packageMetaData: 'بيانات الحزمة',
+ packageName: 'اسم الحزمة',
+ packageNoItemsHeader: 'لا تحتوي الحزمة على أي عناصر',
+ packageNoItemsText:
+ 'لا تحتوي هذه الحزمة على أي عناصر لإلغاء التثبيت.
\n يمكنك إزالة هذا بأمان من النظام بالنقر على "إلغاء تثبيت الحزمة" أدناه.',
+ packageOptions: 'خيارات الحزمة',
+ packageMigrationsRun: 'تشغيل ترحيلات الحزمة المعلقة',
+ packageMigrationsComplete: 'تم إكمال ترحيلات الحزمة بنجاح.',
+ packageMigrationsNonePending: 'تم إكمال جميع ترحيلات الحزمة بنجاح.',
+ packageReadme: 'ملف README الخاص بالحزمة',
+ packageRepository: 'مستودع الحزمة',
+ packageUninstallConfirm: 'تأكيد إلغاء تثبيت الحزمة',
+ packageUninstalledHeader: 'تم إلغاء تثبيت الحزمة',
+ packageUninstalledText: 'تم إلغاء تثبيت الحزمة بنجاح',
+ packageUninstallHeader: 'إلغاء تثبيت الحزمة',
+ packageUninstallText:
+ 'يمكنك إلغاء تحديد العناصر التي لا ترغب في إزالتها في الوقت الحالي أدناه. عند النقر على "تأكيد الإلغاء"، ستتم إزالة جميع العناصر المحددة. \n ملاحظة: أي مستندات أو وسائط تعتمد على العناصر التي تقوم بإزالتها، ستتوقف عن العمل، وقد يؤدي ذلك إلى عدم استقرار النظام، لذا قم بإلغاء التثبيت بحذر. إذا كان لديك أي شكوك، اتصل بمؤلف الحزمة.',
+ packageVersion: 'إصدار الحزمة',
+ verifiedToWorkOnUmbracoCloud: 'تم التحقق من عمله على Umbraco Cloud',
+ },
paste: {
- doNothing: 'الصق مع التنسيق الكامل (غير موصى به)',
- errorMessage: "النص الذي تحاول لصقه يحتوي على أحرف خاصة أو تنسيق. قد يكون ذلك بسبب نسخ النص من Microsoft Word. يمكن لـ Umbraco إزالة الأحرف الخاصة أو التنسيق تلقائيًا، بحيث يكون المحتوى الملصق أكثر ملاءمة للويب.\n",
- removeAll: 'الصق كـ نص خام بدون أي تنسيق على الإطلاق',
- removeSpecialFormattering: 'الصق، ولكن قم بإزالة التنسيق (موصى به)',
- },
- publicAccess: {
- paGroups: 'حماية قائمة على المجموعة',
- paGroupsHelp: 'إذا كنت ترغب في منح الوصول إلى جميع أعضاء مجموعات الأعضاء المحددة',
- paGroupsNoGroups: 'تحتاج إلى إنشاء مجموعة أعضاء قبل أن تتمكن من استخدام المصادقة القائمة على المجموعة',
- paErrorPage: 'صفحة الخطأ',
- paErrorPageHelp: 'تستخدم عندما يكون الأشخاص مسجلين الدخول، ولكن ليس لديهم وصول',
- paHowWould: 'اختر كيفية تقييد الوصول إلى الصفحة %0%',
- paIsProtected: '%0% محمية الآن',
- paIsRemoved: 'تمت إزالة الحماية من %0%',
- paLoginPage: 'صفحة تسجيل الدخول',
- paLoginPageHelp: 'اختر الصفحة التي تحتوي على نموذج تسجيل الدخول',
- paRemoveProtection: 'إزالة الحماية...',
- paRemoveProtectionConfirm: 'هل أنت متأكد أنك تريد إزالة الحماية من الصفحة %0%؟',
- paSelectPages: 'اختر الصفحات التي تحتوي على نموذج تسجيل الدخول ورسائل الخطأ',
- paSelectGroups: 'اختر المجموعات التي لديها وصول إلى الصفحة %0%',
- paSelectMembers: 'اختر الأعضاء الذين لديهم وصول إلى الصفحة %0%',
- paMembers: 'حماية الأعضاء المحددين',
- paMembersHelp: 'إذا كنت ترغب في منح الوصول إلى أعضاء محددين',
- },
- publish: {
- invalidPublishBranchPermissions: 'أذونات المستخدم غير كافية لنشر جميع الوثائق التابعة',
- contentPublishedFailedIsTrashed: '\n %0% لم يتم نشره لأن العنصر في سلة المهملات.\n ',
- contentPublishedFailedAwaitingRelease: '\n %0% لم يتم نشره لأن العنصر مجدول للإصدار.\n ',
- contentPublishedFailedExpired: '\n %0% لم يتم نشره لأن العنصر منتهي الصلاحية.\n ',
- contentPublishedFailedInvalid: '\n %0% لم يتم نشره لأن بعض الخصائص لم تتجاوز قواعد التحقق.\n ',
- contentPublishedFailedByEvent: '\n %0% لم يتم نشره، ألغى ملحق طرف ثالث الإجراء.\n ',
- contentPublishedFailedByParent: '\n %0% لا يمكن نشره، لأن صفحة الوالد غير منشورة.\n ',
- contentPublishedFailedByMissingName: '%0% لا يمكن نشره، لأنه يفتقر إلى اسم.',
- contentPublishedFailedReqCultureValidationError: "فشل التحقق من اللغة المطلوبة '%0%'. تم حفظ هذه اللغة ولكن لم يتم نشرها.\n",
- inProgress: 'النشر جارٍ - يرجى الانتظار...',
- inProgressCounter: '%0% من أصل %1% صفحات تم نشرها...',
- nodePublish: '%0% تم نشره',
- nodePublishAll: '%0% والصفحات الفرعية تم نشرها',
- publishAll: 'نشر %0% وجميع الصفحات الفرعية الخاصة به',
- publishHelp: 'انقر على نشر لنشر %0% وجعل محتواه متاحًا علنًا.
\n يمكنك نشر هذه الصفحة وجميع صفحاتها الفرعية عن طريق تحديد تضمين الصفحات الفرعية غير المنشورة أدناه.\n ',
- },
- colorpicker: {
- noColors: 'لم تقم بتكوين أي ألوان معتمدة',
- },
- contentPicker: {
- allowedItemTypes: 'يمكنك فقط اختيار العناصر من النوع(s): %0%',
- defineDynamicRoot: 'حدد الجذر',
- defineRootNode: 'اختر جذر العقدة',
- pickedTrashedItem: 'لقد اخترت عنصر محتوى محذوف حاليًا أو في سلة المهملات',
- pickedTrashedItems: 'لقد اخترت عناصر محتوى محذوفة حاليًا أو في سلة المهملات',
- },
- dynamicRoot: {
- configurationTitle: 'استعلام الجذر الديناميكي',
- pickDynamicRootOriginTitle: 'اختر الأصل',
- pickDynamicRootOriginDesc: 'حدد الأصل لاستعلام الجذر الديناميكي الخاص بك',
- originRootTitle: 'الجذر',
- originRootDesc: 'العقدة الجذرية لجلسة التحرير هذه',
- originParentTitle: 'الوالد',
- originParentDesc: 'العقدة الأم للمصدر في جلسة التحرير هذه',
- originCurrentTitle: 'الحالي',
- originCurrentDesc: 'عقدة المحتوى التي هي المصدر لجلسة التحرير هذه',
- originSiteTitle: 'الموقع',
- originSiteDesc: 'ابحث عن أقرب عقدة بها اسم مضيف',
- originByKeyTitle: 'عقدة محددة',
- originByKeyDesc: 'اختر عقدة محددة كأصل لهذا الاستعلام',
- pickDynamicRootQueryStepTitle: 'أضف خطوة إلى الاستعلام',
- pickDynamicRootQueryStepDesc: 'حدد الخطوة التالية لاستعلام الجذر الديناميكي الخاص بك',
- queryStepNearestAncestorOrSelfTitle: 'أقرب سلف أو نفس',
- queryStepNearestAncestorOrSelfDesc: 'استعلام أقرب سلف أو نفس يتطابق مع أحد الأنواع المكونة',
- queryStepFurthestAncestorOrSelfTitle: 'أبعد سلف أو نفس',
- queryStepFurthestAncestorOrSelfDesc: 'استعلام أبعد سلف أو نفس يتطابق مع أحد الأنواع المكونة',
- queryStepNearestDescendantOrSelfTitle: 'أقرب نسل أو نفس',
- queryStepNearestDescendantOrSelfDesc: 'استعلام أقرب نسل أو نفس يتطابق مع أحد الأنواع المكونة',
- queryStepFurthestDescendantOrSelfTitle: 'أبعد نسل أو نفس',
- queryStepFurthestDescendantOrSelfDesc: 'استعلام أبعد نسل أو نفس يتطابق مع أحد الأنواع المكونة',
- queryStepCustomTitle: 'مخصص',
- queryStepCustomDesc: 'استعلام باستخدام خطوة استعلام مخصصة',
- addQueryStep: 'إضافة خطوة استعلام',
- queryStepTypes: 'التي تتطابق مع الأنواع: ',
- noValidStartNodeTitle: 'لا توجد محتويات متطابقة',
- noValidStartNodeDesc: 'تكوين هذه الخاصية لا يتطابق مع أي محتوى. أنشئ المحتوى المفقود أو اتصل بمسؤولك لضبط إعدادات الجذر الديناميكي لهذه الخاصية.',
- },
- mediaPicker: {
- deletedItem: 'عنصر محذوف',
- pickedTrashedItem: 'لقد اخترت عنصر وسائط محذوف حاليًا أو في سلة المهملات',
- pickedTrashedItems: 'لقد اخترت عناصر وسائط محذوفة حاليًا أو في سلة المهملات',
- trashed: 'محذوف',
- openMedia: 'افتح في مكتبة الوسائط',
- changeMedia: 'تغيير عنصر الوسائط',
- editMediaEntryLabel: 'تحرير %0% على %1%',
- confirmCancelMediaEntryCreationHeadline: 'تجاهل الإنشاء؟',
- confirmCancelMediaEntryCreationMessage: 'هل أنت متأكد أنك تريد إلغاء الإنشاء.',
- confirmCancelMediaEntryHasChanges: 'لقد أجريت تغييرات على هذا المحتوى. هل أنت متأكد أنك تريد\n تجاهلها؟\n ',
- confirmRemoveAllMediaEntryMessage: 'إزالة جميع الوسائط؟',
- tabClipboard: 'الحافظة',
- notAllowed: 'غير مسموح',
- openMediaPicker: 'افتح محدد الوسائط',
- },
- propertyEditorPicker: {
- title: 'اختر محرر الخصائص',
- openPropertyEditorPicker: 'اختر واجهة مستخدم محرر الخصائص',
- },
- relatedlinks: {
- enterExternal: 'أدخل رابط خارجي',
- chooseInternal: 'اختر صفحة داخلية',
- caption: 'التسمية التوضيحية',
- link: 'رابط',
- newWindow: 'فتح في نافذة جديدة',
- captionPlaceholder: 'أدخل التسمية التوضيحية للعرض',
- externalLinkPlaceholder: 'أدخل الرابط',
- },
- imagecropper: {
- reset: 'إعادة تعيين',
- updateEditCrop: 'تم',
- undoEditCrop: 'تراجع عن التعديلات',
- customCrop: 'مخصص',
- },
- rollback: {
- changes: 'التغييرات',
- created: 'أنشئ',
- headline: 'اختر إصدارًا للمقارنة مع الإصدار الحالي',
- currentVersion: 'الإصدار الحالي',
- diffHelp: 'يظهر هذا الاختلافات بين الإصدار الحالي (المسودة) والإصدار المحدد النص الأحمر سيتم حذفه في الإصدار المحدد، النص الأخضر سيتم إضافته',
- noDiff: 'لا توجد اختلافات بين الإصدار الحالي (المسودة) والإصدار المحدد',
- documentRolledBack: 'تمت استعادة الوثيقة',
- htmlHelp: 'يعرض هذا الإصدار المحدد كـ HTML، إذا كنت ترغب في رؤية الفرق بين إصدارين في نفس الوقت، استخدم عرض الفرق\n ',
- rollbackTo: 'استعادة إلى',
- selectVersion: 'اختر الإصدار',
- view: 'عرض',
- pagination: 'عرض الإصدار %0% إلى %1% من %2% إصدارات',
- versions: 'الإصدارات',
- currentDraftVersion: 'الإصدار الحالي المسودة',
- currentPublishedVersion: 'الإصدار الحالي المنشور',
- },
- scripts: {
- editscript: 'تحرير ملف السكربت',
- },
- sections: {
- content: 'المحتوى',
- media: 'الوسائط',
- member: 'الأعضاء',
- packages: 'الحزم',
- marketplace: 'السوق',
- settings: 'الإعدادات',
- translation: 'القاموس',
- users: 'المستخدمون',
- },
+ doNothing: 'الصق مع التنسيق الكامل (غير موصى به)',
+ errorMessage:
+ 'النص الذي تحاول لصقه يحتوي على أحرف خاصة أو تنسيق. قد يكون ذلك بسبب نسخ النص من Microsoft Word. يمكن لـ Umbraco إزالة الأحرف الخاصة أو التنسيق تلقائيًا، بحيث يكون المحتوى الملصق أكثر ملاءمة للويب.\n',
+ removeAll: 'الصق كـ نص خام بدون أي تنسيق على الإطلاق',
+ removeSpecialFormattering: 'الصق، ولكن قم بإزالة التنسيق (موصى به)',
+ },
+ publicAccess: {
+ paGroups: 'حماية قائمة على المجموعة',
+ paGroupsHelp: 'إذا كنت ترغب في منح الوصول إلى جميع أعضاء مجموعات الأعضاء المحددة',
+ paGroupsNoGroups: 'تحتاج إلى إنشاء مجموعة أعضاء قبل أن تتمكن من استخدام المصادقة القائمة على المجموعة',
+ paErrorPage: 'صفحة الخطأ',
+ paErrorPageHelp: 'تستخدم عندما يكون الأشخاص مسجلين الدخول، ولكن ليس لديهم وصول',
+ paHowWould: 'اختر كيفية تقييد الوصول إلى الصفحة %0%',
+ paIsProtected: '%0% محمية الآن',
+ paIsRemoved: 'تمت إزالة الحماية من %0%',
+ paLoginPage: 'صفحة تسجيل الدخول',
+ paLoginPageHelp: 'اختر الصفحة التي تحتوي على نموذج تسجيل الدخول',
+ paRemoveProtection: 'إزالة الحماية...',
+ paRemoveProtectionConfirm: 'هل أنت متأكد أنك تريد إزالة الحماية من الصفحة %0%؟',
+ paSelectPages: 'اختر الصفحات التي تحتوي على نموذج تسجيل الدخول ورسائل الخطأ',
+ paSelectGroups: 'اختر المجموعات التي لديها وصول إلى الصفحة %0%',
+ paSelectMembers: 'اختر الأعضاء الذين لديهم وصول إلى الصفحة %0%',
+ paMembers: 'حماية الأعضاء المحددين',
+ paMembersHelp: 'إذا كنت ترغب في منح الوصول إلى أعضاء محددين',
+ },
+ publish: {
+ invalidPublishBranchPermissions: 'أذونات المستخدم غير كافية لنشر جميع الوثائق التابعة',
+ contentPublishedFailedIsTrashed: '\n %0% لم يتم نشره لأن العنصر في سلة المهملات.\n ',
+ contentPublishedFailedAwaitingRelease: '\n %0% لم يتم نشره لأن العنصر مجدول للإصدار.\n ',
+ contentPublishedFailedExpired: '\n %0% لم يتم نشره لأن العنصر منتهي الصلاحية.\n ',
+ contentPublishedFailedInvalid: '\n %0% لم يتم نشره لأن بعض الخصائص لم تتجاوز قواعد التحقق.\n ',
+ contentPublishedFailedByEvent: '\n %0% لم يتم نشره، ألغى ملحق طرف ثالث الإجراء.\n ',
+ contentPublishedFailedByParent: '\n %0% لا يمكن نشره، لأن صفحة الوالد غير منشورة.\n ',
+ contentPublishedFailedByMissingName: '%0% لا يمكن نشره، لأنه يفتقر إلى اسم.',
+ contentPublishedFailedReqCultureValidationError:
+ "فشل التحقق من اللغة المطلوبة '%0%'. تم حفظ هذه اللغة ولكن لم يتم نشرها.\n",
+ inProgress: 'النشر جارٍ - يرجى الانتظار...',
+ inProgressCounter: '%0% من أصل %1% صفحات تم نشرها...',
+ nodePublish: '%0% تم نشره',
+ nodePublishAll: '%0% والصفحات الفرعية تم نشرها',
+ publishAll: 'نشر %0% وجميع الصفحات الفرعية الخاصة به',
+ publishHelp:
+ 'انقر على نشر لنشر %0% وجعل محتواه متاحًا علنًا.
\n يمكنك نشر هذه الصفحة وجميع صفحاتها الفرعية عن طريق تحديد تضمين الصفحات الفرعية غير المنشورة أدناه.\n ',
+ },
+ colorpicker: {
+ noColors: 'لم تقم بتكوين أي ألوان معتمدة',
+ },
+ contentPicker: {
+ allowedItemTypes: 'يمكنك فقط اختيار العناصر من النوع(s): %0%',
+ defineDynamicRoot: 'حدد الجذر',
+ defineRootNode: 'اختر جذر العقدة',
+ pickedTrashedItem: 'لقد اخترت عنصر محتوى محذوف حاليًا أو في سلة المهملات',
+ pickedTrashedItems: 'لقد اخترت عناصر محتوى محذوفة حاليًا أو في سلة المهملات',
+ },
+ dynamicRoot: {
+ configurationTitle: 'استعلام الجذر الديناميكي',
+ pickDynamicRootOriginTitle: 'اختر الأصل',
+ pickDynamicRootOriginDesc: 'حدد الأصل لاستعلام الجذر الديناميكي الخاص بك',
+ originRootTitle: 'الجذر',
+ originRootDesc: 'العقدة الجذرية لجلسة التحرير هذه',
+ originParentTitle: 'الوالد',
+ originParentDesc: 'العقدة الأم للمصدر في جلسة التحرير هذه',
+ originCurrentTitle: 'الحالي',
+ originCurrentDesc: 'عقدة المحتوى التي هي المصدر لجلسة التحرير هذه',
+ originSiteTitle: 'الموقع',
+ originSiteDesc: 'ابحث عن أقرب عقدة بها اسم مضيف',
+ originByKeyTitle: 'عقدة محددة',
+ originByKeyDesc: 'اختر عقدة محددة كأصل لهذا الاستعلام',
+ pickDynamicRootQueryStepTitle: 'أضف خطوة إلى الاستعلام',
+ pickDynamicRootQueryStepDesc: 'حدد الخطوة التالية لاستعلام الجذر الديناميكي الخاص بك',
+ queryStepNearestAncestorOrSelfTitle: 'أقرب سلف أو نفس',
+ queryStepNearestAncestorOrSelfDesc: 'استعلام أقرب سلف أو نفس يتطابق مع أحد الأنواع المكونة',
+ queryStepFurthestAncestorOrSelfTitle: 'أبعد سلف أو نفس',
+ queryStepFurthestAncestorOrSelfDesc: 'استعلام أبعد سلف أو نفس يتطابق مع أحد الأنواع المكونة',
+ queryStepNearestDescendantOrSelfTitle: 'أقرب نسل أو نفس',
+ queryStepNearestDescendantOrSelfDesc: 'استعلام أقرب نسل أو نفس يتطابق مع أحد الأنواع المكونة',
+ queryStepFurthestDescendantOrSelfTitle: 'أبعد نسل أو نفس',
+ queryStepFurthestDescendantOrSelfDesc: 'استعلام أبعد نسل أو نفس يتطابق مع أحد الأنواع المكونة',
+ queryStepCustomTitle: 'مخصص',
+ queryStepCustomDesc: 'استعلام باستخدام خطوة استعلام مخصصة',
+ addQueryStep: 'إضافة خطوة استعلام',
+ queryStepTypes: 'التي تتطابق مع الأنواع: ',
+ noValidStartNodeTitle: 'لا توجد محتويات متطابقة',
+ noValidStartNodeDesc:
+ 'تكوين هذه الخاصية لا يتطابق مع أي محتوى. أنشئ المحتوى المفقود أو اتصل بمسؤولك لضبط إعدادات الجذر الديناميكي لهذه الخاصية.',
+ },
+ mediaPicker: {
+ deletedItem: 'عنصر محذوف',
+ pickedTrashedItem: 'لقد اخترت عنصر وسائط محذوف حاليًا أو في سلة المهملات',
+ pickedTrashedItems: 'لقد اخترت عناصر وسائط محذوفة حاليًا أو في سلة المهملات',
+ trashed: 'محذوف',
+ openMedia: 'افتح في مكتبة الوسائط',
+ changeMedia: 'تغيير عنصر الوسائط',
+ editMediaEntryLabel: 'تحرير %0% على %1%',
+ confirmCancelMediaEntryCreationHeadline: 'تجاهل الإنشاء؟',
+ confirmCancelMediaEntryCreationMessage: 'هل أنت متأكد أنك تريد إلغاء الإنشاء.',
+ confirmCancelMediaEntryHasChanges: 'لقد أجريت تغييرات على هذا المحتوى. هل أنت متأكد أنك تريد\n تجاهلها؟\n ',
+ confirmRemoveAllMediaEntryMessage: 'إزالة جميع الوسائط؟',
+ tabClipboard: 'الحافظة',
+ notAllowed: 'غير مسموح',
+ openMediaPicker: 'افتح محدد الوسائط',
+ },
+ propertyEditorPicker: {
+ title: 'اختر محرر الخصائص',
+ openPropertyEditorPicker: 'اختر واجهة مستخدم محرر الخصائص',
+ },
+ relatedlinks: {
+ enterExternal: 'أدخل رابط خارجي',
+ chooseInternal: 'اختر صفحة داخلية',
+ caption: 'التسمية التوضيحية',
+ link: 'رابط',
+ newWindow: 'فتح في نافذة جديدة',
+ captionPlaceholder: 'أدخل التسمية التوضيحية للعرض',
+ externalLinkPlaceholder: 'أدخل الرابط',
+ },
+ imagecropper: {
+ reset: 'إعادة تعيين',
+ updateEditCrop: 'تم',
+ undoEditCrop: 'تراجع عن التعديلات',
+ customCrop: 'مخصص',
+ },
+ rollback: {
+ changes: 'التغييرات',
+ created: 'أنشئ',
+ headline: 'اختر إصدارًا للمقارنة مع الإصدار الحالي',
+ currentVersion: 'الإصدار الحالي',
+ diffHelp:
+ 'يظهر هذا الاختلافات بين الإصدار الحالي (المسودة) والإصدار المحدد النص الأحمر سيتم حذفه في الإصدار المحدد، النص الأخضر سيتم إضافته',
+ noDiff: 'لا توجد اختلافات بين الإصدار الحالي (المسودة) والإصدار المحدد',
+ documentRolledBack: 'تمت استعادة الوثيقة',
+ htmlHelp:
+ 'يعرض هذا الإصدار المحدد كـ HTML، إذا كنت ترغب في رؤية الفرق بين إصدارين في نفس الوقت، استخدم عرض الفرق\n ',
+ rollbackTo: 'استعادة إلى',
+ selectVersion: 'اختر الإصدار',
+ view: 'عرض',
+ pagination: 'عرض الإصدار %0% إلى %1% من %2% إصدارات',
+ versions: 'الإصدارات',
+ currentDraftVersion: 'الإصدار الحالي المسودة',
+ currentPublishedVersion: 'الإصدار الحالي المنشور',
+ },
+ scripts: {
+ editscript: 'تحرير ملف السكربت',
+ },
+ sections: {
+ content: 'المحتوى',
+ media: 'الوسائط',
+ member: 'الأعضاء',
+ packages: 'الحزم',
+ marketplace: 'السوق',
+ settings: 'الإعدادات',
+ translation: 'القاموس',
+ users: 'المستخدمون',
+ },
help: {
- tours: 'الجولات',
- theBestUmbracoVideoTutorials: 'أفضل دروس الفيديو في Umbraco',
- umbracoForum: 'زيارة our.umbraco.com',
- umbracoTv: 'زيارة umbraco.tv',
- umbracoLearningBase: 'شاهد دروس الفيديو المجانية لدينا',
- umbracoLearningBaseDescription: 'على قاعدة تعلم Umbraco',
- },
- settings: {
- defaulttemplate: 'القالب الافتراضي',
- importDocumentTypeHelp: 'للاستيراد نوع الوثيقة ابحث عن ملف ".udt" على جهاز الكمبيوتر الخاص بك بالنقر على زر "استيراد" (سيُطلب منك تأكيد ذلك في الشاشة التالية)',
- newtabname: 'عنوان التبويب الجديد',
- nodetype: 'نوع العقدة',
- objecttype: 'النوع',
- stylesheet: 'ورقة الأنماط',
- script: 'السكريبت',
- tab: 'التبويب',
- tabname: 'عنوان التبويب',
- tabs: 'التبويبات',
- contentTypeEnabled: 'نوع المحتوى الرئيسي مفعل',
- contentTypeUses: 'هذا النوع من المحتوى يستخدم',
- noPropertiesDefinedOnTab: 'لا توجد خصائص محددة على هذا التبويب. انقر على رابط "إضافة خاصية جديدة" في الأعلى لإنشاء خاصية جديدة.',
- createMatchingTemplate: 'إنشاء قالب مطابق',
- addIcon: 'إضافة أيقونة',
- },
- sort: {
- sortOrder: 'ترتيب الفرز',
- sortCreationDate: 'تاريخ الإنشاء',
- sortDone: 'تمت عملية الفرز.',
- sortHelp: 'اسحب العناصر المختلفة لأعلى أو لأسفل أدناه لتحديد كيفية ترتيبها. أو انقر على رؤوس الأعمدة لفرز جميع العناصر.',
- sortPleaseWait: 'يرجى الانتظار. يتم فرز العناصر، قد يستغرق ذلك بعض الوقت.',
- sortEmptyState: 'لا تحتوي هذه العقدة على عقدة فرعية لفرزها',
- },
- speechBubbles: {
- validationFailedHeader: 'التحقق',
- validationFailedMessage: 'يجب إصلاح أخطاء التحقق قبل أن يمكن حفظ العنصر',
- operationFailedHeader: 'فشل',
- operationSavedHeader: 'تم الحفظ',
- operationSavedHeaderReloadUser: 'تم الحفظ. لعرض التغييرات، يرجى إعادة تحميل متصفحك',
- invalidUserPermissionsText: 'أذونات المستخدم غير كافية، لم نتمكن من إتمام العملية',
- operationCancelledHeader: 'ملغي',
- operationCancelledText: 'تم إلغاء العملية بواسطة ملحق طرف ثالث',
- folderUploadNotAllowed: 'يتم تحميل هذا الملف كجزء من مجلد، ولكن إنشاء مجلد جديد غير مسموح هنا',
- folderCreationNotAllowed: 'إنشاء مجلد جديد غير مسموح هنا',
- contentTypeDublicatePropertyType: 'نوع الخاصية موجود بالفعل',
- contentTypePropertyTypeCreated: 'تم إنشاء نوع الخاصية',
- contentTypePropertyTypeCreatedText: 'الاسم: %0% نوع البيانات: %1%',
- contentTypePropertyTypeDeleted: 'تم حذف نوع الخاصية',
- contentTypeSavedHeader: 'تم حفظ نوع الوثيقة',
- contentTypeTabCreated: 'تم إنشاء التبويب',
- contentTypeTabDeleted: 'تم حذف التبويب',
- contentTypeTabDeletedText: 'تم حذف التبويب بالمعرف: %0%',
- cssErrorHeader: 'لم يتم حفظ ورقة الأنماط',
- cssSavedHeader: 'تم حفظ ورقة الأنماط',
- cssSavedText: 'تم حفظ ورقة الأنماط بدون أي أخطاء',
- dataTypeSaved: 'تم حفظ نوع البيانات',
- dictionaryItemSaved: 'تم حفظ عنصر القاموس',
- editContentPublishedHeader: 'تم نشر المحتوى',
- editContentPublishedText: 'وهو مرئي على الموقع',
- editMultiContentPublishedText: 'تم نشر %0% مستندات وهي مرئية على الموقع',
- editVariantPublishedText: '%0% تم نشره وهو مرئي على الموقع',
- editMultiVariantPublishedText: '%0% مستندات تم نشرها للغات %1% وهي مرئية على الموقع',
- editBlueprintSavedHeader: 'تم حفظ مخطط الوثيقة',
- editBlueprintSavedText: 'تم حفظ التغييرات بنجاح',
- editContentSavedHeader: 'تم حفظ المحتوى',
- editContentSavedText: 'تذكر النشر لجعل التغييرات مرئية',
- editContentScheduledSavedText: 'تم تحديث جدول النشر',
- editVariantSavedText: '%0% تم حفظه',
- editContentSendToPublish: 'تم إرسالها للموافقة',
- editContentSendToPublishText: 'تم إرسال التغييرات للموافقة',
- editVariantSendToPublishText: '%0% تغييرات تم إرسالها للموافقة',
- editMediaSaved: 'تم حفظ الوسائط',
- editMediaSavedText: 'تم حفظ الوسائط بدون أي أخطاء',
- editMemberSaved: 'تم حفظ العضو',
- editStylesheetPropertySaved: 'تم حفظ خاصية ورقة الأنماط',
- editStylesheetSaved: 'تم حفظ ورقة الأنماط',
- editTemplateSaved: 'تم حفظ القالب',
- editUserError: 'حدث خطأ عند حفظ المستخدم (تحقق من السجل)',
- editUserSaved: 'تم حفظ المستخدم',
- editUserTypeSaved: 'تم حفظ نوع المستخدم',
- editUserGroupSaved: 'تم حفظ مجموعة المستخدمين',
- editCulturesAndHostnamesSaved: 'تم حفظ الثقافات وأسماء المضيفين',
- editCulturesAndHostnamesError: 'حدث خطأ عند حفظ الثقافات وأسماء المضيفين',
- fileErrorHeader: 'لم يتم حفظ الملف',
- fileErrorText: 'لم يتم حفظ الملف. يرجى التحقق من أذونات الملف',
- fileSavedHeader: 'تم حفظ الملف',
- fileSavedText: 'تم حفظ الملف بدون أي أخطاء',
- languageSaved: 'تم حفظ اللغة',
- mediaTypeSavedHeader: 'تم حفظ نوع الوسائط',
- memberTypeSavedHeader: 'تم حفظ نوع العضو',
- memberGroupSavedHeader: 'تم حفظ مجموعة الأعضاء',
- memberGroupNameDuplicate: 'مجموعة أعضاء أخرى بنفس الاسم موجودة بالفعل',
- templateErrorHeader: 'لم يتم حفظ القالب',
- templateErrorText: 'يرجى التأكد من عدم وجود قالبين بنفس الاسم المستعار',
- templateSavedHeader: 'تم حفظ القالب',
- templateSavedText: 'تم حفظ القالب بدون أي أخطاء!',
- contentUnpublished: 'تم إلغاء نشر المحتوى',
- contentCultureUnpublished: 'تم إلغاء نشر التباين %0%',
- contentMandatoryCultureUnpublished: "اللغة الإلزامية '%0%' تم إلغاء نشرها. جميع اللغات لهذا العنصر المحتوى أصبحت الآن غير منشورة.",
- partialViewSavedHeader: 'تم حفظ العرض الجزئي',
- partialViewSavedText: 'تم حفظ العرض الجزئي بدون أي أخطاء!',
- partialViewErrorHeader: 'لم يتم حفظ العرض الجزئي',
- partialViewErrorText: 'حدث خطأ أثناء حفظ الملف.',
- permissionsSavedFor: 'تم حفظ الأذونات لـ',
- deleteUserGroupsSuccess: 'تم حذف %0% مجموعات مستخدمين',
- deleteUserGroupSuccess: '%0% تم حذفه',
- enableUsersSuccess: 'تم تفعيل %0% مستخدمين',
- disableUsersSuccess: 'تم تعطيل %0% مستخدمين',
- enableUserSuccess: '%0% تم تفعيله الآن',
- disableUserSuccess: '%0% تم تعطيله الآن',
- setUserGroupOnUsersSuccess: 'تم تعيين مجموعات المستخدمين',
- unlockUsersSuccess: 'تم فك قفل %0% مستخدمين',
- unlockUserSuccess: '%0% تم فك قفله الآن',
- memberExportedSuccess: 'تم تصدير العضو إلى ملف',
- memberExportedError: 'حدث خطأ أثناء تصدير العضو',
- deleteUserSuccess: 'تم حذف المستخدم %0%',
- resendInviteHeader: 'دعوة المستخدم',
- resendInviteSuccess: 'تم إعادة إرسال الدعوة إلى %0%',
- contentReqCulturePublishError: "لا يمكن نشر الوثيقة لأن '%0%' المطلوب غير منشور",
- contentCultureValidationError: "فشل التحقق من اللغة '%0%'",
- documentTypeExportedSuccess: 'تم تصدير نوع الوثيقة إلى ملف',
- documentTypeExportedError: 'حدث خطأ أثناء تصدير نوع الوثيقة',
- dictionaryItemExportedSuccess: 'تم تصدير عنصر (عناصر) القاموس إلى ملف',
- dictionaryItemExportedError: 'حدث خطأ أثناء تصدير عنصر (عناصر) القاموس',
- dictionaryItemImported: 'تم استيراد عنصر (عناصر) القاموس التالية!',
- scheduleErrReleaseDate1: 'تاريخ الإصدار لا يمكن أن يكون في الماضي',
- scheduleErrReleaseDate2: "لا يمكن جدولة الوثيقة للنشر لأن '%0%' المطلوب غير منشور",
- scheduleErrReleaseDate3: "لا يمكن جدولة الوثيقة للنشر لأن '%0%' المطلوب له تاريخ نشر لاحق من لغة غير إلزامية",
- scheduleErrExpireDate1: 'تاريخ انتهاء الصلاحية لا يمكن أن يكون في الماضي',
- scheduleErrExpireDate2: 'تاريخ انتهاء الصلاحية لا يمكن أن يكون قبل تاريخ الإصدار',
- publishWithNoDomains: 'لم يتم تكوين النطاقات لموقع متعدد اللغات، يرجى الاتصال بالمسؤول، راجع السجل لمزيد من المعلومات',
- publishWithMissingDomain: 'لا يوجد مجال مكون لـ %0%، يرجى الاتصال بالمسؤول، راجع السجل لمزيد من المعلومات',
- preventCleanupEnableError: 'حدث خطأ أثناء تمكين تنظيف الإصدارات لـ %0%',
- preventCleanupDisableError: 'حدث خطأ أثناء تعطيل تنظيف الإصدارات لـ %0%',
- copySuccessMessage: 'تم نسخ معلومات النظام الخاصة بك بنجاح إلى الحافظة',
- cannotCopyInformation: 'لم نتمكن من نسخ معلومات النظام الخاصة بك إلى الحافظة',
- },
- stylesheet: {
- addRule: 'إضافة نمط',
- editRule: 'تعديل النمط',
- editorRules: 'أنماط محرر النصوص الغني',
- editorRulesHelp: 'حدد الأنماط التي يجب أن تكون متاحة في محرر النصوص الغني لهذه ورقة الأنماط',
- editstylesheet: 'تعديل ورقة الأنماط',
- editstylesheetproperty: 'تعديل خاصية ورقة الأنماط',
- nameHelp: 'الاسم المعروض في قائمة اختيار الأنماط في المحرر',
- preview: 'معاينة',
- previewHelp: 'كيف سيبدو النص في محرر النصوص الغني.',
- selector: 'المحدد',
- selectorHelp: 'يستخدم بناء جملة CSS، على سبيل المثال "h1" أو ".redHeader"',
- styles: 'الأنماط',
- stylesHelp: 'CSS الذي يجب تطبيقه في محرر النصوص الغني، على سبيل المثال "color:red;"',
- tabCode: 'الكود',
- tabRules: 'محرر النصوص الغني',
- },
- template: {
- runtimeModeProduction: 'المحتوى غير قابل للتحرير عند استخدام وضع التشغيل Production.',
- deleteByIdFailed: 'فشل في حذف القالب بالمعرف %0%',
- edittemplate: 'تعديل القالب',
- insertSections: 'الأقسام',
- insertContentArea: 'إدراج منطقة المحتوى',
- insertContentAreaPlaceHolder: 'إدراج عنصر نائبة لمنطقة المحتوى',
- insert: 'إدراج',
- insertDesc: 'اختر ما تريد إدراجه في قالبك',
- insertDictionaryItem: 'عنصر القاموس',
- insertDictionaryItemDesc: 'عنصر القاموس هو عنصر نائبة لنص قابل للترجمة، مما يسهل إنشاء تصميمات لمواقع متعددة اللغات.',
- insertMacro: 'ماكرو',
- insertMacroDesc: 'ماكرو هو مكون قابل للتكوين رائع للأجزاء القابلة لإعادة الاستخدام من التصميم الخاص بك، حيث تحتاج إلى خيار لتوفير معلمات، مثل المعارض والنماذج والقوائم.',
- insertPageField: 'القيمة',
- insertPageFieldDesc: 'يعرض قيمة حقل مسمى من الصفحة الحالية، مع خيارات لتعديل القيمة أو الرجوع إلى القيم البديلة.',
- insertPartialView: 'عرض جزئي',
- insertPartialViewDesc: 'العرض الجزئي هو ملف قالب منفصل يمكن عرضه داخل قالب آخر، وهو رائع لإعادة استخدام الترميز أو لفصل القوالب المعقدة إلى ملفات منفصلة.',
- mastertemplate: 'القالب الرئيسي',
- noMaster: 'لا يوجد رئيسي',
- renderBody: 'عرض القالب الفرعي',
- renderBodyDesc: 'يعرض محتويات القالب الفرعي، من خلال إدراج عنصر نائبة @RenderBody().',
- defineSection: 'تحديد قسم مسمى',
- defineSectionDesc: 'يحدد جزء من القالب كقسم مسمى عن طريق لفه في @section { ... }. يمكن عرض هذا في منطقة محددة من القالب الرئيسي لهذا القالب، باستخدام @RenderSection.',
- renderSection: 'عرض قسم مسمى',
- renderSectionDesc: 'يعرض منطقة مسمى من قالب فرعي، من خلال إدراج عنصر نائبة @RenderSection(name). هذا يعرض منطقة من قالب فرعي والتي يتم لفها في تعريف @section [name]{ ... } المقابل.',
- sectionName: 'اسم القسم',
- sectionMandatory: 'القسم إلزامي',
- sectionMandatoryDesc: 'إذا كان إلزاميًا، يجب أن يحتوي القالب الفرعي على تعريف @section، خلاف ذلك يتم عرض خطأ.',
- queryBuilder: 'باني الاستعلام',
- itemsReturned: 'العناصر التي تم إرجاعها، في',
- iWant: 'أريد',
- allContent: 'جميع المحتويات',
- contentOfType: 'محتوى من نوع "%0%"',
- from: 'من',
- websiteRoot: 'موقعي',
- where: 'حيث',
- and: 'و',
- is: 'هو',
- isNot: 'ليس',
- before: 'قبل',
- beforeIncDate: 'قبل (بما في ذلك التاريخ المحدد)',
- after: 'بعد',
- afterIncDate: 'بعد (بما في ذلك التاريخ المحدد)',
- equals: 'يساوي',
- doesNotEqual: 'لا يساوي',
- contains: 'يحتوي على',
- doesNotContain: 'لا يحتوي على',
- greaterThan: 'أكبر من',
- greaterThanEqual: 'أكبر من أو يساوي',
- lessThan: 'أقل من',
- lessThanEqual: 'أقل من أو يساوي',
- id: 'المعرف',
- name: 'الاسم',
- createdDate: 'تاريخ الإنشاء',
- lastUpdatedDate: 'تاريخ آخر تحديث',
- orderBy: 'ترتيب حسب',
- ascending: 'تصاعدي',
- descending: 'تنازلي',
- template: 'القالب',
- },
+ tours: 'الجولات',
+ theBestUmbracoVideoTutorials: 'أفضل دروس الفيديو في Umbraco',
+ umbracoForum: 'زيارة our.umbraco.com',
+ umbracoTv: 'زيارة umbraco.tv',
+ umbracoLearningBase: 'شاهد دروس الفيديو المجانية لدينا',
+ umbracoLearningBaseDescription: 'على قاعدة تعلم Umbraco',
+ },
+ settings: {
+ defaulttemplate: 'القالب الافتراضي',
+ importDocumentTypeHelp:
+ 'للاستيراد نوع الوثيقة ابحث عن ملف ".udt" على جهاز الكمبيوتر الخاص بك بالنقر على زر "استيراد" (سيُطلب منك تأكيد ذلك في الشاشة التالية)',
+ newtabname: 'عنوان التبويب الجديد',
+ nodetype: 'نوع العقدة',
+ objecttype: 'النوع',
+ stylesheet: 'ورقة الأنماط',
+ script: 'السكريبت',
+ tab: 'التبويب',
+ tabname: 'عنوان التبويب',
+ tabs: 'التبويبات',
+ contentTypeEnabled: 'نوع المحتوى الرئيسي مفعل',
+ contentTypeUses: 'هذا النوع من المحتوى يستخدم',
+ noPropertiesDefinedOnTab:
+ 'لا توجد خصائص محددة على هذا التبويب. انقر على رابط "إضافة خاصية جديدة" في الأعلى لإنشاء خاصية جديدة.',
+ createMatchingTemplate: 'إنشاء قالب مطابق',
+ addIcon: 'إضافة أيقونة',
+ },
+ sort: {
+ sortOrder: 'ترتيب الفرز',
+ sortCreationDate: 'تاريخ الإنشاء',
+ sortDone: 'تمت عملية الفرز.',
+ sortHelp:
+ 'اسحب العناصر المختلفة لأعلى أو لأسفل أدناه لتحديد كيفية ترتيبها. أو انقر على رؤوس الأعمدة لفرز جميع العناصر.',
+ sortPleaseWait: 'يرجى الانتظار. يتم فرز العناصر، قد يستغرق ذلك بعض الوقت.',
+ sortEmptyState: 'لا تحتوي هذه العقدة على عقدة فرعية لفرزها',
+ },
+ speechBubbles: {
+ validationFailedHeader: 'التحقق',
+ validationFailedMessage: 'يجب إصلاح أخطاء التحقق قبل أن يمكن حفظ العنصر',
+ operationFailedHeader: 'فشل',
+ operationSavedHeader: 'تم الحفظ',
+ operationSavedHeaderReloadUser: 'تم الحفظ. لعرض التغييرات، يرجى إعادة تحميل متصفحك',
+ invalidUserPermissionsText: 'أذونات المستخدم غير كافية، لم نتمكن من إتمام العملية',
+ operationCancelledHeader: 'ملغي',
+ operationCancelledText: 'تم إلغاء العملية بواسطة ملحق طرف ثالث',
+ folderUploadNotAllowed: 'يتم تحميل هذا الملف كجزء من مجلد، ولكن إنشاء مجلد جديد غير مسموح هنا',
+ folderCreationNotAllowed: 'إنشاء مجلد جديد غير مسموح هنا',
+ contentTypeDublicatePropertyType: 'نوع الخاصية موجود بالفعل',
+ contentTypePropertyTypeCreated: 'تم إنشاء نوع الخاصية',
+ contentTypePropertyTypeCreatedText: 'الاسم: %0% نوع البيانات: %1%',
+ contentTypePropertyTypeDeleted: 'تم حذف نوع الخاصية',
+ contentTypeSavedHeader: 'تم حفظ نوع الوثيقة',
+ contentTypeTabCreated: 'تم إنشاء التبويب',
+ contentTypeTabDeleted: 'تم حذف التبويب',
+ contentTypeTabDeletedText: 'تم حذف التبويب بالمعرف: %0%',
+ cssErrorHeader: 'لم يتم حفظ ورقة الأنماط',
+ cssSavedHeader: 'تم حفظ ورقة الأنماط',
+ cssSavedText: 'تم حفظ ورقة الأنماط بدون أي أخطاء',
+ dataTypeSaved: 'تم حفظ نوع البيانات',
+ dictionaryItemSaved: 'تم حفظ عنصر القاموس',
+ editContentPublishedHeader: 'تم نشر المحتوى',
+ editContentPublishedText: 'وهو مرئي على الموقع',
+ editMultiContentPublishedText: 'تم نشر %0% مستندات وهي مرئية على الموقع',
+ editVariantPublishedText: '%0% تم نشره وهو مرئي على الموقع',
+ editMultiVariantPublishedText: '%0% مستندات تم نشرها للغات %1% وهي مرئية على الموقع',
+ editBlueprintSavedHeader: 'تم حفظ مخطط الوثيقة',
+ editBlueprintSavedText: 'تم حفظ التغييرات بنجاح',
+ editContentSavedHeader: 'تم حفظ المحتوى',
+ editContentSavedText: 'تذكر النشر لجعل التغييرات مرئية',
+ editContentScheduledSavedText: 'تم تحديث جدول النشر',
+ editVariantSavedText: '%0% تم حفظه',
+ editContentSendToPublish: 'تم إرسالها للموافقة',
+ editContentSendToPublishText: 'تم إرسال التغييرات للموافقة',
+ editVariantSendToPublishText: '%0% تغييرات تم إرسالها للموافقة',
+ editMediaSaved: 'تم حفظ الوسائط',
+ editMediaSavedText: 'تم حفظ الوسائط بدون أي أخطاء',
+ editMemberSaved: 'تم حفظ العضو',
+ editStylesheetPropertySaved: 'تم حفظ خاصية ورقة الأنماط',
+ editStylesheetSaved: 'تم حفظ ورقة الأنماط',
+ editTemplateSaved: 'تم حفظ القالب',
+ editUserError: 'حدث خطأ عند حفظ المستخدم (تحقق من السجل)',
+ editUserSaved: 'تم حفظ المستخدم',
+ editUserTypeSaved: 'تم حفظ نوع المستخدم',
+ editUserGroupSaved: 'تم حفظ مجموعة المستخدمين',
+ editCulturesAndHostnamesSaved: 'تم حفظ الثقافات وأسماء المضيفين',
+ editCulturesAndHostnamesError: 'حدث خطأ عند حفظ الثقافات وأسماء المضيفين',
+ fileErrorHeader: 'لم يتم حفظ الملف',
+ fileErrorText: 'لم يتم حفظ الملف. يرجى التحقق من أذونات الملف',
+ fileSavedHeader: 'تم حفظ الملف',
+ fileSavedText: 'تم حفظ الملف بدون أي أخطاء',
+ languageSaved: 'تم حفظ اللغة',
+ mediaTypeSavedHeader: 'تم حفظ نوع الوسائط',
+ memberTypeSavedHeader: 'تم حفظ نوع العضو',
+ memberGroupSavedHeader: 'تم حفظ مجموعة الأعضاء',
+ memberGroupNameDuplicate: 'مجموعة أعضاء أخرى بنفس الاسم موجودة بالفعل',
+ templateErrorHeader: 'لم يتم حفظ القالب',
+ templateErrorText: 'يرجى التأكد من عدم وجود قالبين بنفس الاسم المستعار',
+ templateSavedHeader: 'تم حفظ القالب',
+ templateSavedText: 'تم حفظ القالب بدون أي أخطاء!',
+ contentUnpublished: 'تم إلغاء نشر المحتوى',
+ contentCultureUnpublished: 'تم إلغاء نشر التباين %0%',
+ contentMandatoryCultureUnpublished:
+ "اللغة الإلزامية '%0%' تم إلغاء نشرها. جميع اللغات لهذا العنصر المحتوى أصبحت الآن غير منشورة.",
+ partialViewSavedHeader: 'تم حفظ العرض الجزئي',
+ partialViewSavedText: 'تم حفظ العرض الجزئي بدون أي أخطاء!',
+ partialViewErrorHeader: 'لم يتم حفظ العرض الجزئي',
+ partialViewErrorText: 'حدث خطأ أثناء حفظ الملف.',
+ permissionsSavedFor: 'تم حفظ الأذونات لـ',
+ deleteUserGroupsSuccess: 'تم حذف %0% مجموعات مستخدمين',
+ deleteUserGroupSuccess: '%0% تم حذفه',
+ enableUsersSuccess: 'تم تفعيل %0% مستخدمين',
+ disableUsersSuccess: 'تم تعطيل %0% مستخدمين',
+ enableUserSuccess: '%0% تم تفعيله الآن',
+ disableUserSuccess: '%0% تم تعطيله الآن',
+ setUserGroupOnUsersSuccess: 'تم تعيين مجموعات المستخدمين',
+ unlockUsersSuccess: 'تم فك قفل %0% مستخدمين',
+ unlockUserSuccess: '%0% تم فك قفله الآن',
+ memberExportedSuccess: 'تم تصدير العضو إلى ملف',
+ memberExportedError: 'حدث خطأ أثناء تصدير العضو',
+ deleteUserSuccess: 'تم حذف المستخدم %0%',
+ resendInviteHeader: 'دعوة المستخدم',
+ resendInviteSuccess: 'تم إعادة إرسال الدعوة إلى %0%',
+ contentReqCulturePublishError: "لا يمكن نشر الوثيقة لأن '%0%' المطلوب غير منشور",
+ contentCultureValidationError: "فشل التحقق من اللغة '%0%'",
+ documentTypeExportedSuccess: 'تم تصدير نوع الوثيقة إلى ملف',
+ documentTypeExportedError: 'حدث خطأ أثناء تصدير نوع الوثيقة',
+ dictionaryItemExportedSuccess: 'تم تصدير عنصر (عناصر) القاموس إلى ملف',
+ dictionaryItemExportedError: 'حدث خطأ أثناء تصدير عنصر (عناصر) القاموس',
+ dictionaryItemImported: 'تم استيراد عنصر (عناصر) القاموس التالية!',
+ scheduleErrReleaseDate1: 'تاريخ الإصدار لا يمكن أن يكون في الماضي',
+ scheduleErrReleaseDate2: "لا يمكن جدولة الوثيقة للنشر لأن '%0%' المطلوب غير منشور",
+ scheduleErrReleaseDate3: "لا يمكن جدولة الوثيقة للنشر لأن '%0%' المطلوب له تاريخ نشر لاحق من لغة غير إلزامية",
+ scheduleErrExpireDate1: 'تاريخ انتهاء الصلاحية لا يمكن أن يكون في الماضي',
+ scheduleErrExpireDate2: 'تاريخ انتهاء الصلاحية لا يمكن أن يكون قبل تاريخ الإصدار',
+ publishWithNoDomains:
+ 'لم يتم تكوين النطاقات لموقع متعدد اللغات، يرجى الاتصال بالمسؤول، راجع السجل لمزيد من المعلومات',
+ publishWithMissingDomain: 'لا يوجد مجال مكون لـ %0%، يرجى الاتصال بالمسؤول، راجع السجل لمزيد من المعلومات',
+ preventCleanupEnableError: 'حدث خطأ أثناء تمكين تنظيف الإصدارات لـ %0%',
+ preventCleanupDisableError: 'حدث خطأ أثناء تعطيل تنظيف الإصدارات لـ %0%',
+ copySuccessMessage: 'تم نسخ معلومات النظام الخاصة بك بنجاح إلى الحافظة',
+ cannotCopyInformation: 'لم نتمكن من نسخ معلومات النظام الخاصة بك إلى الحافظة',
+ },
+ stylesheet: {
+ addRule: 'إضافة نمط',
+ editRule: 'تعديل النمط',
+ editorRules: 'أنماط محرر النصوص الغني',
+ editorRulesHelp: 'حدد الأنماط التي يجب أن تكون متاحة في محرر النصوص الغني لهذه ورقة الأنماط',
+ editstylesheet: 'تعديل ورقة الأنماط',
+ editstylesheetproperty: 'تعديل خاصية ورقة الأنماط',
+ nameHelp: 'الاسم المعروض في قائمة اختيار الأنماط في المحرر',
+ preview: 'معاينة',
+ previewHelp: 'كيف سيبدو النص في محرر النصوص الغني.',
+ selector: 'المحدد',
+ selectorHelp: 'يستخدم بناء جملة CSS، على سبيل المثال "h1" أو ".redHeader"',
+ styles: 'الأنماط',
+ stylesHelp: 'CSS الذي يجب تطبيقه في محرر النصوص الغني، على سبيل المثال "color:red;"',
+ tabCode: 'الكود',
+ tabRules: 'محرر النصوص الغني',
+ },
+ template: {
+ runtimeModeProduction: 'المحتوى غير قابل للتحرير عند استخدام وضع التشغيل Production.',
+ deleteByIdFailed: 'فشل في حذف القالب بالمعرف %0%',
+ edittemplate: 'تعديل القالب',
+ insertSections: 'الأقسام',
+ insertContentArea: 'إدراج منطقة المحتوى',
+ insertContentAreaPlaceHolder: 'إدراج عنصر نائبة لمنطقة المحتوى',
+ insert: 'إدراج',
+ insertDesc: 'اختر ما تريد إدراجه في قالبك',
+ insertDictionaryItem: 'عنصر القاموس',
+ insertDictionaryItemDesc:
+ 'عنصر القاموس هو عنصر نائبة لنص قابل للترجمة، مما يسهل إنشاء تصميمات لمواقع متعددة اللغات.',
+ insertMacro: 'ماكرو',
+ insertMacroDesc:
+ 'ماكرو هو مكون قابل للتكوين رائع للأجزاء القابلة لإعادة الاستخدام من التصميم الخاص بك، حيث تحتاج إلى خيار لتوفير معلمات، مثل المعارض والنماذج والقوائم.',
+ insertPageField: 'القيمة',
+ insertPageFieldDesc: 'يعرض قيمة حقل مسمى من الصفحة الحالية، مع خيارات لتعديل القيمة أو الرجوع إلى القيم البديلة.',
+ insertPartialView: 'عرض جزئي',
+ insertPartialViewDesc:
+ 'العرض الجزئي هو ملف قالب منفصل يمكن عرضه داخل قالب آخر، وهو رائع لإعادة استخدام الترميز أو لفصل القوالب المعقدة إلى ملفات منفصلة.',
+ mastertemplate: 'القالب الرئيسي',
+ noMaster: 'لا يوجد رئيسي',
+ renderBody: 'عرض القالب الفرعي',
+ renderBodyDesc: 'يعرض محتويات القالب الفرعي، من خلال إدراج عنصر نائبة @RenderBody().',
+ defineSection: 'تحديد قسم مسمى',
+ defineSectionDesc:
+ 'يحدد جزء من القالب كقسم مسمى عن طريق لفه في @section { ... }. يمكن عرض هذا في منطقة محددة من القالب الرئيسي لهذا القالب، باستخدام @RenderSection.',
+ renderSection: 'عرض قسم مسمى',
+ renderSectionDesc:
+ 'يعرض منطقة مسمى من قالب فرعي، من خلال إدراج عنصر نائبة @RenderSection(name). هذا يعرض منطقة من قالب فرعي والتي يتم لفها في تعريف @section [name]{ ... } المقابل.',
+ sectionName: 'اسم القسم',
+ sectionMandatory: 'القسم إلزامي',
+ sectionMandatoryDesc:
+ 'إذا كان إلزاميًا، يجب أن يحتوي القالب الفرعي على تعريف @section، خلاف ذلك يتم عرض خطأ.',
+ queryBuilder: 'باني الاستعلام',
+ itemsReturned: 'العناصر التي تم إرجاعها، في',
+ iWant: 'أريد',
+ allContent: 'جميع المحتويات',
+ contentOfType: 'محتوى من نوع "%0%"',
+ from: 'من',
+ websiteRoot: 'موقعي',
+ where: 'حيث',
+ and: 'و',
+ is: 'هو',
+ isNot: 'ليس',
+ before: 'قبل',
+ beforeIncDate: 'قبل (بما في ذلك التاريخ المحدد)',
+ after: 'بعد',
+ afterIncDate: 'بعد (بما في ذلك التاريخ المحدد)',
+ equals: 'يساوي',
+ doesNotEqual: 'لا يساوي',
+ contains: 'يحتوي على',
+ doesNotContain: 'لا يحتوي على',
+ greaterThan: 'أكبر من',
+ greaterThanEqual: 'أكبر من أو يساوي',
+ lessThan: 'أقل من',
+ lessThanEqual: 'أقل من أو يساوي',
+ id: 'المعرف',
+ name: 'الاسم',
+ createdDate: 'تاريخ الإنشاء',
+ lastUpdatedDate: 'تاريخ آخر تحديث',
+ orderBy: 'ترتيب حسب',
+ ascending: 'تصاعدي',
+ descending: 'تنازلي',
+ template: 'القالب',
+ },
grid: {
- media: 'صورة',
- macro: 'ماكرو',
- insertControl: 'اختر نوع المحتوى',
- chooseLayout: 'اختر تخطيطاً',
- addRows: 'أضف صفاً',
- addElement: 'أضف محتوى',
- dropElement: 'إسقاط المحتوى',
- settingsApplied: 'تم تطبيق الإعدادات',
- contentNotAllowed: 'هذا المحتوى غير مسموح به هنا',
- contentAllowed: 'هذا المحتوى مسموح به هنا',
- clickToEmbed: 'انقر للتضمين',
- clickToInsertImage: 'انقر لإدراج صورة',
- clickToInsertMacro: 'انقر لإدراج ماكرو',
- placeholderWriteHere: 'اكتب هنا...',
- gridLayouts: 'تخطيطات الشبكة',
- gridLayoutsDetail: 'التخطيطات هي منطقة العمل العامة لمحرر الشبكة، وعادةً ما تحتاج فقط إلى واحد أو اثنين من التخطيطات المختلفة',
- addGridLayout: 'إضافة تخطيط شبكة',
- editGridLayout: 'تعديل تخطيط الشبكة',
- addGridLayoutDetail: 'ضبط التخطيط من خلال تعيين عرض الأعمدة وإضافة أقسام إضافية',
- rowConfigurations: 'تكوينات الصفوف',
- rowConfigurationsDetail: 'الصفوف هي خلايا محددة مسبقاً مرتبة أفقياً',
- addRowConfiguration: 'إضافة تكوين صف',
- editRowConfiguration: 'تعديل تكوين الصف',
- addRowConfigurationDetail: 'ضبط الصف من خلال تعيين عرض الخلايا وإضافة خلايا إضافية',
- noConfiguration: 'لا يوجد تكوين إضافي متاح',
- columns: 'الأعمدة',
- columnsDetails: 'إجمالي عدد الأعمدة في تخطيط الشبكة',
- settings: 'الإعدادات',
- settingsDetails: 'تكوين الإعدادات التي يمكن للمحررين تغييرها',
- styles: 'الأنماط',
- stylesDetails: 'تكوين التنسيق الذي يمكن للمحررين تغييره',
- allowAllEditors: 'السماح لجميع المحررين',
- allowAllRowConfigurations: 'السماح بجميع تكوينات الصفوف',
- maxItems: 'الحد الأقصى للعناصر',
- maxItemsDescription: 'اتركه فارغًا أو اضبطه على 0 لغير المحدود',
- setAsDefault: 'تعيين كافتراضي',
- chooseExtra: 'اختر إضافي',
- chooseDefault: 'اختر افتراضي',
- areAdded: 'تمت إضافتها',
- warning: 'تحذير',
- warningText: '
تعديل اسم تكوين الصف سيؤدي إلى فقدان البيانات لأي محتوى موجود يعتمد على هذا التكوين.
تعديل التسمية فقط لن يؤدي إلى فقدان البيانات.
',
- youAreDeleting: 'أنت تقوم بحذف تكوين الصف',
- deletingARow: '\n حذف اسم تكوين الصف سيؤدي إلى فقدان البيانات لأي محتوى موجود يعتمد على هذا\n التكوين.\n ',
- deleteLayout: 'أنت تقوم بحذف التخطيط',
- deletingALayout: 'تعديل التخطيط سيؤدي إلى فقدان البيانات لأي محتوى موجود يعتمد على هذا التكوين.\n ',
- },
- contentTypeEditor: {
- compositions: 'التركيبات',
- group: 'مجموعة',
- groupReorderSameAliasError: 'لا يمكنك نقل المجموعة %0% إلى هذا التبويب لأن المجموعة ستأخذ نفس الاسم المستعار كالتبويب: "%1%". قم بإعادة تسمية المجموعة للمتابعة.\n ',
- noGroups: 'لم تقم بإضافة أي مجموعات',
- addGroup: 'إضافة مجموعة',
- inheritedFrom: 'موروث من',
- addProperty: 'إضافة خاصية',
- editProperty: 'تعديل الخاصية',
- requiredLabel: 'التسمية المطلوبة',
- enableListViewHeading: 'تمكين عرض القائمة',
- enableListViewDescription: 'تكوين العنصر لعرض قائمة قابلة للفرز والبحث من أبنائه.',
- allowedTemplatesHeading: 'القوالب المسموح بها',
- allowedTemplatesDescription: 'اختر القوالب التي يُسمح للمحررين باستخدامها على محتوى من هذا النوع',
- allowAtRootHeading: 'السماح في الجذر',
- allowAtRootDescription: 'السماح للمحررين بإنشاء محتوى من هذا النوع في جذر شجرة المحتوى.\n ',
- childNodesHeading: 'أنواع العقد الفرعية المسموح بها',
- childNodesDescription: 'السماح بإنشاء محتوى من الأنواع المحددة أسفل محتوى من هذا النوع.',
- chooseChildNode: 'اختر العقدة الفرعية',
- compositionsDescription: 'ارث التبويبات والخصائص من نوع مستند موجود. سيتم إضافة التبويبات الجديدة إلى نوع الوثيقة الحالي أو دمجها إذا كان هناك تبويب بنفس الاسم.',
- compositionInUse: 'هذا النوع من المحتوى قيد الاستخدام في تركيب، وبالتالي لا يمكن تركيبه بنفسه.\n ',
- noAvailableCompositions: 'لا توجد أنواع محتوى متاحة لاستخدامها كتركيب.',
- compositionRemoveWarning: 'إزالة التركيب ستؤدي إلى حذف جميع بيانات الخصائص المرتبطة. بمجرد حفظ نوع الوثيقة لا يوجد طريق للعودة.',
- availableEditors: 'إنشاء جديد',
- reuse: 'استخدام موجود',
- editorSettings: 'إعدادات المحرر',
- searchResultSettings: 'الإعدادات المتاحة',
- searchResultEditors: 'إنشاء تكوين جديد',
- configuration: 'التكوين',
- yesDelete: 'نعم، احذف',
- movedUnderneath: 'تم نقله تحت',
- copiedUnderneath: 'تم نسخه تحت',
- folderToMove: 'اختر المجلد للتحريك',
- folderToCopy: 'اختر المجلد للنسخ',
- structureBelow: 'إلى هيكل الشجرة أدناه',
- allDocumentTypes: 'جميع أنواع الوثائق',
- allDocuments: 'جميع الوثائق',
- allMediaItems: 'جميع العناصر الإعلامية',
- usingThisDocument: 'استخدام هذا النوع من الوثائق سيتم حذفه نهائيًا، يرجى تأكيد أنك تريد حذف هذه أيضًا.\n ',
- usingThisMedia: 'استخدام هذا النوع من الوسائط سيتم حذفه نهائيًا، يرجى تأكيد أنك تريد حذف هذه أيضًا.\n ',
- usingThisMember: 'استخدام هذا النوع من الأعضاء سيتم حذفه نهائيًا، يرجى تأكيد أنك تريد حذف هذه أيضًا\n ',
- andAllDocuments: 'وجميع الوثائق التي تستخدم هذا النوع',
- andAllMediaItems: 'وجميع العناصر الإعلامية التي تستخدم هذا النوع',
- andAllMembers: 'وجميع الأعضاء الذين يستخدمون هذا النوع',
- memberCanEdit: 'يمكن للعضو التعديل',
- memberCanEditDescription: 'السماح بتعديل قيمة هذه الخاصية من قبل العضو في صفحة ملفه الشخصي\n ',
- isSensitiveData: 'بيانات حساسة',
- isSensitiveDataDescription: 'إخفاء قيمة هذه الخاصية عن محرري المحتوى الذين لا يملكون حق الوصول لعرض المعلومات الحساسة\n ',
- showOnMemberProfile: 'عرض على ملف العضو',
- showOnMemberProfileDescription: 'السماح بعرض قيمة هذه الخاصية في صفحة ملف العضو\n ',
- tabHasNoSortOrder: 'التبويب ليس له ترتيب فرز',
- compositionUsageHeading: 'أين يتم استخدام هذا التركيب؟',
- compositionUsageSpecification: 'يتم استخدام هذا التركيب حاليًا في تركيب أنواع المحتوى التالية:\n ',
- variantsHeading: 'السماح بالاختلافات',
- cultureVariantHeading: 'السماح بالاختلاف حسب الثقافة',
- segmentVariantHeading: 'السماح بالتجزئة',
- cultureVariantLabel: 'الاختلاف حسب الثقافة',
- segmentVariantLabel: 'الاختلاف حسب القطاعات',
- variantsDescription: 'السماح للمحررين بإنشاء محتوى من هذا النوع بلغات مختلفة.',
- cultureVariantDescription: 'السماح للمحررين بإنشاء محتوى بلغات مختلفة.',
- segmentVariantDescription: 'السماح للمحررين بإنشاء قطاعات من هذا المحتوى.',
- allowVaryByCulture: 'السماح بالاختلاف حسب الثقافة',
- allowVaryBySegment: 'السماح بالتجزئة',
- elementType: 'نوع العنصر',
- elementHeading: 'هو نوع عنصر',
- elementDescription: 'نوع العنصر مخصص للاستخدام ضمن أنواع مستندات أخرى، وليس في شجرة المحتوى.\n ',
- elementCannotToggle: 'لا يمكن تغيير نوع مستند إلى نوع عنصر بمجرد أن يتم استخدامه لإنشاء عنصر أو أكثر من محتوى.\n ',
- elementDoesNotSupport: 'هذا غير قابل للتطبيق لنوع العنصر',
- propertyHasChanges: 'لقد أجريت تغييرات على هذه الخاصية. هل أنت متأكد أنك تريد التخلص منها؟',
- displaySettingsHeadline: 'المظهر',
- displaySettingsLabelOnTop: 'التسمية في الأعلى (عرض كامل)',
- confirmDeleteTabMessage: 'هل أنت متأكد أنك تريد حذف التبويب %0%؟',
- confirmDeleteGroupMessage: 'هل أنت متأكد أنك تريد حذف المجموعة %0%؟',
- confirmDeletePropertyMessage: 'هل أنت متأكد أنك تريد حذف الخاصية %0%؟',
- confirmDeleteTabNotice: 'سوف يؤدي ذلك أيضًا إلى حذف جميع العناصر أسفل هذا التبويب.',
- confirmDeleteGroupNotice: 'سوف يؤدي ذلك أيضًا إلى حذف جميع العناصر أسفل هذه المجموعة.',
- addTab: 'إضافة تبويب',
- convertToTab: 'تحويل إلى تبويب',
- tabDirectPropertiesDropZone: 'اسحب الخصائص هنا لوضعها مباشرة على التبويب',
- removeChildNode: 'أنت تقوم بإزالة العقدة الفرعية',
- removeChildNodeWarning: 'إزالة عقدة فرعية ستحد من خيارات المحررين لإنشاء أنواع محتوى مختلفة أسفل عقدة.',
- usingEditor: 'استخدام هذا المحرر سيتم تحديثه بالإعدادات الجديدة.',
- historyCleanupHeading: 'تنظيف السجل',
- historyCleanupDescription: 'السماح بتجاوز الإعدادات العالمية لتنظيف السجل.',
- historyCleanupKeepAllVersionsNewerThanDays: 'احتفظ بجميع الإصدارات الأحدث من الأيام',
- historyCleanupKeepLatestVersionPerDayForDays: 'احتفظ بأحدث إصدار لكل يوم لعدد من الأيام',
- historyCleanupPreventCleanup: 'منع التنظيف',
- historyCleanupEnableCleanup: 'تمكين التنظيف',
- historyCleanupGloballyDisabled: 'ملاحظة! تنظيف إصدارات المحتوى التاريخية معطل عالميًا. لن تكون هذه الإعدادات فعالة حتى يتم تمكينها.',
- changeDataTypeHelpText: 'تغيير نوع البيانات مع القيم المخزنة معطل. للسماح بذلك، يمكنك تغيير إعداد Umbraco:CMS:DataTypes:CanBeChanged في appsettings.json.',
- collections: 'المجموعات',
- collectionsDescription: 'تكوين العنصر لعرض قائمة بأبنائه.',
- structure: 'الهيكل',
- presentation: 'العرض',
- },
- languages: {
- addLanguage: 'إضافة لغة',
- culture: 'رمز ISO',
- mandatoryLanguage: 'اللغة الإلزامية',
- mandatoryLanguageHelp: 'يجب ملء الخصائص في هذه اللغة قبل أن يتم نشر العقدة.\n ',
- defaultLanguage: 'اللغة الافتراضية',
- defaultLanguageHelp: 'يمكن لموقع Umbraco أن يحتوي فقط على لغة افتراضية واحدة.',
- changingDefaultLanguageWarning: 'تغيير اللغة الافتراضية قد يؤدي إلى فقدان المحتوى الافتراضي.',
- fallsbackToLabel: 'يعود إلى',
- noFallbackLanguageOption: 'لا توجد لغة بديلة',
- fallbackLanguageDescription: 'للسماح للمحتوى متعدد اللغات بالرجوع إلى لغة أخرى إذا لم يكن موجوداً باللغة المطلوبة، اخترها هنا.\n ',
- fallbackLanguage: 'لغة بديلة',
- none: 'لا شيء',
- invariantPropertyUnlockHelp: '%0% مشتركة عبر اللغات والأقسام.',
- invariantCulturePropertyUnlockHelp: '%0% مشتركة عبر جميع اللغات.',
- invariantSegmentPropertyUnlockHelp: '%0% مشتركة عبر جميع الأقسام.',
- invariantLanguageProperty: 'مشتركة: اللغات',
- invariantSegmentProperty: 'مشتركة: الأقسام',
- },
+ media: 'صورة',
+ macro: 'ماكرو',
+ insertControl: 'اختر نوع المحتوى',
+ chooseLayout: 'اختر تخطيطاً',
+ addRows: 'أضف صفاً',
+ addElement: 'أضف محتوى',
+ dropElement: 'إسقاط المحتوى',
+ settingsApplied: 'تم تطبيق الإعدادات',
+ contentNotAllowed: 'هذا المحتوى غير مسموح به هنا',
+ contentAllowed: 'هذا المحتوى مسموح به هنا',
+ clickToEmbed: 'انقر للتضمين',
+ clickToInsertImage: 'انقر لإدراج صورة',
+ clickToInsertMacro: 'انقر لإدراج ماكرو',
+ placeholderWriteHere: 'اكتب هنا...',
+ gridLayouts: 'تخطيطات الشبكة',
+ gridLayoutsDetail:
+ 'التخطيطات هي منطقة العمل العامة لمحرر الشبكة، وعادةً ما تحتاج فقط إلى واحد أو اثنين من التخطيطات المختلفة',
+ addGridLayout: 'إضافة تخطيط شبكة',
+ editGridLayout: 'تعديل تخطيط الشبكة',
+ addGridLayoutDetail: 'ضبط التخطيط من خلال تعيين عرض الأعمدة وإضافة أقسام إضافية',
+ rowConfigurations: 'تكوينات الصفوف',
+ rowConfigurationsDetail: 'الصفوف هي خلايا محددة مسبقاً مرتبة أفقياً',
+ addRowConfiguration: 'إضافة تكوين صف',
+ editRowConfiguration: 'تعديل تكوين الصف',
+ addRowConfigurationDetail: 'ضبط الصف من خلال تعيين عرض الخلايا وإضافة خلايا إضافية',
+ noConfiguration: 'لا يوجد تكوين إضافي متاح',
+ columns: 'الأعمدة',
+ columnsDetails: 'إجمالي عدد الأعمدة في تخطيط الشبكة',
+ settings: 'الإعدادات',
+ settingsDetails: 'تكوين الإعدادات التي يمكن للمحررين تغييرها',
+ styles: 'الأنماط',
+ stylesDetails: 'تكوين التنسيق الذي يمكن للمحررين تغييره',
+ allowAllEditors: 'السماح لجميع المحررين',
+ allowAllRowConfigurations: 'السماح بجميع تكوينات الصفوف',
+ maxItems: 'الحد الأقصى للعناصر',
+ maxItemsDescription: 'اتركه فارغًا أو اضبطه على 0 لغير المحدود',
+ setAsDefault: 'تعيين كافتراضي',
+ chooseExtra: 'اختر إضافي',
+ chooseDefault: 'اختر افتراضي',
+ areAdded: 'تمت إضافتها',
+ warning: 'تحذير',
+ warningText:
+ '
تعديل اسم تكوين الصف سيؤدي إلى فقدان البيانات لأي محتوى موجود يعتمد على هذا التكوين.
تعديل التسمية فقط لن يؤدي إلى فقدان البيانات.
',
+ youAreDeleting: 'أنت تقوم بحذف تكوين الصف',
+ deletingARow:
+ '\n حذف اسم تكوين الصف سيؤدي إلى فقدان البيانات لأي محتوى موجود يعتمد على هذا\n التكوين.\n ',
+ deleteLayout: 'أنت تقوم بحذف التخطيط',
+ deletingALayout: 'تعديل التخطيط سيؤدي إلى فقدان البيانات لأي محتوى موجود يعتمد على هذا التكوين.\n ',
+ },
+ contentTypeEditor: {
+ compositions: 'التركيبات',
+ group: 'مجموعة',
+ groupReorderSameAliasError:
+ 'لا يمكنك نقل المجموعة %0% إلى هذا التبويب لأن المجموعة ستأخذ نفس الاسم المستعار كالتبويب: "%1%". قم بإعادة تسمية المجموعة للمتابعة.\n ',
+ noGroups: 'لم تقم بإضافة أي مجموعات',
+ addGroup: 'إضافة مجموعة',
+ inheritedFrom: 'موروث من',
+ addProperty: 'إضافة خاصية',
+ editProperty: 'تعديل الخاصية',
+ requiredLabel: 'التسمية المطلوبة',
+ enableListViewHeading: 'تمكين عرض القائمة',
+ enableListViewDescription: 'تكوين العنصر لعرض قائمة قابلة للفرز والبحث من أبنائه.',
+ allowedTemplatesHeading: 'القوالب المسموح بها',
+ allowedTemplatesDescription: 'اختر القوالب التي يُسمح للمحررين باستخدامها على محتوى من هذا النوع',
+ allowAtRootHeading: 'السماح في الجذر',
+ allowAtRootDescription: 'السماح للمحررين بإنشاء محتوى من هذا النوع في جذر شجرة المحتوى.\n ',
+ childNodesHeading: 'أنواع العقد الفرعية المسموح بها',
+ childNodesDescription: 'السماح بإنشاء محتوى من الأنواع المحددة أسفل محتوى من هذا النوع.',
+ chooseChildNode: 'اختر العقدة الفرعية',
+ compositionsDescription:
+ 'ارث التبويبات والخصائص من نوع مستند موجود. سيتم إضافة التبويبات الجديدة إلى نوع الوثيقة الحالي أو دمجها إذا كان هناك تبويب بنفس الاسم.',
+ compositionInUse: 'هذا النوع من المحتوى قيد الاستخدام في تركيب، وبالتالي لا يمكن تركيبه بنفسه.\n ',
+ noAvailableCompositions: 'لا توجد أنواع محتوى متاحة لاستخدامها كتركيب.',
+ compositionRemoveWarning:
+ 'إزالة التركيب ستؤدي إلى حذف جميع بيانات الخصائص المرتبطة. بمجرد حفظ نوع الوثيقة لا يوجد طريق للعودة.',
+ availableEditors: 'إنشاء جديد',
+ reuse: 'استخدام موجود',
+ editorSettings: 'إعدادات المحرر',
+ searchResultSettings: 'الإعدادات المتاحة',
+ searchResultEditors: 'إنشاء تكوين جديد',
+ configuration: 'التكوين',
+ yesDelete: 'نعم، احذف',
+ movedUnderneath: 'تم نقله تحت',
+ copiedUnderneath: 'تم نسخه تحت',
+ folderToMove: 'اختر المجلد للتحريك',
+ folderToCopy: 'اختر المجلد للنسخ',
+ structureBelow: 'إلى هيكل الشجرة أدناه',
+ allDocumentTypes: 'جميع أنواع الوثائق',
+ allDocuments: 'جميع الوثائق',
+ allMediaItems: 'جميع العناصر الإعلامية',
+ usingThisDocument: 'استخدام هذا النوع من الوثائق سيتم حذفه نهائيًا، يرجى تأكيد أنك تريد حذف هذه أيضًا.\n ',
+ usingThisMedia: 'استخدام هذا النوع من الوسائط سيتم حذفه نهائيًا، يرجى تأكيد أنك تريد حذف هذه أيضًا.\n ',
+ usingThisMember: 'استخدام هذا النوع من الأعضاء سيتم حذفه نهائيًا، يرجى تأكيد أنك تريد حذف هذه أيضًا\n ',
+ andAllDocuments: 'وجميع الوثائق التي تستخدم هذا النوع',
+ andAllMediaItems: 'وجميع العناصر الإعلامية التي تستخدم هذا النوع',
+ andAllMembers: 'وجميع الأعضاء الذين يستخدمون هذا النوع',
+ memberCanEdit: 'يمكن للعضو التعديل',
+ memberCanEditDescription: 'السماح بتعديل قيمة هذه الخاصية من قبل العضو في صفحة ملفه الشخصي\n ',
+ isSensitiveData: 'بيانات حساسة',
+ isSensitiveDataDescription:
+ 'إخفاء قيمة هذه الخاصية عن محرري المحتوى الذين لا يملكون حق الوصول لعرض المعلومات الحساسة\n ',
+ showOnMemberProfile: 'عرض على ملف العضو',
+ showOnMemberProfileDescription: 'السماح بعرض قيمة هذه الخاصية في صفحة ملف العضو\n ',
+ tabHasNoSortOrder: 'التبويب ليس له ترتيب فرز',
+ compositionUsageHeading: 'أين يتم استخدام هذا التركيب؟',
+ compositionUsageSpecification: 'يتم استخدام هذا التركيب حاليًا في تركيب أنواع المحتوى التالية:\n ',
+ variantsHeading: 'السماح بالاختلافات',
+ cultureVariantHeading: 'السماح بالاختلاف حسب الثقافة',
+ segmentVariantHeading: 'السماح بالتجزئة',
+ cultureVariantLabel: 'الاختلاف حسب الثقافة',
+ segmentVariantLabel: 'الاختلاف حسب القطاعات',
+ variantsDescription: 'السماح للمحررين بإنشاء محتوى من هذا النوع بلغات مختلفة.',
+ cultureVariantDescription: 'السماح للمحررين بإنشاء محتوى بلغات مختلفة.',
+ segmentVariantDescription: 'السماح للمحررين بإنشاء قطاعات من هذا المحتوى.',
+ allowVaryByCulture: 'السماح بالاختلاف حسب الثقافة',
+ allowVaryBySegment: 'السماح بالتجزئة',
+ elementType: 'نوع العنصر',
+ elementHeading: 'هو نوع عنصر',
+ elementDescription: 'نوع العنصر مخصص للاستخدام ضمن أنواع مستندات أخرى، وليس في شجرة المحتوى.\n ',
+ elementCannotToggle:
+ 'لا يمكن تغيير نوع مستند إلى نوع عنصر بمجرد أن يتم استخدامه لإنشاء عنصر أو أكثر من محتوى.\n ',
+ elementDoesNotSupport: 'هذا غير قابل للتطبيق لنوع العنصر',
+ propertyHasChanges: 'لقد أجريت تغييرات على هذه الخاصية. هل أنت متأكد أنك تريد التخلص منها؟',
+ displaySettingsHeadline: 'المظهر',
+ displaySettingsLabelOnTop: 'التسمية في الأعلى (عرض كامل)',
+ confirmDeleteTabMessage: 'هل أنت متأكد أنك تريد حذف التبويب %0%؟',
+ confirmDeleteGroupMessage: 'هل أنت متأكد أنك تريد حذف المجموعة %0%؟',
+ confirmDeletePropertyMessage: 'هل أنت متأكد أنك تريد حذف الخاصية %0%؟',
+ confirmDeleteTabNotice: 'سوف يؤدي ذلك أيضًا إلى حذف جميع العناصر أسفل هذا التبويب.',
+ confirmDeleteGroupNotice: 'سوف يؤدي ذلك أيضًا إلى حذف جميع العناصر أسفل هذه المجموعة.',
+ addTab: 'إضافة تبويب',
+ convertToTab: 'تحويل إلى تبويب',
+ tabDirectPropertiesDropZone: 'اسحب الخصائص هنا لوضعها مباشرة على التبويب',
+ removeChildNode: 'أنت تقوم بإزالة العقدة الفرعية',
+ removeChildNodeWarning: 'إزالة عقدة فرعية ستحد من خيارات المحررين لإنشاء أنواع محتوى مختلفة أسفل عقدة.',
+ usingEditor: 'استخدام هذا المحرر سيتم تحديثه بالإعدادات الجديدة.',
+ historyCleanupHeading: 'تنظيف السجل',
+ historyCleanupDescription: 'السماح بتجاوز الإعدادات العالمية لتنظيف السجل.',
+ historyCleanupKeepAllVersionsNewerThanDays: 'احتفظ بجميع الإصدارات الأحدث من الأيام',
+ historyCleanupKeepLatestVersionPerDayForDays: 'احتفظ بأحدث إصدار لكل يوم لعدد من الأيام',
+ historyCleanupPreventCleanup: 'منع التنظيف',
+ historyCleanupEnableCleanup: 'تمكين التنظيف',
+ historyCleanupGloballyDisabled:
+ 'ملاحظة! تنظيف إصدارات المحتوى التاريخية معطل عالميًا. لن تكون هذه الإعدادات فعالة حتى يتم تمكينها.',
+ changeDataTypeHelpText:
+ 'تغيير نوع البيانات مع القيم المخزنة معطل. للسماح بذلك، يمكنك تغيير إعداد Umbraco:CMS:DataTypes:CanBeChanged في appsettings.json.',
+ collections: 'المجموعات',
+ collectionsDescription: 'تكوين العنصر لعرض قائمة بأبنائه.',
+ structure: 'الهيكل',
+ presentation: 'العرض',
+ },
+ languages: {
+ addLanguage: 'إضافة لغة',
+ culture: 'رمز ISO',
+ mandatoryLanguage: 'اللغة الإلزامية',
+ mandatoryLanguageHelp: 'يجب ملء الخصائص في هذه اللغة قبل أن يتم نشر العقدة.\n ',
+ defaultLanguage: 'اللغة الافتراضية',
+ defaultLanguageHelp: 'يمكن لموقع Umbraco أن يحتوي فقط على لغة افتراضية واحدة.',
+ changingDefaultLanguageWarning: 'تغيير اللغة الافتراضية قد يؤدي إلى فقدان المحتوى الافتراضي.',
+ fallsbackToLabel: 'يعود إلى',
+ noFallbackLanguageOption: 'لا توجد لغة بديلة',
+ fallbackLanguageDescription:
+ 'للسماح للمحتوى متعدد اللغات بالرجوع إلى لغة أخرى إذا لم يكن موجوداً باللغة المطلوبة، اخترها هنا.\n ',
+ fallbackLanguage: 'لغة بديلة',
+ none: 'لا شيء',
+ invariantPropertyUnlockHelp: '%0% مشتركة عبر اللغات والأقسام.',
+ invariantCulturePropertyUnlockHelp: '%0% مشتركة عبر جميع اللغات.',
+ invariantSegmentPropertyUnlockHelp: '%0% مشتركة عبر جميع الأقسام.',
+ invariantLanguageProperty: 'مشتركة: اللغات',
+ invariantSegmentProperty: 'مشتركة: الأقسام',
+ },
macro: {
addParameter: 'إضافة معلمة',
editParameter: 'تعديل المعلمة',
@@ -1602,7 +1674,7 @@ export default {
},
modelsBuilder: {
buildingModels: 'بناء النماذج',
- waitingMessage: "قد يستغرق هذا بعض الوقت، لا داعي للقلق",
+ waitingMessage: 'قد يستغرق هذا بعض الوقت، لا داعي للقلق',
modelsGenerated: 'تم إنشاء النماذج',
modelsGeneratedError: 'لم يتم إنشاء النماذج',
modelsExceptionInUlog: 'فشل إنشاء النماذج، راجع الاستثناء في سجل U',
@@ -1644,15 +1716,14 @@ export default {
DownloadXmlDTD: 'تنزيل XML DTD',
fields: 'الحقول',
includeSubpages: 'تضمين الصفحات الفرعية',
- noTranslators:
- 'لم يتم العثور على مستخدمين مترجمين. يرجى إنشاء مستخدم مترجم قبل البدء في إرسال المحتوى للترجمة',
+ noTranslators: 'لم يتم العثور على مستخدمين مترجمين. يرجى إنشاء مستخدم مترجم قبل البدء في إرسال المحتوى للترجمة',
pageHasBeenSendToTranslation: "تم إرسال الصفحة '%0%' للترجمة",
sendToTranslate: "إرسال الصفحة '%0%' للترجمة",
totalWords: 'إجمالي الكلمات',
translateTo: 'ترجم إلى',
translationDone: 'الترجمة مكتملة.',
translationDoneHelp:
- "يمكنك معاينة الصفحات التي قمت بترجمتها للتو بالنقر أدناه. إذا تم العثور على الصفحة الأصلية، ستتلقى مقارنة بين الصفحتين.",
+ 'يمكنك معاينة الصفحات التي قمت بترجمتها للتو بالنقر أدناه. إذا تم العثور على الصفحة الأصلية، ستتلقى مقارنة بين الصفحتين.',
translationFailed: 'فشلت الترجمة، قد يكون ملف XML تالفاً',
translationOptions: 'خيارات الترجمة',
translator: 'المترجم',
@@ -1705,7 +1776,7 @@ export default {
updateNoServer: 'لا يوجد اتصال بالخادم',
updateNoServerError: 'خطأ في التحقق من التحديث. يرجى مراجعة تتبع الأخطاء لمزيد من المعلومات',
},
- user: {
+ user: {
access: 'الوصول',
accessHelp: 'استناداً إلى المجموعات المعينة وعقد البداية، يتمتع المستخدم بالوصول إلى العقد التالية',
assignAccess: 'تعيين الوصول',
@@ -1724,8 +1795,8 @@ export default {
newPassword: 'كلمة مرور جديدة',
newPasswordFormatLengthTip: 'الحد الأدنى هو %0% حرفاً!',
newPasswordFormatNonAlphaTip: 'يجب أن تحتوي على %0% حرفاً خاصاً على الأقل.',
- noLockouts: "لم يتم قفله",
- noPasswordChange: "لم يتم تغيير كلمة المرور",
+ noLockouts: 'لم يتم قفله',
+ noPasswordChange: 'لم يتم تغيير كلمة المرور',
confirmNewPassword: 'تأكيد كلمة المرور الجديدة',
changePasswordDescription:
"يمكنك تغيير كلمة مرورك للوصول إلى واجهة Umbraco من خلال ملء النموذج أدناه والنقر على زر 'تغيير كلمة المرور'",
@@ -1772,9 +1843,8 @@ export default {
passwordIsBlank: 'لا يمكن أن تكون كلمة المرور الجديدة فارغة!',
passwordCurrent: 'كلمة المرور الحالية',
passwordInvalid: 'كلمة المرور الحالية غير صحيحة',
- passwordIsDifferent:
- 'كان هناك اختلاف بين كلمة المرور الجديدة وكلمة المرور المؤكدة. يرجى المحاولة مرة أخرى!',
- passwordMismatch: "كلمة المرور المؤكدة لا تطابق كلمة المرور الجديدة!",
+ passwordIsDifferent: 'كان هناك اختلاف بين كلمة المرور الجديدة وكلمة المرور المؤكدة. يرجى المحاولة مرة أخرى!',
+ passwordMismatch: 'كلمة المرور المؤكدة لا تطابق كلمة المرور الجديدة!',
passwordRequiresDigit: "يجب أن تحتوي كلمة المرور على رقم واحد على الأقل ('0'-'9')",
passwordRequiresLower: "يجب أن تحتوي كلمة المرور على حرف صغير واحد على الأقل ('a'-'z')",
passwordRequiresNonAlphanumeric: 'يجب أن تحتوي كلمة المرور على حرف غير أبجدي رقمي واحد على الأقل',
@@ -1809,8 +1879,7 @@ export default {
startnodeshelp: 'تقييد شجرة المحتوى إلى عقد بداية محددة',
updateDate: 'تاريخ آخر تحديث للمستخدم',
userCreated: 'تم إنشاؤه',
- userCreatedSuccessHelp:
- 'تم إنشاء المستخدم الجديد بنجاح. لتسجيل الدخول إلى Umbraco استخدم كلمة المرور أدناه.',
+ userCreatedSuccessHelp: 'تم إنشاء المستخدم الجديد بنجاح. لتسجيل الدخول إلى Umbraco استخدم كلمة المرور أدناه.',
userHasPassword: 'تم تعيين كلمة مرور للمستخدم بالفعل',
userHasGroup: "المستخدم موجود بالفعل في المجموعة '%0%'",
userLockoutNotEnabled: 'القفل غير مفعل لهذا المستخدم',
@@ -1821,14 +1890,12 @@ export default {
usergroup: 'مجموعة المستخدمين',
usergroups: 'مجموعات المستخدمين',
userInvited: 'تمت دعوته',
- userInvitedSuccessHelp:
- 'تم إرسال دعوة إلى المستخدم الجديد مع تفاصيل حول كيفية تسجيل الدخول إلى Umbraco.',
+ userInvitedSuccessHelp: 'تم إرسال دعوة إلى المستخدم الجديد مع تفاصيل حول كيفية تسجيل الدخول إلى Umbraco.',
userinviteWelcomeMessage:
'مرحباً بك في Umbraco! في دقيقة واحدة فقط ستكون جاهزاً، نحن فقط بحاجة منك لتعيين كلمة مرور وإضافة صورة لملفك الشخصي.',
userinviteExpiredMessage:
'مرحباً بك في Umbraco! للأسف انتهت صلاحية دعوتك. يرجى الاتصال بالمسؤول الخاص بك واطلب منهم إعادة إرسالها.',
- userinviteAvatarMessage:
- 'رفع صورة لنفسك سيساعد الآخرين على التعرف عليك بسهولة. انقر على الدائرة أعلاه لرفع صورتك.',
+ userinviteAvatarMessage: 'رفع صورة لنفسك سيساعد الآخرين على التعرف عليك بسهولة. انقر على الدائرة أعلاه لرفع صورتك.',
writer: 'كاتب',
configureTwoFactor: 'تكوين التحقق بخطوتين',
change: 'تغيير',
@@ -1915,10 +1982,10 @@ export default {
macroErrorModeCheckSuccessMessage: "MacroErrors تم تعيينها إلى '%0%'.",
macroErrorModeCheckErrorMessage:
"MacroErrors تم تعيينها إلى '%0%' مما سيمنع بعض أو جميع الصفحات في\n موقعك من التحميل بالكامل إذا كانت هناك أي أخطاء في الماكرو. تصحيح ذلك سيجعل القيمة تُعيّن إلى '%1%'.\n ",
- httpsCheckValidCertificate: "شهادة موقعك صالحة.",
+ httpsCheckValidCertificate: 'شهادة موقعك صالحة.',
httpsCheckInvalidCertificate: "خطأ في التحقق من الشهادة: '%0%'",
- httpsCheckExpiredCertificate: "شهادة SSL لموقعك قد انتهت صلاحيتها.",
- httpsCheckExpiringCertificate: "شهادة SSL لموقعك تنتهي صلاحيتها في %0% يوماً.",
+ httpsCheckExpiredCertificate: 'شهادة SSL لموقعك قد انتهت صلاحيتها.',
+ httpsCheckExpiringCertificate: 'شهادة SSL لموقعك تنتهي صلاحيتها في %0% يوماً.',
healthCheckInvalidUrl: "خطأ في اختبار URL %0% - '%1%'",
httpsCheckIsCurrentSchemeHttps: 'أنت حالياً %0% تعرض الموقع باستخدام مخطط HTTPS.',
httpsCheckConfigurationRectifyNotPossible:
@@ -1953,15 +2020,12 @@ export default {
'تم العثور على الرؤوس التالية التي تكشف عن معلومات حول تكنولوجيا الموقع: %0%.',
excessiveHeadersNotFound: 'لم يتم العثور على رؤوس تكشف عن معلومات حول تكنولوجيا الموقع.\n ',
smtpMailSettingsNotFound: "إعدادات 'Umbraco:CMS:Global:Smtp' لم يتم العثور عليها.",
- smtpMailSettingsHostNotConfigured:
- "إعداد 'Umbraco:CMS:Global:Smtp:Host' لم يتم العثور عليه.\n ",
- smtpMailSettingsConnectionSuccess:
- 'تم تكوين إعدادات SMTP بشكل صحيح والخدمة تعمل كما هو متوقع.\n ',
+ smtpMailSettingsHostNotConfigured: "إعداد 'Umbraco:CMS:Global:Smtp:Host' لم يتم العثور عليه.\n ",
+ smtpMailSettingsConnectionSuccess: 'تم تكوين إعدادات SMTP بشكل صحيح والخدمة تعمل كما هو متوقع.\n ',
smtpMailSettingsConnectionFail:
"لم يتم الوصول إلى خادم SMTP المُعين بالمضيف '%0%' والمنفذ '%1%'. يرجى التحقق للتأكد من صحة إعدادات SMTP في التكوين 'Umbraco:CMS:Global:Smtp'.\n ",
notificationEmailsCheckSuccessMessage: 'تم تعيين بريد الإشعارات إلى %0%.',
- notificationEmailsCheckErrorMessage:
- 'بريد الإشعارات ما زال مضبوطًا على القيمة الافتراضية %0%.',
+ notificationEmailsCheckErrorMessage: 'بريد الإشعارات ما زال مضبوطًا على القيمة الافتراضية %0%.',
checkGroup: 'فحص المجموعة',
helpText:
'\n
مدقق الصحة يقيم مجالات مختلفة في موقعك لأفضل إعدادات الممارسات والتكوين والمشاكل المحتملة، وما إلى ذلك. يمكنك إصلاح المشكلات بسهولة عن طريق الضغط على زر.\n يمكنك إضافة فحوصات صحية خاصة بك، راجع التوثيق لمزيد من المعلومات حول فحوصات الصحة المخصصة.
\n ',
@@ -1975,8 +2039,7 @@ export default {
redirectUrlManagement: 'إدارة URL التحويل',
panelInformation: 'توجه URLs التالية إلى هذا العنصر المحتوى:',
noRedirects: 'لم يتم إجراء أي تحويلات',
- noRedirectsDescription:
- 'عند إعادة تسمية صفحة منشورة أو نقلها، سيتم تلقائيًا إجراء تحويل إلى الصفحة الجديدة.\n ',
+ noRedirectsDescription: 'عند إعادة تسمية صفحة منشورة أو نقلها، سيتم تلقائيًا إجراء تحويل إلى الصفحة الجديدة.\n ',
redirectRemoved: 'تمت إزالة URL التحويل.',
redirectRemoveError: 'خطأ في إزالة URL التحويل.',
redirectRemoveWarning: 'سيتم إزالة التحويل',
@@ -2098,8 +2161,7 @@ export default {
labelUsedItems: 'العناصر التالية يتم الاستشهاد بها',
labelUsedDescendants: 'العناصر اللاحقة التالية لها تبعيات',
labelDependentDescendants: 'العناصر اللاحقة التالية لها تبعيات',
- deleteWarning:
- 'يتم الاستشهاد بهذا العنصر أو أحفاده. يمكن أن تؤدي الحذف إلى روابط مكسورة على موقعك الإلكتروني.',
+ deleteWarning: 'يتم الاستشهاد بهذا العنصر أو أحفاده. يمكن أن تؤدي الحذف إلى روابط مكسورة على موقعك الإلكتروني.',
unpublishWarning:
'يتم الاستشهاد بهذا العنصر أو أحفاده. يمكن أن يؤدي إلغاء النشر إلى روابط مكسورة على موقعك الإلكتروني. يرجى اتخاذ الإجراءات المناسبة.',
deleteDisabledWarning: 'يتم الاستشهاد بهذا العنصر أو أحفاده. لذلك، تم تعطيل الحذف.',
@@ -2109,286 +2171,314 @@ export default {
return `...ومزيد من ${count} عناصر`;
},
},
- logViewer: {
- deleteSavedSearch: 'حذف البحث المحفوظ',
- logLevels: 'مستويات السجل',
- selectAllLogLevelFilters: 'تحديد الكل',
- deselectAllLogLevelFilters: 'إلغاء تحديد الكل',
- savedSearches: 'البحث المحفوظ',
- saveSearch: 'حفظ البحث',
- saveSearchDescription: 'أدخل اسمًا وديًا لاستعلام البحث الخاص بك',
- filterSearch: 'تصفية البحث',
- totalItems: 'إجمالي العناصر',
- timestamp: 'الطابع الزمني',
- level: 'المستوى',
- machine: 'الآلة',
- message: 'الرسالة',
- exception: 'الاستثناء',
- properties: 'الخصائص',
- searchWithGoogle: 'البحث باستخدام جوجل',
- searchThisMessageWithGoogle: 'ابحث عن هذه الرسالة باستخدام جوجل',
- searchWithBing: 'البحث باستخدام بينج',
- searchThisMessageWithBing: 'ابحث عن هذه الرسالة باستخدام بينج',
- searchOurUmbraco: 'البحث في Umbraco الخاص بنا',
- searchThisMessageOnOurUmbracoForumsAndDocs: 'ابحث عن هذه الرسالة في منتديات ومراسلات Umbraco الخاصة بنا',
- searchOurUmbracoWithGoogle: 'البحث في Umbraco الخاص بنا باستخدام جوجل',
- searchOurUmbracoForumsUsingGoogle: 'البحث في منتديات Umbraco الخاصة بنا باستخدام جوجل',
- searchUmbracoSource: 'البحث في مصدر Umbraco',
- searchWithinUmbracoSourceCodeOnGithub: 'البحث ضمن كود مصدر Umbraco على Github',
- searchUmbracoIssues: 'البحث في قضايا Umbraco',
- searchUmbracoIssuesOnGithub: 'البحث في قضايا Umbraco على Github',
- deleteThisSearch: 'حذف هذا البحث',
- findLogsWithRequestId: 'البحث في السجلات باستخدام معرّف الطلب',
- findLogsWithNamespace: 'البحث في السجلات باستخدام النطاق',
- findLogsWithMachineName: 'البحث في السجلات باستخدام اسم الآلة',
- open: 'فتح',
- polling: 'استطلاع',
- every2: 'كل 2 ثانية',
- every5: 'كل 5 ثوانٍ',
- every10: 'كل 10 ثوانٍ',
- every20: 'كل 20 ثانية',
- every30: 'كل 30 ثانية',
- pollingEvery2: 'استطلاع كل 2 ثانية',
- pollingEvery5: 'استطلاع كل 5 ثوانٍ',
- pollingEvery10: 'استطلاع كل 10 ثوانٍ',
- pollingEvery20: 'استطلاع كل 20 ثانية',
- pollingEvery30: 'استطلاع كل 30 ثانية'
- },
- clipboard: {
- labelForCopyAllEntries: 'نسخ %0%',
- labelForArrayOfItemsFrom: '%0% من %1%',
- labelForArrayOfItems: 'مجموعة من %0%',
- labelForRemoveAllEntries: 'إزالة جميع العناصر',
- labelForClearClipboard: 'مسح الحافظة',
- labelForCopyToClipboard: 'نسخ إلى الحافظة'
- },
- propertyActions: {
- tooltipForPropertyActionsMenu: 'فتح إجراءات الخصائص',
- tooltipForPropertyActionsMenuClose: 'إغلاق إجراءات الخصائص'
- },
- nuCache: {
- refreshStatus: 'تحديث الحالة',
- memoryCache: 'ذاكرة التخزين المؤقت',
- memoryCacheDescription: 'هذا الزر يتيح لك إعادة تحميل ذاكرة التخزين المؤقت في الذاكرة، من خلال إعادة تحميلها بالكامل من قاعدة البيانات (ولكنه لا يعيد بناء تلك الذاكرة المؤقتة في قاعدة البيانات). هذا سريع نسبيًا. استخدمه عندما تعتقد أن ذاكرة التخزين المؤقت في الذاكرة لم يتم تحديثها بشكل صحيح، بعد بعض الأحداث التي تم تشغيلها—مما قد يشير إلى مشكلة طفيفة في Umbraco. (ملاحظة: يشغل إعادة التحميل على جميع الخوادم في بيئة LB).',
- reload: 'إعادة تحميل',
- databaseCache: 'ذاكرة التخزين المؤقت لقاعدة البيانات',
- databaseCacheDescription: 'هذا الزر يتيح لك إعادة بناء ذاكرة التخزين المؤقت لقاعدة البيانات، أي محتوى جدول cmsContentNu. إعادة البناء يمكن أن تكون مكلفة. استخدمه عندما لا يكون إعادة التحميل كافيًا، وتعتقد أن ذاكرة التخزين المؤقت لقاعدة البيانات لم يتم إنشاؤها بشكل صحيح—مما قد يشير إلى مشكلة حاسمة في Umbraco.',
- rebuild: 'إعادة بناء',
- internals: 'الأنظمة الداخلية',
- internalsDescription: 'هذا الزر يتيح لك تشغيل مجموعة لقطات NuCache (بعد تشغيل GC الكامل). ما لم تكن تعرف ما يعني ذلك، فمن المحتمل أنك لا تحتاج إلى استخدامه.',
- collect: 'جمع',
- publishedCacheStatus: 'حالة ذاكرة التخزين المؤقت المنشورة',
- caches: 'ذاكرات التخزين المؤقت'
- },
- profiling: {
- performanceProfiling: 'تحليل الأداء',
- performanceProfilingDescription: "
تشغيل Umbraco حاليًا في وضع التصحيح. هذا يعني أنه يمكنك استخدام أداة تحليل الأداء المدمجة لتقييم الأداء عند عرض الصفحات.
إذا كنت تريد تفعيل أداة التحليل لعرض صفحة معينة، أضف ببساطة umbDebug=true إلى سلسلة الاستعلام عند طلب الصفحة.
إذا كنت تريد أن يتم تفعيل أداة التحليل بشكل افتراضي لجميع عمليات عرض الصفحات، يمكنك استخدام التبديل أدناه. سيقوم بتعيين ملف تعريف في متصفحك، والذي يقوم بعد ذلك بتفعيل أداة التحليل تلقائيًا. بعبارة أخرى، ستكون أداة التحليل نشطة افتراضيًا فقط في متصفحك - وليس في متصفحات الآخرين.
يجب ألا تدع موقع الإنتاج يعمل في وضع التصحيح. يتم إيقاف وضع التصحيح عن طريق تعيين Umbraco:CMS:Hosting:Debug إلى false في appsettings.json أو appsettings.{Environment}.json أو عبر متغير بيئة.
',
- profilerEnabledDescription: "
Umbraco حاليًا لا يعمل في وضع التصحيح، لذا لا يمكنك استخدام أداة التحليل المدمجة. هذا هو الوضع الصحيح لموقع الإنتاج.
يتم تشغيل وضع التصحيح عن طريق تعيين Umbraco:CMS:Hosting:Debug إلى true في appsettings.json أو appsettings.{Environment}.json أو عبر متغير بيئة.
"
- },
- settingsDashboardVideos: {
- trainingHeadline: 'ساعات من مقاطع فيديو تدريب Umbraco على بعد نقرة واحدة',
- trainingDescription: '
هل تريد إتقان Umbraco؟ اقض بضع دقائق في تعلم بعض الممارسات الأفضل من خلال مشاهدة واحدة من هذه الفيديوهات حول استخدام Umbraco. وزيارة umbraco.tv لمزيد من مقاطع الفيديو حول Umbraco
'
- },
- settingsDashboard: {
- documentationHeader: 'التوثيق',
- documentationDescription: 'اقرأ المزيد عن العمل مع العناصر في الإعدادات في توثيقنا.',
- communityHeader: 'المجتمع',
- communityDescription: 'اطرح سؤالاً في منتدى المجتمع أو مجتمع Discord لدينا.',
- trainingHeader: 'التدريب',
- trainingDescription: 'اكتشف فرص التدريب والتأهيل الرسمية',
- supportHeader: 'الدعم',
- supportDescription: 'قم بتوسيع فريقك مع مجموعة ماهرة ومتحمسة من خبراء Umbraco.',
- videosHeader: 'مقاطع الفيديو',
- videosDescription: 'شاهد مقاطع الفيديو التعليمية المجانية لدينا على قناة YouTube الخاصة بأساسيات Umbraco، لتصبح على اطلاع سريع بـ Umbraco.',
- getHelp: 'احصل على المساعدة التي تحتاجها',
- getCertified: 'احصل على الشهادة',
- goForum: 'اذهب إلى المنتدى',
- chatWithCommunity: 'الدردشة مع المجتمع',
- watchVideos: 'شاهد مقاطع الفيديو'
- },
- startupDashboard: {
- fallbackHeadline: 'مرحبًا بك في نظام إدارة المحتوى الودود',
- fallbackDescription: "شكرًا لاختيارك Umbraco - نعتقد أن هذه قد تكون بداية شيء جميل. بينما قد يبدو الأمر مربكًا في البداية، لقد بذلنا الكثير لجعل منحنى التعلم سلسًا وسريعًا قدر الإمكان."
- },
- welcomeDashboard: {
- ourUmbracoHeadline: 'Umbraco الخاص بنا - أكثر المجتمعات صداقة',
- ourUmbracoDescription: "Umbraco الخاص بنا، الموقع الرسمي للمجتمع، هو وجهتك الشاملة لكل شيء متعلق بـ Umbraco. سواء كنت بحاجة إلى إجابة على سؤال، أو إضافات رائعة، أو دليل حول كيفية القيام بشيء ما في Umbraco، فإن أفضل وأصدق مجتمع في العالم هو مجرد نقرة بعيدًا.",
- ourUmbracoButton: 'زيارة Umbraco الخاص بنا',
- documentationHeadline: 'التوثيق',
- documentationDescription: 'ابحث عن إجابات لجميع أسئلتك حول Umbraco',
- communityHeadline: 'المجتمع',
- communityDescription: 'احصل على الدعم والإلهام من خبراء Umbraco المتحمسين',
- resourcesHeadline: 'الموارد',
- resourcesDescription: 'دروس فيديو مجانية لبدء رحلتك مع نظام إدارة المحتوى',
- trainingHeadline: 'التدريب',
- trainingDescription: 'التدريب الواقعي وشهادات Umbraco الرسمية'
- },
- blockEditor: {
- headlineCreateBlock: 'اختيار نوع العنصر',
- headlineAddSettingsElementType: 'إضافة نوع عنصر الإعدادات',
- headlineAddCustomView: 'اختيار العرض',
- headlineAddCustomStylesheet: 'اختيار ورقة الأنماط',
- headlineAddThumbnail: 'اختيار الصورة المصغرة',
- labelcreateNewElementType: 'إنشاء نوع عنصر جديد',
- labelCustomStylesheet: 'ورقة أنماط مخصصة',
- addCustomStylesheet: 'إضافة ورقة أنماط',
- headlineEditorAppearance: 'مظهر الكتلة',
- headlineDataModels: 'نماذج البيانات',
- headlineCatalogueAppearance: 'مظهر الكتالوج',
- labelBackgroundColor: 'لون الخلفية',
- labelIconColor: 'لون الأيقونة',
- labelContentElementType: 'نموذج المحتوى',
- labelLabelTemplate: 'التسمية',
- labelCustomView: 'عرض مخصص',
- labelCustomViewInfoTitle: 'عرض وصف العرض المخصص',
- labelCustomViewDescription: 'تجاوز كيفية ظهور هذه الكتلة في واجهة المستخدم الخلفية. اختر ملف .html يحتوي على تقديمك.',
- labelSettingsElementType: 'نموذج الإعدادات',
- labelEditorSize: 'حجم محرر التراكب',
- addCustomView: 'إضافة عرض مخصص',
- addSettingsElementType: 'إضافة إعدادات',
- confirmDeleteBlockMessage: 'هل أنت متأكد أنك تريد حذف المحتوى %0%؟',
- confirmDeleteBlockTypeMessage: 'هل أنت متأكد أنك تريد حذف تكوين الكتلة %0%؟',
- confirmDeleteBlockTypeNotice: 'سيظل محتوى هذه الكتلة موجودًا، ولكن تحرير هذا المحتوى لن يكون متاحًا وسيظهر كمحتوى غير مدعوم.',
- confirmDeleteBlockGroupMessage: 'هل أنت متأكد أنك تريد حذف المجموعة %0% وجميع تكوينات الكتلة الخاصة بها؟',
- confirmDeleteBlockGroupNotice: 'سيظل محتوى هذه الكتل موجودًا، ولكن تحرير هذا المحتوى لن يكون متاحًا وسيظهر كمحتوى غير مدعوم.',
- blockConfigurationOverlayTitle: "تكوين '%0%'",
- elementTypeDoesNotExist: 'لا يمكن تحريره لأن نوع العنصر غير موجود.',
- thumbnail: 'صورة مصغرة',
- addThumbnail: 'إضافة صورة مصغرة',
- tabCreateEmpty: 'إنشاء فارغ',
- tabClipboard: 'الحافظة',
- tabBlockSettings: 'الإعدادات',
- headlineAdvanced: 'متقدم',
- headlineCustomView: 'عرض مخصص',
- forceHideContentEditor: 'إخفاء محرر المحتوى',
- forceHideContentEditorHelp: 'إخفاء زر تحرير المحتوى ومحرر المحتوى من تراكب محرر الكتل',
- gridInlineEditing: 'تحرير مباشر',
- gridInlineEditingHelp: 'يتيح التحرير المباشر لأول خاصية. يمكن تحرير الخصائص الإضافية في التراكب.',
- blockHasChanges: 'لقد أجريت تغييرات على هذا المحتوى. هل أنت متأكد أنك تريد تجاهلها؟',
- confirmCancelBlockCreationHeadline: 'تجاهل الإنشاء؟',
- confirmCancelBlockCreationMessage: 'هل أنت متأكد أنك تريد إلغاء الإنشاء.',
- elementTypeDoesNotExistHeadline: 'خطأ!',
- elementTypeDoesNotExistDescription: 'نوع العنصر لهذه الكتلة لم يعد موجودًا',
- addBlock: 'إضافة محتوى',
- addThis: 'إضافة %0%',
- propertyEditorNotSupported: "الخاصية '%0%' تستخدم المحرر '%1%' والذي لا يدعمه الكتل.",
- focusParentBlock: 'تعيين التركيز على الكتلة الحاوية',
- areaIdentification: 'التحديد',
- areaValidation: 'التحقق',
- areaValidationEntriesShort: '%0% يجب أن تكون موجودة على الأقل %2% مرة(s).',
- areaValidationEntriesExceed: '%0% يجب أن تكون موجودة بحد أقصى %3% مرة(s).',
- areaNumberOfBlocks: 'عدد الكتل',
- areaDisallowAllBlocks: 'السماح بأنواع كتل محددة فقط',
- areaAllowedBlocks: 'أنواع الكتل المسموح بها',
- areaAllowedBlocksHelp: 'حدد أنواع الكتل المسموح بها في هذه المنطقة، واختياريًا عدد كل نوع من الأنواع التي يجب أن تكون موجودة.',
- confirmDeleteBlockAreaMessage: 'هل أنت متأكد أنك تريد حذف هذه المنطقة؟',
- confirmDeleteBlockAreaNotice: 'أي كتل تم إنشاؤها حاليًا داخل هذه المنطقة سيتم حذفها.',
- layoutOptions: 'خيارات التخطيط',
- structuralOptions: 'هيكلية',
- sizeOptions: 'خيارات الحجم',
- sizeOptionsHelp: 'حدد خيارًا أو أكثر من خيارات الحجم، هذا يمكن أن يتيح تغيير حجم الكتلة',
- allowedBlockColumns: 'امتدادات الأعمدة المتاحة',
- allowedBlockColumnsHelp: 'حدد عدد الأعمدة المختلفة التي يُسمح لهذه الكتلة بالامتداد عبرها. هذا لا يمنع الكتل من وضعها في مناطق ذات امتداد أعمدة أصغر.',
- allowedBlockRows: 'امتدادات الصفوف المتاحة',
- allowedBlockRowsHelp: 'حدد نطاق الصفوف التخطيطية التي يُسمح لهذه الكتلة بالامتداد عبرها.',
- allowBlockInRoot: 'السماح في الجذر',
- allowBlockInRootHelp: 'اجعل هذه الكتلة متاحة في جذر التخطيط.',
- allowBlockInAreas: 'السماح في المناطق',
- allowBlockInAreasHelp: 'اجعل هذه الكتلة متاحة افتراضيًا ضمن مناطق كتل أخرى (ما لم يتم تعيين أذونات صريحة لهذه المناطق).',
- areaAllowedBlocksEmpty: 'افتراضيًا، جميع أنواع الكتل مسموح بها في منطقة، استخدم هذا الخيار للسماح بأنواع محددة فقط.',
- areas: 'المناطق',
- areasLayoutColumns: 'أعمدة الشبكة للمناطق',
- areasLayoutColumnsHelp: 'حدد عدد الأعمدة المتاحة للمناطق. إذا لم يتم تحديدها، سيتم استخدام عدد الأعمدة المحدد للتخطيط الكامل.',
- areasConfigurations: 'المناطق',
- areasConfigurationsHelp: 'لتمكين تداخل الكتل داخل هذه الكتلة، حدد منطقة واحدة أو أكثر. تتبع المناطق التخطيط المحدد من خلال تكوين عمود الشبكة الخاص بها. يمكن تعديل "امتداد العمود" و "امتداد الصف" لكل منطقة باستخدام مربع مقبض التدرج في الزاوية السفلى اليمنى من المنطقة المحددة.',
- invalidDropPosition: '%0% غير مسموح به في هذا الموضع.',
- defaultLayoutStylesheet: 'ورقة أنماط التخطيط الافتراضية',
- confirmPasteDisallowedNestedBlockHeadline: 'تم رفض المحتوى غير المسموح به',
- confirmPasteDisallowedNestedBlockMessage: 'احتوى المحتوى الذي تم إدراجه على محتوى غير مسموح به، والذي لم يتم إنشاؤه. هل ترغب في الاحتفاظ ببقية هذا المحتوى على أي حال؟',
- areaAliasHelp: 'عند استخدام GetBlockGridHTML() لعرض شبكة الكتل، سيتم عرض الاسم المستعار في الشيفرة المصدرية كخاصية \'data-area-alias\'. استخدم خاصية الاسم المستعار لاستهداف العنصر للمنطقة. مثال. .umb-block-grid__area[data-area-alias="MyAreaAlias"] { ... }',
- scaleHandlerButtonTitle: 'اسحب للتغيير الحجم',
- areaCreateLabelTitle: 'تسمية زر الإنشاء',
- areaCreateLabelHelp: 'تجاوز نص التسمية لإضافة كتلة جديدة إلى هذه المنطقة، مثال: "إضافة عنصر واجهة المستخدم"',
- showSizeOptions: 'عرض خيارات تغيير الحجم',
- addBlockType: 'إضافة كتلة',
- addBlockGroup: 'إضافة مجموعة',
- pickSpecificAllowance: 'اختر مجموعة أو كتلة',
- allowanceMinimum: 'تحديد الحد الأدنى المطلوب',
- allowanceMaximum: 'تحديد الحد الأقصى المطلوب',
- block: 'كتلة',
- tabBlock: 'كتلة',
- tabBlockTypeSettings: 'الإعدادات',
- tabAreas: 'المناطق',
- tabAdvanced: 'متقدم',
- headlineAllowance: 'الأذونات',
- getSampleHeadline: 'تثبيت التكوين التجريبي',
- getSampleDescription: "سيضيف هذا كتل أساسية ويساعدك على البدء باستخدام محرر شبكة الكتل. ستحصل على كتل للعناوين والنصوص الغنية والصور، بالإضافة إلى تخطيط بعمودين.",
- getSampleButton: 'تثبيت',
- actionEnterSortMode: 'وضع الترتيب',
- actionExitSortMode: 'إنهاء وضع الترتيب',
- areaAliasIsNotUnique: 'يجب أن يكون اسم المنطقة هذا فريد مقارنةً بالمناطق الأخرى لهذه الكتلة.',
- configureArea: 'تكوين المنطقة',
- deleteArea: 'حذف المنطقة',
- addColumnSpanOption: 'إضافة خيار امتداد %0% عمود'
- },
- contentTemplatesDashboard: {
- whatHeadline: 'ما هي المخططات الوثائقية؟',
- whatDescription: 'المخططات الوثائقية هي محتوى مُعرّف مسبقًا يمكن تحديده عند إنشاء عقدة محتوى جديدة.',
- createHeadline: 'كيف يمكنني إنشاء مخطط وثائقي؟',
- createDescription: '
انقر بزر الماوس الأيمن على شجرة المخططات الوثائقية في قسم الإعدادات واختر نوع الوثيقة الذي تريد إنشاء مخطط وثائقي له.
بمجرد إعطائها اسمًا، يمكن للمحررين البدء في استخدام المخطط الوثائقي كأساس لصفحتهم الجديدة.
',
- manageHeadline: 'كيف يمكنني إدارة المخططات الوثائقية؟',
- manageDescription: 'يمكنك تعديل وحذف المخططات الوثائقية من "شجرة المخططات الوثائقية" في قسم الإعدادات. قم بتوسيع نوع الوثيقة الذي يعتمد عليه المخطط الوثائقي وانقر عليه لتعديله أو حذفه.'
- },
- preview: {
- endLabel: 'نهاية',
- endTitle: 'إنهاء وضع المعاينة',
- openWebsiteLabel: 'معاينة الموقع',
- openWebsiteTitle: 'فتح الموقع في وضع المعاينة',
- returnToPreviewHeadline: 'معاينة الموقع؟',
- returnToPreviewDescription: 'لقد انتهيت من وضع المعاينة، هل ترغب في تمكينه مرة أخرى لعرض أحدث إصدار محفوظ من موقعك؟',
- returnToPreviewAcceptButton: 'معاينة أحدث إصدار',
- returnToPreviewDeclineButton: 'عرض الإصدار المنشور',
- viewPublishedContentHeadline: 'عرض الإصدار المنشور؟',
- viewPublishedContentDescription: 'أنت في وضع المعاينة، هل تريد الخروج لعرض الإصدار المنشور لموقعك؟',
- viewPublishedContentAcceptButton: 'عرض الإصدار المنشور',
- viewPublishedContentDeclineButton: 'البقاء في وضع المعاينة'
- },
- permissions: {
- FolderCreation: 'إنشاء مجلد',
- FileWritingForPackages: 'كتابة الملفات للحزم',
- FileWriting: 'كتابة الملفات',
- MediaFolderCreation: 'إنشاء مجلد الوسائط'
- },
- treeSearch: {
- searchResult: 'عنصر تم إرجاعه',
- searchResults: 'عناصر تم إرجاعها'
- },
- analytics: {
- consentForAnalytics: 'الموافقة على بيانات التتبع',
- analyticsLevelSavedSuccess: 'تم حفظ مستوى التتبع!',
- analyticsDescription: '\n لتحسين Umbraco وإضافة ميزات جديدة بناءً على معلومات ذات صلة قدر الإمكان،\n نود جمع معلومات النظام والاستخدام من تثبيتك.\n سيتم مشاركة البيانات المجمعة بانتظام بالإضافة إلى الدروس المستفادة من هذه المقاييس.\n نأمل أن تساعدنا في جمع بعض البيانات القيمة.\n \n نحن لن نقوم بجمع أي بيانات شخصية مثل المحتوى أو الكود أو معلومات المستخدم، وستكون جميع البيانات مجهولة الهوية تمامًا.\n ',
- minimalLevelDescription: 'سوف نرسل فقط معرف موقع مجهول الهوية لإعلامنا بوجود الموقع.',
- basicLevelDescription: 'سوف نرسل معرف موقع مجهول الهوية، إصدار Umbraco، والحزم المثبتة',
- detailedLevelDescription: '\n سوف نرسل:\n
\n
معرف موقع مجهول الهوية، إصدار Umbraco، والحزم المثبتة.
\n
عدد: العقد الجذرية، العقد المحتوى، الوسائط، أنواع الوثائق، القوالب، اللغات، النطاقات، مجموعات المستخدمين، المستخدمين، الأعضاء، مقدمي تسجيل الدخول الخارجيين إلى المكتب الخلفي، ومحرري الخصائص قيد الاستخدام.
\n
معلومات النظام: خادم الويب، نظام تشغيل الخادم، إطار عمل الخادم، لغة نظام تشغيل الخادم، ومزود قاعدة البيانات.
\n
إعدادات التكوين: وضع Modelsbuilder، إذا كان هناك مسار Umbraco مخصص، بيئة ASP، ما إذا كان API التوصيل مفعلًا، ويتيح الوصول العام، وإذا كنت في وضع التصحيح.
\n
\n قد نغير ما نرسله على المستوى التفصيلي في المستقبل. إذا كان الأمر كذلك، فسيتم سردها أعلاه.\n من خلال اختيار "تفصيلي" توافق على جمع المعلومات المجهولة الهوية الحالية والمستقبلية.\n '
- },
- routing: {
- routeNotFoundTitle: 'لم يتم العثور على الصفحة',
- routeNotFoundDescription: 'لم يتم العثور على المسار المطلوب. يرجى التحقق من عنوان URL والمحاولة مرة أخرى.'
- },
- codeEditor: {
- label: 'محرر الأكواد',
- languageConfigLabel: 'اللغة',
- languageConfigDescription: 'اختر اللغة لتظليل بناء الجملة وIntelliSense.',
- heightConfigLabel: 'الارتفاع',
- heightConfigDescription: 'حدد ارتفاع محرر الأكواد بالبكسل.',
- lineNumbersConfigLabel: 'أرقام الأسطر',
- lineNumbersConfigDescription: 'عرض أرقام الأسطر في محرر الأكواد.',
- minimapConfigLabel: 'خريطة مصغرة',
- minimapConfigDescription: 'عرض خريطة مصغرة في محرر الأكواد.',
- wordWrapConfigLabel: 'تغليف الكلمات',
- wordWrapConfigDescription: 'تفعيل تغليف الكلمات في محرر الأكواد.'
- }
+ logViewer: {
+ deleteSavedSearch: 'حذف البحث المحفوظ',
+ logLevels: 'مستويات السجل',
+ selectAllLogLevelFilters: 'تحديد الكل',
+ deselectAllLogLevelFilters: 'إلغاء تحديد الكل',
+ savedSearches: 'البحث المحفوظ',
+ saveSearch: 'حفظ البحث',
+ saveSearchDescription: 'أدخل اسمًا وديًا لاستعلام البحث الخاص بك',
+ filterSearch: 'تصفية البحث',
+ totalItems: 'إجمالي العناصر',
+ timestamp: 'الطابع الزمني',
+ level: 'المستوى',
+ machine: 'الآلة',
+ message: 'الرسالة',
+ exception: 'الاستثناء',
+ properties: 'الخصائص',
+ searchWithGoogle: 'البحث باستخدام جوجل',
+ searchThisMessageWithGoogle: 'ابحث عن هذه الرسالة باستخدام جوجل',
+ searchWithBing: 'البحث باستخدام بينج',
+ searchThisMessageWithBing: 'ابحث عن هذه الرسالة باستخدام بينج',
+ searchOurUmbraco: 'البحث في Umbraco الخاص بنا',
+ searchThisMessageOnOurUmbracoForumsAndDocs: 'ابحث عن هذه الرسالة في منتديات ومراسلات Umbraco الخاصة بنا',
+ searchOurUmbracoWithGoogle: 'البحث في Umbraco الخاص بنا باستخدام جوجل',
+ searchOurUmbracoForumsUsingGoogle: 'البحث في منتديات Umbraco الخاصة بنا باستخدام جوجل',
+ searchUmbracoSource: 'البحث في مصدر Umbraco',
+ searchWithinUmbracoSourceCodeOnGithub: 'البحث ضمن كود مصدر Umbraco على Github',
+ searchUmbracoIssues: 'البحث في قضايا Umbraco',
+ searchUmbracoIssuesOnGithub: 'البحث في قضايا Umbraco على Github',
+ deleteThisSearch: 'حذف هذا البحث',
+ findLogsWithRequestId: 'البحث في السجلات باستخدام معرّف الطلب',
+ findLogsWithNamespace: 'البحث في السجلات باستخدام النطاق',
+ findLogsWithMachineName: 'البحث في السجلات باستخدام اسم الآلة',
+ open: 'فتح',
+ polling: 'استطلاع',
+ every2: 'كل 2 ثانية',
+ every5: 'كل 5 ثوانٍ',
+ every10: 'كل 10 ثوانٍ',
+ every20: 'كل 20 ثانية',
+ every30: 'كل 30 ثانية',
+ pollingEvery2: 'استطلاع كل 2 ثانية',
+ pollingEvery5: 'استطلاع كل 5 ثوانٍ',
+ pollingEvery10: 'استطلاع كل 10 ثوانٍ',
+ pollingEvery20: 'استطلاع كل 20 ثانية',
+ pollingEvery30: 'استطلاع كل 30 ثانية',
+ },
+ clipboard: {
+ labelForCopyAllEntries: 'نسخ %0%',
+ labelForArrayOfItemsFrom: '%0% من %1%',
+ labelForArrayOfItems: 'مجموعة من %0%',
+ labelForRemoveAllEntries: 'إزالة جميع العناصر',
+ labelForClearClipboard: 'مسح الحافظة',
+ labelForCopyToClipboard: 'نسخ إلى الحافظة',
+ },
+ propertyActions: {
+ tooltipForPropertyActionsMenu: 'فتح إجراءات الخصائص',
+ tooltipForPropertyActionsMenuClose: 'إغلاق إجراءات الخصائص',
+ },
+ nuCache: {
+ refreshStatus: 'تحديث الحالة',
+ memoryCache: 'ذاكرة التخزين المؤقت',
+ memoryCacheDescription:
+ 'هذا الزر يتيح لك إعادة تحميل ذاكرة التخزين المؤقت في الذاكرة، من خلال إعادة تحميلها بالكامل من قاعدة البيانات (ولكنه لا يعيد بناء تلك الذاكرة المؤقتة في قاعدة البيانات). هذا سريع نسبيًا. استخدمه عندما تعتقد أن ذاكرة التخزين المؤقت في الذاكرة لم يتم تحديثها بشكل صحيح، بعد بعض الأحداث التي تم تشغيلها—مما قد يشير إلى مشكلة طفيفة في Umbraco. (ملاحظة: يشغل إعادة التحميل على جميع الخوادم في بيئة LB).',
+ reload: 'إعادة تحميل',
+ databaseCache: 'ذاكرة التخزين المؤقت لقاعدة البيانات',
+ databaseCacheDescription:
+ 'هذا الزر يتيح لك إعادة بناء ذاكرة التخزين المؤقت لقاعدة البيانات، أي محتوى جدول cmsContentNu. إعادة البناء يمكن أن تكون مكلفة. استخدمه عندما لا يكون إعادة التحميل كافيًا، وتعتقد أن ذاكرة التخزين المؤقت لقاعدة البيانات لم يتم إنشاؤها بشكل صحيح—مما قد يشير إلى مشكلة حاسمة في Umbraco.',
+ rebuild: 'إعادة بناء',
+ internals: 'الأنظمة الداخلية',
+ internalsDescription:
+ 'هذا الزر يتيح لك تشغيل مجموعة لقطات NuCache (بعد تشغيل GC الكامل). ما لم تكن تعرف ما يعني ذلك، فمن المحتمل أنك لا تحتاج إلى استخدامه.',
+ collect: 'جمع',
+ publishedCacheStatus: 'حالة ذاكرة التخزين المؤقت المنشورة',
+ caches: 'ذاكرات التخزين المؤقت',
+ },
+ profiling: {
+ performanceProfiling: 'تحليل الأداء',
+ performanceProfilingDescription:
+ '
تشغيل Umbraco حاليًا في وضع التصحيح. هذا يعني أنه يمكنك استخدام أداة تحليل الأداء المدمجة لتقييم الأداء عند عرض الصفحات.
إذا كنت تريد تفعيل أداة التحليل لعرض صفحة معينة، أضف ببساطة umbDebug=true إلى سلسلة الاستعلام عند طلب الصفحة.
إذا كنت تريد أن يتم تفعيل أداة التحليل بشكل افتراضي لجميع عمليات عرض الصفحات، يمكنك استخدام التبديل أدناه. سيقوم بتعيين ملف تعريف في متصفحك، والذي يقوم بعد ذلك بتفعيل أداة التحليل تلقائيًا. بعبارة أخرى، ستكون أداة التحليل نشطة افتراضيًا فقط في متصفحك - وليس في متصفحات الآخرين.
يجب ألا تدع موقع الإنتاج يعمل في وضع التصحيح. يتم إيقاف وضع التصحيح عن طريق تعيين Umbraco:CMS:Hosting:Debug إلى false في appsettings.json أو appsettings.{Environment}.json أو عبر متغير بيئة.
',
+ profilerEnabledDescription:
+ '
Umbraco حاليًا لا يعمل في وضع التصحيح، لذا لا يمكنك استخدام أداة التحليل المدمجة. هذا هو الوضع الصحيح لموقع الإنتاج.
يتم تشغيل وضع التصحيح عن طريق تعيين Umbraco:CMS:Hosting:Debug إلى true في appsettings.json أو appsettings.{Environment}.json أو عبر متغير بيئة.
',
+ },
+ settingsDashboardVideos: {
+ trainingHeadline: 'ساعات من مقاطع فيديو تدريب Umbraco على بعد نقرة واحدة',
+ trainingDescription:
+ '
هل تريد إتقان Umbraco؟ اقض بضع دقائق في تعلم بعض الممارسات الأفضل من خلال مشاهدة واحدة من هذه الفيديوهات حول استخدام Umbraco. وزيارة umbraco.tv لمزيد من مقاطع الفيديو حول Umbraco
',
+ },
+ settingsDashboard: {
+ documentationHeader: 'التوثيق',
+ documentationDescription: 'اقرأ المزيد عن العمل مع العناصر في الإعدادات في توثيقنا.',
+ communityHeader: 'المجتمع',
+ communityDescription: 'اطرح سؤالاً في منتدى المجتمع أو مجتمع Discord لدينا.',
+ trainingHeader: 'التدريب',
+ trainingDescription: 'اكتشف فرص التدريب والتأهيل الرسمية',
+ supportHeader: 'الدعم',
+ supportDescription: 'قم بتوسيع فريقك مع مجموعة ماهرة ومتحمسة من خبراء Umbraco.',
+ videosHeader: 'مقاطع الفيديو',
+ videosDescription:
+ 'شاهد مقاطع الفيديو التعليمية المجانية لدينا على قناة YouTube الخاصة بأساسيات Umbraco، لتصبح على اطلاع سريع بـ Umbraco.',
+ getHelp: 'احصل على المساعدة التي تحتاجها',
+ getCertified: 'احصل على الشهادة',
+ goForum: 'اذهب إلى المنتدى',
+ chatWithCommunity: 'الدردشة مع المجتمع',
+ watchVideos: 'شاهد مقاطع الفيديو',
+ },
+ startupDashboard: {
+ fallbackHeadline: 'مرحبًا بك في نظام إدارة المحتوى الودود',
+ fallbackDescription:
+ 'شكرًا لاختيارك Umbraco - نعتقد أن هذه قد تكون بداية شيء جميل. بينما قد يبدو الأمر مربكًا في البداية، لقد بذلنا الكثير لجعل منحنى التعلم سلسًا وسريعًا قدر الإمكان.',
+ },
+ welcomeDashboard: {
+ ourUmbracoHeadline: 'Umbraco الخاص بنا - أكثر المجتمعات صداقة',
+ ourUmbracoDescription:
+ 'Umbraco الخاص بنا، الموقع الرسمي للمجتمع، هو وجهتك الشاملة لكل شيء متعلق بـ Umbraco. سواء كنت بحاجة إلى إجابة على سؤال، أو إضافات رائعة، أو دليل حول كيفية القيام بشيء ما في Umbraco، فإن أفضل وأصدق مجتمع في العالم هو مجرد نقرة بعيدًا.',
+ ourUmbracoButton: 'زيارة Umbraco الخاص بنا',
+ documentationHeadline: 'التوثيق',
+ documentationDescription: 'ابحث عن إجابات لجميع أسئلتك حول Umbraco',
+ communityHeadline: 'المجتمع',
+ communityDescription: 'احصل على الدعم والإلهام من خبراء Umbraco المتحمسين',
+ resourcesHeadline: 'الموارد',
+ resourcesDescription: 'دروس فيديو مجانية لبدء رحلتك مع نظام إدارة المحتوى',
+ trainingHeadline: 'التدريب',
+ trainingDescription: 'التدريب الواقعي وشهادات Umbraco الرسمية',
+ },
+ blockEditor: {
+ headlineCreateBlock: 'اختيار نوع العنصر',
+ headlineAddSettingsElementType: 'إضافة نوع عنصر الإعدادات',
+ headlineAddCustomView: 'اختيار العرض',
+ headlineAddCustomStylesheet: 'اختيار ورقة الأنماط',
+ headlineAddThumbnail: 'اختيار الصورة المصغرة',
+ labelcreateNewElementType: 'إنشاء نوع عنصر جديد',
+ labelCustomStylesheet: 'ورقة أنماط مخصصة',
+ addCustomStylesheet: 'إضافة ورقة أنماط',
+ headlineEditorAppearance: 'مظهر الكتلة',
+ headlineDataModels: 'نماذج البيانات',
+ headlineCatalogueAppearance: 'مظهر الكتالوج',
+ labelBackgroundColor: 'لون الخلفية',
+ labelIconColor: 'لون الأيقونة',
+ labelContentElementType: 'نموذج المحتوى',
+ labelLabelTemplate: 'التسمية',
+ labelCustomView: 'عرض مخصص',
+ labelCustomViewInfoTitle: 'عرض وصف العرض المخصص',
+ labelCustomViewDescription:
+ 'تجاوز كيفية ظهور هذه الكتلة في واجهة المستخدم الخلفية. اختر ملف .html يحتوي على تقديمك.',
+ labelSettingsElementType: 'نموذج الإعدادات',
+ labelEditorSize: 'حجم محرر التراكب',
+ addCustomView: 'إضافة عرض مخصص',
+ addSettingsElementType: 'إضافة إعدادات',
+ confirmDeleteBlockMessage: 'هل أنت متأكد أنك تريد حذف المحتوى %0%؟',
+ confirmDeleteBlockTypeMessage: 'هل أنت متأكد أنك تريد حذف تكوين الكتلة %0%؟',
+ confirmDeleteBlockTypeNotice:
+ 'سيظل محتوى هذه الكتلة موجودًا، ولكن تحرير هذا المحتوى لن يكون متاحًا وسيظهر كمحتوى غير مدعوم.',
+ confirmDeleteBlockGroupMessage:
+ 'هل أنت متأكد أنك تريد حذف المجموعة %0% وجميع تكوينات الكتلة الخاصة بها؟',
+ confirmDeleteBlockGroupNotice:
+ 'سيظل محتوى هذه الكتل موجودًا، ولكن تحرير هذا المحتوى لن يكون متاحًا وسيظهر كمحتوى غير مدعوم.',
+ blockConfigurationOverlayTitle: "تكوين '%0%'",
+ elementTypeDoesNotExist: 'لا يمكن تحريره لأن نوع العنصر غير موجود.',
+ thumbnail: 'صورة مصغرة',
+ addThumbnail: 'إضافة صورة مصغرة',
+ tabCreateEmpty: 'إنشاء فارغ',
+ tabClipboard: 'الحافظة',
+ tabBlockSettings: 'الإعدادات',
+ headlineAdvanced: 'متقدم',
+ headlineCustomView: 'عرض مخصص',
+ forceHideContentEditor: 'إخفاء محرر المحتوى',
+ forceHideContentEditorHelp: 'إخفاء زر تحرير المحتوى ومحرر المحتوى من تراكب محرر الكتل',
+ gridInlineEditing: 'تحرير مباشر',
+ gridInlineEditingHelp: 'يتيح التحرير المباشر لأول خاصية. يمكن تحرير الخصائص الإضافية في التراكب.',
+ blockHasChanges: 'لقد أجريت تغييرات على هذا المحتوى. هل أنت متأكد أنك تريد تجاهلها؟',
+ confirmCancelBlockCreationHeadline: 'تجاهل الإنشاء؟',
+ confirmCancelBlockCreationMessage: 'هل أنت متأكد أنك تريد إلغاء الإنشاء.',
+ elementTypeDoesNotExistHeadline: 'خطأ!',
+ elementTypeDoesNotExistDescription: 'نوع العنصر لهذه الكتلة لم يعد موجودًا',
+ addBlock: 'إضافة محتوى',
+ addThis: 'إضافة %0%',
+ propertyEditorNotSupported: "الخاصية '%0%' تستخدم المحرر '%1%' والذي لا يدعمه الكتل.",
+ focusParentBlock: 'تعيين التركيز على الكتلة الحاوية',
+ areaIdentification: 'التحديد',
+ areaValidation: 'التحقق',
+ areaValidationEntriesShort: '%0% يجب أن تكون موجودة على الأقل %2% مرة(s).',
+ areaValidationEntriesExceed: '%0% يجب أن تكون موجودة بحد أقصى %3% مرة(s).',
+ areaNumberOfBlocks: 'عدد الكتل',
+ areaDisallowAllBlocks: 'السماح بأنواع كتل محددة فقط',
+ areaAllowedBlocks: 'أنواع الكتل المسموح بها',
+ areaAllowedBlocksHelp:
+ 'حدد أنواع الكتل المسموح بها في هذه المنطقة، واختياريًا عدد كل نوع من الأنواع التي يجب أن تكون موجودة.',
+ confirmDeleteBlockAreaMessage: 'هل أنت متأكد أنك تريد حذف هذه المنطقة؟',
+ confirmDeleteBlockAreaNotice: 'أي كتل تم إنشاؤها حاليًا داخل هذه المنطقة سيتم حذفها.',
+ layoutOptions: 'خيارات التخطيط',
+ structuralOptions: 'هيكلية',
+ sizeOptions: 'خيارات الحجم',
+ sizeOptionsHelp: 'حدد خيارًا أو أكثر من خيارات الحجم، هذا يمكن أن يتيح تغيير حجم الكتلة',
+ allowedBlockColumns: 'امتدادات الأعمدة المتاحة',
+ allowedBlockColumnsHelp:
+ 'حدد عدد الأعمدة المختلفة التي يُسمح لهذه الكتلة بالامتداد عبرها. هذا لا يمنع الكتل من وضعها في مناطق ذات امتداد أعمدة أصغر.',
+ allowedBlockRows: 'امتدادات الصفوف المتاحة',
+ allowedBlockRowsHelp: 'حدد نطاق الصفوف التخطيطية التي يُسمح لهذه الكتلة بالامتداد عبرها.',
+ allowBlockInRoot: 'السماح في الجذر',
+ allowBlockInRootHelp: 'اجعل هذه الكتلة متاحة في جذر التخطيط.',
+ allowBlockInAreas: 'السماح في المناطق',
+ allowBlockInAreasHelp:
+ 'اجعل هذه الكتلة متاحة افتراضيًا ضمن مناطق كتل أخرى (ما لم يتم تعيين أذونات صريحة لهذه المناطق).',
+ areaAllowedBlocksEmpty:
+ 'افتراضيًا، جميع أنواع الكتل مسموح بها في منطقة، استخدم هذا الخيار للسماح بأنواع محددة فقط.',
+ areas: 'المناطق',
+ areasLayoutColumns: 'أعمدة الشبكة للمناطق',
+ areasLayoutColumnsHelp:
+ 'حدد عدد الأعمدة المتاحة للمناطق. إذا لم يتم تحديدها، سيتم استخدام عدد الأعمدة المحدد للتخطيط الكامل.',
+ areasConfigurations: 'المناطق',
+ areasConfigurationsHelp:
+ 'لتمكين تداخل الكتل داخل هذه الكتلة، حدد منطقة واحدة أو أكثر. تتبع المناطق التخطيط المحدد من خلال تكوين عمود الشبكة الخاص بها. يمكن تعديل "امتداد العمود" و "امتداد الصف" لكل منطقة باستخدام مربع مقبض التدرج في الزاوية السفلى اليمنى من المنطقة المحددة.',
+ invalidDropPosition: '%0% غير مسموح به في هذا الموضع.',
+ defaultLayoutStylesheet: 'ورقة أنماط التخطيط الافتراضية',
+ confirmPasteDisallowedNestedBlockHeadline: 'تم رفض المحتوى غير المسموح به',
+ confirmPasteDisallowedNestedBlockMessage:
+ 'احتوى المحتوى الذي تم إدراجه على محتوى غير مسموح به، والذي لم يتم إنشاؤه. هل ترغب في الاحتفاظ ببقية هذا المحتوى على أي حال؟',
+ areaAliasHelp:
+ 'عند استخدام GetBlockGridHTML() لعرض شبكة الكتل، سيتم عرض الاسم المستعار في الشيفرة المصدرية كخاصية \'data-area-alias\'. استخدم خاصية الاسم المستعار لاستهداف العنصر للمنطقة. مثال. .umb-block-grid__area[data-area-alias="MyAreaAlias"] { ... }',
+ scaleHandlerButtonTitle: 'اسحب للتغيير الحجم',
+ areaCreateLabelTitle: 'تسمية زر الإنشاء',
+ areaCreateLabelHelp: 'تجاوز نص التسمية لإضافة كتلة جديدة إلى هذه المنطقة، مثال: "إضافة عنصر واجهة المستخدم"',
+ showSizeOptions: 'عرض خيارات تغيير الحجم',
+ addBlockType: 'إضافة كتلة',
+ addBlockGroup: 'إضافة مجموعة',
+ pickSpecificAllowance: 'اختر مجموعة أو كتلة',
+ allowanceMinimum: 'تحديد الحد الأدنى المطلوب',
+ allowanceMaximum: 'تحديد الحد الأقصى المطلوب',
+ block: 'كتلة',
+ tabBlock: 'كتلة',
+ tabBlockTypeSettings: 'الإعدادات',
+ tabAreas: 'المناطق',
+ tabAdvanced: 'متقدم',
+ headlineAllowance: 'الأذونات',
+ getSampleHeadline: 'تثبيت التكوين التجريبي',
+ getSampleDescription:
+ 'سيضيف هذا كتل أساسية ويساعدك على البدء باستخدام محرر شبكة الكتل. ستحصل على كتل للعناوين والنصوص الغنية والصور، بالإضافة إلى تخطيط بعمودين.',
+ getSampleButton: 'تثبيت',
+ actionEnterSortMode: 'وضع الترتيب',
+ actionExitSortMode: 'إنهاء وضع الترتيب',
+ areaAliasIsNotUnique: 'يجب أن يكون اسم المنطقة هذا فريد مقارنةً بالمناطق الأخرى لهذه الكتلة.',
+ configureArea: 'تكوين المنطقة',
+ deleteArea: 'حذف المنطقة',
+ addColumnSpanOption: 'إضافة خيار امتداد %0% عمود',
+ },
+ contentTemplatesDashboard: {
+ whatHeadline: 'ما هي المخططات الوثائقية؟',
+ whatDescription: 'المخططات الوثائقية هي محتوى مُعرّف مسبقًا يمكن تحديده عند إنشاء عقدة محتوى جديدة.',
+ createHeadline: 'كيف يمكنني إنشاء مخطط وثائقي؟',
+ createDescription:
+ '
انقر بزر الماوس الأيمن على شجرة المخططات الوثائقية في قسم الإعدادات واختر نوع الوثيقة الذي تريد إنشاء مخطط وثائقي له.
بمجرد إعطائها اسمًا، يمكن للمحررين البدء في استخدام المخطط الوثائقي كأساس لصفحتهم الجديدة.
',
+ manageHeadline: 'كيف يمكنني إدارة المخططات الوثائقية؟',
+ manageDescription:
+ 'يمكنك تعديل وحذف المخططات الوثائقية من "شجرة المخططات الوثائقية" في قسم الإعدادات. قم بتوسيع نوع الوثيقة الذي يعتمد عليه المخطط الوثائقي وانقر عليه لتعديله أو حذفه.',
+ },
+ preview: {
+ endLabel: 'نهاية',
+ endTitle: 'إنهاء وضع المعاينة',
+ openWebsiteLabel: 'معاينة الموقع',
+ openWebsiteTitle: 'فتح الموقع في وضع المعاينة',
+ returnToPreviewHeadline: 'معاينة الموقع؟',
+ returnToPreviewDescription:
+ 'لقد انتهيت من وضع المعاينة، هل ترغب في تمكينه مرة أخرى لعرض أحدث إصدار محفوظ من موقعك؟',
+ returnToPreviewAcceptButton: 'معاينة أحدث إصدار',
+ returnToPreviewDeclineButton: 'عرض الإصدار المنشور',
+ viewPublishedContentHeadline: 'عرض الإصدار المنشور؟',
+ viewPublishedContentDescription: 'أنت في وضع المعاينة، هل تريد الخروج لعرض الإصدار المنشور لموقعك؟',
+ viewPublishedContentAcceptButton: 'عرض الإصدار المنشور',
+ viewPublishedContentDeclineButton: 'البقاء في وضع المعاينة',
+ },
+ permissions: {
+ FolderCreation: 'إنشاء مجلد',
+ FileWritingForPackages: 'كتابة الملفات للحزم',
+ FileWriting: 'كتابة الملفات',
+ MediaFolderCreation: 'إنشاء مجلد الوسائط',
+ },
+ treeSearch: {
+ searchResult: 'عنصر تم إرجاعه',
+ searchResults: 'عناصر تم إرجاعها',
+ },
+ analytics: {
+ consentForAnalytics: 'الموافقة على بيانات التتبع',
+ analyticsLevelSavedSuccess: 'تم حفظ مستوى التتبع!',
+ analyticsDescription:
+ '\n لتحسين Umbraco وإضافة ميزات جديدة بناءً على معلومات ذات صلة قدر الإمكان،\n نود جمع معلومات النظام والاستخدام من تثبيتك.\n سيتم مشاركة البيانات المجمعة بانتظام بالإضافة إلى الدروس المستفادة من هذه المقاييس.\n نأمل أن تساعدنا في جمع بعض البيانات القيمة.\n \n نحن لن نقوم بجمع أي بيانات شخصية مثل المحتوى أو الكود أو معلومات المستخدم، وستكون جميع البيانات مجهولة الهوية تمامًا.\n ',
+ minimalLevelDescription: 'سوف نرسل فقط معرف موقع مجهول الهوية لإعلامنا بوجود الموقع.',
+ basicLevelDescription: 'سوف نرسل معرف موقع مجهول الهوية، إصدار Umbraco، والحزم المثبتة',
+ detailedLevelDescription:
+ '\n سوف نرسل:\n
\n
معرف موقع مجهول الهوية، إصدار Umbraco، والحزم المثبتة.
\n
عدد: العقد الجذرية، العقد المحتوى، الوسائط، أنواع الوثائق، القوالب، اللغات، النطاقات، مجموعات المستخدمين، المستخدمين، الأعضاء، مقدمي تسجيل الدخول الخارجيين إلى المكتب الخلفي، ومحرري الخصائص قيد الاستخدام.
\n
معلومات النظام: خادم الويب، نظام تشغيل الخادم، إطار عمل الخادم، لغة نظام تشغيل الخادم، ومزود قاعدة البيانات.
\n
إعدادات التكوين: وضع Modelsbuilder، إذا كان هناك مسار Umbraco مخصص، بيئة ASP، ما إذا كان API التوصيل مفعلًا، ويتيح الوصول العام، وإذا كنت في وضع التصحيح.
\n
\n قد نغير ما نرسله على المستوى التفصيلي في المستقبل. إذا كان الأمر كذلك، فسيتم سردها أعلاه.\n من خلال اختيار "تفصيلي" توافق على جمع المعلومات المجهولة الهوية الحالية والمستقبلية.\n ',
+ },
+ routing: {
+ routeNotFoundTitle: 'لم يتم العثور على الصفحة',
+ routeNotFoundDescription: 'لم يتم العثور على المسار المطلوب. يرجى التحقق من عنوان URL والمحاولة مرة أخرى.',
+ },
+ codeEditor: {
+ label: 'محرر الأكواد',
+ languageConfigLabel: 'اللغة',
+ languageConfigDescription: 'اختر اللغة لتظليل بناء الجملة وIntelliSense.',
+ heightConfigLabel: 'الارتفاع',
+ heightConfigDescription: 'حدد ارتفاع محرر الأكواد بالبكسل.',
+ lineNumbersConfigLabel: 'أرقام الأسطر',
+ lineNumbersConfigDescription: 'عرض أرقام الأسطر في محرر الأكواد.',
+ minimapConfigLabel: 'خريطة مصغرة',
+ minimapConfigDescription: 'عرض خريطة مصغرة في محرر الأكواد.',
+ wordWrapConfigLabel: 'تغليف الكلمات',
+ wordWrapConfigDescription: 'تفعيل تغليف الكلمات في محرر الأكواد.',
+ },
} as UmbLocalizationDictionary;
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/bs.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/bs.ts
index d7b50553cf..159d15d541 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/bs.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/bs.ts
@@ -318,6 +318,7 @@ export default {
createEmpty: 'Napravi novi',
createFromClipboard: 'Zalijepi iz međuspremnika',
nodeIsInTrash: 'Ova stavka je u korpi za otpatke',
+ saveModalTitle: 'Spremi',
},
blueprints: {
createBlueprintFrom: 'Kreirajte novi predložak sadržaja iz %0%',
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/cs-cz.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/cs-cz.ts
index 5190da61f0..0f47ba053f 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/cs-cz.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/cs-cz.ts
@@ -300,6 +300,7 @@ export default {
createEmpty: 'Create new',
createFromClipboard: 'Paste from clipboard',
nodeIsInTrash: 'This item is in the Recycle Bin',
+ saveModalTitle: 'Uložit',
},
blueprints: {
createBlueprintFrom: 'Vytvořit novou šablonu obsahu z %0%',
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/cy-gb.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/cy-gb.ts
index afea7d0aff..01ca531714 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/cy-gb.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/cy-gb.ts
@@ -331,6 +331,7 @@ export default {
variantSendForApprovalNotAllowed: 'Ni chaniateir anfon am gymeradwyaeth',
variantScheduleNotAllowed: 'Ni chaniateir amserlennu',
variantUnpublishNotAllowed: 'Ni chaniateir dad-gyhoeddi',
+ saveModalTitle: 'Achub',
},
blueprints: {
createBlueprintFrom: "Creu Templed Cynnwys newydd o '%0%'",
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/da-dk.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/da-dk.ts
index 483843c117..b95bdce162 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/da-dk.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/da-dk.ts
@@ -326,6 +326,7 @@ export default {
variantSendForApprovalNotAllowed: 'Send for approval is not allowed',
variantScheduleNotAllowed: 'Schedule is not allowed',
variantUnpublishNotAllowed: 'Unpublish is not allowed',
+ saveModalTitle: 'Gem',
},
blueprints: {
createBlueprintFrom: "Opret en ny indholdsskabelon fra '%0%'",
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/de-de.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/de-de.ts
index fed36b1c08..66000861c1 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/de-de.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/de-de.ts
@@ -332,6 +332,7 @@ export default {
variantSendForApprovalNotAllowed: 'Zur Genehmigung senden ist nicht erlaubt.',
variantScheduleNotAllowed: 'Plannung ist nicht erlaubt',
variantUnpublishNotAllowed: 'Veröffentlichung zurücknehmen ist nicht erlaubt.',
+ saveModalTitle: 'Speichern',
},
blueprints: {
createBlueprintFrom: 'Erzeuge eine neue Inhaltsvorlage von %0%',
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts
index b27ed05a65..ccc472ee6b 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts
@@ -345,6 +345,7 @@ export default {
variantScheduleNotAllowed: 'Schedule is not allowed',
variantUnpublishNotAllowed: 'Unpublish is not allowed',
selectAllVariants: 'Select all variants',
+ saveModalTitle: 'Save',
},
blueprints: {
createBlueprintFrom: "Create a new Document Blueprint from '%0%'",
@@ -930,6 +931,7 @@ export default {
header: 'Header',
systemField: 'system field',
lastUpdated: 'Last Updated',
+ selectAll: 'Select all',
skipToMenu: 'Skip to menu',
skipToContent: 'Skip to content',
restore: 'Restore',
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/en.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/en.ts
index 18827472af..968a0fe484 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/en.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/en.ts
@@ -341,6 +341,7 @@ export default {
variantScheduleNotAllowed: 'Schedule is not allowed',
variantUnpublishNotAllowed: 'Unpublish is not allowed',
selectAllVariants: 'Select all variants',
+ saveModalTitle: 'Save',
},
blueprints: {
createBlueprintFrom: "Create a new Document Blueprint from '%0%'",
@@ -953,6 +954,7 @@ export default {
addChild: 'Add child',
editDataType: 'Edit data type',
navigateSections: 'Navigate sections',
+ selectAll: 'Select all',
shortcut: 'Shortcuts',
showShortcuts: 'show shortcuts',
toggleListView: 'Toggle list view',
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/es-es.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/es-es.ts
index 1e815027ef..bb2d4bd9b2 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/es-es.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/es-es.ts
@@ -202,6 +202,7 @@ export default {
addTextBox: 'Añadir otra caja de texto',
removeTextBox: 'Eliminar caja de texto',
contentRoot: 'Raíz de contenido',
+ saveModalTitle: 'Guardar',
},
blueprints: {
createBlueprintFrom: 'Crear nueva Plantilla de Contenido desde %0%',
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/fr-fr.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/fr-fr.ts
index 88ec99abfa..f465f3c76d 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/fr-fr.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/fr-fr.ts
@@ -297,6 +297,7 @@ export default {
schedulePublishHelp: "Sélectionnez la date et l'heure de publication/dépublication de l'élément de contenu.",
createEmpty: 'Créer nouveau',
createFromClipboard: 'Copier du clipboard',
+ saveModalTitle: 'Sauver',
},
blueprints: {
createBlueprintFrom: 'Créer un nouveau Modèle de Contenu à partir de %0%',
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/he-il.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/he-il.ts
index 146ec4f545..827b5e8b09 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/he-il.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/he-il.ts
@@ -113,6 +113,7 @@ export default {
updateDate: 'נערך לאחרונה',
uploadClear: 'הסר קובץ',
urls: 'קשר למסמך',
+ saveModalTitle: 'שמור',
},
create: {
chooseNode: 'היכן ברצונך ליצור את %0%',
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/hr-hr.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/hr-hr.ts
index d08b4d332e..3519e19060 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/hr-hr.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/hr-hr.ts
@@ -319,6 +319,7 @@ export default {
createEmpty: 'Kreiraj novo',
createFromClipboard: 'Zalijepi iz međuspremnika',
nodeIsInTrash: 'Ova stavka je u košu za smeće',
+ saveModalTitle: 'Spremi',
},
blueprints: {
createBlueprintFrom: 'Kreirajte novi predložak sadržaja iz %0%',
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/it-it.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/it-it.ts
index bef4e1f0eb..9a7dfb9eec 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/it-it.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/it-it.ts
@@ -331,6 +331,7 @@ export default {
createEmpty: 'Crea nuovo/a',
createFromClipboard: 'Incolla dagli appunti',
nodeIsInTrash: 'Questo articolo è nel cestino',
+ saveModalTitle: 'Salva',
},
blueprints: {
createBlueprintFrom: "Crea un nuovo modello di contenuto da '%0%'",
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/ja-jp.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/ja-jp.ts
index d16087a107..8f1c6130e6 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/ja-jp.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/ja-jp.ts
@@ -148,6 +148,7 @@ export default {
notmemberof: 'グループのメンバーではありません',
childItems: '子コンテンツ',
target: 'ターゲット',
+ saveModalTitle: '保存',
},
media: {
clickToUpload: 'クリックしてアップロードする',
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/ko-kr.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/ko-kr.ts
index 16ab5e6ba9..961d322c5a 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/ko-kr.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/ko-kr.ts
@@ -113,6 +113,7 @@ export default {
updateDate: '마지막 수정일',
uploadClear: '파일 삭제',
urls: '문서에 링크',
+ saveModalTitle: '저장',
},
create: {
chooseNode: '새로운 %0% (을)를 생성할 위치를 지정하십시오',
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/nb-no.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/nb-no.ts
index 94c3cb5eb2..92e082b4db 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/nb-no.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/nb-no.ts
@@ -146,6 +146,7 @@ export default {
notmemberof: 'Ikke medlem av gruppe(ne)',
childItems: 'Undersider',
target: 'Åpne i vindu',
+ saveModalTitle: 'Lagre',
},
media: {
clickToUpload: 'Klikk for å laste opp',
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/nl-nl.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/nl-nl.ts
index 8cb9748c6a..9833b8905d 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/nl-nl.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/nl-nl.ts
@@ -317,6 +317,7 @@ export default {
createEmpty: 'Maak nieuw',
createFromClipboard: 'Plakken vanaf het klembord',
nodeIsInTrash: 'Dit item is in de prullenbak',
+ saveModalTitle: 'Opslaan',
},
blueprints: {
createBlueprintFrom: 'Nieuw Inhoudssjabloon aanmaken voor %0%',
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/pl-pl.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/pl-pl.ts
index c91545622e..b02b668dcc 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/pl-pl.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/pl-pl.ts
@@ -199,6 +199,7 @@ export default {
addTextBox: 'Dodaj kolejne pole tekstowe',
removeTextBox: 'Usuń te pole tekstowe',
contentRoot: 'Korzeń zawartości',
+ saveModalTitle: 'Zapisz',
},
blueprints: {
createBlueprintFrom: 'Stwórz nowy Szablon Zawartości z %0%',
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/pt-br.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/pt-br.ts
index 501692b6d4..5ab8d07bc2 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/pt-br.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/pt-br.ts
@@ -113,6 +113,7 @@ export default {
updateDate: 'Última edição',
uploadClear: 'Remover arquivo',
urls: 'Link ao documento',
+ saveModalTitle: 'Salvar',
},
create: {
chooseNode: 'Onde você quer criar seu novo(a) %0%',
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/ru-ru.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/ru-ru.ts
index 042853eed7..7dd7d145de 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/ru-ru.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/ru-ru.ts
@@ -250,6 +250,7 @@ export default {
urls: 'Ссылка на документ',
addTextBox: 'Добавить новое поле текста',
removeTextBox: 'Удалить это поле текста',
+ saveModalTitle: 'Сохранить',
},
contentPicker: {
pickedTrashedItem: 'Выбран элемент содержимого, который в настоящее время удален или находится в корзине',
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/sv-se.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/sv-se.ts
index e33916c100..12e5c2b75b 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/sv-se.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/sv-se.ts
@@ -233,6 +233,7 @@ export default {
listViewNoContent: 'Inga undernoder har lagts till',
noChanges: 'Inga ändringar har gjorts',
notCreated: 'Ej skapad',
+ saveModalTitle: 'Spara',
},
contentTypeEditor: {
yesDelete: 'Ja, ta bort',
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/tr-tr.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/tr-tr.ts
index a7a1c8186b..681a683680 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/tr-tr.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/tr-tr.ts
@@ -305,6 +305,7 @@ export default {
createEmpty: 'Yeni oluştur',
createFromClipboard: 'Panodan yapıştır',
nodeIsInTrash: "Bu öğe Geri Dönüşüm Kutusu'nda",
+ saveModalTitle: 'Kaydet',
},
blueprints: {
createBlueprintFrom: '%0% den yeni bir İçerik Şablonu oluşturun',
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/uk-ua.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/uk-ua.ts
index f54696ab06..687193843a 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/uk-ua.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/uk-ua.ts
@@ -250,6 +250,7 @@ export default {
urls: 'Посилання на документ',
addTextBox: 'Додати нове текстове поле',
removeTextBox: 'Видалити це текстове поле',
+ saveModalTitle: 'Зберегти',
},
contentPicker: {
pickedTrashedItem: 'Вибрано елемент вмісту, який вилучено або знаходиться в корзині.',
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/zh-cn.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/zh-cn.ts
index b9038734bd..1681a72f11 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/zh-cn.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/zh-cn.ts
@@ -154,6 +154,7 @@ export default {
scheduledPublishServerTime: '这将转换到服务器上的以下时间:',
scheduledPublishDocumentation:
'这是什么意思?',
+ saveModalTitle: '保存',
},
media: {
clickToUpload: '点击上传',
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/zh-tw.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/zh-tw.ts
index da9413e108..6dfd7f5186 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/zh-tw.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/zh-tw.ts
@@ -153,6 +153,7 @@ export default {
scheduledPublishServerTime: '預計發表的時間(伺服器端)',
scheduledPublishDocumentation:
'這是什麼意思?',
+ saveModalTitle: '保存',
},
media: {
clickToUpload: '點選以便上傳',
diff --git a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.test.ts b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.test.ts
index 4126febed5..a0332b08a9 100644
--- a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.test.ts
+++ b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.test.ts
@@ -290,6 +290,12 @@ describe('UmbLocalizeController', () => {
const str = '#missing_translation_key';
expect(controller.string(str)).to.equal('#missing_translation_key');
});
+
+ it('should return an empty string if the input is not a string', async () => {
+ expect(controller.string(123)).to.equal('');
+ expect(controller.string({})).to.equal('');
+ expect(controller.string(undefined)).to.equal('');
+ });
});
describe('host element', () => {
diff --git a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.ts
index 49f337f3b4..587f7b14d8 100644
--- a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.ts
+++ b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.ts
@@ -178,7 +178,18 @@ export class UmbLocalizationController = [
},
],
sections: [
- 'Umb.Section.Content',
+ UMB_CONTENT_SECTION_ALIAS,
'Umb.Section.Media',
'Umb.Section.Settings',
'Umb.Section.Members',
@@ -71,7 +72,7 @@ export const data: Array = [
'Umb.Document.Rollback',
],
permissions: [],
- sections: ['Umb.Section.Content', 'Umb.Section.Media'],
+ sections: [UMB_CONTENT_SECTION_ALIAS, 'Umb.Section.Media'],
languages: [],
hasAccessToAllLanguages: true,
documentRootAccess: true,
@@ -124,7 +125,7 @@ export const data: Array = [
'Umb.Document.Notifications',
],
permissions: [],
- sections: ['Umb.Section.Content'],
+ sections: [UMB_CONTENT_SECTION_ALIAS],
languages: [],
hasAccessToAllLanguages: true,
documentRootAccess: true,
diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-custom-view/types.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-custom-view/types.ts
index fb67f8ae08..5e6c2c3b42 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/block/block-custom-view/types.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-custom-view/types.ts
@@ -16,7 +16,7 @@ export interface UmbBlockEditorCustomViewProperties<
BlockType extends UmbBlockTypeBaseModel = UmbBlockTypeBaseModel,
> {
manifest?: ManifestBlockEditorCustomView;
- config?: Partial;
+ config?: UmbBlockEditorCustomViewConfiguration;
blockType?: BlockType;
contentKey?: string;
label?: string;
diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-block-inline/block-grid-block-inline.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-block-inline/block-grid-block-inline.element.ts
index 297fc38d3f..36be37cd9b 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-block-inline/block-grid-block-inline.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-block-inline/block-grid-block-inline.element.ts
@@ -49,7 +49,9 @@ export class UmbBlockGridBlockInlineElement extends UmbLitElement {
}
override render() {
- return html`
+ return html`
+ return html`
diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-entries/block-grid-entries.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-entries/block-grid-entries.element.ts
index 7fd8dd32bf..57047f4b4e 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-entries/block-grid-entries.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-entries/block-grid-entries.element.ts
@@ -171,7 +171,10 @@ export class UmbBlockGridEntriesElement extends UmbFormControlMixin(UmbLitElemen
private _canCreate?: boolean;
@state()
- private _singleBlockTypeName?: string;
+ private _createLabel?: string;
+
+ @state()
+ private _configCreateLabel?: string;
@state()
private _styleElement?: HTMLLinkElement;
@@ -179,6 +182,9 @@ export class UmbBlockGridEntriesElement extends UmbFormControlMixin(UmbLitElemen
@state()
private _layoutEntries: Array = [];
+ @state()
+ private _isReadOnly: boolean = false;
+
constructor() {
super();
@@ -201,12 +207,13 @@ export class UmbBlockGridEntriesElement extends UmbFormControlMixin(UmbLitElemen
this.observe(
this.#context.firstAllowedBlockTypeName(),
(firstAllowedName) => {
- this._singleBlockTypeName = firstAllowedName;
+ this._createLabel = this.localize.term('blockEditor_addThis', this.localize.string(firstAllowedName));
},
'observeSingleBlockTypeName',
);
} else {
this.removeUmbControllerByAlias('observeSingleBlockTypeName');
+ this._createLabel = this.localize.term('blockEditor_addBlock');
}
},
null,
@@ -239,6 +246,26 @@ export class UmbBlockGridEntriesElement extends UmbFormControlMixin(UmbLitElemen
},
'observeStylesheet',
);
+
+ this.observe(
+ manager.readOnlyState.isReadOnly,
+ (isReadOnly) => (this._isReadOnly = isReadOnly),
+ 'observeIsReadOnly',
+ );
+
+ if (this.areaKey) {
+ this.observe(
+ this.#context.areaTypeCreateLabel,
+ (label) => (this._configCreateLabel = label),
+ 'observeConfigCreateLabel',
+ );
+ } else {
+ this.observe(
+ manager.editorConfigurationPart((x) => x?.find((y) => y.alias === 'createLabel')?.value),
+ (label) => (this._configCreateLabel = label as string | undefined),
+ 'observeConfigCreateLabel',
+ );
+ }
});
new UmbFormControlValidator(this, this /*, this.#dataPath*/);
@@ -330,38 +357,52 @@ export class UmbBlockGridEntriesElement extends UmbFormControlMixin(UmbLitElemen
`,
)}
- ${this._canCreate ? this.#renderCreateButton() : nothing}
+ ${this._canCreate ? this.#renderCreateButtonGroup() : nothing}
${this._areaKey ? html` ` : nothing}
`;
}
- #renderCreateButton() {
+ #renderCreateButtonGroup() {
if (this._areaKey === null || this._layoutEntries.length === 0) {
- return html`
-
- ${this._areaKey === null
- ? html`
-
- `
- : nothing}
+ return html`
+ ${this.#renderCreateButton()} ${this.#renderPasteButton()}
`;
+ } else if (this._isReadOnly === false) {
+ return html` `;
} else {
- return html`
-
- `;
+ return nothing;
}
}
+ #renderCreateButton() {
+ if (this._isReadOnly && this._layoutEntries.length > 0) return nothing;
+
+ return html`
+
+ `;
+ }
+
+ #renderPasteButton() {
+ if (this._areaKey) return nothing;
+ if (this._isReadOnly && this._layoutEntries.length > 0) return nothing;
+
+ return html`
+
+
+
+ `;
+ }
+
static override styles = [
UmbTextStyles,
css`
diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-entry/block-grid-entry.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-entry/block-grid-entry.element.ts
index 2f1e8aab2d..5bd07e2aba 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-entry/block-grid-entry.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-entry/block-grid-entry.element.ts
@@ -125,6 +125,9 @@ export class UmbBlockGridEntryElement extends UmbLitElement implements UmbProper
this.requestUpdate('_blockViewProps');
}
+ @state()
+ private _isReadOnly = false;
+
constructor() {
super();
@@ -133,7 +136,7 @@ export class UmbBlockGridEntryElement extends UmbLitElement implements UmbProper
this.#context.showContentEdit,
(showContentEdit) => {
this._showContentEdit = showContentEdit;
- this.#updateBlockViewProps({ config: { ...this._blockViewProps.config, showContentEdit } });
+ this.#updateBlockViewProps({ config: { ...this._blockViewProps.config!, showContentEdit } });
},
null,
);
@@ -141,7 +144,7 @@ export class UmbBlockGridEntryElement extends UmbLitElement implements UmbProper
this.#context.settingsElementTypeKey,
(key) => {
this._hasSettings = !!key;
- this.#updateBlockViewProps({ config: { ...this._blockViewProps.config, showSettingsEdit: !!key } });
+ this.#updateBlockViewProps({ config: { ...this._blockViewProps.config!, showSettingsEdit: !!key } });
},
null,
);
@@ -245,7 +248,7 @@ export class UmbBlockGridEntryElement extends UmbLitElement implements UmbProper
this.#context.workspaceEditContentPath,
(path) => {
this._workspaceEditContentPath = path;
- this.#updateBlockViewProps({ config: { ...this._blockViewProps.config, editContentPath: path } });
+ this.#updateBlockViewProps({ config: { ...this._blockViewProps.config!, editContentPath: path } });
},
null,
);
@@ -253,10 +256,16 @@ export class UmbBlockGridEntryElement extends UmbLitElement implements UmbProper
this.#context.workspaceEditSettingsPath,
(path) => {
this._workspaceEditSettingsPath = path;
- this.#updateBlockViewProps({ config: { ...this._blockViewProps.config, editSettingsPath: path } });
+ this.#updateBlockViewProps({ config: { ...this._blockViewProps.config!, editSettingsPath: path } });
},
null,
);
+
+ this.observe(
+ this.#context.readOnlyState.isReadOnly,
+ (isReadOnly) => (this._isReadOnly = isReadOnly),
+ 'umbReadonlyObserver',
+ );
}
async #observeData() {
@@ -389,6 +398,7 @@ export class UmbBlockGridEntryElement extends UmbLitElement implements UmbProper
.label=${this._label}
.icon=${this._icon}
.unpublished=${!this._exposed}
+ .config=${this._blockViewProps.config}
.content=${this._blockViewProps.content}
.settings=${this._blockViewProps.settings}>`;
}
@@ -399,6 +409,7 @@ export class UmbBlockGridEntryElement extends UmbLitElement implements UmbProper
.label=${this._label}
.icon=${this._icon}
.unpublished=${!this._exposed}
+ .config=${this._blockViewProps.config}
.content=${this._blockViewProps.content}
.settings=${this._blockViewProps.settings}>`;
}
@@ -406,14 +417,7 @@ export class UmbBlockGridEntryElement extends UmbLitElement implements UmbProper
#renderBlock() {
return this.contentKey && this._contentTypeAlias
? html`
- ${this._createBeforePath && this._showInlineCreateBefore
- ? html``
- : nothing}
+ ${this.#renderCreateBeforeInlineButton()}