openyida 2026.7.18 → 2026.7.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -2
- package/bin/yida.js +113 -18
- package/docs/capabilities.md +202 -0
- package/lib/agent-center/agent-center.js +2 -3
- package/lib/app/app-list.js +3 -4
- package/lib/app/build-page.js +13 -6
- package/lib/app/check-page.js +16 -6
- package/lib/app/compile.js +17 -7
- package/lib/app/create-app.js +14 -2
- package/lib/app/create-form/api-path.js +25 -0
- package/lib/app/create-form/args.js +13 -0
- package/lib/app/create-form/commands.js +4 -0
- package/lib/app/create-form/definition-reader.js +23 -23
- package/lib/app/create-form/field-normalizers.js +26 -7
- package/lib/app/create-form/schema-patch.js +4 -1
- package/lib/app/create-form.js +155 -68
- package/lib/app/create-page.js +47 -10
- package/lib/app/generate-page.js +20 -1
- package/lib/app/get-form-config.js +2 -1
- package/lib/app/get-schema.js +67 -15
- package/lib/app/import-app.js +94 -42
- package/lib/app/list-forms.js +4 -8
- package/lib/app/page-ir.js +140 -0
- package/lib/app/publish.js +289 -556
- package/lib/app/schema-field-resolution.js +370 -0
- package/lib/app/services/app-reader.js +85 -0
- package/lib/app/services/app-service.js +235 -0
- package/lib/app/services/canvas-page-compiler.js +91 -0
- package/lib/app/services/canvas-page-schema-builder.js +149 -0
- package/lib/app/services/field-bindings.js +68 -0
- package/lib/app/services/form-compiler.js +1922 -0
- package/lib/app/services/form-mode-service.js +182 -0
- package/lib/app/services/form-schema-patcher.js +333 -0
- package/lib/app/services/form-schema-reader.js +59 -0
- package/lib/app/services/form-service.js +379 -0
- package/lib/app/services/form-validation.js +562 -0
- package/lib/app/services/native-page-compiler.js +92 -0
- package/lib/app/services/native-page-schema-builder.js +428 -0
- package/lib/app/services/page-resource-service.js +185 -0
- package/lib/app/update-app.js +22 -9
- package/lib/app/update-form-config.js +4 -2
- package/lib/asset/asset-cmd.js +19 -6
- package/lib/auth/oauth-loopback.js +376 -15
- package/lib/auth/token-auth.js +34 -3
- package/lib/auth/token-store.js +22 -4
- package/lib/basic-info/basic-info.js +2 -1
- package/lib/bridge/bridge.js +43 -18
- package/lib/core/agent-capabilities.js +5 -3
- package/lib/core/command-errors.js +38 -0
- package/lib/core/command-manifest.js +59 -1
- package/lib/core/copy.js +12 -0
- package/lib/core/doctor.js +15 -4
- package/lib/core/env-cmd.js +1 -1
- package/lib/core/env.js +7 -6
- package/lib/core/i18n.js +66 -8
- package/lib/core/legacy-schema-guard.js +408 -0
- package/lib/core/locales/en.js +38 -46
- package/lib/core/locales/zh.js +30 -46
- package/lib/core/sample.js +12 -2
- package/lib/core/utils.js +334 -66
- package/lib/core/yida-client.js +108 -5
- package/lib/corp-efficiency/corp-efficiency.js +2 -2
- package/lib/corp-manager/corp-manager.js +3 -3
- package/lib/formula/evaluate.js +11 -68
- package/lib/formula/field-refs.js +83 -0
- package/lib/i18n-management/i18n-management.js +2 -3
- package/lib/process/configure-process.js +44 -1992
- package/lib/process/create-process.js +54 -87
- package/lib/process/preview-process.js +20 -8
- package/lib/process/services/process-compiler.js +2056 -0
- package/lib/process/services/process-reader.js +232 -0
- package/lib/process/services/process-resource-service.js +571 -0
- package/lib/process/services/process-service.js +122 -0
- package/lib/process/services/process-stage-checkpoint.js +246 -0
- package/lib/report/append.js +7 -26
- package/lib/report/http.js +31 -5
- package/lib/report/index.js +10 -2
- package/lib/samples/yida-canvas-custom-page/business-list.canvas.jsx +63 -14
- package/lib/samples/yida-canvas-custom-page/dashboard-overview.canvas.jsx +176 -32
- package/lib/samples/yida-canvas-custom-page/dashboard-starter.canvas.jsx +5 -2
- package/lib/samples/yida-canvas-custom-page/data-management.canvas.jsx +228 -14
- package/lib/samples/yida-canvas-custom-page/portal-shell-home.canvas.jsx +2 -2
- package/lib/samples/yida-canvas-custom-page/split-pane-detail.canvas.jsx +206 -10
- package/lib/samples/yida-custom-page/data-management.oyd.jsx +14 -3
- package/lib/samples/yida-custom-page/design-tokens.js +2 -2
- package/lib/samples/yida-custom-page/detail-profile.oyd.jsx +1 -1
- package/lib/samples/yida-custom-page/portal-shell-home.oyd.jsx +7 -2
- package/lib/samples/yida-custom-page/split-pane-detail.oyd.jsx +2 -1
- package/lib/schema/adapters/app-adapter.js +210 -0
- package/lib/schema/adapters/form-adapter.js +1362 -0
- package/lib/schema/adapters/keys.js +19 -0
- package/lib/schema/adapters/page-adapter.js +566 -0
- package/lib/schema/adapters/process-adapter.js +519 -0
- package/lib/schema/applier.js +1878 -0
- package/lib/schema/apply-store.js +1083 -0
- package/lib/schema/command.js +645 -0
- package/lib/schema/dependency-graph.js +83 -0
- package/lib/schema/errors.js +481 -0
- package/lib/schema/hash.js +9 -0
- package/lib/schema/manifest-limits.js +177 -0
- package/lib/schema/manifest-loader.js +309 -0
- package/lib/schema/manifest-schema-v1.json +193 -0
- package/lib/schema/normalize-manifest.js +281 -0
- package/lib/schema/page-canvas-foundation.js +447 -0
- package/lib/schema/page-data-source-builder.js +561 -0
- package/lib/schema/page-foundation.js +556 -0
- package/lib/schema/page-source-loader.js +314 -0
- package/lib/schema/planner.js +691 -0
- package/lib/schema/remote-dispatch-boundary.js +39 -0
- package/lib/schema/remote-missing.js +21 -0
- package/lib/schema/remote-reader.js +189 -0
- package/lib/schema/resource-registry.js +157 -0
- package/lib/schema/server-revision.js +71 -0
- package/lib/schema/sort.js +28 -0
- package/lib/schema/state-store.js +589 -0
- package/package.json +10 -8
- package/scripts/check-release-risks.js +254 -0
- package/scripts/generate-command-docs.js +6 -1
- package/scripts/i18n-baseline.json +11 -11
- package/scripts/postinstall.js +8 -12
- package/scripts/validate-ci.sh +15 -11
- package/scripts/validate-i18n.js +30 -9
- package/scripts/validate-package-size.js +5 -2
- package/scripts/validate-skills.js +4 -0
- package/scripts/validate-structure.js +15 -0
- package/yida-skills/SKILL.md +117 -30
- package/yida-skills/references/schema-as-code-phase1.md +99 -0
- package/yida-skills/references/setup-and-env.md +59 -59
- package/yida-skills/references/task-retrospective.md +6 -6
- package/yida-skills/skills/yida-app/SKILL.md +78 -17
- package/yida-skills/skills/yida-canvas-custom-page/SKILL.md +18 -7
- package/yida-skills/skills/yida-canvas-custom-page/references/data-bridge-guide.md +3 -3
- package/yida-skills/skills/yida-canvas-custom-page/references/page-generation-guide.md +15 -0
- package/yida-skills/skills/yida-create-app/SKILL.md +21 -3
- package/yida-skills/skills/yida-create-form-page/SKILL.md +19 -1
- package/yida-skills/skills/yida-create-page/SKILL.md +16 -3
- package/yida-skills/skills/yida-create-process/SKILL.md +100 -4
- package/yida-skills/skills/yida-custom-page/SKILL.md +19 -4
- package/yida-skills/skills/yida-dashboard/SKILL.md +1 -1
- package/yida-skills/skills/yida-dashboard/references/pitfalls.md +1 -1
- package/yida-skills/skills/yida-get-schema/SKILL.md +49 -5
- package/yida-skills/skills/yida-i18n/SKILL.md +1 -1
- package/yida-skills/skills/yida-integration/SKILL.md +7 -1
- package/yida-skills/skills/yida-login/SKILL.md +50 -99
- package/yida-skills/skills/yida-page-config/SKILL.md +7 -1
- package/yida-skills/skills/yida-page-uiux/references/app/blueprint.md +0 -1
- package/yida-skills/skills/yida-page-uiux/references/app/navigation-patterns.md +0 -1
- package/yida-skills/skills/yida-page-uiux/references/app/role-journey.md +0 -1
- package/yida-skills/skills/yida-page-uiux/references/dashboard/app-blueprint.md +0 -1
- package/yida-skills/skills/yida-page-uiux/references/dashboard/chart-contracts.md +0 -1
- package/yida-skills/skills/yida-page-uiux/references/dashboard/component-contracts.md +0 -1
- package/yida-skills/skills/yida-page-uiux/references/dashboard/layout-patterns.md +0 -1
- package/yida-skills/skills/yida-page-uiux/references/dashboard/theme-recipes.md +0 -1
- package/yida-skills/skills/yida-page-uiux/references/detail/object-narrative.md +0 -1
- package/yida-skills/skills/yida-page-uiux/references/detail/section-patterns.md +0 -1
- package/yida-skills/skills/yida-page-uiux/references/detail/timeline-and-related.md +0 -1
- package/yida-skills/skills/yida-page-uiux/references/landing/assets-workflow.md +0 -1
- package/yida-skills/skills/yida-page-uiux/references/landing/industry-playbooks.md +0 -1
- package/yida-skills/skills/yida-page-uiux/references/landing/research-levels.md +0 -1
- package/yida-skills/skills/yida-page-uiux/references/landing/section-patterns.md +0 -1
- package/yida-skills/skills/yida-page-uiux/references/list/drawer-detail.md +0 -1
- package/yida-skills/skills/yida-page-uiux/references/list/empty-loading-error.md +0 -1
- package/yida-skills/skills/yida-page-uiux/references/list/filter-patterns.md +0 -1
- package/yida-skills/skills/yida-page-uiux/references/list/table-patterns.md +0 -1
- package/yida-skills/skills/yida-page-uiux/references/scenes/screen.md +0 -1
- package/yida-skills/skills/yida-page-uiux/references/workbench/entry-patterns.md +0 -1
- package/yida-skills/skills/yida-page-uiux/references/workbench/portal-layouts.md +0 -1
- package/yida-skills/skills/yida-page-uiux/references/workbench/task-feed.md +0 -1
- package/yida-skills/skills/yida-page-uiux/workflow/output-decision-block.md +1 -1
- package/yida-skills/skills/yida-process-rule/SKILL.md +35 -1
- package/yida-skills/skills/yida-publish-page/SKILL.md +46 -4
- package/yida-skills/skills/yida-report/SKILL.md +9 -235
- package/yida-skills/skills/yida-report/references/schema-builder-details.md +239 -0
- package/yida-skills/skills/yida-skill-evaluator/SKILL.md +170 -0
- package/yida-skills/skills-index.json +238 -54
- package/lib/core/locales/ar.js +0 -834
- package/lib/core/locales/de.js +0 -834
- package/lib/core/locales/es.js +0 -834
- package/lib/core/locales/fr.js +0 -834
- package/lib/core/locales/hi.js +0 -834
- package/lib/core/locales/ja.js +0 -1227
- package/lib/core/locales/ko.js +0 -836
- package/lib/core/locales/pt.js +0 -834
- package/lib/core/locales/vi.js +0 -834
- package/lib/core/locales/zh-HK.js +0 -1263
- package/project/pages/src/demo-birthday-game.oyd.jsx +0 -832
- package/project/pages/src/demo-chip-insight.oyd.jsx +0 -983
- package/project/pages/src/demo-compat-smoke.oyd.jsx +0 -58
- package/project/pages/src/demo-crm-batch-entry.oyd.jsx +0 -805
- package/project/pages/src/demo-crm-dashboard.oyd.jsx +0 -677
- package/project/pages/src/demo-future-vision-2026.oyd.jsx +0 -1102
- package/project/pages/src/demo-ppt.oyd.jsx +0 -1192
- package/project/pages/src/demo-salary-calculator.oyd.jsx +0 -904
- package/project/pages/src/openyida-knowledge-doc.oyd.jsx +0 -1714
- package/yida-skills/skills/large-file-write/SKILL.md +0 -93
- package/yida-skills/skills/large-file-write/references/write-patterns.md +0 -147
- package/yida-skills/skills/large-file-write/scripts/write.js +0 -157
- package/yida-skills/skills/sls-log-workbench/SKILL.md +0 -134
- package/yida-skills/skills/sls-log-workbench/references/workbench-reference.md +0 -130
- package/yida-skills/skills/sls-log-workbench/sls-query.js +0 -295
package/lib/core/locales/ar.js
DELETED
|
@@ -1,834 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* حزمة اللغة العربية (Arabic)
|
|
5
|
-
*/
|
|
6
|
-
module.exports = {
|
|
7
|
-
// ── bin/yida.js printHelp() ────────────────────────
|
|
8
|
-
help: {
|
|
9
|
-
subtitle: 'أداة تطوير الذكاء الاصطناعي منخفضة الكود لـ Yida',
|
|
10
|
-
usage: 'الاستخدام:',
|
|
11
|
-
alias: 'الاسم المستعار:',
|
|
12
|
-
group_auth: 'البيئة & المصادقة',
|
|
13
|
-
cmd_login: 'Login with OAuth token mode',
|
|
14
|
-
cmd_logout: 'تسجيل الخروج / تبديل الحساب',
|
|
15
|
-
cmd_auth: 'إدارة حالة تسجيل الدخول',
|
|
16
|
-
cmd_org: 'إدارة المنظمات (عرض / تبديل)',
|
|
17
|
-
cmd_env: 'اكتشاف بيئة أداة الذكاء الاصطناعي وحالة تسجيل الدخول',
|
|
18
|
-
cmd_env_management: 'Manage public/private environment profiles',
|
|
19
|
-
group_app: 'إدارة التطبيقات',
|
|
20
|
-
cmd_app_list: 'عرض تطبيقات Yida الخاصة بي',
|
|
21
|
-
cmd_corp_efficiency: 'استعلام عن نظرة عامة على كفاءة المؤسسة وتقارير التفاصيل',
|
|
22
|
-
cmd_create_app: 'إنشاء تطبيق Yida',
|
|
23
|
-
cmd_update_app: 'تحديث معلومات التطبيق',
|
|
24
|
-
cmd_nav_group: 'إدارة مجموعات التنقل الجانبية للتطبيق',
|
|
25
|
-
cmd_app_permission: 'إدارة مسؤولي التطبيق الأساسيين والبيانات والتطوير',
|
|
26
|
-
cmd_i18n: 'إدارة نصوص التطبيق متعددة اللغات وإعداداتها',
|
|
27
|
-
cmd_export: 'تصدير التطبيق (حزمة الترحيل)',
|
|
28
|
-
cmd_import: 'استيراد حزمة الترحيل، إعادة بناء التطبيق',
|
|
29
|
-
group_form: 'النماذج & الصفحات',
|
|
30
|
-
cmd_create_form: 'إنشاء صفحة نموذج',
|
|
31
|
-
cmd_update_form: 'تحديث صفحة نموذج',
|
|
32
|
-
cmd_list_forms: 'List forms/pages in an app',
|
|
33
|
-
cmd_aggregate_table: 'Manage aggregate tables (virtualView)',
|
|
34
|
-
cmd_er: 'Export app entity relationship diagram',
|
|
35
|
-
cmd_get_schema: 'الحصول على Schema النموذج',
|
|
36
|
-
cmd_create_page: 'إنشاء صفحة عرض مخصصة',
|
|
37
|
-
cmd_generate_page: 'Generate page from curated template',
|
|
38
|
-
cmd_check_page: 'Check custom page standards',
|
|
39
|
-
cmd_compile: 'تجميع صفحة مخصصة محليًا',
|
|
40
|
-
cmd_publish: 'تجميع ونشر صفحة مخصصة',
|
|
41
|
-
cmd_update_form_config: 'تحديث إعدادات النموذج',
|
|
42
|
-
group_data: 'البيانات & الأذونات',
|
|
43
|
-
cmd_data: 'إدارة البيانات الموحدة (نموذج/عملية/مهمة/نموذج فرعي)',
|
|
44
|
-
cmd_task_center: 'مركز المهام العالمي (معلق/معالج/نسخة إلخ)',
|
|
45
|
-
cmd_basic_info: 'عرض معلومات المؤسسة والسعة والحصص والنطاق',
|
|
46
|
-
cmd_get_permission: 'استعلام إعدادات أذونات النموذج',
|
|
47
|
-
cmd_save_permission: 'حفظ إعدادات أذونات النموذج',
|
|
48
|
-
cmd_corp_manager: 'إدارة أذونات منصة المؤسسة',
|
|
49
|
-
cmd_agent_center: 'إدارة تفويضات العمليات والمغادرة',
|
|
50
|
-
group_process: 'العمليات',
|
|
51
|
-
cmd_configure_process: 'تكوين ونشر قواعد العملية',
|
|
52
|
-
cmd_create_process: 'إنشاء نموذج عملية (متكامل)',
|
|
53
|
-
cmd_ai_form_setting: 'Manage process form AI approval prompts',
|
|
54
|
-
cmd_process_preview: 'معاينة مثيل العملية (مخطط انسيابي)',
|
|
55
|
-
group_share: 'إعدادات & مشاركة الصفحة',
|
|
56
|
-
cmd_verify_url: 'التحقق من الرابط المختصر',
|
|
57
|
-
cmd_save_share: 'حفظ إعدادات الوصول العام / المشاركة',
|
|
58
|
-
cmd_get_page_config: 'استعلام إعدادات الوصول العام للصفحة',
|
|
59
|
-
cmd_externalize_form: 'Plan external access-safe mirror fields',
|
|
60
|
-
group_report: 'التقارير',
|
|
61
|
-
cmd_create_report: 'إنشاء تقرير Yida',
|
|
62
|
-
cmd_append_chart: 'إضافة رسم بياني إلى تقرير موجود',
|
|
63
|
-
group_connector: 'الموصلات',
|
|
64
|
-
cmd_connector_list: 'عرض موصلات HTTP',
|
|
65
|
-
cmd_connector_create: 'إنشاء موصل',
|
|
66
|
-
cmd_connector_detail: 'عرض تفاصيل الموصل',
|
|
67
|
-
cmd_connector_delete: 'حذف موصل',
|
|
68
|
-
cmd_connector_add_action: 'Add an action',
|
|
69
|
-
cmd_connector_list_actions: 'List actions',
|
|
70
|
-
cmd_connector_delete_action: 'Delete an action',
|
|
71
|
-
cmd_connector_test: 'Test an action',
|
|
72
|
-
cmd_connector_list_connections: 'List auth connections',
|
|
73
|
-
cmd_connector_create_connection: 'Create an auth connection',
|
|
74
|
-
cmd_connector_smart: 'إنشاء ذكي (من cURL)',
|
|
75
|
-
cmd_connector_parse_api: 'Parse API information',
|
|
76
|
-
cmd_connector_gen_template: 'Generate API document template',
|
|
77
|
-
cmd_connector_more: 'عرض المزيد من الأوامر الفرعية',
|
|
78
|
-
group_integration: 'التكامل & DingTalk',
|
|
79
|
-
cmd_integration: 'إنشاء تدفق أتمتة التكامل',
|
|
80
|
-
cmd_integration_list: 'List integration automation flows',
|
|
81
|
-
cmd_integration_enable: 'Enable integration automation flow',
|
|
82
|
-
cmd_integration_disable: 'Disable integration automation flow',
|
|
83
|
-
cmd_integration_check: 'Check abnormal integration automation run logs',
|
|
84
|
-
cmd_dws: 'DingTalk CLI (جهات الاتصال/التقويم/المهام/الموافقة إلخ)',
|
|
85
|
-
cmd_dingtalk_link: 'إنشاء روابط DingTalk AppLink / dingtalk:// القديمة',
|
|
86
|
-
group_utility: 'الأدوات',
|
|
87
|
-
cmd_commands: 'Output machine-readable command manifest',
|
|
88
|
-
cmd_agent_capabilities: 'Output one-shot agent capability snapshot',
|
|
89
|
-
cmd_a2a: 'Start local read-only A2A adapter or print Agent Card',
|
|
90
|
-
cmd_bridge: 'Start OpenYida local web bridge service',
|
|
91
|
-
cmd_db_seq_fix: 'Detect and repair PostgreSQL sequence drift',
|
|
92
|
-
cmd_copy: 'نسخ دليل عمل project',
|
|
93
|
-
cmd_sample: 'إخراج أمثلة/قوالب الكود',
|
|
94
|
-
cmd_doctor: 'تشخيص البيئة والإصلاح التلقائي',
|
|
95
|
-
cmd_update: 'التحقق والتحديث إلى أحدث إصدار',
|
|
96
|
-
cmd_export_conversation: 'تصدير سجلات محادثة الذكاء الاصطناعي',
|
|
97
|
-
cmd_feedback: 'Configure experience feedback form and local reminder state',
|
|
98
|
-
cmd_batch: 'Run OpenYida commands in batch',
|
|
99
|
-
cmd_flash_to_prd: 'Convert flash notes or meeting notes to a PRD prompt',
|
|
100
|
-
cmd_ai: 'Call Yida AI text and image recognition APIs',
|
|
101
|
-
cmd_asset: 'Detect asset capability / verify image URLs / resolve materials',
|
|
102
|
-
cmd_cdn: 'إدارة صور CDN (إعداد/رفع/تحديث)',
|
|
103
|
-
cmd_cdn_config: 'Configure CDN / OSS upload',
|
|
104
|
-
cmd_cdn_upload: 'Upload image to CDN',
|
|
105
|
-
cmd_cdn_refresh: 'Refresh CDN cache',
|
|
106
|
-
quickstart_title: 'بداية سريعة',
|
|
107
|
-
quickstart_app_name: 'إدارة الحضور',
|
|
108
|
-
quickstart_form_name: 'معلومات الموظف',
|
|
109
|
-
docs: '📚 الوثائق:',
|
|
110
|
-
},
|
|
111
|
-
|
|
112
|
-
// ── bin/yida.js ────────────────────────────────────
|
|
113
|
-
cli: {
|
|
114
|
-
integration_help: 'الاستخدام: openyida integration <create|list|enable|disable> ...',
|
|
115
|
-
integration_unknown: 'أمر integration فرعي غير معروف: {0}',
|
|
116
|
-
integration_help_hint: 'استخدم openyida integration --help لعرض الأوامر الفرعية المتاحة',
|
|
117
|
-
integration_list_usage: 'الاستخدام: openyida integration list <appType> [--form-uuid <uuid>] [--status y|n] [--key <kw>] [--page <n>] [--size <n>] [--json]',
|
|
118
|
-
integration_list_example: 'مثال: openyida integration list APP_XXX --form-uuid FORM-XXX --json',
|
|
119
|
-
integration_enable_usage: 'الاستخدام: openyida integration enable <appType> <formUuid> <processCode>',
|
|
120
|
-
integration_enable_example: 'مثال: openyida integration enable APP_XXX FORM-XXX LPROC-XXX',
|
|
121
|
-
integration_disable_usage: 'الاستخدام: openyida integration disable <appType> <formUuid> <processCode>',
|
|
122
|
-
integration_disable_example: 'مثال: openyida integration disable APP_XXX FORM-XXX LPROC-XXX',
|
|
123
|
-
compile_usage: 'الاستخدام: openyida compile <sourceFile>',
|
|
124
|
-
compile_example: 'مثال: openyida compile pages/src/home.canvas.jsx',
|
|
125
|
-
check_page_usage: 'Usage: openyida check-page <sourceFile> [--compat] [--json]',
|
|
126
|
-
check_page_example: 'Example: openyida check-page pages/src/home.canvas.jsx --json',
|
|
127
|
-
generate_page_usage: 'Usage: openyida generate-page <template> --output pages/src/home.canvas.jsx [--spec .cache/openyida/page-specs/home.json] [--theme-scope page|app] [--compile]',
|
|
128
|
-
generate_page_example: 'Example: openyida generate-page product-homepage --brand-name OpenKuma --brand-initials OK --theme-scope page --output pages/src/home.canvas.jsx --compile',
|
|
129
|
-
},
|
|
130
|
-
|
|
131
|
-
// ── lib/integration/integration-check.js ─────────
|
|
132
|
-
integration_check: {
|
|
133
|
-
result_sheet: 'Result',
|
|
134
|
-
header_app: 'App',
|
|
135
|
-
header_form_title: 'Form name',
|
|
136
|
-
header_form_uuid: 'Form ID',
|
|
137
|
-
header_flow_name: 'Automation name',
|
|
138
|
-
header_process_code: 'Automation ID',
|
|
139
|
-
header_flow_status: 'Automation status',
|
|
140
|
-
header_event_name: 'Trigger event',
|
|
141
|
-
header_last_action: 'Last action',
|
|
142
|
-
header_modifier: 'Modifier',
|
|
143
|
-
header_modified_time: 'Modified time',
|
|
144
|
-
header_abnormal_log_count: 'Abnormal log count',
|
|
145
|
-
header_proc_inst_id: 'Run instance ID',
|
|
146
|
-
header_form_inst_id: 'Form instance ID',
|
|
147
|
-
header_execution_status: 'Execution status',
|
|
148
|
-
header_exception: 'Exception',
|
|
149
|
-
header_diagnosis: 'Diagnosis',
|
|
150
|
-
header_recommendation: 'Recommendation',
|
|
151
|
-
header_start_time: 'Start time',
|
|
152
|
-
header_finish_time: 'Finish time',
|
|
153
|
-
header_elapsed_ms: 'Elapsed (ms)',
|
|
154
|
-
no_abnormal: 'No abnormal execution logs found',
|
|
155
|
-
app_failed: 'App check failed: {0}',
|
|
156
|
-
summary: 'Check complete: {0} apps, {1} automations, {2} with abnormal logs',
|
|
157
|
-
apps_failed: '{0} app(s) failed to check. See JSON output or error summary for details.',
|
|
158
|
-
no_logs: 'No abnormal execution logs found.',
|
|
159
|
-
usage: 'openyida integration check <appType...> [--json] [--output result.xlsx] [--no-progress] [--flow-types 1,2,3,5,6] [--log-page-size 10] [--max-log-pages 1]',
|
|
160
|
-
example: 'openyida integration check APP_XXX --output project/output/automation-errors.xlsx',
|
|
161
|
-
missing_app: 'Missing appType. Usage: openyida integration check <appType...>',
|
|
162
|
-
banner_title: 'Check integration automation abnormal logs',
|
|
163
|
-
status_filter: 'Execution status filter: {0}',
|
|
164
|
-
checking_app: 'Checking app: {0}',
|
|
165
|
-
progress: 'Progress {0}{1}',
|
|
166
|
-
current: ', current: {0}',
|
|
167
|
-
excel_exported: 'Excel exported: {0}',
|
|
168
|
-
},
|
|
169
|
-
|
|
170
|
-
// ── lib/env.js ─────────────────────────────────────
|
|
171
|
-
env: {
|
|
172
|
-
title: ' openyida env - اكتشاف بيئة أداة الذكاء الاصطناعي',
|
|
173
|
-
detecting: ' جارٍ اكتشاف بيئة أداة الذكاء الاصطناعي...',
|
|
174
|
-
tool_label: ' أداة الذكاء الاصطناعي: {0}',
|
|
175
|
-
login_label: ' حالة تسجيل الدخول: {0}',
|
|
176
|
-
logged_in: 'مسجّل الدخول',
|
|
177
|
-
not_logged_in: 'غير مسجّل الدخول',
|
|
178
|
-
corp_label: ' المؤسسة: {0}',
|
|
179
|
-
version_label: ' الإصدار: {0}',
|
|
180
|
-
},
|
|
181
|
-
|
|
182
|
-
// ── lib/auth/token-auth.js ────────────────────────────────────
|
|
183
|
-
login: {
|
|
184
|
-
title: '🔐 تسجيل الدخول إلى Yida',
|
|
185
|
-
cache_found: ' تم العثور على بيانات تسجيل الدخول المخزّنة، جارٍ التحقق...',
|
|
186
|
-
cache_valid: '✅ بيانات تسجيل الدخول المخزّنة صالحة!',
|
|
187
|
-
cache_invalid: ' انتهت صلاحية بيانات تسجيل الدخول المخزّنة. يلزم إعادة تسجيل الدخول.',
|
|
188
|
-
starting_qr: ' جارٍ بدء تسجيل الدخول برمز QR...',
|
|
189
|
-
success: '✅ تم تسجيل الدخول بنجاح!',
|
|
190
|
-
failed: '❌ فشل تسجيل الدخول: {0}',
|
|
191
|
-
usage: 'الاستخدام: openyida login',
|
|
192
|
-
},
|
|
193
|
-
|
|
194
|
-
// ── lib/logout.js ───────────────────────────────────
|
|
195
|
-
logout: {
|
|
196
|
-
title: '🚪 تسجيل الخروج من Yida',
|
|
197
|
-
success: '✅ تم تسجيل الخروج بنجاح! تم حذف بيانات تسجيل الدخول.',
|
|
198
|
-
no_cache: ' لم يتم العثور على بيانات تسجيل دخول. أنت بالفعل غير مسجّل الدخول.',
|
|
199
|
-
failed: '❌ فشل تسجيل الخروج: {0}',
|
|
200
|
-
},
|
|
201
|
-
|
|
202
|
-
// ── lib/create-app.js ───────────────────────────────
|
|
203
|
-
create_app: {
|
|
204
|
-
usage: 'الاستخدام: openyida create-app "<اسم التطبيق>" أو openyida create-app --name "<اسم التطبيق>" [--desc "..."] [--theme deepBlue]',
|
|
205
|
-
example: 'مثال: openyida create-app --name "تطبيقي" --desc "وصف التطبيق" --theme deepBlue',
|
|
206
|
-
title: ' create-app - أداة إنشاء تطبيق Yida',
|
|
207
|
-
app_name: '\n اسم التطبيق: {0}',
|
|
208
|
-
app_desc: ' الوصف: {0}',
|
|
209
|
-
app_icon: ' الأيقونة: {0} ({1})',
|
|
210
|
-
app_theme: ' السمة: colour={0} navTheme={1} layout={2}',
|
|
211
|
-
step_create: '\n🚀 جارٍ إنشاء التطبيق...',
|
|
212
|
-
sending_request: ' جارٍ إرسال طلب createApp...',
|
|
213
|
-
success: ' ✅ تم إنشاء التطبيق بنجاح!',
|
|
214
|
-
app_id: ' معرّف التطبيق: {0}',
|
|
215
|
-
failed: ' ❌ فشل الإنشاء: {0}',
|
|
216
|
-
error: '\n❌ خطأ في الإنشاء: {0}',
|
|
217
|
-
},
|
|
218
|
-
|
|
219
|
-
// ── lib/create-form.js ──────────────────────────────
|
|
220
|
-
create_form: {
|
|
221
|
-
usage: 'الاستخدام: openyida create-form <appType> <اسم الصفحة> [JSON المخطط]',
|
|
222
|
-
title: ' create-form - أداة إنشاء/تحديث صفحة النموذج في Yida',
|
|
223
|
-
app_id: '\n معرّف التطبيق: {0}',
|
|
224
|
-
page_name: ' اسم الصفحة: {0}',
|
|
225
|
-
step_create: '\n📝 جارٍ إنشاء صفحة النموذج...',
|
|
226
|
-
sending_request: ' جارٍ إرسال طلب saveFormSchema...',
|
|
227
|
-
success: ' ✅ تم إنشاء صفحة النموذج بنجاح!',
|
|
228
|
-
form_uuid: ' UUID النموذج: {0}',
|
|
229
|
-
failed: ' ❌ فشل الإنشاء: {0}',
|
|
230
|
-
error: '\n❌ خطأ في الإنشاء: {0}',
|
|
231
|
-
step_check_data: '\n🔍 الخطوة {0}: التحقق من وجود بيانات في النموذج',
|
|
232
|
-
data_exists_warning: ' ⚠️ يحتوي هذا النموذج بالفعل على {0} سجل! قد يؤدي تعديل هيكل النموذج إلى:',
|
|
233
|
-
data_exists_impact: ' - فقدان أو تلف البيانات التاريخية\n - حالات شاذة في سير العمل\n - عدم اتساق البيانات',
|
|
234
|
-
data_exists_abort: ' ❌ تم إلغاء التعديل. أضف --force للمتابعة.',
|
|
235
|
-
data_exists_confirm_message: 'يحتوي هذا النموذج على {0} سجل. قد يؤثر تعديل الهيكل على البيانات الموجودة. أضف --force للتأكيد.',
|
|
236
|
-
data_exists_force_hint: 'الاستخدام: openyida create-form update <appType> <formUuid> <changesJson> --force',
|
|
237
|
-
data_exists_force_proceed: ' ⚠️ وضع --force: تخطي التأكيد، تعديل إجباري لهيكل النموذج مع {0} سجل موجود',
|
|
238
|
-
data_check_empty: ' ✅ لا توجد بيانات في النموذج، يمكن التعديل بأمان',
|
|
239
|
-
data_check_failed: ' ⚠️ فشل التحقق من البيانات، متابعة التعديل',
|
|
240
|
-
},
|
|
241
|
-
|
|
242
|
-
// ── lib/create-page.js ──────────────────────────────
|
|
243
|
-
create_page: {
|
|
244
|
-
usage: 'الاستخدام: openyida create-page <appType> <اسم الصفحة> [--mode dashboard]',
|
|
245
|
-
example: 'مثال: openyida create-page APP_XXX "Dashboard" --mode dashboard',
|
|
246
|
-
title: ' create-page - أداة إنشاء صفحة مخصصة في Yida',
|
|
247
|
-
app_id: '\n معرّف التطبيق: {0}',
|
|
248
|
-
page_name: ' اسم الصفحة: {0}',
|
|
249
|
-
step_create: '\n📄 جارٍ إنشاء الصفحة المخصصة...',
|
|
250
|
-
success: ' ✅ تم إنشاء الصفحة المخصصة بنجاح!',
|
|
251
|
-
step_dashboard_config: '\n🖥️ Step 3: Configure dashboard fullscreen mode',
|
|
252
|
-
dashboard_config_ok: ' ✅ Dashboard mode configured: top nav hidden, chromeless custom URL enabled',
|
|
253
|
-
dashboard_config_failed: ' ⚠️ Dashboard mode config failed: {0}',
|
|
254
|
-
err_mode_invalid: 'Unsupported page mode: {0}',
|
|
255
|
-
mode_hint: 'Available modes: default, dashboard',
|
|
256
|
-
form_uuid: ' UUID الصفحة: {0}',
|
|
257
|
-
failed: ' ❌ فشل الإنشاء: {0}',
|
|
258
|
-
error: '\n❌ خطأ في الإنشاء: {0}',
|
|
259
|
-
},
|
|
260
|
-
|
|
261
|
-
// ── lib/get-schema.js ───────────────────────────────
|
|
262
|
-
get_schema: {
|
|
263
|
-
usage: 'الاستخدام: openyida get-schema <appType> <formUuid>',
|
|
264
|
-
title: ' get-schema - أداة استرداد مخطط النموذج في Yida',
|
|
265
|
-
app_id: '\n معرّف التطبيق: {0}',
|
|
266
|
-
form_uuid: ' UUID النموذج: {0}',
|
|
267
|
-
step_get: '\n📋 جارٍ استرداد مخطط النموذج...',
|
|
268
|
-
success: ' ✅ تم استرداد المخطط بنجاح!',
|
|
269
|
-
failed: ' ❌ فشل الاسترداد: {0}',
|
|
270
|
-
error: '\n❌ خطأ في الاسترداد: {0}',
|
|
271
|
-
},
|
|
272
|
-
|
|
273
|
-
// ── lib/check-update.js ─────────────────────────────
|
|
274
|
-
check_update: {
|
|
275
|
-
new_version: '\n🎉 إصدار جديد متاح: {0} → {1}',
|
|
276
|
-
update_cmd: ' التحديث: npm install -g openyida',
|
|
277
|
-
check_failed: 'فشل التحقق من الإصدار: {0}',
|
|
278
|
-
},
|
|
279
|
-
|
|
280
|
-
// ── lib/update.js ──────────────────────────────────
|
|
281
|
-
update: {
|
|
282
|
-
checking: 'جارٍ التحقق من أحدث إصدار...',
|
|
283
|
-
fetch_failed: 'تعذر الحصول على أحدث إصدار. يرجى التحقق من اتصال الشبكة',
|
|
284
|
-
already_latest: 'أنت على أحدث إصدار ({0})، لا حاجة للتحديث',
|
|
285
|
-
found_new_version: 'إصدار جديد متاح: {0} (الحالي: {1})',
|
|
286
|
-
installing: 'جارٍ تثبيت openyida@latest...',
|
|
287
|
-
success: 'تم التحديث بنجاح! الإصدار الحالي: {0}',
|
|
288
|
-
install_failed: 'فشل التحديث: {0}',
|
|
289
|
-
manual_hint: 'يرجى المحاولة يدوياً: npm install -g openyida@latest',
|
|
290
|
-
available: 'تحديث متاح',
|
|
291
|
-
up_to_date: 'محدّث',
|
|
292
|
-
label_install: 'Install',
|
|
293
|
-
label_channel: 'Channel',
|
|
294
|
-
label_version: 'Version',
|
|
295
|
-
label_update: 'Update',
|
|
296
|
-
done: 'اكتمل التحديث!',
|
|
297
|
-
done_hint: 'شغّل openyida --version للتأكد من الإصدار الجديد',
|
|
298
|
-
},
|
|
299
|
-
|
|
300
|
-
// ── lib/export-app.js ───────────────────────────────
|
|
301
|
-
export_app: {
|
|
302
|
-
usage: 'الاستخدام: openyida export-app <appType>',
|
|
303
|
-
title: ' export-app - أداة تصدير تطبيق Yida',
|
|
304
|
-
app_id: '\n معرّف التطبيق: {0}',
|
|
305
|
-
step_export: '\n📦 جارٍ تصدير التطبيق...',
|
|
306
|
-
success: ' ✅ تم تصدير التطبيق بنجاح!',
|
|
307
|
-
failed: ' ❌ فشل التصدير: {0}',
|
|
308
|
-
error: '\n❌ خطأ في التصدير: {0}',
|
|
309
|
-
},
|
|
310
|
-
|
|
311
|
-
// ── lib/import-app.js ───────────────────────────────
|
|
312
|
-
import_app: {
|
|
313
|
-
usage: 'الاستخدام: openyida import-app <مسار الملف>',
|
|
314
|
-
title: ' import-app - أداة استيراد تطبيق Yida',
|
|
315
|
-
file_path: '\n مسار الملف: {0}',
|
|
316
|
-
step_import: '\n📥 جارٍ استيراد التطبيق...',
|
|
317
|
-
success: ' ✅ تم استيراد التطبيق بنجاح!',
|
|
318
|
-
failed: ' ❌ فشل الاستيراد: {0}',
|
|
319
|
-
error: '\n❌ خطأ في الاستيراد: {0}',
|
|
320
|
-
},
|
|
321
|
-
|
|
322
|
-
// ── lib/get-page-config.js ──────────────────────────
|
|
323
|
-
get_page_config: {
|
|
324
|
-
usage: 'الاستخدام: openyida get-page-config <appType> <formUuid>',
|
|
325
|
-
title: ' get-page-config - أداة استرداد إعدادات الصفحة في Yida',
|
|
326
|
-
app_id: '\n معرّف التطبيق: {0}',
|
|
327
|
-
form_uuid: ' UUID النموذج: {0}',
|
|
328
|
-
step_get: '\n🔍 جارٍ استرداد إعدادات الصفحة...',
|
|
329
|
-
success: ' ✅ تم استرداد الإعدادات بنجاح!',
|
|
330
|
-
failed: ' ❌ فشل الاسترداد: {0}',
|
|
331
|
-
error: '\n❌ خطأ في الاسترداد: {0}',
|
|
332
|
-
},
|
|
333
|
-
|
|
334
|
-
// ── lib/save-share-config.js ────────────────────────
|
|
335
|
-
save_share_config: {
|
|
336
|
-
usage: 'الاستخدام: openyida save-share-config <appType> <formUuid> <openUrl> <isOpen> [openAuth]',
|
|
337
|
-
title: ' save-share-config - أداة حفظ إعدادات الوصول العام في Yida',
|
|
338
|
-
app_id: '\n معرّف التطبيق: {0}',
|
|
339
|
-
form_uuid: ' UUID النموذج: {0}',
|
|
340
|
-
open_url: ' رابط الوصول العام: {0}',
|
|
341
|
-
is_open: ' الوصول العام: {0}',
|
|
342
|
-
open_auth: ' المصادقة مطلوبة: {0}',
|
|
343
|
-
step_validate: '\n📋 Step 0: التحقق من المعاملات',
|
|
344
|
-
validate_ok: ' ✅ اجتاز التحقق',
|
|
345
|
-
validate_failed: ' ❌ فشل التحقق: {0}',
|
|
346
|
-
step_save: '\n💾 Step 2: حفظ إعدادات الوصول العام',
|
|
347
|
-
sending_request: ' جارٍ إرسال طلب saveShareConfig...',
|
|
348
|
-
save_ok: ' ✅ تم حفظ الإعدادات بنجاح!',
|
|
349
|
-
save_ok_msg: 'تم حفظ إعدادات الوصول العام',
|
|
350
|
-
save_failed: ' ❌ فشل الحفظ: {0}',
|
|
351
|
-
save_failed_msg: 'فشل الحفظ',
|
|
352
|
-
err_is_open_invalid: 'يجب أن تكون قيمة isOpen y أو n. القيمة الحالية: {0}',
|
|
353
|
-
err_open_auth_invalid: 'يجب أن تكون قيمة openAuth y أو n. القيمة الحالية: {0}',
|
|
354
|
-
err_open_url_required: 'openUrl مطلوب لتفعيل الوصول العام',
|
|
355
|
-
err_open_url_prefix: 'يجب أن يبدأ openUrl بـ /o/. القيمة الحالية: {0}',
|
|
356
|
-
err_open_url_chars: 'مسار openUrl يدعم فقط a-z A-Z 0-9 _ - و / كفاصل مقاطع. القيمة الحالية: {0}',
|
|
357
|
-
err_open_url_empty: 'لا يمكن أن يكون مسار openUrl فارغاً: {0}',
|
|
358
|
-
},
|
|
359
|
-
|
|
360
|
-
// ── lib/update-form-config.js ──────────────────────
|
|
361
|
-
update_form_config: {
|
|
362
|
-
usage: 'الاستخدام: openyida update-form-config <appType> <formUuid> <isRenderNav> <title>',
|
|
363
|
-
title: ' update-form-config - أداة تحديث إعدادات النموذج في Yida',
|
|
364
|
-
app_id: '\n معرّف التطبيق: {0}',
|
|
365
|
-
form_uuid: ' UUID النموذج: {0}',
|
|
366
|
-
is_render_nav: ' إظهار التنقل: {0}',
|
|
367
|
-
page_title: ' عنوان الصفحة: {0}',
|
|
368
|
-
step_update: '\n💾 Step 2: تحديث إعدادات النموذج',
|
|
369
|
-
sending_request: ' جارٍ إرسال طلب updateFormSchemaInfo...',
|
|
370
|
-
update_ok: ' ✅ تم تحديث الإعدادات بنجاح!',
|
|
371
|
-
nav_shown: 'تم إظهار شريط التنقل العلوي',
|
|
372
|
-
nav_hidden: 'تم إخفاء شريط التنقل العلوي',
|
|
373
|
-
update_failed: ' ❌ فشل التحديث: {0}',
|
|
374
|
-
update_failed_msg: 'فشل التحديث',
|
|
375
|
-
},
|
|
376
|
-
|
|
377
|
-
// ── lib/verify-short-url.js ────────────────────────
|
|
378
|
-
verify_short_url: {
|
|
379
|
-
usage: 'الاستخدام: openyida verify-short-url <appType> <formUuid> <url>',
|
|
380
|
-
title: ' verify-short-url - أداة التحقق من الرابط في Yida',
|
|
381
|
-
app_id: '\n معرّف التطبيق: {0}',
|
|
382
|
-
form_uuid: ' UUID النموذج: {0}',
|
|
383
|
-
step_validate: '\n📋 Step 0: التحقق من تنسيق الرابط',
|
|
384
|
-
validate_ok: ' ✅ اجتاز التحقق من التنسيق',
|
|
385
|
-
validate_failed: ' ❌ فشل التحقق: {0}',
|
|
386
|
-
step_verify: '\n🔍 Step 2: التحقق من الرابط',
|
|
387
|
-
sending_request: ' جارٍ إرسال طلب verifyShortUrl...',
|
|
388
|
-
url_available: ' ✅ الرابط متاح!',
|
|
389
|
-
open_available_msg: 'رابط الوصول العام هذا متاح',
|
|
390
|
-
share_available_msg: 'رابط المشاركة الداخلية هذا متاح',
|
|
391
|
-
url_taken: ' ❌ الرابط مستخدم بالفعل',
|
|
392
|
-
url_taken_msg: 'هذا الرابط المختصر مستخدم بالفعل',
|
|
393
|
-
verify_failed: ' ❌ فشل طلب التحقق',
|
|
394
|
-
err_url_prefix: 'يجب أن يبدأ الرابط بـ /o/ أو /s/. القيمة الحالية: {0}',
|
|
395
|
-
err_url_chars: 'مسار الرابط يدعم فقط a-z A-Z 0-9 _ - و / كفاصل مقاطع. القيمة الحالية: {0}',
|
|
396
|
-
err_url_empty: 'لا يمكن أن يكون مسار الرابط فارغاً: {0}',
|
|
397
|
-
},
|
|
398
|
-
|
|
399
|
-
// ── lib/copy.js ────────────────────────────────────
|
|
400
|
-
copy: {
|
|
401
|
-
title: ' openyida copy - تهيئة دليل عمل Yida',
|
|
402
|
-
package_root: '\n📦 جذر الحزمة: {0}',
|
|
403
|
-
dest_root: '🤖 الدليل الهدف: {0}',
|
|
404
|
-
dest_empty_flatten: '📂 الدليل الهدف فارغ، سيتم نسخ محتويات project/ مباشرةً (بدون إنشاء مجلد project/ فرعي)',
|
|
405
|
-
force_mode: '⚠️ وضع --force: سيتم مسح الدليل الهدف قبل النسخ',
|
|
406
|
-
no_package: '\n❌ لم يتم العثور على دليل حزمة openyida',
|
|
407
|
-
no_package_hint1: ' تأكد من تثبيت openyida بشكل عام:',
|
|
408
|
-
no_package_hint2: ' npm install -g openyida',
|
|
409
|
-
no_active_tool: '\n❌ لم يتم اكتشاف أي بيئة أداة ذكاء اصطناعي نشطة',
|
|
410
|
-
supported_tools: ' الأدوات المدعومة: Wukong, Codex, OpenCode, Claude Code, Aone Copilot, Cursor, Qoder',
|
|
411
|
-
current_result: '\n نتائج الاكتشاف الحالية:',
|
|
412
|
-
force_hint: '\n للنسخ القسري إلى الدليل الحالي:\n openyida copy --force',
|
|
413
|
-
force_cmd: ' openyida copy --force',
|
|
414
|
-
copying_label: '\n📂 جارٍ نسخ {0}...',
|
|
415
|
-
creating_symlink: '\n📂 جارٍ إنشاء رابط رمزي yida-skills/...',
|
|
416
|
-
file_copied: ' تم النسخ: {0}',
|
|
417
|
-
cleared: ' 🗑️ تم المسح: {0}',
|
|
418
|
-
symlink_removed: ' 🗑️ تم حذف الرابط الرمزي القديم: {0}',
|
|
419
|
-
dir_deleted: ' 🗑️ تم حذف الدليل: {0}',
|
|
420
|
-
removed: ' 🗑️ تم الحذف: {0}',
|
|
421
|
-
symlink_created: ' 🔗 رابط رمزي: {0} -> {1}',
|
|
422
|
-
symlink_label: 'رابط رمزي',
|
|
423
|
-
done: '✅ اكتمل!',
|
|
424
|
-
files_copied: ' الملفات المنسوخة: {0}',
|
|
425
|
-
files_count: '{0} ملفات',
|
|
426
|
-
symlinks_created: ' الروابط الرمزية المنشأة: {0}',
|
|
427
|
-
result_symlink: ' {0} → {1} (رابط رمزي)',
|
|
428
|
-
result_copy: ' {0} → {1} ({2} ملفات)',
|
|
429
|
-
wukong_skills_cleanup: '\n🗑️ بيئة Wukong: جارٍ تنظيف الرابط الرمزي yida-skills/...',
|
|
430
|
-
wukong_skills_cleaned: 'تم التنظيف',
|
|
431
|
-
wukong_skills_not_found: ' ℹ️ لم يتم العثور على رابط رمزي أو دليل yida-skills/: {0}',
|
|
432
|
-
remove_failed: ' ❌ فشل الحذف: {0} ({1})',
|
|
433
|
-
symlink_fallback_copy: ' ⚠️ فشل إنشاء الرابط الرمزي في Windows (يتطلب صلاحيات المسؤول)، استخدام نسخ الدليل: {0}',
|
|
434
|
-
symlink_failed: ' ❌ فشل إنشاء الرابط الرمزي: {0} ({1})',
|
|
435
|
-
},
|
|
436
|
-
|
|
437
|
-
// ── lib/publish.js ─────────────────────────────────
|
|
438
|
-
generate_page: {
|
|
439
|
-
spec_not_found: 'Spec file not found: {0}',
|
|
440
|
-
spec_invalid: 'Failed to parse spec JSON: {0}',
|
|
441
|
-
unknown_template: 'Unknown page template: {0}',
|
|
442
|
-
available_templates: 'Available templates: {0}',
|
|
443
|
-
template_not_found: 'Template file not found: {0}',
|
|
444
|
-
done: 'Page generated: {0}',
|
|
445
|
-
hint: 'Next run openyida compile <file>, or pass --compile to compile immediately.',
|
|
446
|
-
success: 'Page generation complete',
|
|
447
|
-
},
|
|
448
|
-
page_size: {
|
|
449
|
-
large_source: 'تم اكتشاف مصدر صفحة كبير: {0} ({1}، حوالي {2} سطر)',
|
|
450
|
-
long_line_hint: 'تم اكتشاف سطر واحد طويل جدًا (حوالي {0} حرفًا)، غالبًا كود vendor مضغوط أو base64؛ انقله خارج مصدر الصفحة.',
|
|
451
|
-
base64_hint: 'تم اكتشاف محتوى base64 طويل داخل الملف؛ ارفعه إلى CDN/OSS واستخدم رابط URL.',
|
|
452
|
-
memory_hint: 'publish/compile يحتفظ بالمصدر ونتيجة البناء والضغط ونسخ schema في الذاكرة؛ افصل vendor/base64 أو حمّله عبر this.utils.loadScript.',
|
|
453
|
-
windows_hint: 'على Windows لا تكتب JSX كبيرًا عبر PowerShell Get-Content -Raw + ConvertTo-Json؛ استخدم Node fs.writeFileSync/appendFileSync على أجزاء.',
|
|
454
|
-
},
|
|
455
|
-
publish: {
|
|
456
|
-
title: ' yida-publish - أداة نشر صفحات Yida',
|
|
457
|
-
platform: ' المنصة: {0}',
|
|
458
|
-
app_id: ' معرّف التطبيق: {0}',
|
|
459
|
-
form_uuid: ' معرّف النموذج: {0}',
|
|
460
|
-
source_file: ' المصدر: {0}',
|
|
461
|
-
compiled_file: ' المخرجات: {0}',
|
|
462
|
-
step_lint: '\n🔍 Step 0: فحص معايير ترميز يدا\n',
|
|
463
|
-
lint_title: '⚠️ Yida page code check:',
|
|
464
|
-
lint_error_line: ' ❌ السطر {0}: {1}',
|
|
465
|
-
lint_warning_line: ' ⚠️ السطر {0}: {1}',
|
|
466
|
-
lint_event_function: 'ربط الحدث يستخدم function، استخدم دالة السهم (e) => { this.xxx() }',
|
|
467
|
-
lint_missing_render_jsx: 'الدالة export function renderJsx() مفقودة؛ يجب أن تصدر صفحات Yida المخصصة renderJsx',
|
|
468
|
-
lint_import_require: 'تم العثور على import/require. لا يمكن لصفحات Yida المخصصة استيراد الوحدات؛ حمّل سكربتات الطرف الثالث باستخدام this.utils.loadScript',
|
|
469
|
-
lint_react_hooks: 'تم العثور على React Hooks. يستخدم وقت تشغيل Yida نمط مكونات React 16 الكلاسية ولا يدعم useState/useEffect',
|
|
470
|
-
lint_export_default: 'تم العثور على export default. يحتاج Yida إلى exports مسماة مثل export function renderJsx/didMount',
|
|
471
|
-
lint_jsx_extension: 'يحتوي ملف .js هذا على JSX؛ يفضل استخدام .jsx لملفات المصدر. سيبقى ناتج الترجمة .js',
|
|
472
|
-
lint_event_direct_method: 'يرسل ربط الحدث this.xxx مباشرة وسيفقد this؛ استخدم (e) => { this.xxx(e); }',
|
|
473
|
-
lint_event_bind_this: 'يستخدم ربط الحدث .bind(this)؛ استخدم بدلا من ذلك (e) => { this.xxx(e); }',
|
|
474
|
-
lint_lifecycle_case: 'تم اكتشاف export لدورة حياة {0}؛ يتعرف Yida فقط على {1} (حساس لحالة الأحرف)',
|
|
475
|
-
lint_react_lifecycle_method: 'تم اكتشاف دورة حياة React {0}؛ صدّر {1} لصفحات Yida المخصصة',
|
|
476
|
-
lint_event_lowercase: 'تم اكتشاف خاصية حدث بحروف صغيرة {0}؛ لن يربطها React/Yida. استخدم {1}',
|
|
477
|
-
lint_event_call_result: 'ربط الحدث يستدعي دالة أو ليس معالج تعبير؛ استخدم (e) => { self.xxx(e); }',
|
|
478
|
-
lint_event_noop_arrow: 'دالة السهم للحدث تشير إلى معالج دون استدعائه؛ استخدم (e) => { self.xxx(e); }',
|
|
479
|
-
lint_button_missing_handler: 'يوجد <button> ظاهر بلا onClick/onMouseDown/onKeyDown أو حالة disabled؛ اربط معالج حدث أو استخدم span/div للتسميات الثابتة',
|
|
480
|
-
lint_array_callback_function: '.{0}(function ...) قد يفقد this داخل callbacks؛ استخدم بدلا من ذلك .{0}((item) => ...)',
|
|
481
|
-
lint_foreach_callback_function: '.forEach(function ...) قد يفقد this داخل callbacks؛ يفضل استخدام .forEach((item) => ...)',
|
|
482
|
-
lint_controlled_input: 'يستخدم input وضع value المتحكم به. يجب أن تستخدم صفحات Yida defaultValue + onChange لتحديث _customState',
|
|
483
|
-
lint_native_select_ui: 'تم العثور على <select> أصلي. في الصفحات المخصصة العادية استخدم قائمة button+menu+option مع سهم وعلامة تحديد وإعادة ضبط للتركيز؛ لا تعرض SelectField الخاص بالنموذج مباشرة كمكون تصفية للصفحة.',
|
|
484
|
-
lint_iframe_self_navigation: 'تعمل صفحات Yida المخصصة داخل iframe. استخدم target="_top"/target="_blank" أو window.top.location للتنقل إلى صفحات Yida لتجنب الصفحات المتداخلة.',
|
|
485
|
-
lint_page_size_limit: 'pageSize={0} يتجاوز حد واجهة Yida API وهو 100؛ استخدم 100 أو أقل',
|
|
486
|
-
lint_page_size_recommend: 'pageSize={0} كبير؛ القيمة الموصى بها هي 50 (أفضل أداء، الحد الأقصى 100). يفضل 10/20/50',
|
|
487
|
-
lint_searchformdata_http_post: 'استدعاء searchFormDatas.json مباشرة يجب أن يستخدم GET + معاملات query (ضع formUuid/appType في query الخاص بعنوان URL). استخدام POST مع formUuid في الـ body يسبب «参数校验失败formUuid» وتظهر اللوحات/القوائم أصفارًا',
|
|
488
|
-
lint_searchformdata_http_pagenumber: 'يستخدم searchFormDatas.json ترقيم الصفحات عبر currentPage (وليس pageNumber)؛ استخدام pageNumber يعطّل الترقيم',
|
|
489
|
-
lint_searchformdata_http_unwrap: 'استجابة المتصفح من searchFormDatas.json تضع القائمة داخل content.data ({ content: { data: [...] } })؛ قراءة json.data فقط تُرجع 0 صفوف — فك التغليف عبر (json.content && json.content.data)',
|
|
490
|
-
lint_setstate_non_timestamp: 'this.setState يكتب حقلا غير timestamp. يجب أن تبقى حالة الأعمال في الصفحة المخصصة داخل _customState ويتم تحديثها عبر forceUpdate()/setCustomState(); يجب أن يحمل this.setState حقل العقد timestamp فقط',
|
|
491
|
-
lint_self_binding_missing: 'renderJsx يستخدم this دون تعريف var self = this;. أضف var self = this; في بداية renderJsx واستخدم self داخل closures/callbacks لتجنب فقدان this',
|
|
492
|
-
lint_echarts_dom_ready: 'echarts.init غير ملفوف داخل setTimeout؛ قد لا يكون الحاوي مركبا بعد، لذلك قد لا يتم عرض المخطط. استخدم setTimeout(function(){ /* echarts.init */ }, 300)',
|
|
493
|
-
lint_yida_api_catch: 'لم يتم اكتشاف .catch() لاستدعاء API this.utils.yida؛ أضف معالجة أخطاء واعرض toast للمستخدم',
|
|
494
|
-
lint_echarts_legacy_map_china: 'لم يعد ECharts 5 يدعم echarts/map/js/china.js. حمّل DataV GeoJSON واستدع echarts.registerMap("china", geoJson) بدلا من ذلك',
|
|
495
|
-
lint_echarts_rich_label_formatter: 'قوالب rich text التي يعيدها ECharts label.formatter غير مستقرة في صفحات Yida المخصصة؛ يفضل استخدام formatter strings بسيطة أو نصوص تسميات محسوبة مسبقا',
|
|
496
|
-
lint_const_let: 'يستخدم إعلان const/let، يُوصى بالتغيير إلى var (توافق بيئة تشغيل يدا)',
|
|
497
|
-
lint_computed_property: 'يستخدم اسم خاصية محسوبة ES6 { [key]: value }، غير مدعوم من محرك JS يدا، يسبب فشلاً صامتاً. استخدم var obj = {}; obj[key] = value;',
|
|
498
|
-
lint_pad_method: 'يستخدم String.{0}()، غير مدعوم من محرك JS يدا، يسبب انقطاعاً صامتاً لاستدعاءات Promise. استخدم المعامل الثلاثي: x < 10 ? "0" + x : "" + x',
|
|
499
|
-
lint_large_then_callback: 'استدعاء Promise .then() كبير جداً ({0} سطر، الحد الأقصى الموصى به {1} سطر)، قد يسبب اقتطاعاً صامتاً. استخرج المنطق إلى دالة export منفصلة',
|
|
500
|
-
lint_fix_errors: '❌ يرجى إصلاح الأخطاء أعلاه قبل النشر',
|
|
501
|
-
lint_skip_hint: '💡 أضف --skip-lint لتخطي الفحص',
|
|
502
|
-
lint_passed: ' ✅ فحص الكود ناجح\n',
|
|
503
|
-
lint_skipped: '\n⏭️ تم تخطي فحص الكود المسبق (--skip-lint)\n',
|
|
504
|
-
duplicate_source_mismatch: ' ⚠️ Found another copy with the same file name but different content. Publishing: {0}; other copy: {1}',
|
|
505
|
-
data_source_fetching: ' Reading existing page data sources...',
|
|
506
|
-
data_source_preserved: ' ✅ Preserved existing page data sources: {0}',
|
|
507
|
-
data_source_none: ' No custom page data sources to preserve',
|
|
508
|
-
data_source_fetch_failed: 'Could not read the existing page Schema, so publishing stopped to avoid clearing existing data sources: {0}',
|
|
509
|
-
target_checking: ' Checking publish target type...',
|
|
510
|
-
target_check_forced: ' ⚠️ Skipped publish target type check (--force)',
|
|
511
|
-
target_check_ok: ' ✅ Publish target confirmed: {0} ({1})',
|
|
512
|
-
target_check_failed: 'Could not verify publish target: {0}',
|
|
513
|
-
target_not_found: 'Publish target was not found in app navigation: {0}',
|
|
514
|
-
target_type_invalid: 'Publish target is not a custom display page: {0} current type is {1}',
|
|
515
|
-
target_type_hint: 'The current target "{0}" does not look like a custom page (type: {1}). Do not publish JSX to data forms or process forms.',
|
|
516
|
-
target_list_hint: 'Run openyida list-forms {0} --keyword <page name>, then choose a custom page formUuid with formType=display.',
|
|
517
|
-
target_force_hint: 'Append --force only when you intentionally bypass this guard; it overwrites the target Schema and should be used only for a known custom page.',
|
|
518
|
-
step_compile: '\n📦 Step 1: تجميع المصدر وبناء المخطط\n',
|
|
519
|
-
reading_source: '[1/4] جارٍ قراءة مصدر {0}...',
|
|
520
|
-
compiling: '[2/4] جارٍ تجميع {0} بـ Babel...',
|
|
521
|
-
compile_failed: ' ❌ فشل التجميع: {0}',
|
|
522
|
-
compile_location: '\n الموقع: السطر {0}، العمود {1}',
|
|
523
|
-
compile_error_code: ' رمز الخطأ: {0}',
|
|
524
|
-
minifying: '[3/4] جارٍ ضغط {0} بـ UglifyJS...',
|
|
525
|
-
minify_failed: ' فشل الضغط: {0}',
|
|
526
|
-
compile_done: ' ✅ اكتمل التجميع: {0}',
|
|
527
|
-
building_schema: '[4/4] جارٍ بناء المخطط...',
|
|
528
|
-
formula_prefix_fixed: ' 🔧 تم تصحيح {0} من مراجع بادئة صيغة الجدول الفرعي تلقائيًا',
|
|
529
|
-
schema_built: ' ✅ تم بناء المخطط بنجاح!',
|
|
530
|
-
step_canvas_compile: '\n📦 Step 1: تجميع مصدر Code Canvas\n',
|
|
531
|
-
canvas_compiling: ' 🎨 جارٍ تجميع مصدر Code Canvas محليًا...',
|
|
532
|
-
canvas_compile_done: ' ✅ تم تجميع Code Canvas!',
|
|
533
|
-
canvas_compile_failed: ' ❌ فشل تجميع Code Canvas: {0}',
|
|
534
|
-
step_login: '\n🔑 Step 2: قراءة بيانات تسجيل الدخول',
|
|
535
|
-
step_publish: '\n📤 Step 3: نشر المخطط\n',
|
|
536
|
-
publish_failed: '\n❌ فشل النشر: {0}',
|
|
537
|
-
schema_published: ' ✅ تم نشر المخطط بنجاح!',
|
|
538
|
-
step_config: '\n⚙️ Step 4: تحديث إعدادات النموذج\n',
|
|
539
|
-
success: ' ✅ تم النشر بنجاح!',
|
|
540
|
-
config_failed: ' ⚠️ فشل تحديث الإعدادات: {0}',
|
|
541
|
-
schema_ok_config_failed: 'Schema published, but config update failed',
|
|
542
|
-
step_health_check: '\n🩺 Step 5: Health check published page\n',
|
|
543
|
-
health_check_ok: ' ✅ Health check passed: HTTP {0}',
|
|
544
|
-
health_check_failed: ' ⚠️ Health check failed: HTTP {0} {1}',
|
|
545
|
-
exception: '\n❌ خطأ في النشر: {0}',
|
|
546
|
-
source_not_found: '❌ لم يتم العثور على ملف المصدر: {0}',
|
|
547
|
-
usage: 'الاستخدام: openyida publish <ملفالمصدر> <appType> <formUuid> [--health-check] [--canvas]',
|
|
548
|
-
example: 'مثال: openyida publish pages/src/xxx.js APP_XXX FORM-XXX --health-check',
|
|
549
|
-
},
|
|
550
|
-
|
|
551
|
-
// ── token-only disabled QR login ────────────────────────────────
|
|
552
|
-
qr_login: {
|
|
553
|
-
title: '🔐 تسجيل الدخول إلى Yida برمز QR في الطرفية',
|
|
554
|
-
step_init: ' Step 1: جارٍ تهيئة الجلسة...',
|
|
555
|
-
step_get_qr: ' Step 2: جارٍ الحصول على رمز QR...',
|
|
556
|
-
scan_hint: ' 📱 يرجى مسح رمز QR أدناه باستخدام DingTalk:',
|
|
557
|
-
browser_alternative: ' 💡 If this is not a cloud/remote machine, use browser login instead; if QR scan fails, try: {0}',
|
|
558
|
-
qr_url_label: ' رابط رمز QR: {0}',
|
|
559
|
-
waiting_scan: ' ⏳ في انتظار المسح (حتى دقيقتين)...',
|
|
560
|
-
scanned_confirm: ' ✅ تم مسح رمز QR! يرجى تأكيد تسجيل الدخول على هاتفك...',
|
|
561
|
-
scan_success: ' ✅ تم تأكيد المسح!',
|
|
562
|
-
step_exchange: ' Step 4: جارٍ تبادل بيانات الاعتماد...',
|
|
563
|
-
step_get_corps: ' Step 5: جارٍ الحصول على قائمة المؤسسات...',
|
|
564
|
-
step_switch_corp: ' Step 7: جارٍ التبديل إلى المؤسسة المحددة...',
|
|
565
|
-
only_one_corp: ' ✅ تم اكتشاف مؤسسة واحدة: {0}، تم الاختيار تلقائياً',
|
|
566
|
-
select_corp_prompt: ' 🏢 تم العثور على مؤسسات متعددة، يرجى اختيار واحدة:',
|
|
567
|
-
select_corp_input: ' أدخل الرقم (1-{0}): ',
|
|
568
|
-
select_corp_invalid: ' ❌ إدخال غير صالح، يرجى إدخال رقم بين 1 و {0}',
|
|
569
|
-
target_corp_not_found: 'لم يتم العثور على corpId المحدد ضمن المؤسسات المتاحة: {0}',
|
|
570
|
-
corp_selected: ' ✅ تم اختيار المؤسسة: {0}',
|
|
571
|
-
login_success: '✅ تم تسجيل الدخول بنجاح!',
|
|
572
|
-
qrcode_fallback: ' ⚠️ حزمة qrcode غير مثبتة، يرجى زيارة الرابط أدناه يدوياً:',
|
|
573
|
-
qrcode_render_failed: ' ⚠️ فشل عرض رمز QR ({0})، يرجى زيارة الرابط أدناه:',
|
|
574
|
-
qr_expired: 'انتهت صلاحية رمز QR، يرجى تسجيل الدخول مجدداً',
|
|
575
|
-
poll_timeout: 'انتهت مهلة انتظار المسح (دقيقتان)، يرجى تسجيل الدخول مجدداً',
|
|
576
|
-
no_corp_available: 'لم يتم العثور على مؤسسات يمكن الوصول إليها',
|
|
577
|
-
no_csrf_in_cookie: 'نجح تسجيل الدخول لكن لم يتم العثور على csrf_token، يرجى المحاولة مجدداً',
|
|
578
|
-
stdin_closed: 'تم إغلاق تدفق الإدخال، لا يمكن اختيار مؤسسة',
|
|
579
|
-
},
|
|
580
|
-
|
|
581
|
-
// ── scripts/postinstall.js ─────────────────────────
|
|
582
|
-
postinstall: {
|
|
583
|
-
welcome_title: ' 🎉 مرحباً بك في OpenYida! ',
|
|
584
|
-
install_success: ' ✅ اكتمل التثبيت! {0} أداة تطوير Yida بالذكاء الاصطناعي جاهزة.',
|
|
585
|
-
update_success: ' ✅ اكتمل التحديث! {0} تم ترقية OpenYida إلى أحدث إصدار.',
|
|
586
|
-
ai_mode_title: ' 🚀 وضع المحادثة بالذكاء الاصطناعي',
|
|
587
|
-
ai_mode_desc: ' في Codex / Claude Code / Aone Copilot / Cursor، تحدث مباشرة:',
|
|
588
|
-
prompt1: ' 📋 "أنشئ لي نظام إدارة الحضور باستخدام Yida"',
|
|
589
|
-
prompt2: ' 💰 "ابنِ تطبيق حاسبة الراتب الشخصي"',
|
|
590
|
-
prompt3: ' 🏢 "أنشئ نظام CRM لإدارة العملاء"',
|
|
591
|
-
prompt4: ' 🎂 "اصنع تطبيقاً مصغراً للتهنئة بأعياد الميلاد"',
|
|
592
|
-
steps_title: ' 📖 البدء',
|
|
593
|
-
step1: ' {0}Step 1{1} افتح أداة الذكاء الاصطناعي (Codex / Claude Code / Cursor إلخ)',
|
|
594
|
-
step2: ' {0}Step 2{1} صف التطبيق الذي تريده بلغة طبيعية',
|
|
595
|
-
step3: ' {0}Step 3{1} يقوم الذكاء الاصطناعي تلقائياً بتشغيل أوامر openyida',
|
|
596
|
-
step4: ' {0}Step 4{1} احصل على رابط تطبيق Yida الخاص بك 🎉',
|
|
597
|
-
commands_title: ' ⚡ أوامر سريعة',
|
|
598
|
-
cmd_env: ' {0}openyida env{1} {2}# اكتشاف بيئة أداة الذكاء الاصطناعي وحالة تسجيل الدخول{3}',
|
|
599
|
-
cmd_login: ' {0}openyida login{1} {2}# تسجيل الدخول إلى Yida{3}',
|
|
600
|
-
cmd_help: ' {0}openyida --help{1} {2}# عرض جميع الأوامر{3}',
|
|
601
|
-
footer1: ' 📚 التوثيق: https://github.com/openyida/openyida',
|
|
602
|
-
footer2: ' 💬 المجتمع: انضم إلى مجتمع OpenYida على DingTalk',
|
|
603
|
-
},
|
|
604
|
-
|
|
605
|
-
// ── lib/cdn-*.js ───────────────────────────────────
|
|
606
|
-
cdn: {
|
|
607
|
-
config_load_error: 'فشل تحميل إعدادات CDN: {0}',
|
|
608
|
-
config_saved: '✅ تم حفظ إعدادات CDN في: {0}',
|
|
609
|
-
config_usage: 'الاستخدام: openyida cdn-config [خيارات]',
|
|
610
|
-
config_file_path: '📄 ملف الإعدادات: {0}',
|
|
611
|
-
config_section_aliyun: '🔐 بيانات اعتماد Alibaba Cloud',
|
|
612
|
-
config_section_cdn: '🌐 إعدادات CDN',
|
|
613
|
-
config_section_oss: '📦 إعدادات OSS',
|
|
614
|
-
config_section_upload: '📤 إعدادات الرفع',
|
|
615
|
-
config_cdn_domain: 'نطاق CDN',
|
|
616
|
-
config_oss_region: 'منطقة OSS',
|
|
617
|
-
config_oss_bucket: 'حاوية OSS',
|
|
618
|
-
config_oss_endpoint: 'نقطة نهاية OSS',
|
|
619
|
-
config_upload_path: 'مسار الرفع',
|
|
620
|
-
config_compress: 'ضغط الصور',
|
|
621
|
-
config_max_width: 'الحد الأقصى للعرض',
|
|
622
|
-
config_quality: 'جودة الصورة',
|
|
623
|
-
config_not_set: 'غير محدد',
|
|
624
|
-
config_enabled: 'مفعّل',
|
|
625
|
-
config_disabled: 'معطّل',
|
|
626
|
-
config_status_valid: '✅ الإعدادات مكتملة، جاهزة للاستخدام',
|
|
627
|
-
config_status_invalid: '⚠️ الإعدادات غير مكتملة',
|
|
628
|
-
config_missing: ' الحقول المفقودة: {0}',
|
|
629
|
-
config_updated: '✅ تم تحديث الإعدادات!',
|
|
630
|
-
config_init_title: '🔧 معالج تهيئة CDN',
|
|
631
|
-
config_init_desc: 'لاستخدام رفع الصور عبر CDN، قم بتكوين ما يلي:',
|
|
632
|
-
upload_no_files: '❌ يرجى تحديد ملفات الصور للرفع',
|
|
633
|
-
config_incomplete: '❌ إعدادات CDN غير مكتملة',
|
|
634
|
-
missing_fields: ' الحقول المفقودة: {0}',
|
|
635
|
-
run_config_init: ' يرجى تشغيل أولاً: openyida cdn-config --init',
|
|
636
|
-
no_config: '❌ لم يتم العثور على إعدادات CDN',
|
|
637
|
-
oss_sdk_required: '❌ SDK ali-oss مفقود',
|
|
638
|
-
run_npm_install: ' شغّل: npm install {0}',
|
|
639
|
-
no_images_found: '❌ لم يتم العثور على ملفات صور مدعومة',
|
|
640
|
-
uploading_images: '📤 جارٍ رفع {0} صور...',
|
|
641
|
-
uploading_file: ' جارٍ الرفع: {0}',
|
|
642
|
-
upload_success: ' ✅ {0}',
|
|
643
|
-
upload_failed: ' ❌ فشل رفع {0}: {1}',
|
|
644
|
-
upload_summary: '\n📊 ملخص الرفع',
|
|
645
|
-
upload_success_count: ' نجح: {0}',
|
|
646
|
-
upload_fail_count: ' فشل: {0}',
|
|
647
|
-
cdn_urls: '\n🔗 قائمة روابط CDN:',
|
|
648
|
-
upload_error: '❌ فشل الرفع: {0}',
|
|
649
|
-
refresh_no_targets: '❌ يرجى تحديد روابط أو مجلدات للتحديث',
|
|
650
|
-
cdn_sdk_required: '❌ SDK CDN من Alibaba Cloud مفقود',
|
|
651
|
-
querying_quota: '📊 جارٍ الاستعلام عن حصة التحديث...',
|
|
652
|
-
quota_info: ' تحديث الروابط: {0}/يوم، {1} متبقٍ | المجلدات: {2}/يوم، {3} متبقٍ',
|
|
653
|
-
refreshing_urls: '🔄 جارٍ تحديث {0} رابط...',
|
|
654
|
-
refreshing_paths: '🔄 جارٍ تحديث {0} مجلد...',
|
|
655
|
-
refresh_task_id: ' ✅ معرّف المهمة: {0}',
|
|
656
|
-
refresh_urls_failed: ' ❌ فشل تحديث الروابط: {0}',
|
|
657
|
-
refresh_paths_failed: ' ❌ فشل تحديث المجلدات: {0}',
|
|
658
|
-
refresh_summary: '\n📊 ملخص التحديث',
|
|
659
|
-
url_refresh_success: ' ✅ نجح تحديث الرابط، معرّف المهمة: {0}',
|
|
660
|
-
path_refresh_success: ' ✅ نجح تحديث المجلد، معرّف المهمة: {0}',
|
|
661
|
-
refresh_error: '❌ فشل التحديث: {0}',
|
|
662
|
-
file_not_found: '❌ لم يتم العثور على الملف: {0}',
|
|
663
|
-
},
|
|
664
|
-
|
|
665
|
-
// ── src/flash-note/flash-to-prd.ts ──────────────
|
|
666
|
-
flashNote: {
|
|
667
|
-
toPrd: {
|
|
668
|
-
title: '📋 ملاحظة DingTalk السريعة إلى PRD',
|
|
669
|
-
help_usage: 'الاستخدام: openyida flash-to-prd --file <المسار> [--name <اسم-المشروع>]',
|
|
670
|
-
help_usage2: ' openyida flash-to-prd --name <اسم-المشروع> (قراءة من stdin)',
|
|
671
|
-
help_args_title: 'المعاملات:',
|
|
672
|
-
help_arg_file: ' --file, -f <المسار> مسار ملف الملاحظة السريعة (.txt / .md)',
|
|
673
|
-
help_arg_name: ' --name, -n <الاسم> اسم المشروع (اختياري، مستخرج تلقائياً)',
|
|
674
|
-
help_arg_max_tokens: ' --max-tokens <العدد> الحد الأقصى لرموز إخراج AI (الافتراضي 8000)',
|
|
675
|
-
help_examples_title: 'أمثلة:',
|
|
676
|
-
help_example1: ' openyida flash-to-prd --file ./meeting-notes.txt --name "فحص المعدات"',
|
|
677
|
-
help_example2: ' cat meeting.txt | openyida flash-to-prd --name "فحص المعدات"',
|
|
678
|
-
step_read: '[الخطوة 1] قراءة محتوى الملاحظة السريعة...',
|
|
679
|
-
file_not_found: 'الملف غير موجود: {0}',
|
|
680
|
-
no_input: 'لم يتم تقديم محتوى ملاحظة سريعة. استخدم --file لتحديد ملف أو تمرير المحتوى عبر stdin.',
|
|
681
|
-
stdin_empty: 'الإدخال القياسي فارغ',
|
|
682
|
-
read_success: '✅ تمت القراءة بنجاح، {0} حرف',
|
|
683
|
-
step_load_module: '[الخطوة 2] تحميل وحدة بناء الموجه...',
|
|
684
|
-
module_loaded_builtin: '✅ تم تحميل وحدة الموجه المدمجة',
|
|
685
|
-
module_loaded_local: '✅ تم تحميل وحدة الموجه المحلية: {0}',
|
|
686
|
-
module_not_found: '❌ لم يتم العثور على وحدة build-flash-note-prompt.js',
|
|
687
|
-
module_path_tried: ' تم تجربة المسار {0}: {1}',
|
|
688
|
-
step_preprocess: '[الخطوة 3] المعالجة المسبقة + التعرف على الاجتماع...',
|
|
689
|
-
preprocess_result: ' المعالجة المسبقة: {0} حرف -> {1} حرف',
|
|
690
|
-
meeting_meta: ' بيانات الاجتماع الوصفية: {0} حقول{1}',
|
|
691
|
-
a1_sections: ' أقسام ملخص A1: {0}{1}',
|
|
692
|
-
speakers: ' المتحدثون المحددون: {0}{1}',
|
|
693
|
-
speakers_with_role: ' (مع {0} تعليقات توضيحية للدور)',
|
|
694
|
-
step_login: '[الخطوة 4] التحقق من حالة تسجيل الدخول...',
|
|
695
|
-
no_login: ' لم يتم العثور على جلسة تسجيل دخول، جاري تشغيل تسجيل الدخول...',
|
|
696
|
-
login_ready: '✅ تسجيل الدخول جاهز ({0})',
|
|
697
|
-
step_ai: '[الخطوة 5] استدعاء AI لإنشاء PRD...',
|
|
698
|
-
single_segment: ' وضع المقطع الواحد، طول الموجه: {0} حرف',
|
|
699
|
-
multi_segment: ' وضع المقاطع المتعددة، إجمالي {0} مقطع',
|
|
700
|
-
extracting_segment: ' استخراج المقطع {0}/{1} ({2} حرف)...',
|
|
701
|
-
merging_segments: ' دمج نتائج المقاطع...',
|
|
702
|
-
ai_success: '✅ تم إنشاء PRD بنجاح',
|
|
703
|
-
ai_error: 'فشل استدعاء AI API: {0}',
|
|
704
|
-
done: '✅ اكتمل تحويل الملاحظة السريعة إلى PRD',
|
|
705
|
-
done_project: ' اسم المشروع: {0}',
|
|
706
|
-
done_file: ' ملف الإخراج: {0}',
|
|
707
|
-
done_size: ' حجم الملف: {0} حرف',
|
|
708
|
-
done_meeting: ' التعرف على الاجتماع: {0} حقول بيانات وصفية، {1} أقسام A1، {2} متحدثين',
|
|
709
|
-
},
|
|
710
|
-
},
|
|
711
|
-
update_app: {
|
|
712
|
-
layout_notice: 'Note: layoutDirection is consumed by the Yida app shell during creation/refresh. If the top action bar does not recover immediately after a backend switch, reopen the workbench or recreate the app with the target layout.',
|
|
713
|
-
},
|
|
714
|
-
aggregate_table: {
|
|
715
|
-
usage: 'Usage: openyida aggregate-table <list|create-empty|inspect|preview|save|publish|status> <appType> ...',
|
|
716
|
-
commands_title: 'Subcommands:',
|
|
717
|
-
cmd_list: 'list <appType> [--keyword <text>] [--json] List aggregate tables in an app',
|
|
718
|
-
cmd_create_empty: 'create-empty <appType> "<name>" [--open|--no-open] Create a blank aggregate table and return the designer URL',
|
|
719
|
-
cmd_inspect: 'inspect <appType> <formUuid> [--json] Read aggregate table design config',
|
|
720
|
-
cmd_preview: 'preview <appType> <formUuid> <design.json> [--json] Preview config without saving',
|
|
721
|
-
cmd_save: 'save <appType> <formUuid> <design.json> [--json] Save an aggregate table draft',
|
|
722
|
-
cmd_publish: 'publish <appType> <formUuid> <design.json> [--json] Publish aggregate table config',
|
|
723
|
-
cmd_status: 'status <appType> <formUuid> [--json] Query aggregate table build status',
|
|
724
|
-
examples_title: 'Examples:',
|
|
725
|
-
example_list: 'openyida aggregate-table list APP_XXX',
|
|
726
|
-
example_create_empty: 'openyida aggregate-table create-empty APP_XXX "Customer Contract Aggregate" --open',
|
|
727
|
-
example_inspect: 'openyida aggregate-table inspect APP_XXX FORM_XXX --json',
|
|
728
|
-
example_preview: 'openyida aggregate-table preview APP_XXX FORM_XXX .cache/openyida/aggregate/design.json',
|
|
729
|
-
example_save: 'openyida aggregate-table save APP_XXX FORM_XXX .cache/openyida/aggregate/design.json',
|
|
730
|
-
example_publish: 'openyida aggregate-table publish APP_XXX FORM_XXX .cache/openyida/aggregate/design.json',
|
|
731
|
-
example_status: 'openyida aggregate-table status APP_XXX FORM_XXX',
|
|
732
|
-
list_usage: 'Usage: openyida aggregate-table list <appType> [--keyword <text>] [--json]',
|
|
733
|
-
create_empty_usage: 'Usage: openyida aggregate-table create-empty <appType> "<name>" [--locale zh_CN|en_US|ja_JP] [--open|--no-open]',
|
|
734
|
-
inspect_usage: 'Usage: openyida aggregate-table inspect <appType> <formUuid> [--json]',
|
|
735
|
-
preview_usage: 'Usage: openyida aggregate-table preview <appType> <formUuid> <design.json> [--json]',
|
|
736
|
-
save_usage: 'Usage: openyida aggregate-table save <appType> <formUuid> <design.json> [--json]',
|
|
737
|
-
publish_usage: 'Usage: openyida aggregate-table publish <appType> <formUuid> <design.json> [--json]',
|
|
738
|
-
status_usage: 'Usage: openyida aggregate-table status <appType> <formUuid> [--json]',
|
|
739
|
-
no_login: 'No login state found. Run openyida login first.',
|
|
740
|
-
unsupported_locale: 'Unsupported locale: {0}',
|
|
741
|
-
unknown_subcommand: 'Unknown aggregate-table subcommand: {0}',
|
|
742
|
-
design_required: 'Missing aggregate table design JSON or file path',
|
|
743
|
-
invalid_json: 'Aggregate table design config is not valid JSON: {0}',
|
|
744
|
-
design_object_required: 'Aggregate table design config must be a JSON object',
|
|
745
|
-
check_feature: 'Check aggregate table capability',
|
|
746
|
-
feature_disabled: 'Aggregate table is not enabled for this app/org, or the edition quota has been reached',
|
|
747
|
-
create_empty: 'Create blank aggregate table',
|
|
748
|
-
inspect: 'Read aggregate table config',
|
|
749
|
-
preview: 'Preview aggregate table config',
|
|
750
|
-
save: 'Save aggregate table draft',
|
|
751
|
-
publish: 'Publish aggregate table config',
|
|
752
|
-
status: 'Query aggregate table build status',
|
|
753
|
-
publish_requires_source: 'Publishing requires at least one data source. Configure relationForms first.',
|
|
754
|
-
list_success: 'Aggregate table list',
|
|
755
|
-
create_empty_success: 'Aggregate table created',
|
|
756
|
-
inspect_success: 'Aggregate table config loaded',
|
|
757
|
-
preview_success: 'Aggregate table preview succeeded',
|
|
758
|
-
save_success: 'Aggregate table draft saved',
|
|
759
|
-
publish_success: 'Aggregate table published',
|
|
760
|
-
status_success: 'Aggregate table status loaded',
|
|
761
|
-
},
|
|
762
|
-
ai_form_setting: {
|
|
763
|
-
usage: 'Usage: openyida ai-form-setting <get|fields|models|enable|disable|save> <appType> ...',
|
|
764
|
-
commands_title: 'Subcommands:',
|
|
765
|
-
cmd_get: 'get <appType> <formUuid> [--raw] [--json] Query AI approval prompt config',
|
|
766
|
-
cmd_fields: 'fields <appType> <formUuid> [--type TEXT|IMAGE|ATTACHMENT] List insertable fields',
|
|
767
|
-
cmd_models: 'models <appType> [--type TEXT|IMAGE|ATTACHMENT] List available models',
|
|
768
|
-
cmd_enable: 'enable <appType> <formUuid> [--json] Enable AI approval prompts',
|
|
769
|
-
cmd_disable: 'disable <appType> <formUuid> [--json] Disable AI approval prompts',
|
|
770
|
-
cmd_save: 'save <appType> <formUuid> <config.json> [--enable] Save prompts and model config',
|
|
771
|
-
examples_title: 'Examples:',
|
|
772
|
-
example_get: 'openyida ai-form-setting get APP_XXX FORM_XXX --json',
|
|
773
|
-
example_fields: 'openyida ai-form-setting fields APP_XXX FORM_XXX --type ATTACHMENT',
|
|
774
|
-
example_models: 'openyida ai-form-setting models APP_XXX --type IMAGE',
|
|
775
|
-
example_enable: 'openyida ai-form-setting enable APP_XXX FORM_XXX',
|
|
776
|
-
example_save: 'openyida ai-form-setting save APP_XXX FORM_XXX .cache/openyida/ai-form-setting/config.json --enable',
|
|
777
|
-
enable_disable_conflict: '--enable and --disable cannot be used together',
|
|
778
|
-
invalid_type: 'Invalid prompt type: {0}. Valid values: {1}',
|
|
779
|
-
invalid_status: 'Invalid AI approval prompt status: {0}',
|
|
780
|
-
config_required: 'Missing AI approval prompt JSON config or file path',
|
|
781
|
-
invalid_json: 'AI approval prompt config is not valid JSON: {0}',
|
|
782
|
-
invalid_variable: 'Variable #{0} must be an object',
|
|
783
|
-
variable_required: 'Variable #{0} must contain varName and fieldId',
|
|
784
|
-
prompt_required: 'Prompt {0} is missing prompt/content',
|
|
785
|
-
variables_array_required: 'variables must be an array',
|
|
786
|
-
invalid_item: 'Prompt config #{0} must be an object',
|
|
787
|
-
model_required: 'Prompt {0} is missing modelId',
|
|
788
|
-
invalid_config_part: '{0} must be a JSON object or a valid JSON string',
|
|
789
|
-
config_object_required: 'AI approval prompt config must be a JSON object or array',
|
|
790
|
-
items_array_required: 'AI approval prompt config must contain an items array',
|
|
791
|
-
too_many_items: 'AI approval prompts support up to {0} items',
|
|
792
|
-
duplicate_item_id: 'Duplicate itemId: {0}',
|
|
793
|
-
no_login: 'No login state found. Run openyida login first.',
|
|
794
|
-
get_usage: 'Usage: openyida ai-form-setting get <appType> <formUuid> [--raw] [--json]',
|
|
795
|
-
fields_usage: 'Usage: openyida ai-form-setting fields <appType> <formUuid> [--type TEXT|IMAGE|ATTACHMENT] [--json]',
|
|
796
|
-
models_usage: 'Usage: openyida ai-form-setting models <appType> [--type TEXT|IMAGE|ATTACHMENT] [--json]',
|
|
797
|
-
status_usage: 'Usage: openyida ai-form-setting <enable|disable> <appType> <formUuid> [--json]',
|
|
798
|
-
save_usage: 'Usage: openyida ai-form-setting save <appType> <formUuid> <config.json> [--enable|--disable] [--json]',
|
|
799
|
-
get_action: 'Query AI approval prompt config',
|
|
800
|
-
fields_action: 'Query AI approval prompt fields',
|
|
801
|
-
models_action: 'Query AI approval prompt models',
|
|
802
|
-
status_action: 'Update AI approval prompt status',
|
|
803
|
-
save_action: 'Save AI approval prompt config',
|
|
804
|
-
get_success: 'AI approval prompt config',
|
|
805
|
-
fields_success: 'AI approval prompt fields',
|
|
806
|
-
models_success: 'AI approval prompt models',
|
|
807
|
-
save_success: 'AI approval prompt config saved',
|
|
808
|
-
enabled: 'AI approval prompts enabled',
|
|
809
|
-
disabled: 'AI approval prompts disabled',
|
|
810
|
-
unknown_subcommand: 'Unknown ai-form-setting subcommand: {0}',
|
|
811
|
-
},
|
|
812
|
-
safe_json: {
|
|
813
|
-
hint_unquoted_key: 'A key looks unquoted (JSON requires all keys wrapped in double quotes, e.g. {"name":1})',
|
|
814
|
-
hint_single_quote: 'Single quotes were likely used (JSON only allows double quotes ", not single quotes \')',
|
|
815
|
-
hint_trailing_comma: 'There is likely a trailing comma (JSON does not allow a comma right before } or ])',
|
|
816
|
-
hint_smart_quote: 'Smart / curly quotes were likely used (“ ” ‘ ’); replace them with standard ASCII double quotes "',
|
|
817
|
-
hint_generic: 'Invalid JSON; please check it against the standard JSON syntax',
|
|
818
|
-
label_cause: 'Likely cause: ',
|
|
819
|
-
label_position: 'Error position: char ',
|
|
820
|
-
label_raw: 'Raw error: ',
|
|
821
|
-
label_suggestion: 'Suggestion: ',
|
|
822
|
-
suggestion_file: 'For long or special-character content, pass it via a file path (--spec ./xxx.json / <file path>) to avoid shell-escaping issues',
|
|
823
|
-
recovered_smart_quote: 'Detected smart / curly quotes; auto-normalized them to standard double quotes and parsed successfully. Prefer standard ASCII quotes at the source.',
|
|
824
|
-
},
|
|
825
|
-
codex_login: {
|
|
826
|
-
title: ' openyida login {0} - {1} Login Mode',
|
|
827
|
-
not_codex: 'Current environment is not detected as Codex / Qoder / Wukong; returning an in-app browser login handoff only.',
|
|
828
|
-
no_playwright: '{0} mode does not require Playwright or a separate Chromium install.',
|
|
829
|
-
using_browser: '{0} in-app Browser is only suitable for unauthenticated page previews; use openyida login for CLI auth.',
|
|
830
|
-
browser_handoff_hint: '{0} in-app Browser is not used for CLI auth. Use openyida login.',
|
|
831
|
-
handoff_message: '{0} in-app Browser cannot complete CLI token login. Run openyida login.',
|
|
832
|
-
cache_available: 'Existing CLI token session cache is available; no browser login needed.',
|
|
833
|
-
},
|
|
834
|
-
};
|