From 68f4cf269d1c50adc1eb42c9358790b316c166a3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 29 Jun 2026 07:22:03 +0200 Subject: [PATCH] i18n - docs translations (#22281) Created by Github action Review in cubic Co-authored-by: github-actions --- .../folder-architecture-server.mdx | 68 +- .../backend-development/server-commands.mdx | 8 +- .../best-practices-front.mdx | 32 +- .../frontend-commands.mdx | 16 +- .../frontend-development/style-guide.mdx | 34 +- .../contribute/capabilities/local-setup.mdx | 40 +- .../self-host/capabilities/docker-compose.mdx | 3 +- .../self-host/capabilities/setup.mdx | 2 +- .../capabilities/troubleshooting.mdx | 11 +- .../l/ar/twenty-ui/display/app-tooltip.mdx | 6 +- .../twenty-docs/l/ar/twenty-ui/input/text.mdx | 4 +- .../l/ar/twenty-ui/input/toggle.mdx | 4 +- .../l/ar/twenty-ui/navigation/links.mdx | 2 +- .../l/ar/twenty-ui/navigation/menu-item.mdx | 8 +- .../send-emails-from-workflows.mdx | 10 +- .../workflows/capabilities/use-iterator.mdx | 34 +- .../closed-won-automations.mdx | 18 +- .../backend-development/feature-flags.mdx | 2 +- .../backend-development/server-commands.mdx | 6 +- .../backend-development/zapier.mdx | 4 +- .../best-practices-front.mdx | 12 +- .../frontend-commands.mdx | 10 +- .../frontend-development/style-guide.mdx | 38 +- .../contribute/capabilities/local-setup.mdx | 24 +- .../self-host/capabilities/docker-compose.mdx | 12 +- .../self-host/capabilities/setup.mdx | 4 +- .../capabilities/troubleshooting.mdx | 4 +- .../l/cs/twenty-ui/display/app-tooltip.mdx | 8 +- .../l/cs/twenty-ui/display/chip.mdx | 10 +- .../l/cs/twenty-ui/display/tag.mdx | 2 +- .../l/cs/twenty-ui/input/select.mdx | 6 +- .../twenty-docs/l/cs/twenty-ui/input/text.mdx | 16 +- .../send-emails-from-workflows.mdx | 10 +- .../use-branches-in-workflows.mdx | 8 +- .../workflows/capabilities/use-iterator.mdx | 6 +- .../closed-won-automations.mdx | 18 +- .../backend-development/server-commands.mdx | 6 +- .../best-practices-front.mdx | 14 +- .../frontend-commands.mdx | 10 +- .../frontend-development/style-guide.mdx | 38 +- .../contribute/capabilities/local-setup.mdx | 24 +- .../self-host/capabilities/docker-compose.mdx | 2 +- .../self-host/capabilities/setup.mdx | 4 +- .../capabilities/troubleshooting.mdx | 2 +- .../l/de/twenty-ui/display/app-tooltip.mdx | 6 +- .../l/de/twenty-ui/display/chip.mdx | 8 +- .../l/de/twenty-ui/input/select.mdx | 2 +- .../twenty-docs/l/de/twenty-ui/input/text.mdx | 16 +- .../how-tos/fix-import-errors.mdx | 6 +- .../send-emails-from-workflows.mdx | 10 +- .../use-branches-in-workflows.mdx | 8 +- .../workflows/capabilities/use-iterator.mdx | 30 +- .../closed-won-automations.mdx | 16 +- .../how-tos/need-more-help/workflows-faq.mdx | 6 +- .../folder-architecture-server.mdx | 46 +- .../best-practices-front.mdx | 36 +- .../frontend-commands.mdx | 10 +- .../frontend-development/style-guide.mdx | 16 +- .../contribute/capabilities/local-setup.mdx | 2 +- .../l/es/twenty-ui/display/chip.mdx | 8 +- .../l/es/twenty-ui/input/icon-picker.mdx | 2 +- .../l/es/twenty-ui/input/select.mdx | 6 +- .../twenty-docs/l/es/twenty-ui/input/text.mdx | 4 +- .../l/es/twenty-ui/input/toggle.mdx | 4 +- .../twenty-ui/navigation/navigation-bar.mdx | 20 +- .../how-tos/fix-import-errors.mdx | 6 +- .../update-existing-records-via-import.mdx | 4 +- .../use-branches-in-workflows.mdx | 8 +- .../closed-won-automations.mdx | 18 +- .../backend-development/server-commands.mdx | 2 +- .../best-practices-front.mdx | 32 +- .../frontend-development/hotkeys.mdx | 8 +- .../frontend-development/style-guide.mdx | 10 +- .../contribute/capabilities/local-setup.mdx | 6 +- .../l/fr/twenty-ui/display/chip.mdx | 10 +- .../l/fr/twenty-ui/display/icons.mdx | 4 +- .../l/fr/twenty-ui/input/icon-picker.mdx | 2 +- .../send-emails-from-workflows.mdx | 10 +- .../use-branches-in-workflows.mdx | 8 +- .../workflows/capabilities/use-iterator.mdx | 46 +- .../backend-development/server-commands.mdx | 8 +- .../backend-development/zapier.mdx | 4 +- .../best-practices-front.mdx | 32 +- .../folder-architecture-front.mdx | 54 +- .../frontend-commands.mdx | 10 +- .../frontend-development/style-guide.mdx | 42 +- .../contribute/capabilities/local-setup.mdx | 14 +- .../self-host/capabilities/docker-compose.mdx | 12 +- .../self-host/capabilities/setup.mdx | 6 +- .../capabilities/troubleshooting.mdx | 2 +- .../l/it/twenty-ui/display/app-tooltip.mdx | 6 +- .../l/it/twenty-ui/display/chip.mdx | 10 +- .../l/it/twenty-ui/display/tag.mdx | 2 +- .../l/it/twenty-ui/input/buttons.mdx | 3167 ++++++++++++++++- .../l/it/twenty-ui/input/select.mdx | 6 +- .../update-existing-records-via-import.mdx | 4 +- .../send-emails-from-workflows.mdx | 10 +- .../use-branches-in-workflows.mdx | 6 +- .../closed-won-automations.mdx | 18 +- .../how-tos/need-more-help/workflows-faq.mdx | 6 +- .../best-practices-front.mdx | 32 +- .../frontend-development/style-guide.mdx | 16 +- .../l/ja/twenty-ui/display/tag.mdx | 4 +- .../l/ja/twenty-ui/input/buttons.mdx | 38 +- .../l/ja/twenty-ui/input/icon-picker.mdx | 2 +- .../l/ja/twenty-ui/input/select.mdx | 6 +- .../twenty-docs/l/ja/twenty-ui/input/text.mdx | 16 +- .../how-tos/fix-import-errors.mdx | 8 +- .../send-emails-from-workflows.mdx | 10 +- .../use-branches-in-workflows.mdx | 8 +- .../backend-development/server-commands.mdx | 2 +- .../frontend-development/style-guide.mdx | 16 +- .../contribute/capabilities/local-setup.mdx | 6 +- .../l/ko/twenty-ui/display/chip.mdx | 8 +- .../l/ko/twenty-ui/display/tag.mdx | 2 +- .../l/ko/twenty-ui/input/buttons.mdx | 16 +- .../l/ko/twenty-ui/input/select.mdx | 6 +- .../twenty-docs/l/ko/twenty-ui/input/text.mdx | 18 +- .../how-tos/fix-import-errors.mdx | 2 +- .../use-branches-in-workflows.mdx | 8 +- .../closed-won-automations.mdx | 18 +- .../folder-architecture-server.mdx | 4 +- .../best-practices-front.mdx | 8 +- .../frontend-development/style-guide.mdx | 16 +- .../contribute/capabilities/local-setup.mdx | 6 +- .../l/pt/twenty-ui/display/chip.mdx | 8 +- .../l/pt/twenty-ui/input/icon-picker.mdx | 4 +- .../l/pt/twenty-ui/input/select.mdx | 6 +- .../twenty-docs/l/pt/twenty-ui/input/text.mdx | 18 +- .../l/pt/twenty-ui/navigation/menu-item.mdx | 6 +- .../how-tos/fix-import-errors.mdx | 10 +- .../use-branches-in-workflows.mdx | 8 +- .../how-tos/need-more-help/workflows-faq.mdx | 6 +- .../backend-development/server-commands.mdx | 8 +- .../best-practices-front.mdx | 32 +- .../folder-architecture-front.mdx | 46 +- .../frontend-commands.mdx | 10 +- .../frontend-development/style-guide.mdx | 34 +- .../contribute/capabilities/local-setup.mdx | 24 +- .../self-host/capabilities/setup.mdx | 2 +- .../capabilities/troubleshooting.mdx | 2 +- .../l/ro/twenty-ui/display/chip.mdx | 2 +- .../twenty-docs/l/ro/twenty-ui/input/text.mdx | 18 +- .../l/ro/twenty-ui/navigation/menu-item.mdx | 16 +- .../update-existing-records-via-import.mdx | 4 +- .../send-emails-from-workflows.mdx | 10 +- .../use-branches-in-workflows.mdx | 8 +- .../closed-won-automations.mdx | 18 +- .../backend-development/server-commands.mdx | 8 +- .../best-practices-front.mdx | 20 +- .../frontend-commands.mdx | 10 +- .../frontend-development/style-guide.mdx | 40 +- .../contribute/capabilities/local-setup.mdx | 44 +- .../self-host/capabilities/docker-compose.mdx | 8 +- .../self-host/capabilities/setup.mdx | 4 +- .../capabilities/troubleshooting.mdx | 2 +- .../l/ru/twenty-ui/display/chip.mdx | 8 +- .../l/ru/twenty-ui/input/icon-picker.mdx | 2 +- .../l/ru/twenty-ui/input/select.mdx | 6 +- .../twenty-docs/l/ru/twenty-ui/input/text.mdx | 18 +- .../how-tos/fix-import-errors.mdx | 4 +- .../use-branches-in-workflows.mdx | 8 +- .../closed-won-automations.mdx | 18 +- .../backend-development/server-commands.mdx | 8 +- .../best-practices-front.mdx | 19 +- .../frontend-commands.mdx | 10 +- .../frontend-development/style-guide.mdx | 39 +- .../contribute/capabilities/local-setup.mdx | 16 +- .../self-host/capabilities/docker-compose.mdx | 12 +- .../self-host/capabilities/setup.mdx | 2 +- .../capabilities/troubleshooting.mdx | 4 +- .../l/tr/twenty-ui/display/chip.mdx | 43 +- .../l/tr/twenty-ui/display/tag.mdx | 2 +- .../l/tr/twenty-ui/input/buttons.mdx | 20 +- .../l/tr/twenty-ui/input/icon-picker.mdx | 2 +- .../l/tr/twenty-ui/input/select.mdx | 6 +- .../twenty-docs/l/tr/twenty-ui/input/text.mdx | 20 +- .../l/tr/twenty-ui/input/toggle.mdx | 4 +- .../l/tr/twenty-ui/progress-bar.mdx | 21 +- .../send-emails-from-workflows.mdx | 10 +- .../use-branches-in-workflows.mdx | 6 +- .../closed-won-automations.mdx | 18 +- .../folder-architecture-server.mdx | 32 +- .../best-practices-front.mdx | 28 +- .../frontend-development/style-guide.mdx | 14 +- .../contribute/capabilities/local-setup.mdx | 6 +- .../capabilities/troubleshooting.mdx | 4 +- .../l/zh/twenty-ui/display/app-tooltip.mdx | 4 +- .../l/zh/twenty-ui/display/chip.mdx | 9 +- .../l/zh/twenty-ui/display/tag.mdx | 2 +- .../l/zh/twenty-ui/input/radio.mdx | 1 + .../l/zh/twenty-ui/input/select.mdx | 6 +- .../twenty-docs/l/zh/twenty-ui/input/text.mdx | 20 +- .../send-emails-from-workflows.mdx | 2 +- .../use-branches-in-workflows.mdx | 8 +- .../closed-won-automations.mdx | 18 +- 196 files changed, 4412 insertions(+), 1235 deletions(-) diff --git a/packages/twenty-docs/l/ar/developers/contribute/capabilities/backend-development/folder-architecture-server.mdx b/packages/twenty-docs/l/ar/developers/contribute/capabilities/backend-development/folder-architecture-server.mdx index 59c5b9e9b8..6c69712560 100644 --- a/packages/twenty-docs/l/ar/developers/contribute/capabilities/backend-development/folder-architecture-server.mdx +++ b/packages/twenty-docs/l/ar/developers/contribute/capabilities/backend-development/folder-architecture-server.mdx @@ -7,18 +7,18 @@ info: نظرة تفصيلية داخل هيكلية مجلدات الخادم ``` server - └───قدرات - └───ثوابت - └───نواة - └───قاعدة البيانات - └───زخارف - └───فلاتر - └───حمايات - └───الصحة - └───تكاملات - └───بيانات وصفية - └───مساحة العمل - └───أدوات + └───ability + └───constants + └───core + └───database + └───decorators + └───filters + └───guards + └───health + └───integrations + └───metadata + └───workspace + └───utils},{ ``` ## قدرات @@ -56,28 +56,28 @@ server ``` workspace - └───منشئ مساحة العمل - └───مصانع - └───أنواع GraphQL - └───قاعدة البيانات - └───واجهات - └───تعريفات الكائنات - └───خدمات - └───التخزين - └───أدوات - └───منشئ مستعرض مساحة العمل - └───مصانع - └───واجهات - └───منشئ الاستعلامات مساحة العمل - └───مصانع - └───واجهات - └───مشغل استعلامات مساحة العمل - └───واجهات - └───أدوات - └───مصدر بيانات مساحة العمل - └───مدير مساحة العمل - └───مشغل الانتقالات مساحة العمل - └───أدوات + └───workspace-schema-builder + └───factories + └───graphql-types + └───database + └───interfaces + └───object-definitions + └───services + └───storage + └───utils + └───workspace-resolver-builder + └───factories + └───interfaces + └───workspace-query-builder + └───factories + └───interfaces + └───workspace-query-runner + └───interfaces + └───utils + └───workspace-datasource + └───workspace-manager + └───workspace-migration-runner + └───utils └───workspace.module.ts └───workspace.factory.spec.ts └───workspace.factory.ts diff --git a/packages/twenty-docs/l/ar/developers/contribute/capabilities/backend-development/server-commands.mdx b/packages/twenty-docs/l/ar/developers/contribute/capabilities/backend-development/server-commands.mdx index d054ea44c4..63b98cdd9d 100644 --- a/packages/twenty-docs/l/ar/developers/contribute/capabilities/backend-development/server-commands.mdx +++ b/packages/twenty-docs/l/ar/developers/contribute/capabilities/backend-development/server-commands.mdx @@ -11,7 +11,7 @@ icon: terminal ### إعداد المرة الأولى ``` -npx nx database:reset twenty-server # إعداد قاعدة البيانات مع بذور التطوير +npx nx database:reset twenty-server # setup the database with dev seeds ``` ### بدء الخادم @@ -23,14 +23,14 @@ npx nx run twenty-server:start ### Lint ``` -npx nx run twenty-server:lint # مرر --fix لإصلاح أخطاء التدقيق +npx nx run twenty-server:lint # pass --fix to fix lint errors},{ ``` ### تجربة ``` -npx nx run twenty-server:test:unit # تشغيل اختبارات الوحدة -npx nx run twenty-server:test:integration # تشغيل اختبارات التكامل +npx nx run twenty-server:test:unit # run unit tests +npx nx run twenty-server:test:integration # run integration tests ``` ملاحظة: يمكنك تشغيل `npx nx run twenty-server:test:integration:with-db-reset` في حالة احتياجك لإعادة تعيين قاعدة البيانات قبل تشغيل اختبارات التكامل. diff --git a/packages/twenty-docs/l/ar/developers/contribute/capabilities/frontend-development/best-practices-front.mdx b/packages/twenty-docs/l/ar/developers/contribute/capabilities/frontend-development/best-practices-front.mdx index cb8e7e8eee..b559c8e9ad 100644 --- a/packages/twenty-docs/l/ar/developers/contribute/capabilities/frontend-development/best-practices-front.mdx +++ b/packages/twenty-docs/l/ar/developers/contribute/capabilities/frontend-development/best-practices-front.mdx @@ -83,8 +83,8 @@ If you feel like you need to add a `useEffect` in your root component, you shoul يمكنك تطبيق نفس الشيء على منطق جلب البيانات، مع الخُطافات Apollo. ```tsx -// ❌ سيئ، سيتسبب في إعادة التصيير حتى إذا لم تتغير البيانات، -// لأن useEffect يحتاج إلى إعادة التقييم +// ❌ Bad, will cause re-renders even if data is not changing, +// because useEffect needs to be re-evaluated export const PageComponent = () => { const [data, setData] = useAtomState(dataState); const [someDependency] = useAtomState(someDependencyState); @@ -104,8 +104,8 @@ export const App = () => ( ``` ```tsx -// ✅ جيّد، لن يتسبب في إعادة التصيير إذا لم تتغير البيانات، -// لأن useEffect يُعاد تقييمه في مكوّن شقيق آخر +// ✅ Good, will not cause re-renders if data is not changing, +// because useEffect is re-evaluated in another sibling component export const PageComponent = () => { const [data, setData] = useAtomState(dataState); @@ -172,13 +172,13 @@ export const App = () => ( الأسماء العامة في البرمجة ليست مثالية لأنها تفتقر إلى التحديد، مما يؤدي إلى الغموض وتقليل قابلية قراءة التعليمات البرمجية. مثل هذه الأسماء تفشل في التعبير عن الغرض من المتغير أو الوظيفة، مما يجعل من الصعب على المطورين فهم نية التعليمات البرمجية دون تحقيق أعمق. يمكن أن يؤدي ذلك إلى زيادة وقت إزالة الأخطاء، وزيادة قابلية التعرض للأخطاء، وصعوبات في الصيانة والتعاون. في الوقت نفسه، تجعل التسمية الوصفية التعليمات البرمجية تفسيرية بذاتها وأسهل في التنقل، مما يعزز جودة التعليمات البرمجية وإنتاجية المطور. ```tsx -// ❌ سيّئ، يستخدم اسمًا عامًا لا يوضح -// الغرض أو المحتوى بوضوح +// ❌ Bad, uses a generic name that doesn't communicate its +// purpose or content clearly const [value, setValue] = useState(''); ``` ```tsx -// ✅ جيّد، يستخدم اسمًا وصفيًا +// ✅ Good, uses a descriptive name const [email, setEmail] = useState(''); ``` @@ -191,14 +191,14 @@ const [email, setEmail] = useState(''); يجب أن تبدأ أسماء معالجات الأحداث بكلمة `handle`، بينما يعتبر `on` بادئة تستخدم لتسمية الأحداث في خصائص المكونات. ```tsx -// ❌ سيّئ +// ❌ Bad const onEmailChange = (val: string) => { // ... }; ``` ```tsx -// ✅ جيّد +// ✅ Good const handleEmailChange = (val: string) => { // ... }; @@ -226,12 +226,12 @@ const EmailField = ({ value, disabled = false }: EmailFieldProps) => ( **الاستخدام** ```tsx -// ❌ سيّئ، تمرير نفس القيمة كقيمة افتراضية لا يضيف أي فائدة +// ❌ Bad, passing in the same value as the default value adds no value const Form = () => ; ``` ```tsx -// ✅ جيّد، يفترض القيمة الافتراضية +// ✅ Good, assumes the default value const Form = () => ; ``` @@ -244,7 +244,7 @@ const Form = () => ; ```tsx const SomeParentComponent = () => ; -// داخل MyComponent +// In MyComponent const MyComponent = ({ MyIcon }: { MyIcon: IconComponent }) => { const theme = useTheme(); @@ -289,7 +289,7 @@ const MyComponent = ({ MyIcon }: { MyIcon: IconComponent }) => { **الاستخدام** ```tsx -// ❌ سيّئ، يحدد المسار النسبي بالكامل +// ❌ Bad, specifies the entire relative path import { CatalogDecorator } from '../../../../../testing/decorators/CatalogDecorator'; @@ -299,7 +299,7 @@ import { ``` ```tsx -// ✅ جيّد، يستخدم الأسماء المستعارة المحددة +// ✅ Good, utilises the designated aliases import { CatalogDecorator } from '~/testing/decorators/CatalogDecorator'; import { ComponentDecorator } from 'twenty-ui/testing'; ``` @@ -314,10 +314,10 @@ const validationSchema = z exist: z.boolean(), email: z .string() - .email('يجب أن يكون البريد الإلكتروني صالحًا'), + .email('Email must be a valid email'), password: z .string() - .regex(PASSWORD_REGEX, 'يجب أن تحتوي كلمة المرور على 8 أحرف على الأقل'), + .regex(PASSWORD_REGEX, 'Password must contain at least 8 characters'), }) .required(); diff --git a/packages/twenty-docs/l/ar/developers/contribute/capabilities/frontend-development/frontend-commands.mdx b/packages/twenty-docs/l/ar/developers/contribute/capabilities/frontend-development/frontend-commands.mdx index 55b1bdb4a1..1492057624 100644 --- a/packages/twenty-docs/l/ar/developers/contribute/capabilities/frontend-development/frontend-commands.mdx +++ b/packages/twenty-docs/l/ar/developers/contribute/capabilities/frontend-development/frontend-commands.mdx @@ -8,37 +8,41 @@ icon: terminal ### "بدء التطبيق" ```bash -"npx nx start twenty-front" +npx nx start twenty-front ``` ### "إعادة توليد مخطط graphql بناءً على مخطط API graphql" ```bash -"npx nx run twenty-front:graphql:generate --configuration=metadata" +npx nx run twenty-front:graphql:generate --configuration=metadata ``` "أو" ```bash -"npx nx run twenty-front:graphql:generate" +npx nx run twenty-front:graphql:generate ``` ### Lint ```bash -"npx nx run twenty-front:lint # مرر --fix لإصلاح أخطاء التدقيق" +npx nx run twenty-front:lint # pass --fix to fix lint errors ``` ## "الترجمات" ```bash -"npx nx run twenty-front:lingui:extract\nnpx nx run twenty-front:lingui:compile" +npx nx run twenty-front:lingui:extract +npx nx run twenty-front:lingui:compile ``` ### تجربة ```bash -"npx nx run twenty-front:test # تشغيل اختبارات jest\nnpx nx run twenty-front:storybook:serve:dev # تشغيل storybook\nnpx nx run twenty-front:storybook:test # تشغيل الاختبارات # (يحتاج إلى تشغيل yarn storybook:serve:dev)\nnpx nx run twenty-front:storybook:coverage # (يحتاج إلى تشغيل yarn storybook:serve:dev)" +npx nx run twenty-front:test # run jest tests +npx nx run twenty-front:storybook:serve:dev # run storybook +npx nx run twenty-front:storybook:test # run tests # (needs yarn storybook:serve:dev to be running) +npx nx run twenty-front:storybook:coverage # (needs yarn storybook:serve:dev to be running) ``` ## "التقنية المستخدمة" diff --git a/packages/twenty-docs/l/ar/developers/contribute/capabilities/frontend-development/style-guide.mdx b/packages/twenty-docs/l/ar/developers/contribute/capabilities/frontend-development/style-guide.mdx index 55fde3dae2..bb74aaed55 100644 --- a/packages/twenty-docs/l/ar/developers/contribute/capabilities/frontend-development/style-guide.mdx +++ b/packages/twenty-docs/l/ar/developers/contribute/capabilities/frontend-development/style-guide.mdx @@ -68,10 +68,10 @@ const EmailField: React.FC<{ ``` ```tsx -/* ✅ - جيد، نوع منفصل (OwnProps) يُعرَّف صراحةً لخصائص - * المكون - * - هذه الطريقة لا تتضمن تلقائيًا خاصية الأطفال. إذا - * كنت تريد تضمينها، يجب أن تحددها في OwnProps. +/* ✅ - Good, a separate type (OwnProps) is explicitly defined for the + * component's props + * - This method doesn't automatically include the children prop. If + * you want to include it, you have to specify it in OwnProps. */ type EmailFieldProps = { value: string; @@ -95,8 +95,8 @@ const MyComponent = (props: OwnProps) => { ``` ```tsx -/* ✅ - جيد، يسرد جميع الخصائص بوضوح - * - يعزز من قابلية القراءة والصيانة +/* ✅ - Good, Explicitly lists all props + * - Enhances readability and maintainability */ const MyComponent = ({ prop1, prop2, prop3 }: MyComponentProps) => { return ; @@ -114,20 +114,20 @@ const MyComponent = ({ prop1, prop2, prop3 }: MyComponentProps) => { ### استخدم معامل دمج القيم الفارغة `??` ```tsx -// ❌ سيء، قد يعيد 'default' حتى إذا كانت القيمة 0 أو '' +// ❌ Bad, can return 'default' even if value is 0 or '' const value = process.env.MY_VALUE || 'default'; -// ✅ جيد، سيعيد 'default' فقط إذا كانت القيمة null أو غير معرّفة +// ✅ Good, will return 'default' only if value is null or undefined const value = process.env.MY_VALUE ?? 'default'; ``` ### استخدم معامل الربط الاختياري `?.` ```tsx -// ❌ سيء +// ❌ Bad onClick && onClick(); -// ✅ جيد +// ✅ Good onClick?.(); ``` @@ -167,7 +167,7 @@ let color = Color.Red; ``` ```tsx -// ✅ جيد، يستخدم حرفا مشفوعا +// ✅ Good, utilizes a string literal let color: "red" | "green" | "blue" = "red"; ``` @@ -198,12 +198,12 @@ setHotkeyScopeAndMemorizePreviousScope( قم بتنسيق المكونات باستخدام [Linaria styled](https://github.com/callstack/linaria). ```tsx -// ❌ سيء +// ❌ Bad
Hello World
``` ```tsx -// ✅ جيد +// ✅ Good const StyledTitle = styled.div` color: red; `; @@ -212,14 +212,14 @@ const StyledTitle = styled.div` قم بإضافة بادئة للمكونات المنسقة بـ "Styled" لتمييزها عن المكونات "الحقيقية". ```tsx -// ❌ سيء +// ❌ Bad const Title = styled.div` color: red; `; ``` ```tsx -// ✅ جيد +// ✅ Good const StyledTitle = styled.div` color: red; `; @@ -238,7 +238,7 @@ const StyledTitle = styled.div` امتنع عن تقديم ألوان جديدة، بدلاً من ذلك، استخدم اللوحة الموجودة في السمة. إذا كانت هناك حالة لا تتطابق فيها اللوحة، يرجى ترك تعليق لكي تتمكن الفريق من تصحيحها. ```tsx -// ❌ سيء، يحدد القيم المشفوعة للأسلوب دون استخدام السمة +// ❌ Bad, directly specifies style values without utilizing the theme const StyledButton = styled.button` color: #333333; font-size: 1rem; @@ -249,7 +249,7 @@ const StyledButton = styled.button` ``` ```tsx -// ✅ جيد، يستعمل السمة +// ✅ Good, utilizes the theme const StyledButton = styled.button` color: ${({ theme }) => theme.font.color.primary}; font-size: ${({ theme }) => theme.font.size.md}; diff --git a/packages/twenty-docs/l/ar/developers/contribute/capabilities/local-setup.mdx b/packages/twenty-docs/l/ar/developers/contribute/capabilities/local-setup.mdx index db9f06702a..4feacc18b7 100644 --- a/packages/twenty-docs/l/ar/developers/contribute/capabilities/local-setup.mdx +++ b/packages/twenty-docs/l/ar/developers/contribute/capabilities/local-setup.mdx @@ -59,9 +59,9 @@ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash ```bash -nvm install # يثبت إصدار node الموصى به +nvm install # installs recommended node version -nvm use # استخدم إصدار node الموصى به +nvm use # use recommended node version corepack enable ``` @@ -119,15 +119,15 @@ cd twenty **الخيار 1 (المفضل):** لتوفير قاعدة بياناتك محليًا مع `brew`: ```bash - brew install postgresql@16 - export PATH="/opt/homebrew/opt/postgresql@16/bin:$PATH" - brew services start postgresql@16 - psql postgres -c "CREATE DATABASE \"default\";" -c "CREATE DATABASE test;" + brew install postgresql@16 + export PATH="/opt/homebrew/opt/postgresql@16/bin:$PATH" + brew services start postgresql@16 + psql postgres -c "CREATE DATABASE \"default\";" -c "CREATE DATABASE test;" ``` يمكنك التحقق مما إذا كان خادم PostgreSQL يعمل بتنفيذ: ```bash - brew services list + brew services list ``` قد لا يقوم المُثبِّت بإنشاء المستخدم `postgres` افتراضيًا عند التثبيت @@ -135,35 +135,35 @@ cd twenty اسم المستخدم الخاص بك في MacOS (مثل "john"). للتحقق وإنشاء المستخدم `postgres` إذا لزم الأمر، اتبع هذه الخطوات: ```bash - # قم بالاتصال بPostgreSQL - psql postgres - أو - psql -U $(whoami) -d postgres + # Connect to PostgreSQL + psql postgres + or + psql -U $(whoami) -d postgres ``` بمجرد أن تكون عند مطالبة psql (postgres=#)، قم بتشغيل: ```bash - # قائمة الأدوار الموجودة في PostgreSQL - \du + # List existing PostgreSQL roles + \du ``` سترى مخرجات مشابهة ل: ```bash - اسم الأدوار | الخصائص | عضو في - -----------+-------------+----------- - john | مشرف نظام | {} + Role name | Attributes | Member of + -----------+-------------+----------- + john | Superuser | {} ``` إذا لم ترَ دور `postgres` مدرجًا، انتقل إلى الخطوة التالية. قم بإنشاء دور `postgres` يدويًا: ```bash - CREATE ROLE postgres WITH SUPERUSER LOGIN; + CREATE ROLE postgres WITH SUPERUSER LOGIN; ``` يقوم هذا بإنشاء دور مشرف نظام باسم `postgres` مع إمكانية تسجيل الدخول. ```bash - اسم الدور | الخصائص | عضو في + Role name | Attributes | Member of -----------+-------------+----------- - postgres | مشرف نظام | {} - john | مشرف نظام | {} + postgres | Superuser | {} + john | Superuser | {} ``` **الخيار 2:** إذا كنت قد قمت بتثبيت docker: diff --git a/packages/twenty-docs/l/ar/developers/self-host/capabilities/docker-compose.mdx b/packages/twenty-docs/l/ar/developers/self-host/capabilities/docker-compose.mdx index 741c332483..09f4ecc4cd 100644 --- a/packages/twenty-docs/l/ar/developers/self-host/capabilities/docker-compose.mdx +++ b/packages/twenty-docs/l/ar/developers/self-host/capabilities/docker-compose.mdx @@ -178,7 +178,8 @@ SSL (HTTPS) مطلوب لعمل ميزات معينة في المتصفح بشك لتطبيق التغييرات، أعد تشغيل حاويات Docker: ```bash - docker compose down\ndocker compose up -d + docker compose down + docker compose up -d ``` #### اعتبارات diff --git a/packages/twenty-docs/l/ar/developers/self-host/capabilities/setup.mdx b/packages/twenty-docs/l/ar/developers/self-host/capabilities/setup.mdx index 26ccf92e35..37f02e194b 100644 --- a/packages/twenty-docs/l/ar/developers/self-host/capabilities/setup.mdx +++ b/packages/twenty-docs/l/ar/developers/self-host/capabilities/setup.mdx @@ -16,7 +16,7 @@ icon: gear ## 1. إعداد لوحة الإدارة (افتراضي) ```bash -IS_CONFIG_VARIABLES_IN_DB_ENABLED=true # افتراضي +IS_CONFIG_VARIABLES_IN_DB_ENABLED=true # default ``` **يحدث أغلب التكوين عبر واجهة المستخدم** بعد التثبيت: diff --git a/packages/twenty-docs/l/ar/developers/self-host/capabilities/troubleshooting.mdx b/packages/twenty-docs/l/ar/developers/self-host/capabilities/troubleshooting.mdx index ac5053d840..58c20f336c 100644 --- a/packages/twenty-docs/l/ar/developers/self-host/capabilities/troubleshooting.mdx +++ b/packages/twenty-docs/l/ar/developers/self-host/capabilities/troubleshooting.mdx @@ -23,9 +23,9 @@ icon: wrench لتحديث `PG_DATABASE_PASSWORD` عليك القيام بما يلي: ```sh -# تحديث PG_DATABASE_PASSWORD في .env -إيقاف تشغيل docker باستخدام –volumes -تشغيل docker مرة أخرى باستخدام -d +# Update the PG_DATABASE_PASSWORD in .env +docker compose down --volumes +docker compose up -d ``` #### تم العثور على فواصل الخط CR [نظام Windows] @@ -180,11 +180,12 @@ plugins: [ 1. قم بتشغيل الأوامر التالية: ```bash docker exec -it twenty-server-1 yarn - docker exec -it twenty-server-1 npx nx database:reset --configuration=no-seed + docker exec -it twenty-server-1 npx nx database:reset --configuration=no-seed ``` 2. إعادة تشغيل حاويات Docker: ```bash - docker compose down\ndocker compose up -d + docker compose down + docker compose up -d ``` لاحظ أن الأمر database:reset سيقوم بمسح قاعدة البيانات الخاصة بك بالكامل وإعادة إنشائها من جديد. diff --git a/packages/twenty-docs/l/ar/twenty-ui/display/app-tooltip.mdx b/packages/twenty-docs/l/ar/twenty-ui/display/app-tooltip.mdx index 1a802a3c78..9935b0ddde 100644 --- a/packages/twenty-docs/l/ar/twenty-ui/display/app-tooltip.mdx +++ b/packages/twenty-docs/l/ar/twenty-ui/display/app-tooltip.mdx @@ -19,12 +19,12 @@ export const MyComponent = () => { return ( <>

- رؤى العملاء + Customer Insights

{ const crmTaskDescription = - 'المتابعة مع العميل بشأن استفساره الأخير عن المنتج. مناقشة خيارات التسعير، ومعالجة أي مخاوف، وتقديم معلومات إضافية عن المنتج. تسجيل تفاصيل المحادثة في نظام إدارة علاقات العملاء (CRM) للرجوع إليها لاحقاً.'; + 'Follow up with client regarding their recent product inquiry. Discuss pricing options, address any concerns, and provide additional product information. Record the details of the conversation in the CRM for future reference.'; return ; }; diff --git a/packages/twenty-docs/l/ar/twenty-ui/input/text.mdx b/packages/twenty-docs/l/ar/twenty-ui/input/text.mdx index 31ca0ca7db..de6f15c055 100644 --- a/packages/twenty-docs/l/ar/twenty-ui/input/text.mdx +++ b/packages/twenty-docs/l/ar/twenty-ui/input/text.mdx @@ -132,8 +132,8 @@ export const MyComponent = () => {