* Add workspace MCP settings and token access controls. Ship MCP settings UI, OAuth revoke/list helpers, Passport deploy wiring, and workspace.token:mcp gating so assistants can connect without pulling in welcome/onboarding from the parent epic. Co-authored-by: Cursor <cursoragent@cursor.com> * Type MCP client config shapes instead of string checks. Encode http/config-root on each advanced client and tighten primary client ids so snippet generation does not branch on magic strings. Co-authored-by: Cursor <cursoragent@cursor.com> * Polish MCP settings follow-ups from review. Translate Ukrainian MCP copy, deep-link ChatGPT into connector creation, drop an unused asset and revoke arg, and assert PATs are rejected on the MCP endpoint. Co-authored-by: Cursor <cursoragent@cursor.com> * Harden MCP connected clients, revoke scope, and OAuth consent. List recoverable sessions with live refresh tokens, revoke only PATs, throttle registration alone, and block viewers from authorizing MCP. Co-authored-by: Cursor <cursoragent@cursor.com> * Simplify MCP OAuth route throttling to a single middleware group. Co-authored-by: Cursor <cursoragent@cursor.com> * Allow workspace viewers read-only MCP access with web policy writes. Mirror the web app: MCP connects on view + OAuth mcp:use, write tools enforce createPost/update/delete/manageAccounts/manageTeam, and demotion to Viewer keeps grants. Cover role denials, consent, and disconnect. Co-authored-by: Cursor <cursoragent@cursor.com> * Harden MCP tool authz with shared workspace helpers. Route ApiKey tools through AuthorizesMcpTool, fail closed on null user or policy argument, and resolve the current workspace before mutating. Co-authored-by: Cursor <cursoragent@cursor.com> * Drop redundant string casts on validated request data. Enum::from and validated() fields are already strings, so the casts add noise without changing behavior. Co-authored-by: Cursor <cursoragent@cursor.com> * Show only the current user's MCP connections in settings. Match API keys privacy: list and disconnect your own OAuth clients, not teammates' across the account. Co-authored-by: Cursor <cursoragent@cursor.com> * Cover LoadWorkspaceFromToken gaps and harden AuthorizesMcpTool tests. Co-authored-by: Cursor <cursoragent@cursor.com> * Drop redundant is_string guard before UpdatePostTool find. Co-authored-by: Cursor <cursoragent@cursor.com> * Refactor AppSidebar to always show MCP link and simplify route middleware definition in ai.php. The MCP link is now consistently displayed regardless of the current workspace state, and the route middleware syntax has been streamlined. * Refresh MCP connected clients with Inertia usePoll. Co-authored-by: Cursor <cursoragent@cursor.com> * Bump laravel/mcp to 0.9.1 and add the TryPost server icon. Requires laravel/boost 2.5 for the Icon attribute; expose images/trypost/icon.png on TryPostServer. Co-authored-by: Cursor <cursoragent@cursor.com> * Drop no-op ReflectionClass import in TryPostServerTest. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>
385 lines
22 KiB
PHP
385 lines
22 KiB
PHP
<?php
|
|
|
|
return [
|
|
'title' => 'الإعدادات',
|
|
'description' => 'إدارة ملفك الشخصي وإعدادات حسابك',
|
|
|
|
'hub' => [
|
|
'title' => 'الإعدادات',
|
|
'description' => 'اختر ما تريد إدارته.',
|
|
'profile' => [
|
|
'title' => 'الملف الشخصي',
|
|
'description' => 'حدّث معلوماتك الشخصية وكلمة المرور وتفضيلات الإشعارات.',
|
|
],
|
|
'workspace' => [
|
|
'title' => 'مساحة العمل',
|
|
'description' => 'اضبط مساحة عملك وعلامتك التجارية والأعضاء ومفاتيح API.',
|
|
],
|
|
'account' => [
|
|
'title' => 'الحساب',
|
|
'description' => 'إدارة معلومات حسابك واستخدامك والفوترة.',
|
|
],
|
|
],
|
|
|
|
'nav' => [
|
|
'profile' => 'الملف الشخصي',
|
|
'authentication' => 'المصادقة',
|
|
'workspace' => 'مساحة العمل',
|
|
'members' => 'الأعضاء',
|
|
'notifications' => 'الإشعارات',
|
|
'billing' => 'الفوترة',
|
|
],
|
|
|
|
'notifications' => [
|
|
'title' => 'تفضيلات الإشعارات',
|
|
'heading' => 'إشعارات البريد الإلكتروني',
|
|
'description' => 'اختر إشعارات البريد الإلكتروني التي تريد استلامها',
|
|
'post_published' => 'تم نشر المنشور',
|
|
'post_published_description' => 'استلم بريدًا إلكترونيًا عند نشر منشورك بنجاح',
|
|
'post_failed' => 'فشل نشر المنشور',
|
|
'post_failed_description' => 'استلم بريدًا إلكترونيًا عند فشل نشر منشورك',
|
|
'account_disconnected' => 'تم فصل الحساب',
|
|
'account_disconnected_description' => 'استلم بريدًا إلكترونيًا عند فصل حساب اجتماعي',
|
|
'save' => 'حفظ التفضيلات',
|
|
],
|
|
|
|
'profile' => [
|
|
'title' => 'إعدادات الملف الشخصي',
|
|
'photo_heading' => 'الصورة الشخصية',
|
|
'photo_description' => 'ارفع صورة شخصية',
|
|
'heading' => 'معلومات الملف الشخصي',
|
|
'description' => 'حدّث اسمك وبريدك الإلكتروني',
|
|
'avatar' => 'الصورة الرمزية',
|
|
'name' => 'الاسم',
|
|
'name_placeholder' => 'الاسم الكامل',
|
|
'email' => 'البريد الإلكتروني',
|
|
'email_placeholder' => 'البريد الإلكتروني',
|
|
'email_unverified' => 'لم يتم تأكيد بريدك الإلكتروني.',
|
|
'resend_verification' => 'انقر هنا لإعادة إرسال بريد التأكيد.',
|
|
'verification_sent' => 'تم إرسال رابط تأكيد جديد إلى بريدك الإلكتروني.',
|
|
'save' => 'حفظ',
|
|
],
|
|
|
|
'authentication' => [
|
|
'title' => 'المصادقة',
|
|
'page_title' => 'إعدادات المصادقة',
|
|
'sessions' => [
|
|
'title' => 'الجلسات النشطة',
|
|
'description' => 'إذا لاحظت أي شيء مريب، سجّل الخروج من الأجهزة الأخرى.',
|
|
'unknown_browser' => 'متصفح غير معروف',
|
|
'unknown_ip' => 'عنوان IP غير معروف',
|
|
'on' => 'على',
|
|
'active_now' => 'نشط الآن',
|
|
'log_out_others' => 'تسجيل الخروج من الأجهزة الأخرى',
|
|
'modal_title' => 'تسجيل الخروج من الأجهزة الأخرى',
|
|
'modal_description_password' => 'أدخل كلمة المرور الحالية لتأكيد رغبتك في تسجيل الخروج من جلسات المتصفح الأخرى.',
|
|
'modal_description_email' => 'اكتب بريدك الإلكتروني لتأكيد رغبتك في تسجيل الخروج من جلسات المتصفح الأخرى.',
|
|
'password_placeholder' => 'كلمة المرور الحالية',
|
|
'email_placeholder' => 'بريد حسابك الإلكتروني',
|
|
'cancel' => 'إلغاء',
|
|
'submit' => 'تسجيل الخروج من الأجهزة الأخرى',
|
|
'email_mismatch' => 'البريد الإلكتروني لا يطابق حسابك.',
|
|
'flash_logged_out' => 'تم تسجيل خروجك من الأجهزة الأخرى.',
|
|
],
|
|
'password' => [
|
|
'update_title' => 'تحديث كلمة المرور',
|
|
'set_title' => 'تعيين كلمة مرور',
|
|
'update_description' => 'تأكد من أن حسابك يستخدم كلمة مرور طويلة وعشوائية للحفاظ على أمانه.',
|
|
'set_description' => 'أضِف كلمة مرور لتتمكن من تسجيل الدخول دون مزوّد متصل.',
|
|
'current_password' => 'كلمة المرور الحالية',
|
|
'new_password' => 'كلمة المرور الجديدة',
|
|
'confirm_password' => 'تأكيد كلمة المرور',
|
|
'save' => 'حفظ كلمة المرور',
|
|
'set' => 'تعيين كلمة المرور',
|
|
],
|
|
'providers' => [
|
|
'title' => 'الحسابات المتصلة',
|
|
'description' => 'سجّل الدخول بشكل أسرع عبر هؤلاء المزوّدين المتصلين.',
|
|
'connected' => 'متصل',
|
|
'not_connected' => 'غير متصل',
|
|
'connect' => 'ربط',
|
|
'disconnect' => 'فصل',
|
|
'flash_disconnected' => 'تم فصل :provider بنجاح.',
|
|
'flash_connected' => 'تم ربط :provider بنجاح.',
|
|
'flash_already_linked' => 'حساب :provider هذا مرتبط بالفعل بمستخدم آخر.',
|
|
'flash_cannot_disconnect' => 'لا يمكنك فصل طريقة تسجيل الدخول الوحيدة لديك. عيّن كلمة مرور أو اربط مزوّدًا آخر أولًا.',
|
|
],
|
|
],
|
|
|
|
'delete_account' => [
|
|
'heading' => 'حذف الحساب',
|
|
'description' => 'احذف حسابك وجميع موارده',
|
|
'warning' => 'تحذير',
|
|
'warning_message' => 'تابع بحذر: لا يمكن التراجع عن هذا. إذا كنت مالك هذا الحساب، فسيُحذف الأعضاء المدعوون أيضًا نهائيًا.',
|
|
'button' => 'حذف الحساب',
|
|
'modal_title' => 'هل أنت متأكد من رغبتك في حذف حسابك؟',
|
|
'modal_description_password' => 'بمجرد حذف حسابك، ستُحذف جميع موارده وبياناته نهائيًا أيضًا. إذا كنت مالك الحساب، فسيُحذف الأعضاء المدعوون أيضًا نهائيًا. يرجى إدخال كلمة المرور للتأكيد.',
|
|
'modal_description_email' => 'بمجرد حذف حسابك، ستُحذف جميع موارده وبياناته نهائيًا أيضًا. إذا كنت مالك الحساب، فسيُحذف الأعضاء المدعوون أيضًا نهائيًا. يرجى كتابة بريدك الإلكتروني :email للتأكيد.',
|
|
'password' => 'كلمة المرور',
|
|
'password_placeholder' => 'كلمة المرور',
|
|
'email_placeholder' => 'بريد حسابك الإلكتروني',
|
|
'email_mismatch' => 'البريد الإلكتروني لا يطابق حسابك.',
|
|
'cancel' => 'إلغاء',
|
|
'confirm' => 'حذف الحساب',
|
|
],
|
|
|
|
'workspace' => [
|
|
'tabs' => [
|
|
'workspace' => 'مساحة العمل',
|
|
'brand' => 'العلامة التجارية',
|
|
'users' => 'الأعضاء',
|
|
'api_keys' => 'مفاتيح API',
|
|
'mcp' => 'MCP',
|
|
],
|
|
'title' => 'إعدادات مساحة العمل',
|
|
'logo_heading' => 'شعار مساحة العمل',
|
|
'logo_description' => 'ارفع شعارًا لمساحة عملك',
|
|
'heading' => 'اسم مساحة العمل',
|
|
'description' => 'حدّث اسم مساحة عملك',
|
|
'members_heading' => 'الأعضاء',
|
|
'members_description' => 'إدارة أعضاء مساحة العمل والدعوات',
|
|
'name' => 'الاسم',
|
|
'name_placeholder' => 'مساحة عملي',
|
|
'save' => 'حفظ',
|
|
'danger_description' => 'إجراءات لا يمكن التراجع عنها.',
|
|
'delete_warning' => 'تحذير',
|
|
'delete_title' => 'حذف مساحة العمل هذه',
|
|
'delete_description' => 'يحذف مساحة العمل هذه وكل ما فيها نهائيًا — المنشورات والحسابات المتصلة والوسائط. ستُحاسب على مساحة عمل واحدة أقل.',
|
|
'delete_description_self_hosted' => 'يحذف مساحة العمل هذه ومنشوراتها والحسابات المتصلة والوسائط نهائيًا.',
|
|
'delete_only_description' => 'لا يمكنك حذف مساحة العمل الوحيدة لديك. ألغِ الاشتراك في الفوترة لإيقاف الدفع، أو احذف حسابك في المصادقة لإلغاء الفوترة وإزالة كل شيء نهائيًا.',
|
|
'delete_go_to_billing' => 'الانتقال إلى الفوترة',
|
|
'delete_go_to_delete_account' => 'حذف الحساب',
|
|
'delete_members_warning' => '{1}سيفقد عضو آخر واحد الوصول. الأعضاء الذين ليس لديهم مساحة عمل أخرى في TryPost سيُحذف حسابهم نهائيًا.|[2,*]سيفقد :count أعضاء آخرين الوصول. الأعضاء الذين ليس لديهم مساحة عمل أخرى في TryPost سيُحذف حسابهم نهائيًا.',
|
|
'delete_action' => 'حذف مساحة العمل',
|
|
'delete_cancel' => 'إلغاء',
|
|
'delete_confirm_title' => 'حذف مساحة العمل؟',
|
|
'delete_confirm_description' => 'سيؤدي هذا إلى حذف مساحة العمل وجميع بياناتها نهائيًا. سيتم تحديث الفوترة لتعكس مساحة عمل أقل.',
|
|
'delete_confirm_description_self_hosted' => 'سيؤدي هذا إلى حذف مساحة العمل وجميع بياناتها نهائيًا.',
|
|
],
|
|
|
|
'brand' => [
|
|
'title' => 'العلامة التجارية',
|
|
'description' => 'اضبط هوية علامتك التجارية للمحتوى المُنشأ بالذكاء الاصطناعي.',
|
|
'name' => 'اسم مساحة العمل',
|
|
'name_placeholder' => 'علامتي التجارية',
|
|
'website' => 'الموقع الإلكتروني',
|
|
'website_placeholder' => 'https://yourbrand.com',
|
|
'brand_description' => 'الوصف',
|
|
'brand_description_placeholder' => 'أخبرنا عن علامتك التجارية، وما تفعله، ومن هو جمهورك...',
|
|
'voice' => 'صوت العلامة التجارية',
|
|
'voice_description' => 'اختر السمات التي تحدد أسلوب محتواك.',
|
|
'voice_group' => [
|
|
'pov' => 'وجهة النظر',
|
|
'formality' => 'الرسمية',
|
|
'energy' => 'الحيوية',
|
|
'humor' => 'الفكاهة',
|
|
'attitude' => 'الموقف',
|
|
'warmth' => 'الدفء',
|
|
'confidence' => 'الثقة',
|
|
'style' => 'الأسلوب',
|
|
],
|
|
'voice_trait' => [
|
|
'first_person' => 'ضمير المتكلم',
|
|
'second_person' => 'ضمير المخاطب (أنت)',
|
|
'third_person' => 'ضمير الغائب',
|
|
'formal' => 'رسمي',
|
|
'balanced' => 'متوازن',
|
|
'casual' => 'غير رسمي',
|
|
'calm' => 'هادئ',
|
|
'moderate' => 'معتدل',
|
|
'enthusiastic' => 'متحمس',
|
|
'vibrant' => 'نابض بالحيوية',
|
|
'serious' => 'جاد',
|
|
'dry' => 'ساخر / خفيّ',
|
|
'witty' => 'ذكي',
|
|
'playful' => 'مرح',
|
|
'respectful' => 'محترم',
|
|
'even_handed' => 'محايد ومنصف',
|
|
'bold' => 'جريء',
|
|
'provocative' => 'مثير للجدل',
|
|
'neutral' => 'محايد',
|
|
'friendly' => 'ودود',
|
|
'empathetic' => 'متعاطف',
|
|
'humble' => 'متواضع',
|
|
'confident' => 'واثق',
|
|
'assertive' => 'حازم',
|
|
'direct' => 'مباشر',
|
|
'concise' => 'موجز',
|
|
'transparent' => 'شفاف',
|
|
'no_hype' => 'بلا مبالغة',
|
|
'practical' => 'عملي',
|
|
'data_driven' => 'مبني على البيانات',
|
|
'storytelling' => 'سرد القصص',
|
|
'inspirational' => 'ملهم',
|
|
'educational' => 'تعليمي',
|
|
'technical' => 'تقني',
|
|
'minimalist' => 'رموز تعبيرية قليلة',
|
|
],
|
|
'brand_color' => 'لون العلامة التجارية',
|
|
'background_color' => 'لون الخلفية',
|
|
'text_color' => 'لون النص',
|
|
'font' => 'الخط',
|
|
'image_style' => 'نمط الصور',
|
|
'image_style_description' => 'النمط المرئي المطبَّق عند إنشاء صور الشرائح والأغلفة لمنشورات الذكاء الاصطناعي.',
|
|
'image_style_cinematic' => 'سينمائي',
|
|
'image_style_illustration' => 'رسم توضيحي',
|
|
'image_style_isometric_3d' => 'متساوي القياس',
|
|
'image_style_cartoon' => 'كرتوني',
|
|
'image_style_typographic' => 'طباعي',
|
|
'image_style_infographic' => 'إنفوغرافيك',
|
|
'image_style_minimalist' => 'بسيط',
|
|
'image_style_mockup' => 'نموذج أوّلي',
|
|
'content_language' => 'لغة المحتوى',
|
|
'content_language_description' => 'اللغة المستخدمة في التسميات التوضيحية والوسوم المُنشأة بالذكاء الاصطناعي وأي نص داخل الصور أو مقاطع الفيديو المُنشأة.',
|
|
'font_placeholder' => 'اختر خطًا…',
|
|
'font_search' => 'ابحث عن خط…',
|
|
'font_empty' => 'لا توجد خطوط مطابقة.',
|
|
'language_placeholder' => 'اختر لغة…',
|
|
'language_search' => 'ابحث عن لغة…',
|
|
'language_empty' => 'لم يتم العثور على لغة.',
|
|
|
|
],
|
|
|
|
'members' => [
|
|
'title' => 'الأعضاء',
|
|
'heading' => 'أعضاء الفريق',
|
|
'description' => 'إدارة الأعضاء والدعوات لمساحة العمل هذه',
|
|
|
|
'cancel' => 'إلغاء',
|
|
'remove' => 'إزالة',
|
|
'make_role' => 'تعيين كـ:role',
|
|
|
|
'invite' => [
|
|
'title' => 'دعوة عضو',
|
|
'description' => 'أرسل دعوة عبر البريد الإلكتروني لإضافة متعاونين',
|
|
'email' => 'البريد الإلكتروني',
|
|
'email_placeholder' => 'collaborator@email.com',
|
|
'role' => 'الدور',
|
|
'role_placeholder' => 'اختر دورًا',
|
|
'submit' => 'إرسال الدعوة',
|
|
],
|
|
|
|
'pending' => [
|
|
'title' => 'الدعوات المعلقة',
|
|
'description' => 'دعوات في انتظار القبول',
|
|
'empty' => 'لا توجد دعوات معلقة',
|
|
],
|
|
|
|
'list' => [
|
|
'title' => 'الأعضاء',
|
|
'description' => 'الأشخاص الذين لديهم وصول إلى مساحة العمل هذه',
|
|
'empty' => 'لا يوجد أعضاء غير المالك',
|
|
],
|
|
|
|
'remove_modal' => [
|
|
'title' => 'إزالة عضو',
|
|
'description' => 'هل أنت متأكد من رغبتك في إزالة هذا العضو من مساحة العمل؟ سيفقد الوصول إلى جميع موارد مساحة العمل.',
|
|
'action' => 'إزالة العضو',
|
|
],
|
|
|
|
'cancel_invite_modal' => [
|
|
'title' => 'إلغاء الدعوة',
|
|
'description' => 'هل أنت متأكد من رغبتك في إلغاء هذه الدعوة؟',
|
|
'action' => 'إلغاء الدعوة',
|
|
],
|
|
|
|
'roles' => [
|
|
'owner' => 'المالك',
|
|
'admin' => 'مشرف',
|
|
'member' => 'عضو',
|
|
'viewer' => 'مشاهد',
|
|
],
|
|
|
|
'errors' => [
|
|
'invite_exists' => 'يوجد بالفعل دعوة لهذا البريد الإلكتروني.',
|
|
'email_belongs_to_account' => 'هذا البريد الإلكتروني ينتمي بالفعل إلى حساب TryPost آخر. اطلب بريد عمل مخصص بدلاً من ذلك.',
|
|
],
|
|
|
|
'flash' => [
|
|
'invite_sent' => 'تم إرسال الدعوة بنجاح!',
|
|
'invite_deleted' => 'تم حذف الدعوة.',
|
|
'member_removed' => 'تمت إزالة العضو بنجاح.',
|
|
'role_updated' => 'تم تحديث دور العضو.',
|
|
'wrong_email' => 'هذه الدعوة مخصصة لبريد إلكتروني مختلف.',
|
|
'already_member' => 'أنت عضو بالفعل في مساحة العمل هذه.',
|
|
'invite_accepted' => 'مرحبًا! أنت الآن عضو في مساحة العمل.',
|
|
'invite_workspace_gone' => 'هذه الدعوة لم تعد صالحة لأن مساحة العمل حُذفت.',
|
|
'invite_declined' => 'تم رفض الدعوة.',
|
|
],
|
|
],
|
|
|
|
'account' => [
|
|
'tabs' => [
|
|
'account' => 'الحساب',
|
|
'usage' => 'الاستخدام',
|
|
'billing' => 'الفوترة',
|
|
],
|
|
'title' => 'إعدادات الحساب',
|
|
'description' => 'إدارة اسم حسابك والبريد الإلكتروني للفوترة',
|
|
'name' => 'اسم الحساب',
|
|
'name_placeholder' => 'شركتي',
|
|
'billing_email' => 'البريد الإلكتروني للفوترة',
|
|
'billing_email_placeholder' => 'billing@company.com',
|
|
'billing_email_hint' => 'سيُستخدم هذا البريد الإلكتروني للفواتير ومراسلات الفوترة من Stripe.',
|
|
'submit' => 'حفظ',
|
|
],
|
|
|
|
'flash' => [
|
|
'account_updated' => 'تم تحديث الحساب بنجاح!',
|
|
'profile_updated' => 'تم تحديث الملف الشخصي بنجاح!',
|
|
'password_updated' => 'تم تحديث كلمة المرور بنجاح!',
|
|
'workspace_updated' => 'تم تحديث الإعدادات بنجاح!',
|
|
'photo_updated' => 'تم تحديث الصورة بنجاح!',
|
|
'photo_deleted' => 'تمت إزالة الصورة بنجاح!',
|
|
'delete_failed_billing' => 'تعذّر إلغاء اشتراكك لدى مزود الفوترة. لم يُحذف أي شيء. يُرجى المحاولة مرة أخرى أو التواصل مع الدعم.',
|
|
'logo_updated' => 'تم رفع الشعار بنجاح!',
|
|
'logo_deleted' => 'تمت إزالة الشعار بنجاح!',
|
|
'notifications_updated' => 'تم تحديث تفضيلات الإشعارات!',
|
|
],
|
|
|
|
'api_keys' => [
|
|
'title' => 'مفاتيح API',
|
|
'page_title' => 'مفاتيح API',
|
|
'heading' => 'مفاتيح API',
|
|
'description' => 'إدارة مفاتيح API للوصول البرمجي إلى مساحة عملك.',
|
|
'create' => 'إنشاء مفتاح API',
|
|
'copy' => 'نسخ',
|
|
'new_token_message' => 'تم إنشاء مفتاح API الجديد. انسخه الآن — لن تتمكن من رؤيته مرة أخرى.',
|
|
'table' => [
|
|
'name' => 'الاسم',
|
|
'key' => 'المفتاح',
|
|
'status' => 'الحالة',
|
|
'expires' => 'ينتهي في',
|
|
'last_used' => 'آخر استخدام',
|
|
'never' => 'أبدًا',
|
|
],
|
|
'actions' => [
|
|
'copy_id' => 'نسخ معرّف مفتاح API',
|
|
'copy_id_success' => 'تم نسخ معرّف مفتاح API إلى الحافظة',
|
|
'delete' => 'حذف',
|
|
],
|
|
'empty' => [
|
|
'title' => 'لا توجد مفاتيح API بعد',
|
|
'description' => 'أنشئ مفتاح API للوصول إلى مساحة عملك برمجيًا.',
|
|
],
|
|
'delete_modal' => [
|
|
'title' => 'حذف مفتاح API',
|
|
'description' => 'هل أنت متأكد من رغبتك في حذف مفتاح API هذا؟ ستفقد أي تطبيقات تستخدم هذا المفتاح الوصول فورًا.',
|
|
'action' => 'حذف مفتاح API',
|
|
],
|
|
'create_dialog' => [
|
|
'title' => 'إنشاء مفتاح API',
|
|
'description' => 'أنشئ مفتاح API جديدًا للوصول البرمجي إلى مساحة عملك.',
|
|
'name' => 'الاسم',
|
|
'name_placeholder' => 'مثال: مفتاح API للإنتاج',
|
|
'expires' => 'تاريخ الانتهاء (اختياري)',
|
|
'expires_placeholder' => 'بلا انتهاء',
|
|
'submit' => 'إنشاء',
|
|
'cancel' => 'إلغاء',
|
|
],
|
|
'flash' => [
|
|
'created' => 'تم إنشاء مفتاح API بنجاح!',
|
|
'deleted' => 'تم حذف مفتاح API بنجاح!',
|
|
],
|
|
],
|
|
];
|