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/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..eebc3ee1e5 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%',
@@ -481,7 +482,7 @@ export default {
'Promjena kulture jezika može biti skupa operacija i rezultirat će\n u kešu sadržaja i indeksima koji se rekonstruišu\n ',
lastEdited: 'Posljednji put uređeno',
link: 'Link',
- linkinternal: 'Interni link:',
+ linkinternal: 'Interni link',
linklocaltip: 'Kada koristite lokalne veze, umetnite "#" ispred linka',
linknewwindow: 'Otvori u novom prozoru?',
macroDoesNotHaveProperties: 'Ovaj makro ne sadrži svojstva koja možete uređivati',
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..90f89601a6 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%',
@@ -428,7 +429,7 @@ export default {
'Změna kultury jazyka může být náročná operace a bude mít za následek opětovné sestavení mezipaměti obsahu a indexů',
lastEdited: 'Naposledy editováno',
link: 'Odkaz',
- linkinternal: 'Místní odkaz:',
+ linkinternal: 'Místní odkaz',
linklocaltip: 'Při používání místních odkazů vložte znak "#" před odkaz',
linknewwindow: 'Otevřít v novém okně?',
macroDoesNotHaveProperties: 'Toto makro nemá žádné vlastnosti, které by bylo možno editovat',
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..a3b0dc27b5 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%'",
@@ -503,7 +504,7 @@ export default {
"Gall newid y diwylliant ar gyfer iaith fod yn weithrediad drud a bydd yn arwain at ailadeiladu'r storfa cynnwys a'r mynegeion",
lastEdited: 'Golygwyd ddiwethaf',
link: 'Dolen',
- linkinternal: 'Dolen fewnol:',
+ linkinternal: 'Dolen fewnol',
linklocaltip: 'Wrth ddefnyddio dolenni leol, defnyddiwch "#" o flaen y ddolen',
linknewwindow: 'Agor mewn ffenestr newydd?',
macroDoesNotHaveProperties: "Nid yw'r macro yma yn cynnwys unrhyw briodweddau gallwch chi olygu",
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..224cf316de 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%'",
@@ -498,7 +499,7 @@ export default {
'Ændring af kulturen for et sprog kan forsage en krævende opration og vil\n resultere i indholds cache og indeksering vil blive genlavet\n ',
lastEdited: 'Sidst redigeret',
link: 'Link',
- linkinternal: 'Internt link:',
+ linkinternal: 'Internt link',
linklocaltip: 'Ved lokalt link, indsæt da en "#" foran linket',
linknewwindow: 'Åben i nyt vindue?',
macroDoesNotHaveProperties: 'Denne makro har ingen egenskaber du kan redigere',
@@ -782,6 +783,7 @@ export default {
email: 'E-mail',
error: 'Fejl',
field: 'Felt',
+ fieldFor: 'Felt for %0%',
findDocument: 'Find',
first: 'Første',
focalPoint: 'Fokuspunkt',
@@ -899,6 +901,7 @@ export default {
avatar: 'Avatar til',
header: 'Overskrift',
systemField: 'system felt',
+ readOnly: 'Skrivebeskyttet',
restore: 'Genskab',
generic: 'Generic',
media: 'Media',
@@ -2361,7 +2364,8 @@ export default {
allowBlockInAreas: 'Allow in areas',
allowBlockInAreasHelp:
'Make this block available by default within the areas of other Blocks (unless explicit permissions are set for these areas).',
- createThisFor: 'Opret %0% for %1%',
+ createThisFor: (name: string, variantName: string) =>
+ variantName ? `Opret ${name} for ${variantName}` : `Create ${name}`,
insertBlock: 'Indsæt Block',
labelInlineMode: 'Indsæt på linje med tekst',
},
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..7733d6fa34 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%',
@@ -502,7 +503,7 @@ export default {
'\n Die Kultur-Variante einer Sprache zu ändern ist möglicherweise eine aufwendige Operation und führt zum Erneuern von Inhalts-Zwischenspeicher und Such-Index.\n ',
lastEdited: 'Zuletzt bearbeitet',
link: 'Verknüpfung',
- linkinternal: 'Anker:',
+ linkinternal: 'Internen Link',
linklocaltip: 'Wenn lokale Links verwendet werden, füge ein "#" vor den Link ein',
linknewwindow: 'In einem neuen Fenster öffnen?',
macroDoesNotHaveProperties: 'Dieses Makro enthält keine einstellbaren Eigenschaften.',
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..6f53119e14 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%'",
@@ -520,7 +521,7 @@ export default {
'Changing the culture for a language may be an expensive operation and will result\n in the content cache and indexes being rebuilt\n ',
lastEdited: 'Last Edited',
link: 'Link',
- linkinternal: 'Internal link:',
+ linkinternal: 'Internal link',
linklocaltip: 'When using local links, insert "#" in front of link',
linknewwindow: 'Open in new window?',
macroDoesNotHaveProperties: 'This macro does not contain any properties you can edit',
@@ -552,7 +553,7 @@ export default {
relateToOriginalLabel: 'Relate to original',
includeDescendants: 'Include descendants',
theFriendliestCommunity: 'The friendliest community',
- linkToPage: 'Link to page',
+ linkToPage: 'Link to document',
openInNewWindow: 'Opens the linked document in a new window or tab',
linkToMedia: 'Link to media',
selectContentStartNode: 'Select content start node',
@@ -565,8 +566,8 @@ export default {
selectContent: 'Select content',
selectContentType: 'Select content type',
selectMediaStartNode: 'Select media start node',
- selectMember: 'Select member',
- selectMembers: 'Select members',
+ selectMember: 'Choose member',
+ selectMembers: 'Choose members',
selectMemberGroup: 'Select member group',
selectMemberType: 'Select member type',
selectNode: 'Select node',
@@ -802,6 +803,7 @@ export default {
email: 'Email',
error: 'Error',
field: 'Field',
+ fieldFor: 'Field for %0%',
findDocument: 'Find',
first: 'First',
focalPoint: 'Focal point',
@@ -930,9 +932,11 @@ export default {
header: 'Header',
systemField: 'system field',
lastUpdated: 'Last Updated',
+ selectAll: 'Select all',
skipToMenu: 'Skip to menu',
skipToContent: 'Skip to content',
restore: 'Restore',
+ readOnly: 'Read-only',
newVersionAvailable: 'New version available',
},
colors: {
@@ -2513,7 +2517,8 @@ export default {
configureArea: 'Configure area',
deleteArea: 'Delete area',
addColumnSpanOption: 'Add spanning %0% columns option',
- createThisFor: 'Create %0% for %1%',
+ createThisFor: (name: string, variantName: string) =>
+ variantName ? `Create ${name} for ${variantName}` : `Create ${name}`,
insertBlock: 'Insert Block',
labelInlineMode: 'Display inline with text',
},
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..27fb01708b 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/en.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/en.ts
@@ -47,6 +47,7 @@ export default {
notify: 'Notifications',
protect: 'Public Access',
publish: 'Publish',
+ readOnly: 'Read-only',
refreshNode: 'Reload',
remove: 'Remove',
rename: 'Rename',
@@ -341,6 +342,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%'",
@@ -518,7 +520,7 @@ export default {
'Changing the culture for a language may be an expensive operation and will result\n in the content cache and indexes being rebuilt\n ',
lastEdited: 'Last Edited',
link: 'Link',
- linkinternal: 'Internal link:',
+ linkinternal: 'Internal link',
linklocaltip: 'When using local links, insert "#" in front of link',
linknewwindow: 'Open in new window?',
macroDoesNotHaveProperties: 'This macro does not contain any properties you can edit',
@@ -550,7 +552,7 @@ export default {
relateToOriginalLabel: 'Relate to original',
includeDescendants: 'Include descendants',
theFriendliestCommunity: 'The friendliest community',
- linkToPage: 'Link to page',
+ linkToPage: 'Link to document',
openInNewWindow: 'Opens the linked document in a new window or tab',
linkToMedia: 'Link to media',
selectContentStartNode: 'Select content start node',
@@ -564,8 +566,8 @@ export default {
selectContent: 'Select content',
selectContentType: 'Select content type',
selectMediaStartNode: 'Select media start node',
- selectMember: 'Select member',
- selectMembers: 'Select members',
+ selectMember: 'Choose member',
+ selectMembers: 'Choose members',
selectMemberGroup: 'Select member group',
selectMemberType: 'Select member type',
selectNode: 'Select node',
@@ -804,6 +806,7 @@ export default {
email: 'Email',
error: 'Error',
field: 'Field',
+ fieldFor: 'Field for %0%',
findDocument: 'Find',
first: 'First',
focalPoint: 'Focal point',
@@ -953,6 +956,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',
@@ -2571,7 +2575,8 @@ export default {
configureArea: 'Configure area',
deleteArea: 'Delete area',
addColumnSpanOption: 'Add spanning %0% columns option',
- createThisFor: 'Create %0% for %1%',
+ createThisFor: (name: string, variantName: string) =>
+ variantName ? `Create ${name} for ${variantName}` : `Create ${name}`,
insertBlock: 'Insert Block',
labelInlineMode: 'Display inline with text',
},
@@ -2648,5 +2653,15 @@ export default {
extGroup_interactive: 'Interactive elements',
extGroup_media: 'Embeds and media',
extGroup_structure: 'Content structure',
+ extGroup_unknown: 'Uncategorized',
+ toobar_availableItems: 'Available toolbar items',
+ toobar_availableItemsEmpty: 'There are no toolbar extensions to show',
+ toolbar_designer: 'Toolbar designer',
+ toolbar_addRow: 'Add row configuration',
+ toolbar_addGroup: 'Add group',
+ toolbar_addItems: 'Add items',
+ toolbar_removeRow: 'Remove row',
+ toolbar_removeGroup: 'Remove group',
+ toolbar_removeItem: 'Remove item',
},
} as UmbLocalizationDictionary;
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..f62092bcea 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%',
@@ -441,7 +442,7 @@ export default {
"Modifier la culture d'une langue peut être une opération lourde qui aura pour conséquence la réinitialisation de la cache de contenu et des index",
lastEdited: 'Dernière modification',
link: 'Lien',
- linkinternal: 'Lien interne :',
+ linkinternal: 'Lien interne',
linklocaltip: 'Si vous utilisez des ancres, insérez # au début du lien',
linknewwindow: 'Ouvrir dans une nouvelle fenêtre?',
macroDoesNotHaveProperties: 'Cette macro ne contient aucune propriété éditable',
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..005f465fcc 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%',
@@ -177,7 +178,7 @@ export default {
inserttable: 'הוסף טבלה',
lastEdited: 'נערך לאחרונה',
link: 'קישור',
- linkinternal: 'קישור פנימי:',
+ linkinternal: 'קישור פנימי',
linklocaltip: 'בעת שימוש בקישוריים פנימיים, הוסף "#" בתחילת הקישור',
linknewwindow: 'לפתוח בחלון חדש?',
macroDoesNotHaveProperties: 'המאקרו לא מכיל מאפיינים שניתן לערוך',
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..23ee4b8d21 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%',
@@ -483,7 +484,7 @@ export default {
'Promjena kulture jezika može biti skupa operacija i rezultirat će promjenama u predmemoriji sadržaja i indeksima koji se rekonstruiraju\n ',
lastEdited: 'Zadnje uređivano',
link: 'Link',
- linkinternal: 'Interni link:',
+ linkinternal: 'Interni link',
linklocaltip: 'Kada koristite lokalni linkovi, umetnite "#" ispred linka',
linknewwindow: 'Otvoriti u novom prozoru?',
macroDoesNotHaveProperties: 'Ovaj makro ne sadrži svojstva koja možete uređivati',
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..e991e84f29 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%'",
@@ -494,7 +495,7 @@ export default {
"La modifica della cultura di una lingua può essere un'operazione costosa e comporterà la ricostruzione della cache dei contenuti e degli indici",
lastEdited: 'Ultima modifica',
link: 'Link',
- linkinternal: 'Link interno:',
+ linkinternal: 'Link interno',
linklocaltip: 'Quando usi il link locale, inserisci # prima del link',
linknewwindow: 'Apri in nuova finestra?',
macroContainerSettings: 'Impostazioni della macro',
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..489fc8c939 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: 'クリックしてアップロードする',
@@ -226,7 +227,7 @@ export default {
inserttable: '表の挿入',
lastEdited: '最近の更新',
link: 'リンク',
- linkinternal: '内部リンク:',
+ linkinternal: '内部リンク',
linklocaltip: '内部リンクを使うときは、リンクの前に "#" を挿入してください。',
linknewwindow: '新規ウィンドウで開きますか?',
macroDoesNotHaveProperties: 'このマクロは編集できるプロパティがありません',
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..2b3508ca9b 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% (을)를 생성할 위치를 지정하십시오',
@@ -177,7 +178,7 @@ export default {
inserttable: '테이블 삽입',
lastEdited: '마지막 수정',
link: '링크',
- linkinternal: '내부링크:',
+ linkinternal: '내부링크',
linklocaltip: '내부링크를 사용하실 때 링크앞에 "#"를 넣어주세요',
linknewwindow: '새 창으로 여시겠습니까?',
macroDoesNotHaveProperties: '이 매크로에는 편집할 수 있는 항목이 포함되어 있지 않습니다.',
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..f25989e84d 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',
@@ -221,7 +222,7 @@ export default {
inserttable: 'Sett inn tabell',
lastEdited: 'Sist redigert',
link: 'Lenke',
- linkinternal: 'Intern link:',
+ linkinternal: 'Intern link',
linklocaltip: 'Ved lokal link, sett inn "#" foran link',
linknewwindow: 'Åpne i nytt vindu?',
macroDoesNotHaveProperties: 'Denne makroen har ingen egenskaper du kan endre',
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..5b7a3e7408 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%',
@@ -451,7 +452,7 @@ export default {
'De cultuur veranderen voor een taal kan een langdurige operatie zijn en zal ertoe\n leiden dat de inhoudscache en indexen opnieuw worden opgebouwd\n ',
lastEdited: 'Laatst aangepast op',
link: 'Link',
- linkinternal: 'Interne link:',
+ linkinternal: 'Interne link',
linklocaltip: 'Plaats een hekje (“#”) voor voor interne links.',
linknewwindow: 'In nieuw venster openen?',
macroDoesNotHaveProperties: 'Deze macro heeft geen eigenschappen die u kunt bewerken',
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..cd22efb437 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%',
@@ -301,7 +302,7 @@ export default {
inserttable: 'Wstaw tabelę',
lastEdited: 'Ostatnio edytowane',
link: 'Link',
- linkinternal: 'Link wewnętrzny:',
+ linkinternal: 'Link wewnętrzny',
linklocaltip: 'Kiedy używasz odnośników lokalnych, wstaw znak "#" na początku linku',
linknewwindow: 'Otworzyć w nowym oknie?',
macroDoesNotHaveProperties: 'To makro nie posiada żadnych właściwości, które można edytować',
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..49e374abb5 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%',
@@ -177,7 +178,7 @@ export default {
inserttable: 'Inserir tabela',
lastEdited: 'Última Edição',
link: 'Link',
- linkinternal: 'Link interno:',
+ linkinternal: 'Link interno',
linklocaltip: 'Ao usar links locais insira "#" na frente do link',
linknewwindow: 'Abrir em nova janela?',
macroDoesNotHaveProperties: 'Este macro não contém nenhuma propriedade que possa ser editada',
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..4bb00f41c4 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: 'Выбран элемент содержимого, который в настоящее время удален или находится в корзине',
@@ -358,7 +359,7 @@ export default {
inserttable: 'Вставить таблицу',
lastEdited: 'Последняя правка',
link: 'Ссылка',
- linkinternal: 'Внутренняя ссылка:',
+ linkinternal: 'Внутренняя ссылка',
linklocaltip: 'Для того чтобы определить локальную ссылку, используйте "#" первым символом',
linknewwindow: 'Открыть в новом окне?',
macroDoesNotHaveProperties: 'Этот макрос не имеет редактируемых свойств',
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..95ff3be286 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',
@@ -371,10 +372,12 @@ export default {
inserttable: 'Infoga tabell',
lastEdited: 'Senast redigerad',
link: 'Länk',
- linkinternal: 'Intern länk:',
+ linkinternal: 'Intern länk',
linklocaltip: 'När du använder lokala länkar, lägg till "#" framför länken',
linknewwindow: 'Öppna i nytt fönster?',
macroDoesNotHaveProperties: 'Detta makro innehåller inga egenskaper som du kan redigera',
+ selectMember: 'Välj medlem',
+ selectMembers: 'Välj medlemmar',
paste: 'Klistra in',
permissionsEdit: 'Redigera rättigheter för',
recycleBinDeleting: 'Allt som ligger i papperskorgen tas nu bort. Stäng inte detta fönster förrän detta är klart',
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..a347f09442 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',
@@ -436,7 +437,7 @@ export default {
'Bir dil için kültürü değiştirmek pahalı bir işlem olabilir ve içerik önbelleğinin ve dizinlerin yeniden oluşturulmasına neden olabilir',
lastEdited: 'Son Düzenleme',
link: 'Bağlantı',
- linkinternal: 'Dahili bağlantı:',
+ linkinternal: 'Dahili bağlantı',
linklocaltip: 'Yerel bağlantıları kullanırken, bağlantının önüne "#" ekleyin',
linknewwindow: 'Yeni pencerede açılsın mı?',
macroDoesNotHaveProperties: 'Bu makro düzenleyebileceğiniz herhangi bir özellik içermiyor',
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..d480b68234 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: 'Вибрано елемент вмісту, який вилучено або знаходиться в корзині.',
@@ -357,7 +358,7 @@ export default {
inserttable: 'Вставити таблицю',
lastEdited: 'Остання зміна',
link: 'Посилання',
- linkinternal: 'Внутрішнє посилання:',
+ linkinternal: 'Внутрішнє посилання',
linklocaltip: 'Для визначення локального посилання, використовуйте "#" першим символом',
linknewwindow: 'Відкрити у новому вікні?',
macroDoesNotHaveProperties: 'Цей макрос не має властивостей, що редагуються.',
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..41809f04d0 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: '点击上传',
@@ -232,7 +233,7 @@ export default {
inserttable: '插入表格',
lastEdited: '最近编辑',
link: '链接',
- linkinternal: '内部链接:',
+ linkinternal: '内部链接',
linklocaltip: '本地链接请用“#”号开头',
linknewwindow: '在新窗口中打开?',
macroDoesNotHaveProperties: '该宏没有可编辑的属性',
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..3d08d514a5 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: '點選以便上傳',
@@ -231,7 +232,7 @@ export default {
inserttable: '插入表格',
lastEdited: '最近編輯',
link: '連結',
- linkinternal: '內部連結:',
+ linkinternal: '內部連結',
linklocaltip: '本地連結請用“#”號開頭',
linknewwindow: '在新視窗中打開?',
macroDoesNotHaveProperties: '本巨集沒有包含您可以編輯的屬性',
diff --git a/src/Umbraco.Web.UI.Client/src/json-schema/all-packages.ts b/src/Umbraco.Web.UI.Client/src/json-schema/all-packages.ts
index 11e3b72b14..2f8a997a00 100644
--- a/src/Umbraco.Web.UI.Client/src/json-schema/all-packages.ts
+++ b/src/Umbraco.Web.UI.Client/src/json-schema/all-packages.ts
@@ -33,6 +33,7 @@ import '@umbraco-cms/backoffice/document-type';
import '@umbraco-cms/backoffice/document';
import '@umbraco-cms/backoffice/entity-action';
import '@umbraco-cms/backoffice/entity-bulk-action';
+import '@umbraco-cms/backoffice/entity-create-option-action';
import '@umbraco-cms/backoffice/entity';
import '@umbraco-cms/backoffice/event';
import '@umbraco-cms/backoffice/extension-registry';
diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.ts
index f4e1b9d4fc..48d5fd8f49 100644
--- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.ts
+++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.ts
@@ -201,6 +201,7 @@ export abstract class UmbBaseExtensionsInitializer<
if (!this.#extensionRegistry) return;
const oldPermittedExtsLength = this.#exposedPermittedExts?.length ?? 0;
+ this._extensions.forEach((extension) => extension.destroy());
(this._extensions as unknown) = undefined;
(this.#permittedExts as unknown) = undefined;
this.#exposedPermittedExts = undefined;
diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.test.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.test.ts
index caed039f60..5a9cfce9b5 100644
--- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.test.ts
+++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.test.ts
@@ -8,6 +8,7 @@ import type {
} from '../types/index.js';
import { UmbExtensionRegistry } from './extension.registry.js';
import { expect } from '@open-wc/testing';
+import { UMB_WORKSPACE_CONDITION_ALIAS } from '@umbraco-cms/backoffice/workspace';
interface TestManifestWithMeta extends ManifestBase {
meta: unknown;
@@ -535,7 +536,7 @@ describe('Add Conditions', () => {
// Add a condition with a specific config to Section2
const workspaceCondition: WorkspaceAliasConditionConfig = {
- alias: 'Umb.Condition.WorkspaceAlias',
+ alias: UMB_WORKSPACE_CONDITION_ALIAS,
match: 'Umb.Workspace.Document',
};
@@ -543,7 +544,7 @@ describe('Add Conditions', () => {
const updatedWorkspaceExt = extensionRegistry.getByAlias('Umb.Test.Section.2') as ManifestWithDynamicConditions;
expect(updatedWorkspaceExt.conditions?.length).to.equal(1);
- expect(updatedWorkspaceExt.conditions?.[0]?.alias).to.equal('Umb.Condition.WorkspaceAlias');
+ expect(updatedWorkspaceExt.conditions?.[0]?.alias).to.equal(UMB_WORKSPACE_CONDITION_ALIAS);
});
it('allows an extension to update with multiple conditions', async () => {
@@ -555,7 +556,7 @@ describe('Add Conditions', () => {
alias: 'Umb.Test.Condition.Valid',
},
{
- alias: 'Umb.Condition.WorkspaceAlias',
+ alias: UMB_WORKSPACE_CONDITION_ALIAS,
match: 'Umb.Workspace.Document',
} as WorkspaceAliasConditionConfig,
];
@@ -566,7 +567,7 @@ describe('Add Conditions', () => {
expect(extUpdated.conditions?.length).to.equal(3);
expect(extUpdated.conditions?.[0]?.alias).to.equal('Umb.Test.Condition.Invalid');
expect(extUpdated.conditions?.[1]?.alias).to.equal('Umb.Test.Condition.Valid');
- expect(extUpdated.conditions?.[2]?.alias).to.equal('Umb.Condition.WorkspaceAlias');
+ expect(extUpdated.conditions?.[2]?.alias).to.equal(UMB_WORKSPACE_CONDITION_ALIAS);
});
it('allows conditions to be prepended when an extension is loaded later on', async () => {
@@ -575,7 +576,7 @@ describe('Add Conditions', () => {
alias: 'Umb.Test.Condition.Invalid',
},
{
- alias: 'Umb.Condition.WorkspaceAlias',
+ alias: UMB_WORKSPACE_CONDITION_ALIAS,
match: 'Umb.Workspace.Document',
} as WorkspaceAliasConditionConfig,
];
@@ -606,7 +607,7 @@ describe('Add Conditions', () => {
expect(extUpdated.conditions?.length).to.equal(3);
expect(extUpdated.conditions?.[0]?.alias).to.equal('Umb.Test.Condition.Valid');
expect(extUpdated.conditions?.[1]?.alias).to.equal('Umb.Test.Condition.Invalid');
- expect(extUpdated.conditions?.[2]?.alias).to.equal('Umb.Condition.WorkspaceAlias');
+ expect(extUpdated.conditions?.[2]?.alias).to.equal(UMB_WORKSPACE_CONDITION_ALIAS);
});
/**
@@ -622,7 +623,7 @@ describe('Add Conditions', () => {
alias: 'Umb.Test.Condition.Invalid',
},
{
- alias: 'Umb.Condition.WorkspaceAlias',
+ alias: UMB_WORKSPACE_CONDITION_ALIAS,
match: 'Umb.Workspace.Document',
} as WorkspaceAliasConditionConfig,
];
diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts
index 580da1cb1f..0d53be4b26 100644
--- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts
+++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts
@@ -100,6 +100,7 @@ const sortExtensions = (a: ManifestBase, b: ManifestBase): number => (b.weight |
export class UmbExtensionRegistry<
IncomingManifestTypes extends ManifestBase,
+ IncomingConditionConfigTypes extends UmbConditionConfigBase = UmbConditionConfigBase,
ManifestTypes extends ManifestBase = IncomingManifestTypes | ManifestBase,
> {
readonly MANIFEST_TYPES: ManifestTypes = undefined as never;
@@ -490,7 +491,7 @@ export class UmbExtensionRegistry<
* @param {string} alias - The alias of the extension to append the condition to.
* @param {UmbConditionConfigBase} newCondition - The condition to append to the extension.
*/
- appendCondition(alias: string, newCondition: UmbConditionConfigBase) {
+ appendCondition(alias: string, newCondition: IncomingConditionConfigTypes) {
this.appendConditions(alias, [newCondition]);
}
@@ -499,7 +500,7 @@ export class UmbExtensionRegistry<
* @param {string} alias - The alias of the extension to append the condition to
* @param {Array} newConditions - An array of conditions to be appended to an extension manifest.
*/
- appendConditions(alias: string, newConditions: Array) {
+ appendConditions(alias: string, newConditions: Array) {
const existingConditionsToBeAdded = this.#additionalConditions.get(alias);
this.#additionalConditions.set(
alias,
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 587f7b14d8..d855db82a1 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
@@ -109,8 +109,9 @@ export class UmbLocalizationController(key: K, ...args: FunctionParams): string {
if (!this.#usedKeys.includes(key)) {
diff --git a/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/basic-state.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/basic-state.ts
index 7f5f609da4..d37def15d7 100644
--- a/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/basic-state.ts
+++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/basic-state.ts
@@ -1,4 +1,4 @@
-import { BehaviorSubject } from '@umbraco-cms/backoffice/external/rxjs';
+import { BehaviorSubject, type Observable } from '@umbraco-cms/backoffice/external/rxjs';
/**
* @class UmbBasicState
@@ -20,30 +20,31 @@ export class UmbBasicState {
*
* this.observe(myState, (latestStateValue) => console.log("Value is: ", latestStateValue));
*/
- public asObservable(): ReturnType['asObservable']> {
+ public asObservable(): Observable {
return this._subject.asObservable();
}
/**
- * @property value
+ * @property {unknown} value - the value of the State.
* @description - Holds the current data of this state.
+ * @returns {unknown} Observable that
* @example
Example retrieve the current data of a state
* const myState = new UmbArrayState('Hello world');
* console.log("Value is: ", myState.value);
*/
- public get value(): BehaviorSubject['value'] {
+ public get value(): T {
return this.getValue();
}
/**
* @function getValue
- * @returns {T} The current data of this state.
+ * @returns {unknown} The current data of this state.
* @description - Provides the current data of this state.
* @example
Example retrieve the current data of a state
* const myState = new UmbArrayState('Hello world');
* console.log("Value is: ", myState.value);
*/
- public getValue(): ReturnType['getValue']> {
+ public getValue(): T {
return this._subject.getValue();
}
@@ -58,7 +59,7 @@ export class UmbBasicState {
/**
* @function setValue
- * @param {T} data - The next data for this state to hold.
+ * @param {unknown} data - The next data for this state to hold.
* @description - Set the data of this state, if data is different than current this will trigger observations to update.
* @example
Example change the data of a state
* const myState = new UmbArrayState('Good morning');
diff --git a/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/class-state.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/class-state.ts
index 26fc104415..fad45c4175 100644
--- a/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/class-state.ts
+++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/class-state.ts
@@ -1,12 +1,9 @@
import type { MappingFunction } from '../types/mapping-function.type.js';
import type { MemoizationFunction } from '../types/memoization-function.type.js';
+import type { UmbClassStateData } from '../utils/class-equal-memoization.function.js';
import { createObservablePart } from '../utils/create-observable-part.function.js';
import { UmbBasicState } from './basic-state.js';
-export interface UmbClassStateData {
- equal(otherClass: this | undefined): boolean;
-}
-
/**
* @class UmbClassState
* @augments {UmbBasicState}
@@ -18,10 +15,10 @@ export class UmbClassState extends UmbB
}
/**
-
* @function createObservablePart
- * @param {(mappable: T) => R} mappingFunction - Method to return the part for this Observable to return.
- * @param {(previousResult: R, currentResult: R) => boolean} [memoizationFunction] - Method to Compare if the data has changed. Should return true when data is different.
+ * @param {(mappable: UmbClassStateData | undefined) => unknown} mappingFunction - Method to return the part for this Observable to return.
+ * @param {(previousResult: unknown, currentResult: unknown) => boolean} [memoizationFunction] - Method to Compare if the data has changed. Should return true when data is different.
+ * @returns {Observable} - an observable.
* @description - Creates an Observable from this State.
*/
asObservablePart(
@@ -33,7 +30,7 @@ export class UmbClassState extends UmbB
/**
* @function setValue
- * @param {T} data - The next data for this state to hold.
+ * @param {UmbClassStateData | undefined} data - The next data for this state to hold.
* @description - Set the data of this state, if data is different than current this will trigger observations to update.
*/
override setValue(data: T): void {
diff --git a/src/Umbraco.Web.UI.Client/src/libs/observable-api/utils/class-equal-memoization.function.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/utils/class-equal-memoization.function.ts
new file mode 100644
index 0000000000..ab4cdada11
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/utils/class-equal-memoization.function.ts
@@ -0,0 +1,20 @@
+/**
+ * @function classEqualMemoization
+ * @param {UmbClassStateData | undefined} previousValue - The previous value to compare.
+ * @param {UmbClassStateData | undefined} currentValue - The current value to compare.
+ * @returns {boolean} - Returns true if the values are identical.
+ * @description - Compares the two values using strict equality.
+ */
+export function classEqualMemoization(
+ previousValue: UmbClassStateData | undefined,
+ currentValue: UmbClassStateData | undefined,
+): boolean {
+ return (
+ (previousValue && currentValue && previousValue.equal(currentValue)) ||
+ (previousValue === undefined && currentValue === undefined)
+ );
+}
+
+export interface UmbClassStateData {
+ equal(otherClass: this | undefined): boolean;
+}
diff --git a/src/Umbraco.Web.UI.Client/src/libs/observable-api/utils/create-observable-part.function.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/utils/create-observable-part.function.ts
index d8762bf36d..f878d7cced 100644
--- a/src/Umbraco.Web.UI.Client/src/libs/observable-api/utils/create-observable-part.function.ts
+++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/utils/create-observable-part.function.ts
@@ -9,6 +9,7 @@ import { distinctUntilChanged, map, shareReplay } from '@umbraco-cms/backoffice/
* @param {Observable} source - RxJS Subject to use for this Observable.
* @param {(mappable: T) => R} mappingFunction - Method to return the part for this Observable to return.
* @param {(previousResult: R, currentResult: R) => boolean} [memoizationFunction] - Method to Compare if the data has changed. Should return true when data is different.
+ * @returns {Observable}
* @description - Creates a RxJS Observable from RxJS Subject.
* @example
Example create a Observable for part of the data Subject.