diff --git a/packages/twenty-docs/docs.json b/packages/twenty-docs/docs.json index 0b82f138fe..729cd974ba 100644 --- a/packages/twenty-docs/docs.json +++ b/packages/twenty-docs/docs.json @@ -3968,7 +3968,7 @@ ] }, { - "tab": "User Guide", + "tab": "Manual do Usuário", "groups": [ { "group": "Visão Geral", @@ -3990,7 +3990,7 @@ ] }, { - "group": "How-Tos", + "group": "Como-Tos", "pages": [ "l/pt/user-guide/data-model/how-tos/create-custom-objects", "l/pt/user-guide/data-model/how-tos/create-custom-fields", @@ -4003,7 +4003,7 @@ ] }, { - "group": "Data Migration", + "group": "Migração de dados", "icon": "cloud-arrow-up", "pages": [ "l/pt/user-guide/data-migration/overview", @@ -4018,7 +4018,7 @@ ] }, { - "group": "How-Tos", + "group": "Como-Tos", "pages": [ "l/pt/user-guide/data-migration/how-tos/prepare-your-csv-files", "l/pt/user-guide/data-migration/how-tos/import-companies-via-csv", @@ -4035,7 +4035,7 @@ ] }, { - "group": "Calendar & Emails", + "group": "Calendário e E-mails", "icon": "envelope", "pages": [ "l/pt/user-guide/calendar-emails/overview", @@ -4047,7 +4047,7 @@ ] }, { - "group": "How-Tos", + "group": "Como-Tos", "pages": [ "l/pt/user-guide/calendar-emails/how-tos/connect-several-mailboxes-per-user", "l/pt/user-guide/calendar-emails/how-tos/limit-emails-imported", @@ -4079,10 +4079,10 @@ ] }, { - "group": "How-Tos", + "group": "Como-Tos", "pages": [ { - "group": "CRM Automations", + "group": "Automações CRM", "pages": [ "l/pt/user-guide/workflows/how-tos/crm-automations/send-email-alerts-with-tasks-due", "l/pt/user-guide/workflows/how-tos/crm-automations/notify-teammates-of-note-to-review", @@ -4095,7 +4095,7 @@ ] }, { - "group": "Connect to Other Tools", + "group": "Conectar a outras ferramentas", "pages": [ "l/pt/user-guide/workflows/how-tos/connect-to-other-tools/set-up-a-webhook-trigger", "l/pt/user-guide/workflows/how-tos/connect-to-other-tools/bring-typeform-submissions-in-twenty", @@ -4105,7 +4105,7 @@ ] }, { - "group": "Advanced Configurations", + "group": "Configurações avançadas", "pages": [ "l/pt/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions" ] @@ -4136,7 +4136,7 @@ ] }, { - "group": "How-Tos", + "group": "Como-Tos", "pages": [ "l/pt/user-guide/ai/how-tos/ai-faq" ] @@ -4194,7 +4194,7 @@ ] }, { - "group": "How-Tos", + "group": "Como-Tos", "pages": [ "l/pt/user-guide/dashboards/how-tos/dashboards-faq", "l/pt/user-guide/dashboards/how-tos/widget-faq" @@ -4203,7 +4203,7 @@ ] }, { - "group": "Permissions & Access", + "group": "Permissões e Acesso", "icon": "lock", "pages": [ "l/pt/user-guide/permissions-access/overview", @@ -4215,7 +4215,7 @@ ] }, { - "group": "How-Tos", + "group": "Como-Tos", "pages": [ "l/pt/user-guide/permissions-access/how-tos/permissions-faq" ] @@ -4235,7 +4235,7 @@ ] }, { - "group": "How-Tos", + "group": "Como-Tos", "pages": [ "l/pt/user-guide/billing/how-tos/billing-faq" ] @@ -4259,7 +4259,7 @@ ] }, { - "group": "How-Tos", + "group": "Como-Tos", "pages": [ "l/pt/user-guide/settings/how-tos/settings-faq" ] @@ -4352,7 +4352,7 @@ ] }, { - "group": "Self-Host", + "group": "Auto-Anfitrião", "pages": [ "l/pt/developers/self-host/capabilities/docker-compose", "l/pt/developers/self-host/capabilities/setup", @@ -4361,7 +4361,7 @@ ] }, { - "group": "Contribute", + "group": "Contribuir", "pages": [ "l/pt/developers/contribute/capabilities/local-setup", "l/pt/developers/contribute/commands", @@ -4402,7 +4402,7 @@ ] }, { - "tab": "User Guide", + "tab": "Ghid de utilizator", "groups": [ { "group": "Prezentare generală", @@ -4437,7 +4437,7 @@ ] }, { - "group": "Data Migration", + "group": "Migrarea Datelor", "icon": "cloud-arrow-up", "pages": [ "l/ro/user-guide/data-migration/overview", @@ -4469,7 +4469,7 @@ ] }, { - "group": "Calendar & Emails", + "group": "Calendar & E-mailuri", "icon": "envelope", "pages": [ "l/ro/user-guide/calendar-emails/overview", @@ -4516,7 +4516,7 @@ "group": "How-Tos", "pages": [ { - "group": "CRM Automations", + "group": "CRM Automate", "pages": [ "l/ro/user-guide/workflows/how-tos/crm-automations/send-email-alerts-with-tasks-due", "l/ro/user-guide/workflows/how-tos/crm-automations/notify-teammates-of-note-to-review", @@ -4529,7 +4529,7 @@ ] }, { - "group": "Connect to Other Tools", + "group": "Conectează-te la alte instrumente", "pages": [ "l/ro/user-guide/workflows/how-tos/connect-to-other-tools/set-up-a-webhook-trigger", "l/ro/user-guide/workflows/how-tos/connect-to-other-tools/bring-typeform-submissions-in-twenty", @@ -4539,7 +4539,7 @@ ] }, { - "group": "Advanced Configurations", + "group": "Configurații avansate", "pages": [ "l/ro/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions" ] @@ -4637,7 +4637,7 @@ ] }, { - "group": "Permissions & Access", + "group": "Permisiuni & Acces", "icon": "lock", "pages": [ "l/ro/user-guide/permissions-access/overview", @@ -4786,7 +4786,7 @@ ] }, { - "group": "Self-Host", + "group": "Autogazda", "pages": [ "l/ro/developers/self-host/capabilities/docker-compose", "l/ro/developers/self-host/capabilities/setup", @@ -4795,7 +4795,7 @@ ] }, { - "group": "Contribute", + "group": "Contribuie", "pages": [ "l/ro/developers/contribute/capabilities/local-setup", "l/ro/developers/contribute/commands", 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 b559c8e9ad..80d66728b4 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 @@ -62,23 +62,23 @@ export const MyComponent = () => { تجنب إعادة العرض في الميزات الجديدة أصبح سهلاً الآن عن طريق إزالتها على المستوى الجذري. -The `PageChangeEffect` sidecar component contains just one `useEffect` that holds all the logic to execute on a page change. +يحتوي المكون الجانبي "PageChangeEffect" على "useEffect" واحد فقط يحمل كل المنطق لتنفيذه على تغيير الصفحة. بهذه الطريقة، تعرف أن هناك مكان واحد فقط يمكنه تحفيز إعادة العرض. -### Always think twice before adding `useEffect` in your codebase +### تفكير دائماً مرتين قبل إضافة `useEffect` في الرمز الخاص بك -Re-renders are often caused by unnecessary `useEffect`. +وكثيرا ما تكون عمليات إعادة التسليم ناجمة عن `فعالية الاستخدام` غير الضرورية. -You should think whether you need `useEffect`, or if you can move the logic in a event handler function. +يجب أن تفكر فيما إذا كنت بحاجة إلى \`useEffect'، أو إذا كنت تستطيع نقل المنطق في وظيفة معالج الأحداث. -You'll find it generally easy to move the logic in a `handleClick` or `handleChange` function. +ستجد أنه من السهل عموما نقل المنطق في دالة "handleClick" أو "handleChange". يمكنك أيضًا العثور عليها في المكتبات مثل Apollo: `onCompleted`، `onError`، إلخ. -### Use a sibling component to extract `useEffect` or data fetching logic +### استخدم مكون أخت لاستخراج \`تأثير الاستخدام' أو منطق جلب البيانات -If you feel like you need to add a `useEffect` in your root component, you should consider extracting it in a sidecar component. +إذا كنت تشعر أنك بحاجة إلى إضافة 'useEffect' في مكون الجذر الخاص بك، فيجب عليك النظر في استخراجه في مكون جانبي. يمكنك تطبيق نفس الشيء على منطق جلب البيانات، مع الخُطافات Apollo. 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 1492057624..0f9a9b9ef0 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 @@ -74,7 +74,7 @@ npx nx run twenty-front:storybook:coverage # (needs yarn storybook:serve:dev to "[React Router](https://reactrouter.com/) يتعامل مع التوجيه." -To avoid unnecessary [re-renders](/l/ar/developers/contribute/capabilities/frontend-development/best-practices-front#managing-re-renders) all the routing logic is in a `useEffect` in `PageChangeEffect`. +لتجنب غير ضروري [re-renders](/l/ar/developers/contribute/capabilities/frontend-development/best-practices-front#managing-re-renders) كل منطق المسارات في 'useEffect' في 'PageChangeEffect'. ### "إدارة الحالة" diff --git a/packages/twenty-docs/l/ar/developers/contribute/capabilities/frontend-development/hotkeys.mdx b/packages/twenty-docs/l/ar/developers/contribute/capabilities/frontend-development/hotkeys.mdx index f7a325bd30..0a28809f0d 100644 --- a/packages/twenty-docs/l/ar/developers/contribute/capabilities/frontend-development/hotkeys.mdx +++ b/packages/twenty-docs/l/ar/developers/contribute/capabilities/frontend-development/hotkeys.mdx @@ -127,9 +127,9 @@ const MyDropdownComponent = ({ onClose }: { onClose: () => void }) => { }; ``` -It's important to use this pattern when you're not sure that just using a useEffect with mount/unmount will be enough to avoid conflicts. +من المهم استخدام هذا النمط عندما لست متأكدا من أن استخدام تأثير الاستخدام مع التركيب/إلغاء التثبيت سيكون كافيا لتجنب الصراعات. -Those conflicts can be hard to debug, and it might happen more often than not with useEffects. +ويمكن أن يكون من الصعب تصحيح تلك الصراعات، وقد يحدث ذلك في كثير من الأحيان بآثار استعمالية. ## ما هو نطاق المفتاح؟ 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 58c20f336c..9d6580fc17 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 @@ -66,7 +66,7 @@ git config --global core.autocrlf false #### أثناء تشغيل `npx nx start` أو `npx nx start twenty-front`، ظهرت خطأ نفاد الذاكرة -Run only the services you need, instead of `npx nx start`. على سبيل المثال، إذا كنت تعمل على الخادم، قم بتشغيل `npx nx worker twenty-server` فقط +تشغيل الخدمات التي تحتاجها فقط، بدلاً من 'npx nx start`. على سبيل المثال، إذا كنت تعمل على الخادم، قم بتشغيل `npx nx worker twenty-server\` فقط **إذا لم يعمل ذلك:** إذا حاولت تشغيل `npx nx run twenty-server:start` فقط على WSL وفشل مع خطأ الذاكرة أدناه: diff --git a/packages/twenty-docs/l/ar/twenty-ui/display/chip.mdx b/packages/twenty-docs/l/ar/twenty-ui/display/chip.mdx index 9d5834c54a..3729a15cc9 100644 --- a/packages/twenty-docs/l/ar/twenty-ui/display/chip.mdx +++ b/packages/twenty-docs/l/ar/twenty-ui/display/chip.mdx @@ -40,10 +40,10 @@ export const MyComponent = () => { | الخصائص | النوع | الوصف | | ------------------ | ----------------------- | ---------------------------------------------------------------------- | -| linkToEntity | نص | الرابط إلى الكيان | +| ربطوكي | نص | الرابط إلى الكيان | | معرف الكيان | نص | المعرف الفريد للكيان | | الاسم | نص | اسم الكيان | -| رابط الصورة | نص | s picture", | +| رابط الصورة | نص | ص صورة،" | | نوع الصورة الرمزية | نوع الصورة الرمزية | نوع الصورة الرمزية التي تريد عرضها. لديه خياران: `مستدير` و `مربع` | | التنوع | تعداد EntityChipVariant | تنوع الرقاقة الكيانية التي ترغب في عرضها. لديه خياران: `عادي` و `شفاف` | | الأيقونة اليسرى | مكون رمز | مكون React يمثل رمزًا. يظهر على الجانب الأيسر من الرقاقة | @@ -139,10 +139,10 @@ export const MyComponent = () => { | الخصائص | النوع | الوصف | | ------------------ | ----------------------- | ---------------------------------------------------------------------- | -| linkToEntity | نص | الرابط إلى الكيان | +| ربطوكي | نص | الرابط إلى الكيان | | معرف الكيان | نص | المعرف الفريد للكيان | | الاسم | نص | اسم الكيان | -| رابط الصورة | نص | s picture", | +| رابط الصورة | نص | ص صورة،" | | نوع الصورة الرمزية | نوع الصورة الرمزية | نوع الصورة الرمزية التي تريد عرضها. لديه خياران: `مستدير` و `مربع` | | التنوع | تعداد EntityChipVariant | تنوع الرقاقة الكيانية التي ترغب في عرضها. لديه خياران: `عادي` و `شفاف` | | الأيقونة اليسرى | مكون رمز | مكون React يمثل رمزًا. يظهر على الجانب الأيسر من الرقاقة | diff --git a/packages/twenty-docs/l/ar/twenty-ui/input/buttons.mdx b/packages/twenty-docs/l/ar/twenty-ui/input/buttons.mdx index dda3713c30..343399f7ac 100644 --- a/packages/twenty-docs/l/ar/twenty-ui/input/buttons.mdx +++ b/packages/twenty-docs/l/ar/twenty-ui/input/buttons.mdx @@ -13,7 +13,7 @@ icon: hand-pointer - + ```jsx import { Button } from "@/ui/input/button/components/Button"; diff --git a/packages/twenty-docs/l/ar/twenty-ui/input/color-scheme.mdx b/packages/twenty-docs/l/ar/twenty-ui/input/color-scheme.mdx index 5bcd6c6a5d..640179a8e9 100644 --- a/packages/twenty-docs/l/ar/twenty-ui/input/color-scheme.mdx +++ b/packages/twenty-docs/l/ar/twenty-ui/input/color-scheme.mdx @@ -12,7 +12,7 @@ icon: palette يمثل مخططات ألوان مختلفة ومخصص بشكل خاص للمواضيع الفاتحة والداكنة. - + ```jsx import { ColorSchemeCard } from "twenty-ui/display"; diff --git a/packages/twenty-docs/l/ar/twenty-ui/input/image-input.mdx b/packages/twenty-docs/l/ar/twenty-ui/input/image-input.mdx index d1bab5e4af..16442d3027 100644 --- a/packages/twenty-docs/l/ar/twenty-ui/input/image-input.mdx +++ b/packages/twenty-docs/l/ar/twenty-ui/input/image-input.mdx @@ -1,12 +1,12 @@ --- -title: Image Input +title: إدخال الصورة --- رأس الصفحة -Allows users to upload and remove an image. +يسمح للمستخدمين برفع وإزالة صورة. @@ -25,7 +25,7 @@ export const MyComponent = () => { | الخصائص | النوع | الوصف | | ------------ | ----------- | --------------------------------------------------------------------------------- | -| صورة | نص | The image source URL | +| صورة | نص | رابط مصدر الصورة | | onUpload | دالة | الدالة التي تُستدعى عند قيام المستخدم بتحميل صورة جديدة. تستقبل كائن `File` كوسيط | | onRemove | دالة | الدالة التي تُستدعى عند نقر المستخدم على زر الإزالة | | onAbort | دالة | الدالة التي تُستدعى عند نقر المستخدم على زر الإلغاء أثناء تحميل الصورة | 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 de6f15c055..63dda44ce3 100644 --- a/packages/twenty-docs/l/ar/twenty-ui/input/text.mdx +++ b/packages/twenty-docs/l/ar/twenty-ui/input/text.mdx @@ -12,7 +12,7 @@ title: نص - + ```jsx import { TextInput } from "@/ui/input/components/TextInput"; diff --git a/packages/twenty-docs/l/ar/twenty-ui/navigation/links.mdx b/packages/twenty-docs/l/ar/twenty-ui/navigation/links.mdx index 8b5da09c99..172df82afb 100644 --- a/packages/twenty-docs/l/ar/twenty-ui/navigation/links.mdx +++ b/packages/twenty-docs/l/ar/twenty-ui/navigation/links.mdx @@ -12,7 +12,7 @@ icon: link مكون رابط منمق لعرض معلومات الاتصال. - + ```jsx import { BrowserRouter as Router } from 'react-router-dom'; diff --git a/packages/twenty-docs/l/ar/user-guide/billing/overview.mdx b/packages/twenty-docs/l/ar/user-guide/billing/overview.mdx index 290ce2a7bd..81db18c841 100644 --- a/packages/twenty-docs/l/ar/user-guide/billing/overview.mdx +++ b/packages/twenty-docs/l/ar/user-guide/billing/overview.mdx @@ -8,10 +8,10 @@ description: تعرّف على تسعير Twenty وأدِر اشتراكك. ## ما الذي يتضمنه هذا القسم - + تعرّف على خطط تسعير Twenty وما تتضمنه. - + أسئلة شائعة حول التسعير والفوترة. diff --git a/packages/twenty-docs/l/ar/user-guide/calendar-emails/overview.mdx b/packages/twenty-docs/l/ar/user-guide/calendar-emails/overview.mdx index d6a9d4abda..519aa47928 100644 --- a/packages/twenty-docs/l/ar/user-guide/calendar-emails/overview.mdx +++ b/packages/twenty-docs/l/ar/user-guide/calendar-emails/overview.mdx @@ -1,28 +1,28 @@ --- -title: Calendar & Emails -description: Connect your email and calendar accounts to Twenty. +title: الرزنامة و رسائل البريد الإلكتروني +description: قم بتوصيل بريدك الإلكتروني وحسابات التقويم إلى عشرين حسابا. --- -## Connection Options +## خيارات الاتصال ### حساب Google (Gmail وتقويم Google) 1. اذهب إلى **الإعدادات → الحسابات** 2. انقر على **إضافة حساب** -3. Select **Continue with Google** +3. حدد **متابعة مع جوجل** 4. السماح لـ Twenty بالوصول إلى Gmail وتقويم Google الخاص بك -5. Configure email sync settings (visibility, auto-creation) → click **Next** -6. Configure calendar sync settings (visibility, auto-creation) → click **Add Account** +5. تكوين إعدادات مزامنة البريد الإلكتروني (الرؤية ، الإنشاء التلقائي) → انقر فوق **التالي** +6. تكوين إعدادات مزامنة التقويم (الرؤية ، الإنشاء التلقائي) → انقر فوق **إضافة حساب** 7. ستبدأ رسائل البريد الإلكتروني وفعاليات التقويم بالمزامنة تلقائيًا ### حساب Microsoft (Outlook وتقويم Microsoft) 1. اذهب إلى **الإعدادات → الحسابات** 2. انقر على **إضافة حساب** -3. Select **Continue with Microsoft** +3. حدد **متابعة مع مايكروسوفت** 4. السماح لـ Twenty بالوصول إلى Outlook وتقويم Microsoft الخاص بك -5. Configure email sync settings (visibility, auto-creation) → click **Next** -6. Configure calendar sync settings (visibility, auto-creation) → click **Add Account** +5. تكوين إعدادات مزامنة البريد الإلكتروني (الرؤية ، الإنشاء التلقائي) → انقر فوق **التالي** +6. تكوين إعدادات مزامنة التقويم (الرؤية ، الإنشاء التلقائي) → انقر فوق **إضافة حساب** 7. ستبدأ رسائل البريد الإلكتروني وفعاليات التقويم بالمزامنة تلقائيًا ### إعداد IMAP/SMTP/CalDAV (مزودون آخرون) @@ -135,10 +135,10 @@ OUTBOUND_HTTP_SAFE_MODE_ENABLED=false **التحديثات كل 5 دقائق**: تتم مزامنة البيانات البريدية والتقويمية تلقائيًا كل 5 دقائق بعد الاستيراد الأولي. -**توقيت المزامنة الأولية**: يكتمل تزامن التقويم بسرعة (عادةً خلال دقائق)، بينما تستغرق مزامنة البريد الإلكتروني وقتاً أطول لصناديق البريد الكبيرة. يقوم Twenty باستيراد رسائل البريد الإلكتروني بمعدل يقارب **400 رسالة في الدقيقة** (محدود بتقييد المعدل من Gmail API)، لذا فإن صندوق بريد يحتوي على 10,000 رسالة يستغرق حوالي 25 دقيقة. Don't worry if you see contacts from calendar events appearing before your email contacts; this is normal behavior. +**توقيت المزامنة الأولية**: يكتمل تزامن التقويم بسرعة (عادةً خلال دقائق)، بينما تستغرق مزامنة البريد الإلكتروني وقتاً أطول لصناديق البريد الكبيرة. يقوم Twenty باستيراد رسائل البريد الإلكتروني بمعدل يقارب **400 رسالة في الدقيقة** (محدود بتقييد المعدل من Gmail API)، لذا فإن صندوق بريد يحتوي على 10,000 رسالة يستغرق حوالي 25 دقيقة. لا تقلق إذا كنت ترى جهات اتصال من أحداث التقويم تظهر قبل جهات الاتصال بالبريد الإلكتروني الخاص بك؛ هذا سلوك طبيعي. ## الخطوات التالية -* [Mailbox capabilities](/l/ar/user-guide/calendar-emails/capabilities/mailbox) -* [Troubleshoot missing emails](/l/ar/user-guide/calendar-emails/how-tos/i-dont-see-emails-on-records) +* [قدرات صندوق البريد](/l/ar/user-guide/calendar-emails/capabilities/mailbox) +* [كشف الأخطاء في البريد الإلكتروني المفقودة](/l/ar/user-guide/calendar-emails/how-tos/i-dont-see-emails-on-records) diff --git a/packages/twenty-docs/l/ar/user-guide/dashboards/how-tos/dashboards-faq.mdx b/packages/twenty-docs/l/ar/user-guide/dashboards/how-tos/dashboards-faq.mdx index 61a9ffd284..cde47c972a 100644 --- a/packages/twenty-docs/l/ar/user-guide/dashboards/how-tos/dashboards-faq.mdx +++ b/packages/twenty-docs/l/ar/user-guide/dashboards/how-tos/dashboards-faq.mdx @@ -1,5 +1,5 @@ --- -title: Dashboards FAQ +title: لوحة التحكم الأسئلة الشائعة description: أسئلة شائعة حول لوحات القيادة في Twenty. --- diff --git a/packages/twenty-docs/l/ar/user-guide/data-migration/how-tos/migrating-from-other-crms.mdx b/packages/twenty-docs/l/ar/user-guide/data-migration/how-tos/migrating-from-other-crms.mdx index ba730e4e70..dd7e29da1e 100644 --- a/packages/twenty-docs/l/ar/user-guide/data-migration/how-tos/migrating-from-other-crms.mdx +++ b/packages/twenty-docs/l/ar/user-guide/data-migration/how-tos/migrating-from-other-crms.mdx @@ -1,5 +1,5 @@ --- -title: Migrating from Other CRMs +title: الترحيل من CRMs أخرى description: دليل خطوة بخطوة لترحيل بياناتك من أي نظام لإدارة علاقات العملاء إلى Twenty. --- diff --git a/packages/twenty-docs/l/ar/user-guide/data-migration/how-tos/prepare-your-csv-files.mdx b/packages/twenty-docs/l/ar/user-guide/data-migration/how-tos/prepare-your-csv-files.mdx index 25aa9ac1cc..7e767037c1 100644 --- a/packages/twenty-docs/l/ar/user-guide/data-migration/how-tos/prepare-your-csv-files.mdx +++ b/packages/twenty-docs/l/ar/user-guide/data-migration/how-tos/prepare-your-csv-files.mdx @@ -1,5 +1,5 @@ --- -title: Prepare Your CSV Files +title: إعداد ملفات CSV الخاصة بك description: دليل كامل خطوة بخطوة لتنسيق بياناتك لاستيرادها إلى Twenty. --- diff --git a/packages/twenty-docs/l/ar/user-guide/data-migration/overview.mdx b/packages/twenty-docs/l/ar/user-guide/data-migration/overview.mdx index 8da8eb1539..85e7283421 100644 --- a/packages/twenty-docs/l/ar/user-guide/data-migration/overview.mdx +++ b/packages/twenty-docs/l/ar/user-guide/data-migration/overview.mdx @@ -1,5 +1,5 @@ --- -title: Data Migration +title: نقل البيانات description: استيراد وتصدير بيانات CRM عبر ملفات CSV أو عبر API. --- diff --git a/packages/twenty-docs/l/ar/user-guide/data-model/how-tos/create-relation-fields.mdx b/packages/twenty-docs/l/ar/user-guide/data-model/how-tos/create-relation-fields.mdx index d44aa61a27..7d16681dda 100644 --- a/packages/twenty-docs/l/ar/user-guide/data-model/how-tos/create-relation-fields.mdx +++ b/packages/twenty-docs/l/ar/user-guide/data-model/how-tos/create-relation-fields.mdx @@ -1,5 +1,5 @@ --- -title: Create Relation Fields +title: إنشاء حقول العلاقة description: دليل خطوة بخطوة لربط الكائنات باستخدام حقول العلاقة. --- diff --git a/packages/twenty-docs/l/ar/user-guide/data-model/how-tos/customize-your-data-model.mdx b/packages/twenty-docs/l/ar/user-guide/data-model/how-tos/customize-your-data-model.mdx index c24cf962f2..d241494a04 100644 --- a/packages/twenty-docs/l/ar/user-guide/data-model/how-tos/customize-your-data-model.mdx +++ b/packages/twenty-docs/l/ar/user-guide/data-model/how-tos/customize-your-data-model.mdx @@ -1,5 +1,5 @@ --- -title: Customize Your Data Model +title: تخصيص نموذج البيانات الخاص بك description: نظرة عامة على خيارات تخصيص نموذج البيانات. --- diff --git a/packages/twenty-docs/l/ar/user-guide/views-pipelines/how-tos/show-expected-amount-in-pipeline.mdx b/packages/twenty-docs/l/ar/user-guide/views-pipelines/how-tos/show-expected-amount-in-pipeline.mdx index bf4ee63f55..d6c6e03847 100644 --- a/packages/twenty-docs/l/ar/user-guide/views-pipelines/how-tos/show-expected-amount-in-pipeline.mdx +++ b/packages/twenty-docs/l/ar/user-guide/views-pipelines/how-tos/show-expected-amount-in-pipeline.mdx @@ -1,5 +1,5 @@ --- -title: Show Expected Amount in Your Pipeline +title: إظهار المبلغ المتوقع في خط الأنابيب description: احسب واعرض قيم الصفقات الموزونة استنادًا إلى احتمال المرحلة. --- diff --git a/packages/twenty-docs/l/ar/user-guide/workflows/how-tos/connect-to-other-tools/generate-quote-or-invoice-from-twenty.mdx b/packages/twenty-docs/l/ar/user-guide/workflows/how-tos/connect-to-other-tools/generate-quote-or-invoice-from-twenty.mdx index c1a5a76143..8a0b0693db 100644 --- a/packages/twenty-docs/l/ar/user-guide/workflows/how-tos/connect-to-other-tools/generate-quote-or-invoice-from-twenty.mdx +++ b/packages/twenty-docs/l/ar/user-guide/workflows/how-tos/connect-to-other-tools/generate-quote-or-invoice-from-twenty.mdx @@ -138,7 +138,7 @@ Body: {{code.invoice}} ## ذات صلة -* [Generate a PDF from Twenty](/l/ar/user-guide/workflows/how-tos/connect-to-other-tools/generate-pdf-from-twenty) — attach generated PDFs to records +* [إنشاء PDF من عشرين سنتي](/l/ar/user-guide/workflows/how-tos/connect-to-other-tools/generate-pdf-from-twenty) - إرفاق ملفات PDFs التي تم إنشاؤها بالسجلات * [مشغلات سير العمل](/l/ar/user-guide/workflows/capabilities/workflow-triggers) * [إجراءات سير العمل](/l/ar/user-guide/workflows/capabilities/workflow-actions) * [أتمتة Closed Won](/l/ar/user-guide/workflows/how-tos/crm-automations/closed-won-automations) diff --git a/packages/twenty-docs/l/cs/developers/contribute/capabilities/frontend-development/best-practices-front.mdx b/packages/twenty-docs/l/cs/developers/contribute/capabilities/frontend-development/best-practices-front.mdx index 202029762d..1a287b6f97 100644 --- a/packages/twenty-docs/l/cs/developers/contribute/capabilities/frontend-development/best-practices-front.mdx +++ b/packages/twenty-docs/l/cs/developers/contribute/capabilities/frontend-development/best-practices-front.mdx @@ -62,23 +62,23 @@ Pamatujte, že můžete **vždy** zabránit opakovanému renderování pochopen Vyhýbání se překreslení v nových funkcích je nyní snadné tím, že je eliminujete na úrovni kořene. -The `PageChangeEffect` sidecar component contains just one `useEffect` that holds all the logic to execute on a page change. +Komponenta "PageChangeEffect" obsahuje pouze jeden "useEffect", který drží veškerou logiku pro provedení změny stránky. Tímto způsobem víte, že existuje pouze jedno místo, které může spustit překreslování. -### Always think twice before adding `useEffect` in your codebase +### Vždy si dvakrát rozmyslete před přidáním `useEffect` do vaší kódové databáze -Re-renders are often caused by unnecessary `useEffect`. +Opakované renderování jsou často způsobeny zbytečným `useEffect`. -You should think whether you need `useEffect`, or if you can move the logic in a event handler function. +Měli byste si myslet, zda potřebujete `useEffect`, nebo zda můžete přesunout logiku ve funkci obsluhy událostí. -You'll find it generally easy to move the logic in a `handleClick` or `handleChange` function. +Pro vás je obecně snadné přesunout logiku do funkce `handleClick` nebo `handleChange`. Můžete je také najít v knihovnách jako Apollo: `onCompleted`, `onError` atd. -### Use a sibling component to extract `useEffect` or data fetching logic +### Použij sourozeneckou komponentu k extrakci `useEffect` nebo logiky načítání dat -If you feel like you need to add a `useEffect` in your root component, you should consider extracting it in a sidecar component. +Pokud máte pocit, že potřebujete přidat `useEffect` do základní komponenty, měli byste zvážit její extrakci v postranním vozíku. Stejný postup můžete aplikovat na logiku získávání dat pomocí Apollo hooks. diff --git a/packages/twenty-docs/l/cs/developers/contribute/capabilities/frontend-development/frontend-commands.mdx b/packages/twenty-docs/l/cs/developers/contribute/capabilities/frontend-development/frontend-commands.mdx index 364aa17662..55b8884131 100644 --- a/packages/twenty-docs/l/cs/developers/contribute/capabilities/frontend-development/frontend-commands.mdx +++ b/packages/twenty-docs/l/cs/developers/contribute/capabilities/frontend-development/frontend-commands.mdx @@ -74,7 +74,7 @@ Projekt má čistý a jednoduchý stack s minimálním počtem šablonových kó [React Router](https://reactrouter.com/) zajišťuje směrování. -To avoid unnecessary [re-renders](/l/cs/developers/contribute/capabilities/frontend-development/best-practices-front#managing-re-renders) all the routing logic is in a `useEffect` in `PageChangeEffect`. +Aby se předešlo zbytečné [re-renders](/l/cs/developers/contribute/capabilities/frontend-development/best-practices-front#managing-re-renders) ) je všechna směrovací logika v `useEffect` v `PageChangeEffect`. ### Správa stavu diff --git a/packages/twenty-docs/l/cs/developers/contribute/capabilities/frontend-development/hotkeys.mdx b/packages/twenty-docs/l/cs/developers/contribute/capabilities/frontend-development/hotkeys.mdx index 97d1e1d462..66a6b39bac 100644 --- a/packages/twenty-docs/l/cs/developers/contribute/capabilities/frontend-development/hotkeys.mdx +++ b/packages/twenty-docs/l/cs/developers/contribute/capabilities/frontend-development/hotkeys.mdx @@ -127,9 +127,9 @@ const MyDropdownComponent = ({ onClose }: { onClose: () => void }) => { }; ``` -It's important to use this pattern when you're not sure that just using a useEffect with mount/unmount will be enough to avoid conflicts. +Je důležité použít tento vzor, když si nejste jisti, že pouhé použití useEffect s připojením/odpojením bude stačit k tomu, aby se předešlo konfliktům. -Those conflicts can be hard to debug, and it might happen more often than not with useEffects. +Tyto konflikty mohou být těžko laditelné a může se to stát častěji než s useEffects. ## Co je to hotkey scope? diff --git a/packages/twenty-docs/l/cs/developers/extend/api.mdx b/packages/twenty-docs/l/cs/developers/extend/api.mdx index 638f6ca796..5f2eacabfb 100644 --- a/packages/twenty-docs/l/cs/developers/extend/api.mdx +++ b/packages/twenty-docs/l/cs/developers/extend/api.mdx @@ -1,35 +1,35 @@ --- title: API icon: plug -description: REST and GraphQL APIs generated from your workspace schema. +description: REST a GraphQL API generovaná z vašeho schématu pracovního prostoru. --- import { VimeoEmbed } from '/snippets/vimeo-embed.mdx'; -## Schema-per-tenant APIs +## API schéma pro jednotlivé nájemce -There is no static API reference for Twenty. Each workspace has its own schema — when you add a custom object (say `Invoice`), it immediately gets REST and GraphQL endpoints identical to built-in objects like `Company` or `Person`. The API is generated from the schema, so endpoints use your object and field names directly — no opaque IDs. +Pro dvacet není žádný statický API odkaz. Každý pracovní prostor má své vlastní schéma — když přidáte vlastní objekt (řekněme `Invoice`), okamžitě získá REST a GraphQL koncové body shodné s vestavěnými objekty, jako je `Company` nebo `Person`. API je generováno z schématu, takže koncové body používají vaše názvy objektů a polí přímo – žádné neprůhledné ID. -Your workspace-specific API documentation is available under **Settings → API & Webhooks** after creating an API key. It includes an interactive playground where you can execute real calls against your data. +Dokumentace API specifická pro pracovní prostor je dostupná v **Nastavení → API a Webhooks** po vytvoření API klíče. Obsahuje interaktivní hřiště, kde můžete uskutečňovat skutečné hovory proti svým datům. -## Two APIs +## Dvě API -**Core API** — `/rest/` and `/graphql/` +**Jádro API** — `/rest/` a `/graphql/` -CRUD on records: People, Companies, Opportunities, your custom objects. Query, filter, traverse relations. +CRUD v záznamech: Lidé, Společnosti, příležitosti, vaše vlastní objekty. Dotazy, filtry, pohybové vztahy. -**Metadata API** — `/rest/metadata/` and `/metadata/` +**Metadata API** – `/rest/metadata/` a `/metadata/` -Schema management: create/modify/delete objects, fields, and relations. This is how you programmatically change your data model. +Správa schémat: vytvořit/upravit/odstranit objekty, pole a vztahy. Takto programově změníte svůj datový model. -Both are available as REST and GraphQL. GraphQL adds batch upserts and the ability to traverse relations in a single query. Same underlying data either way. +Obojí je k dispozici jako REST a GraphQL. GraphQL přidává dávky a schopnost procházet vztahy v jediném dotazu. V každém případě stejné podkladové údaje. -## Base URLs +## Základní URL adresy -| Prostředí | Základní URL | -| ----------- | ------------------------- | -| Cloud | `https://api.twenty.com/` | -| Self-Hosted | `https://{your-domain}/` | +| Prostředí | Základní URL | +| -------------------- | ------------------------- | +| Cloud | `https://api.twenty.com/` | +| Samostatně hostované | `https://{your-domain}/` | ## Ověření @@ -37,19 +37,19 @@ Both are available as REST and GraphQL. GraphQL adds batch upserts and the abili Authorization: Bearer YOUR_API_KEY ``` -Create an API key in **Settings → API & Webhooks → + Create key**. Copy it immediately — it's shown once. API klíče lze omezit na konkrétní roli v **Settings → Members → Roles → Assignment tab**, aby se omezilo, k čemu mají přístup. +Vytvořte API klíč v **Nastavení → API & Webhooks → + Vytvořit klíč**. Zkopírujte ji okamžitě - je to zobrazeno jednou. API klíče lze omezit na konkrétní roli v **Settings → Members → Roles → Assignment tab**, aby se omezilo, k čemu mají přístup. -For OAuth-based access (external apps acting on behalf of users), see [OAuth](/l/cs/developers/extend/oauth). +Pro přístup založený na OAuthu (externí aplikace jednající jménem uživatelů), viz [OAuth](/l/cs/developers/extend/oauth). -## Batch operations +## Provoz šarže -Both REST and GraphQL support batching up to 60 records per request — create, update, or delete. GraphQL also supports batch upsert (create-or-update in one call) using plural names like `CreateCompanies`. +Podpora REST i GraphQL dávkování až 60 záznamů pro každou žádost – vytvořit, aktualizovat nebo smazat. GraphQL také podporuje dávkový náhled (create-or-update v jednom hovoru) pomocí plurálu jako je `CreateCompanies`. -## Rate limits +## Míra omezení -| Limit | Hodnota | -| ---------- | -------------------- | -| Requests | 100 per minute | -| Batch size | 60 záznamů na volání | +| Limit | Hodnota | +| -------------- | -------------------- | +| Požadavky | 100 za minutu | +| Velikost šarže | 60 záznamů na volání | diff --git a/packages/twenty-docs/l/cs/twenty-ui/input/buttons.mdx b/packages/twenty-docs/l/cs/twenty-ui/input/buttons.mdx index 355a833f83..7814341fac 100644 --- a/packages/twenty-docs/l/cs/twenty-ui/input/buttons.mdx +++ b/packages/twenty-docs/l/cs/twenty-ui/input/buttons.mdx @@ -51,10 +51,10 @@ export const MyComponent = () => { | varianta | řetězec | Vizualní stylová varianta tlačítka. Možnosti zahrnují `primární`, `sekundární` a `terciární` | | velikost | řetězec | Velikost tlačítka. Má dvě možnosti: `malé` a `střední` | | pozice | řetězec | Pozice tlačítka ve vztahu k jeho sourozencům. Možnosti zahrnují: `samostatné`, `levé`, `pravé` a `střední` | -| akcent | řetězec | Barva akcentu tlačítka. Options include: `default`, `blue`, and `danger` | +| akcent | řetězec | Barva akcentu tlačítka. Možnosti zahrnují: `default`, `blue`, a `danger` | | brzy | booleovská hodnota | Indikuje, jestli je tlačítko označené jako "brzy" (například pro nadcházející funkce) | -| neaktivní | booleovská hodnota | Specifies whether the button is disabled or not | -| focus | booleovská hodnota | Určuje, zda tlačítko má zaměření | +| neaktivní | booleovská hodnota | Určuje, zda je tlačítko zakázáno nebo ne | +| ostření | booleovská hodnota | Určuje, zda tlačítko má zaměření | | onClick | funkce | Funkce zpětného volání, která se spustí, když uživatel klikne na tlačítko | @@ -127,13 +127,13 @@ export const MyComponent = () => { -| Vlastnosti | Typ | Popis | -| ---------- | --------------- | ------------------------------------------------------------------------------------------------------------------ | -| varianta | řetězec | The visual style variant of the buttons within the group. Možnosti zahrnují `primární`, `sekundární` a `terciární` | -| velikost | řetězec | Velikost tlačítek ve skupině. Má dvě možnosti: `střední` a `malé` | -| akcent | textový řetězec | Barva akcentu tlačítek ve skupině. Options include `default`, `blue` and `danger` | -| className | řetězec | Volitelný název třídy pro dodatečné stylování | -| děti | ReactNode | Pole prvků React představující jednotlivá tlačítka ve skupině | +| Vlastnosti | Typ | Popis | +| ---------- | --------------- | ------------------------------------------------------------------------------------------- | +| varianta | řetězec | Vizuální styl tlačítek ve skupině. Možnosti zahrnují `primární`, `sekundární` a `terciární` | +| velikost | řetězec | Velikost tlačítek ve skupině. Má dvě možnosti: `střední` a `malé` | +| akcent | textový řetězec | Barva akcentu tlačítek ve skupině. Mezi možnosti patří `default`, `blue` a `danger` | +| className | řetězec | Volitelný název třídy pro dodatečné stylování | +| děti | ReactNode | Pole prvků React představující jednotlivá tlačítka ve skupině | @@ -171,17 +171,17 @@ export const MyComponent = () => { -| Vlastnosti | Typ | Popis | -| --------------- | --------------------- | ------------------------------------------------------------------------------------------------------ | -| className | řetězec | Volitelný název pro dodatečné stylování | -| Ikona | `React.ComponentType` | Volitelná komponenta ikony, která se zobrazuje v rámci tlačítka | -| název | řetězec | Textový obsah tlačítka | -| velikost | řetězec | Velikost tlačítka. Má dvě možnosti: `malé` a `střední` | -| pozice | řetězec | Pozice tlačítka ve vztahu k jeho sourozencům. Options include: `standalone`, `left`, `middle`, `right` | -| přidatStín | booleovská hodnota | Určuje, zda se má na tlačítko přidat stín | -| použítRozmazání | booleovská hodnota | Určuje, zda se má na tlačítko použít rozostření | -| neaktivní | booleovská hodnota | Determines whether the button is disabled | -| focus | booleovská hodnota | Indikuje, zda tlačítko má zaměření | +| Vlastnosti | Typ | Popis | +| --------------- | --------------------- | ---------------------------------------------------------------------------------------------------------- | +| className | řetězec | Volitelný název pro dodatečné stylování | +| Ikona | `React.ComponentType` | Volitelná komponenta ikony, která se zobrazuje v rámci tlačítka | +| název | řetězec | Textový obsah tlačítka | +| velikost | řetězec | Velikost tlačítka. Má dvě možnosti: `malé` a `střední` | +| pozice | řetězec | Pozice tlačítka ve vztahu k jeho sourozencům. Mezi možnosti patří: `standalone`, `left`, `middle`, `right` | +| přidatStín | booleovská hodnota | Určuje, zda se má na tlačítko přidat stín | +| použítRozmazání | booleovská hodnota | Určuje, zda se má na tlačítko použít rozostření | +| neaktivní | booleovská hodnota | Určuje, zda je tlačítko zakázáno | +| ostření | booleovská hodnota | Indikuje, zda tlačítko má zaměření | @@ -283,8 +283,8 @@ export const MyComponent = () => { | pozice | řetězec | Pozice tlačítka ve vztahu k jeho sourozencům. Možnosti zahrnují: `samostatné`, `levé`, `pravé` a `střední` | | přidatStín | booleovská hodnota | Určuje, zda se má na tlačítko přidat stín | | použítRozmazání | booleovská hodnota | Určuje, zda se má na tlačítko použít rozostření | -| neaktivní | booleovská hodnota | Determines whether the button is disabled | -| focus | booleovská hodnota | Indikuje, zda tlačítko má zaměření | +| neaktivní | booleovská hodnota | Určuje, zda je tlačítko zakázáno | +| ostření | booleovská hodnota | Indikuje, zda tlačítko má zaměření | | onClick | funkce | Funkce zpětného volání, která se spustí, když uživatel klikne na tlačítko | | jeAktivní | booleovská hodnota | Určuje, zda je tlačítko v aktivním stavu | @@ -344,7 +344,7 @@ export const MyComponent = () => { -## Light Button +## Tlačítko světla @@ -377,10 +377,10 @@ export const MyComponent = () => { | className | řetězec | Volitelný název pro dodatečné stylování | | ikona | `React.ReactNode` | Ikona, kterou chcete zobrazit v tlačítku | | název | řetězec | Textový obsah tlačítka | -| akcent | řetězec | Barva akcentu tlačítka. Options include: `secondary` and `tertiary` | +| akcent | řetězec | Barva akcentu tlačítka. Možnosti zahrnují: `sekundární` a `tertiary` | | aktivní | booleovská hodnota | Určuje, zda je tlačítko v aktivním stavu | -| neaktivní | booleovská hodnota | Determines whether the button is disabled | -| focus | booleovská hodnota | Indikuje, zda tlačítko má zaměření | +| neaktivní | booleovská hodnota | Určuje, zda je tlačítko zakázáno | +| ostření | booleovská hodnota | Indikuje, zda tlačítko má zaměření | | onClick | funkce | Funkce zpětného volání, která se spustí, když uživatel klikne na tlačítko | @@ -390,7 +390,7 @@ export const MyComponent = () => { -## Light Icon Button +## Tlačítko Světlé ikony @@ -430,10 +430,10 @@ export const MyComponent = () => { | Ikona | `React.ComponentType` | Volitelná komponenta ikony, která se zobrazuje v rámci tlačítka | | název | řetězec | Textový obsah tlačítka | | velikost | řetězec | Velikost tlačítka. Má dvě možnosti: `malé` a `střední` | -| akcent | řetězec | Barva akcentu tlačítka. Options include: `secondary` and `tertiary` | +| akcent | řetězec | Barva akcentu tlačítka. Možnosti zahrnují: `sekundární` a `tertiary` | | aktivní | booleovská hodnota | Určuje, zda je tlačítko v aktivním stavu | -| neaktivní | booleovská hodnota | Determines whether the button is disabled | -| focus | booleovská hodnota | Indikuje, zda má tlačítko zaměření | +| neaktivní | booleovská hodnota | Určuje, zda je tlačítko zakázáno | +| ostření | booleovská hodnota | Indikuje, zda má tlačítko zaměření | | onClick | funkce | Funkce zpětného volání, která se spustí, když uživatel klikne na tlačítko | @@ -470,14 +470,14 @@ export const MyComponent = () => { -| Vlastnosti | Typ | Popis | -| -------------------- | -------------------------------- | ---------------------------------------------------------------------------------- | -| název | řetězec | Textový obsah tlačítka | -| fullWidth | booleovská hodnota | Určuje, zda by tlačítko mělo zabírat celou šířku svého kontejneru | -| varianta | řetězec | Vizuální stylová varianta tlačítka. Options include `primary` and `secondary` | -| brzy | booleovská hodnota | Indikuje, zda je tlačítko označeno jako "brzy" (například pro nadcházející funkce) | -| Ikona | `React.ComponentType` | Volitelná komponenta ikony, která se zobrazuje v rámci tlačítka | -| React `button` props | `React.ComponentProps<'button'>` | All standard HTML button props are supported | +| Vlastnosti | Typ | Popis | +| ---------------------------- | -------------------------------- | ---------------------------------------------------------------------------------- | +| název | řetězec | Textový obsah tlačítka | +| plná šířka | booleovská hodnota | Určuje, zda by tlačítko mělo zabírat celou šířku svého kontejneru | +| varianta | řetězec | Vizuální stylová varianta tlačítka. Možnosti zahrnují `primární` a `sekundární` | +| brzy | booleovská hodnota | Indikuje, zda je tlačítko označeno jako "brzy" (například pro nadcházející funkce) | +| Ikona | `React.ComponentType` | Volitelná komponenta ikony, která se zobrazuje v rámci tlačítka | +| Reagovat `tlačítko` výklopky | `React.ComponentProps<'button'>` | Všechny podpěry HTML tlačítek jsou podporovány | @@ -510,10 +510,10 @@ export const MyComponent = () => { -| Vlastnosti | Typ | Popis | -| -------------------- | ----------------------------------------------- | ----- | -| Ikona | `React.ComponentType` | | -| React `button` props | `React.ButtonHTMLAttributes` | | +| Vlastnosti | Typ | Popis | +| ---------------------------- | ----------------------------------------------- | ----- | +| Ikona | `React.ComponentType` | | +| Reagovat `tlačítko` výklopky | `React.ButtonHTMLAttributes` | | diff --git a/packages/twenty-docs/l/cs/twenty-ui/input/color-scheme.mdx b/packages/twenty-docs/l/cs/twenty-ui/input/color-scheme.mdx index 7adad58473..7a6bb41443 100644 --- a/packages/twenty-docs/l/cs/twenty-ui/input/color-scheme.mdx +++ b/packages/twenty-docs/l/cs/twenty-ui/input/color-scheme.mdx @@ -35,7 +35,7 @@ export const MyComponent = () => { | Vlastnosti | Typ | Popis | Výchozí | | ---------------- | --------------------------------------- | ------------------------------------------------------------------------------ | ------- | | varianta | řetězec | Varianta barevného schématu. Možnosti zahrnují `Tmavý`, `Světlý` a `Systémový` | světlý | -| vybráno | booleovská hodnota | If `true`, displays a checkmark to indicate the selected color scheme | | +| vybráno | booleovská hodnota | Pokud 'true' zobrazí zaškrtnutí pro označení vybraného barevného schématu | | | další vlastnosti | `React.ComponentPropsWithoutRef<'div'>` | Standardní vlastnosti HTML `div` elementu | | diff --git a/packages/twenty-docs/l/cs/twenty-ui/input/radio.mdx b/packages/twenty-docs/l/cs/twenty-ui/input/radio.mdx index 3cdfb36656..3e40cd4fef 100644 --- a/packages/twenty-docs/l/cs/twenty-ui/input/radio.mdx +++ b/packages/twenty-docs/l/cs/twenty-ui/input/radio.mdx @@ -50,13 +50,13 @@ export const MyComponent = () => { | --------------- | ---------------------- | ---------------------------------------------------------------------------------- | | styl | Vlastnosti `React.CSS` | Další inline styly pro komponentu | | className | řetězec | Volitelná CSS třída pro další stylování | -| zaškrtnuté | booleovská hodnota | Indicates whether the radio button is checked | +| zaškrtnuté | booleovská hodnota | Označuje, zda je zaškrtnuto rádiové tlačítko | | hodnota | řetězec | Označení nebo text spojený s radiobuttonem | -| onChange | funkce | The function called when the selected radio button is changed | -| onCheckedChange | funkce | The function called when the `checked` state of the radio button changes | +| onChange | funkce | Funkce volaná při změně vybraného přepínače | +| onCheckedChange | funkce | Funkce volaná, když se změní stav tlačítka "zaškrtnuto" | | velikost | řetězec | Velikost radiobuttonu. Možnosti zahrnují: `velký` a `malý` | -| neaktivní | booleovská hodnota | If `true`, the radio button is disabled and not clickable | -| labelPosition | řetězec | Pozice textu označení vzhledem k radiobuttonu. Má dvě možnosti: `vlevo` a `vpravo` | +| neaktivní | booleovská hodnota | Pokud je 'pravda', rádiové tlačítko je zakázáno a nelze kliknout | +| Pozice štítku | řetězec | Pozice textu označení vzhledem k radiobuttonu. Má dvě možnosti: `vlevo` a `vpravo` | @@ -64,9 +64,9 @@ export const MyComponent = () => { -## Radio Group +## Rozhlasová skupina -Groups together related radio buttons. +Skupiny společně související rádiová tlačítka. @@ -98,12 +98,12 @@ export const MyComponent = () => { -| Vlastnosti | Typ | Popis | -| --------------- | ----------------- | ---------------------------------------------------------------------------------- | -| hodnota | řetězec | Hodnota aktuálně vybraného radiobuttonu | -| onChange | funkce | The callback function triggered when the radio button is changed | -| přiZměněHodnoty | funkce | Funkce spouštěná při změně vybrané hodnoty ve skupině. | -| děti | `React.ReactNode` | Allows you to pass React components (such as Radio) as children to the Radio Group | +| Vlastnosti | Typ | Popis | +| --------------- | ----------------- | ------------------------------------------------------------------------------ | +| hodnota | řetězec | Hodnota aktuálně vybraného radiobuttonu | +| onChange | funkce | Funkce zpětného volání spuštěná při změně rádiového tlačítka | +| přiZměněHodnoty | funkce | Funkce spouštěná při změně vybrané hodnoty ve skupině. | +| děti | `React.ReactNode` | Umožňuje předávat React komponenty (např. Radio) jako potomky do skupiny rádií | diff --git a/packages/twenty-docs/l/cs/user-guide/billing/how-tos/billing-faq.mdx b/packages/twenty-docs/l/cs/user-guide/billing/how-tos/billing-faq.mdx index fb2a8aed40..d925523a4f 100644 --- a/packages/twenty-docs/l/cs/user-guide/billing/how-tos/billing-faq.mdx +++ b/packages/twenty-docs/l/cs/user-guide/billing/how-tos/billing-faq.mdx @@ -16,11 +16,11 @@ Pokud chcete hostovat sami a potřebujete prémiové funkce (SSO a oprávnění Prémiové funkce jsou dostupné pouze v plánech Organization (Cloud nebo Self-Hosted): * **Integrace SSO**: Jednotné přihlášení s vaším poskytovatelem identity * **Oprávnění na úrovni řádků**: Jemně granulované řízení přístupu na úrovni záznamu -* **AI usage data**: Track AI consumption across the workspace +* **AI využití data**: Sledovat spotřebu AI v pracovním prostoru - -They offer the same premium features. However, a cloud subscription cannot be used for self-hosted deployments. Self-hosted requires an Enterprise key. + +Nabízejí stejné prémiové funkce. Předplatné cloudu však nelze použít pro vlastní hostované nasazení. Samostatně hostované potřebují klíč Enterprise. diff --git a/packages/twenty-docs/l/cs/user-guide/views-pipelines/how-tos/restrict-access-to-your-view.mdx b/packages/twenty-docs/l/cs/user-guide/views-pipelines/how-tos/restrict-access-to-your-view.mdx index a3f1dc5bcd..8011e65727 100644 --- a/packages/twenty-docs/l/cs/user-guide/views-pipelines/how-tos/restrict-access-to-your-view.mdx +++ b/packages/twenty-docs/l/cs/user-guide/views-pipelines/how-tos/restrict-access-to-your-view.mdx @@ -1,5 +1,5 @@ --- -title: Restrict Access to Your View +title: Omezit přístup k vašemu zobrazení description: Ovládejte, kdo může vidět vaše vlastní zobrazení. --- diff --git a/packages/twenty-docs/l/cs/user-guide/workflows/capabilities/workflow-actions.mdx b/packages/twenty-docs/l/cs/user-guide/workflows/capabilities/workflow-actions.mdx index 7e982fa64d..96fa63d504 100644 --- a/packages/twenty-docs/l/cs/user-guide/workflows/capabilities/workflow-actions.mdx +++ b/packages/twenty-docs/l/cs/user-guide/workflows/capabilities/workflow-actions.mdx @@ -256,7 +256,7 @@ Spouští vlastní JavaScript ve vašem pracovním postupu. * Testovat kód přímo ve kroku -Pokud potřebujete ve svém kódu použít externí klíče API, musíte je zadat přímo do těla funkce. You cannot configure API keys elsewhere and reference them in the logic function. +Pokud potřebujete ve svém kódu použít externí klíče API, musíte je zadat přímo do těla funkce. Nelze nakonfigurovat API klíče jinde a odkazovat na ně v logické funkci. diff --git a/packages/twenty-docs/l/cs/user-guide/workflows/capabilities/workflow-versions.mdx b/packages/twenty-docs/l/cs/user-guide/workflows/capabilities/workflow-versions.mdx index 59f4cb89d9..690c2aa206 100644 --- a/packages/twenty-docs/l/cs/user-guide/workflows/capabilities/workflow-versions.mdx +++ b/packages/twenty-docs/l/cs/user-guide/workflows/capabilities/workflow-versions.mdx @@ -1,5 +1,5 @@ --- -title: Workflow Versions +title: Verze pracovního postupu description: Spravujte verze a koncepty pracovních postupů. --- diff --git a/packages/twenty-docs/l/de/developers/contribute/capabilities/frontend-development/best-practices-front.mdx b/packages/twenty-docs/l/de/developers/contribute/capabilities/frontend-development/best-practices-front.mdx index 0911f87ffa..262fd840eb 100644 --- a/packages/twenty-docs/l/de/developers/contribute/capabilities/frontend-development/best-practices-front.mdx +++ b/packages/twenty-docs/l/de/developers/contribute/capabilities/frontend-development/best-practices-front.mdx @@ -62,23 +62,23 @@ Beachten Sie, dass Sie **immer** Re-Renderings vermeiden können, indem Sie dere Das Vermeiden von Re-Renderings in neuen Funktionen wird jetzt erleichtert, indem sie auf Root-Ebene eliminiert werden. -The `PageChangeEffect` sidecar component contains just one `useEffect` that holds all the logic to execute on a page change. +Die `PageChangeEffect`-Sidecar-Komponente enthält nur einen `useEffect`-Hook, der die gesamte Logik für den Seitenwechsel enthält. Auf diese Weise wissen Sie, dass es nur einen Ort gibt, der ein Re-Rendering auslösen kann. -### Always think twice before adding `useEffect` in your codebase +### Denken Sie immer zweimal nach, bevor Sie `useEffect` in Ihre Codebasis aufnehmen. -Re-renders are often caused by unnecessary `useEffect`. +Re-Renderings werden oft durch unnötige `useEffect`-Verwendungen verursacht. -You should think whether you need `useEffect`, or if you can move the logic in a event handler function. +Sie sollten überlegen, ob Sie `useEffect` benötigen oder ob Sie die Logik in eine Event-Handler-Funktion verschieben können. -You'll find it generally easy to move the logic in a `handleClick` or `handleChange` function. +Es ist in der Regel einfach, die Logik in eine `handleClick` oder `handleChange`-Funktion zu verschieben. Sie können sie auch in Bibliotheken wie Apollo finden: `onCompleted`, `onError`, usw. -### Use a sibling component to extract `useEffect` or data fetching logic +### Verwenden Sie eine Geschwisterkomponente, um `useEffect`- oder Datenabruf-Logik auszulagern. -If you feel like you need to add a `useEffect` in your root component, you should consider extracting it in a sidecar component. +Wenn Sie das Gefühl haben, Ihrer Root-Komponente einen `useEffect` hinzufügen zu müssen, sollten Sie erwägen, ihn in eine Sidecar-Komponente auszulagern. Dasselbe können Sie auch für die Datenabruflogik mit Apollo-Hooks anwenden. diff --git a/packages/twenty-docs/l/de/developers/contribute/capabilities/frontend-development/frontend-commands.mdx b/packages/twenty-docs/l/de/developers/contribute/capabilities/frontend-development/frontend-commands.mdx index 52171bf79c..e63ac88b37 100644 --- a/packages/twenty-docs/l/de/developers/contribute/capabilities/frontend-development/frontend-commands.mdx +++ b/packages/twenty-docs/l/de/developers/contribute/capabilities/frontend-development/frontend-commands.mdx @@ -74,7 +74,7 @@ Das Projekt hat einen sauberen und einfachen Stack mit minimalem Boilerplate-Cod [React Router](https://reactrouter.com/) übernimmt das Routing. -To avoid unnecessary [re-renders](/l/de/developers/contribute/capabilities/frontend-development/best-practices-front#managing-re-renders) all the routing logic is in a `useEffect` in `PageChangeEffect`. +Um unnötige [re-renders](/l/de/developers/contribute/capabilities/frontend-development/best-practices-front#managing-re-renders) zu vermeiden, befindet sich die gesamte Routing-Logik in einem `useEffect` in `PageChangeEffect`. ### Zustandsverwaltung diff --git a/packages/twenty-docs/l/de/developers/contribute/capabilities/frontend-development/hotkeys.mdx b/packages/twenty-docs/l/de/developers/contribute/capabilities/frontend-development/hotkeys.mdx index d7d86b8124..7476882747 100644 --- a/packages/twenty-docs/l/de/developers/contribute/capabilities/frontend-development/hotkeys.mdx +++ b/packages/twenty-docs/l/de/developers/contribute/capabilities/frontend-development/hotkeys.mdx @@ -127,9 +127,9 @@ const MyDropdownComponent = ({ onClose }: { onClose: () => void }) => { }; ``` -It's important to use this pattern when you're not sure that just using a useEffect with mount/unmount will be enough to avoid conflicts. +Es ist wichtig, dieses Muster zu verwenden, wenn du nicht sicher bist, dass die Verwendung eines useEffect mit mount/unmount ausreicht, um Konflikte zu vermeiden. -Those conflicts can be hard to debug, and it might happen more often than not with useEffects. +Diese Konflikte können schwer zu debuggen sein, und es kann öfter passieren, als nicht mit useEffects. ## Was ist ein Tastenkombinationsbereich? diff --git a/packages/twenty-docs/l/de/twenty-ui/input/text.mdx b/packages/twenty-docs/l/de/twenty-ui/input/text.mdx index 9c7811e8cf..ba70c61a33 100644 --- a/packages/twenty-docs/l/de/twenty-ui/input/text.mdx +++ b/packages/twenty-docs/l/de/twenty-ui/input/text.mdx @@ -48,16 +48,16 @@ export const MyComponent = () => { -| Props | Typ | Beschreibung | -| -------------- | --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | -| className | Zeichenkette | Optionaler Name für zusätzliche Stile | -| Beschriftung | Zeichenkette | Stellt die Beschriftung für das Eingabefeld dar | -| onChange | function | Die Funktion, die aufgerufen wird, wenn sich der Eingabewert ändert | -| volle Breite | boolesch | Gibt an, ob die Eingabe 100 % der Breite einnehmen soll | -| disableHotkeys | boolesch | Gibt an, ob Hotkeys für die Eingabe aktiviert sind | -| fehler | Zeichenkette | Stellt die Fehlermeldung dar, die angezeigt werden soll. Wenn vorhanden, wird auch ein Fehler-Icon auf der rechten Seite des Eingabefelds angezeigt | -| onKeyDown | Funktion | Wird aufgerufen, wenn eine Taste gedrückt gehalten wird, während das Eingabefeld fokussiert ist. Erhält ein `React.KeyboardEvent` als Argument | -| RightIcon | Icon-Komponente | Eine optionale Ikonenkomponente, die auf der rechten Seite des Eingabefelds angezeigt wird | +| Props | Typ | Beschreibung | +| -------------------- | --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | +| className | Zeichenkette | Optionaler Name für zusätzliche Stile | +| Beschriftung | Zeichenkette | Stellt die Beschriftung für das Eingabefeld dar | +| onChange | function | Die Funktion, die aufgerufen wird, wenn sich der Eingabewert ändert | +| volle Breite | boolesch | Gibt an, ob die Eingabe 100 % der Breite einnehmen soll | +| deaktivierte Hotkeys | boolesch | Gibt an, ob Hotkeys für die Eingabe aktiviert sind | +| fehler | Zeichenkette | Stellt die Fehlermeldung dar, die angezeigt werden soll. Wenn vorhanden, wird auch ein Fehler-Icon auf der rechten Seite des Eingabefelds angezeigt | +| onKeyDown | Funktion | Wird aufgerufen, wenn eine Taste gedrückt gehalten wird, während das Eingabefeld fokussiert ist. Erhält ein `React.KeyboardEvent` als Argument | +| Rechtes Icon | Icon-Komponente | Eine optionale Ikonenkomponente, die auf der rechten Seite des Eingabefelds angezeigt wird | @@ -103,11 +103,11 @@ export const MyComponent = () => { | Props | Typ | Beschreibung | | ----------- | ------------ | ---------------------------------------------------------------------------------------- | | onValidate | Funktion | Die Callback-Funktion, die Sie auslösen möchten, wenn der Benutzer die Eingabe validiert | -| minRows | nummer | Die minimale Anzahl von Zeilen für den Textbereich | +| minzeilen | nummer | Die minimale Anzahl von Zeilen für den Textbereich | | Platzhalter | Zeichenkette | Der Platzhaltertext, den Sie anzeigen möchten, wenn der Textbereich leer ist | -| onFocus | Funktion | Die Callback-Funktion, die Sie auslösen möchten, wenn der Textbereich den Fokus erlangt | +| onFokus | Funktion | Die Callback-Funktion, die Sie auslösen möchten, wenn der Textbereich den Fokus erlangt | | Variante | Zeichenkette | Die Variante der Eingabe. Optionen umfassen: `Standard`, `Ikone` und `Schaltfläche` | -| buttonTitle | Zeichenkette | Der Titel für die Schaltfläche (nur für die Schaltflächenvariante anwendbar) | +| tastentitel | Zeichenkette | Der Titel für die Schaltfläche (nur für die Schaltflächenvariante anwendbar) | | wert | Zeichenkette | Der Initialwert für den Textbereich | @@ -149,7 +149,7 @@ export const MyComponent = () => { | Props | Typ | Beschreibung | | ----------- | ------------ | ---------------------------------------------------------------------------- | | deaktiviert | boolesch | Gibt an, ob der Textbereich deaktiviert ist | -| minRows | nummer | Minimale Anzahl sichtbarer Zeilen für den Textbereich. | +| minzeilen | nummer | Minimale Anzahl sichtbarer Zeilen für den Textbereich. | | onChange | Funktion | Rückruffunktion wird ausgelöst, wenn sich der Inhalt des Textbereichs ändert | | Platzhalter | Zeichenkette | Platzhaltertext, der angezeigt wird, wenn der Textbereich leer ist | | wert | Zeichenkette | Der aktuelle Wert des Textbereichs | diff --git a/packages/twenty-docs/l/de/twenty-ui/input/toggle.mdx b/packages/twenty-docs/l/de/twenty-ui/input/toggle.mdx index 87e928a974..ce713e09a1 100644 --- a/packages/twenty-docs/l/de/twenty-ui/input/toggle.mdx +++ b/packages/twenty-docs/l/de/twenty-ui/input/toggle.mdx @@ -29,7 +29,7 @@ export const MyComponent = () => { | ------------- | ------------ | -------------------------------------------------------------------------------------------------------- | ------------ | | wert | boolesch | Der aktuelle Zustand des Umschalters | `falsch` | | onChange | Funktion | Callback-Funktion, die ausgelöst wird, wenn sich der Umschaltzustand ändert | | -| farbe | Zeichenkette | Farbe des Umschalters, wenn er | s blue color | +| farbe | Zeichenkette | Farbe des Umschalters, wenn er | s blau Farbe | | ToggleSize | Zeichenkette | Größe des Umschalters, beeinflusst sowohl Höhe als auch Gewicht. Hat zwei Optionen: `klein` und `mittel` | mittel | diff --git a/packages/twenty-docs/l/de/user-guide/ai/capabilities/permissions-access-control.mdx b/packages/twenty-docs/l/de/user-guide/ai/capabilities/permissions-access-control.mdx index a8a1ea5839..eef2bef6b5 100644 --- a/packages/twenty-docs/l/de/user-guide/ai/capabilities/permissions-access-control.mdx +++ b/packages/twenty-docs/l/de/user-guide/ai/capabilities/permissions-access-control.mdx @@ -1,5 +1,5 @@ --- -title: Permissions & Access Control +title: Berechtigungen & Zugriffskontrolle description: Steuern Sie, auf welche Daten KI-Agenten in Ihrem Arbeitsbereich zugreifen und was sie dort ändern können. --- diff --git a/packages/twenty-docs/l/de/user-guide/data-migration/how-tos/prepare-your-csv-files.mdx b/packages/twenty-docs/l/de/user-guide/data-migration/how-tos/prepare-your-csv-files.mdx index 5dc7d4ab6a..0c4e232448 100644 --- a/packages/twenty-docs/l/de/user-guide/data-migration/how-tos/prepare-your-csv-files.mdx +++ b/packages/twenty-docs/l/de/user-guide/data-migration/how-tos/prepare-your-csv-files.mdx @@ -1,5 +1,5 @@ --- -title: Prepare Your CSV Files +title: CSV-Dateien vorbereiten description: Vollständige Schritt-für-Schritt-Anleitung zum Formatieren deiner Daten für den Import in Twenty. --- diff --git a/packages/twenty-docs/l/de/user-guide/views-pipelines/how-tos/restrict-access-to-your-view.mdx b/packages/twenty-docs/l/de/user-guide/views-pipelines/how-tos/restrict-access-to-your-view.mdx index e5efacd032..d61c0b1fa6 100644 --- a/packages/twenty-docs/l/de/user-guide/views-pipelines/how-tos/restrict-access-to-your-view.mdx +++ b/packages/twenty-docs/l/de/user-guide/views-pipelines/how-tos/restrict-access-to-your-view.mdx @@ -1,5 +1,5 @@ --- -title: Restrict Access to Your View +title: Zugriff auf Ihre Ansicht beschränken description: Steuern Sie, wer Ihre benutzerdefinierten Ansichten sehen kann. --- diff --git a/packages/twenty-docs/l/de/user-guide/views-pipelines/how-tos/show-expected-amount-in-pipeline.mdx b/packages/twenty-docs/l/de/user-guide/views-pipelines/how-tos/show-expected-amount-in-pipeline.mdx index 56c8c0664a..4701ff55be 100644 --- a/packages/twenty-docs/l/de/user-guide/views-pipelines/how-tos/show-expected-amount-in-pipeline.mdx +++ b/packages/twenty-docs/l/de/user-guide/views-pipelines/how-tos/show-expected-amount-in-pipeline.mdx @@ -1,5 +1,5 @@ --- -title: Show Expected Amount in Your Pipeline +title: Erwarteter Betrag in Ihrer Pipeline anzeigen description: Gewichtete Deal‑Werte basierend auf der Phasenwahrscheinlichkeit berechnen und anzeigen. --- diff --git a/packages/twenty-docs/l/de/user-guide/workflows/capabilities/send-emails-from-workflows.mdx b/packages/twenty-docs/l/de/user-guide/workflows/capabilities/send-emails-from-workflows.mdx index 7244e8ee98..387cbc7ad8 100644 --- a/packages/twenty-docs/l/de/user-guide/workflows/capabilities/send-emails-from-workflows.mdx +++ b/packages/twenty-docs/l/de/user-guide/workflows/capabilities/send-emails-from-workflows.mdx @@ -135,7 +135,7 @@ Sie können Dateien an E-Mails anhängen, die von Workflows gesendet werden. Der | **Veranstaltungsbestätigungen** | Veranstaltungsdetails oder Agenda | -Anhänge sind statisch—dieselbe Datei wird an alle Empfänger gesendet. For dynamic documents (like personalized quotes), generate and attach files using a [Logic Function](/l/de/user-guide/workflows/how-tos/connect-to-other-tools/generate-pdf-from-twenty). +Anhänge sind statisch—dieselbe Datei wird an alle Empfänger gesendet. Für dynamische Dokumente (wie personalisierte Anführungszeichen), generieren und fügen Sie Dateien mit einer [Logic Funktion](/l/de/user-guide/workflows/how-tos/connect-to-other-tools/generate-pdf-from-twenty). ## Beste Praktiken diff --git a/packages/twenty-docs/l/de/user-guide/workflows/capabilities/workflow-actions.mdx b/packages/twenty-docs/l/de/user-guide/workflows/capabilities/workflow-actions.mdx index 74778fadab..59cbdce589 100644 --- a/packages/twenty-docs/l/de/user-guide/workflows/capabilities/workflow-actions.mdx +++ b/packages/twenty-docs/l/de/user-guide/workflows/capabilities/workflow-actions.mdx @@ -96,150 +96,150 @@ Erstellt einen neuen Datensatz oder aktualisiert einen vorhandenen anhand von Ü * Verwenden Sie Daten aus vorherigen Schritten, um Felder zu füllen -**How it works**: +**So funktioniert**: -1. Searches for a record matching your criteria -2. If found → updates the existing record -3. If not found → creates a new record +1. Sucht nach einem Datensatz, der Ihren Kriterien entspricht +2. Wenn gefunden → Aktualisiere den vorhandenen Eintrag +3. Wenn nicht gefunden → Erstelle einen neuen Datensatz -**Output**: The created or updated record data is available for use in subsequent steps. +**Ausgabe**: Die erstellten oder aktualisierten Datensatzdaten sind für die Verwendung in folgenden Schritten verfügbar. -## Flow Actions +## Flow-Aktionen ### Iterator -**Loops through an array of records** returned from a previous step, allowing you to perform actions on each record individually. +**Schleppt sich durch ein Array von Datensätzen** aus einem vorherigen Schritt, so dass du Aktionen auf jedem Datensatz einzeln ausführen kannst. **Konfiguration**: -* Select the array of records from a previous step (e.g., results from Search Records, from a Manual trigger with Bulk availability, from a code node) +* Wählen Sie ein Array von Datensätzen aus einem vorherigen Schritt (z.B. Ergebnisse von Suchdatensätzen, aus einem manuellen Trigger mit Bulk-Verfügbarkeit, von einem Codeknoten) * Definieren Sie die Aktionen, die für jeden Datensatz in der Schleife ausgeführt werden sollen. -- You can add several actions within an iterator. -- When using branches inside an iterator, make sure the last step of each branch connects back to the iterator to close the loop. +- Sie können mehrere Aktionen innerhalb eines Iterators hinzufügen. +- Wenn Sie Zweige innerhalb eines Iterators verwenden, stellen Sie sicher, dass sich der letzte Schritt jedes Zweiges mit dem Iterator verbindet, um die Schleife zu schließen. -* Access `Current Item` Fields: to use fields from the record currently being processed, click on the **Iterator** step, then select **Current item**. The list of available fields from that record will be displayed and can be selected for use in subsequent actions. +* Zugriff auf `Aktuelle Item` Felder: Um Felder aus dem aktuell verarbeiteten Datensatz zu verwenden, klicke auf den **Iterator** Schritt, dann wähle **Aktuelles Iterator**. Die Liste der verfügbaren Felder aus diesem Datensatz wird angezeigt und kann für die Verwendung in folgenden Aktionen ausgewählt werden. - + ### Filter -Filters records based on specified conditions, allowing only records that meet the criteria to pass through. +Filtert Datensätze basierend auf bestimmten Bedingungen, so dass nur Datensätze, die die Kriterien erfüllen, durchlaufen können. **Konfiguration**: -* Select the record to filter +* Datensatz zum filtern auswählen * Definieren Sie Filterbedingungen und Kriterien * Konfigurieren Sie, welche Datensätze in nachfolgende Schritte übergehen sollen -1. **Output**: Filter nodes don't return data—they act as gates. If the conditions are met, the workflow continues. If not, the workflow stops at that branch. -2. The `IS` operator can be used with numeric fields. It performs as an `EQUAL`. +1. **Ausgabe**: Filterknoten geben keine Daten zurück – sie fungieren als Tore. Wenn die Bedingungen erfüllt sind, geht der Workflow weiter. Wenn nicht, stoppt der Workflow an diesem Zweig. +2. Der "IS"-Operator kann mit numerischen Feldern verwendet werden. Es spielt als "EQUAL". -### Delay +### Verzögerung -Pauses workflow execution for a specified duration or until a specific date/time. +Behebt Workflow-Ausführung für eine bestimmte Dauer oder bis zu einem bestimmten Datum/Zeitpunkt. -**Delay Types**: +**Verzögerungstypen**: -| Typ | Beschreibung | -| ------------------ | ------------------------------------------------------------------ | -| **Duration** | Wait for a specific amount of time (days, hours, minutes, seconds) | -| **Scheduled Date** | Wait until a specific date and time | +| Typ | Beschreibung | +| ------------------- | ---------------------------------------------------------------- | +| **Dauer** | Warte auf eine bestimmte Zeit (Tage, Stunden, Minuten, Sekunden) | +| **Geplantes Datum** | Warten Sie bis zu einem bestimmten Datum und Zeit | -**Configuration for Duration**: +**Konfiguration für Dauern**: -* Set days, hours, minutes, and/or seconds -* Combine multiple units (e.g., 2 days and 4 hours) +* Tage, Stunden, Minuten und/oder Sekunden festlegen +* Mehrere Einheiten kombinieren (z. B. 2 Tage und 4 Stunden) -**Configuration for Scheduled Date**: +**Konfiguration für geplantes Datum**: -* Select a date and time -* Can reference a date field from a previous step (e.g., follow up 3 days after a meeting) +* Datum und Uhrzeit auswählen +* Kann ein Datumsfeld aus einem vorherigen Schritt referenzieren (z.B. 3 Tage nach einer Besprechung) **Anwendungsfälle**: -* Wait 24 hours before sending a follow-up email -* Pause until an opportunity's close date -* Schedule actions for business hours +* Warten Sie 24 Stunden bevor Sie eine Nachfass-E-Mail senden +* Pause bis zum Enddatum einer Gelegenheit +* Aufgaben für Geschäftszeiten planen -The scheduled date cannot be in the past. If a date field from a previous step is used and the date has already passed, the workflow will fail. +Das geplante Datum kann nicht in der Vergangenheit sein. Wenn ein Datumsfeld aus einem vorherigen Schritt verwendet wird und das Datum bereits abgelaufen ist, wird der Workflow fehlschlagen. **Limits & Credits**: -* **No maximum duration limit**—you can set delays of minutes, days, weeks, or longer -* **1 credit consumed** when the Delay node executes, regardless of duration -* **No credits consumed** while waiting—a 5-minute delay costs the same as a 5-day delay +* **Kein maximales Zeitlimit** - Du kannst Verzögerungen von Minuten, Tage, Wochen oder länger einstellen +* **1 Credits verbraucht** wenn der Delay Knoten ausgeführt wird, unabhängig von der Dauer +* **Kein Guthaben verbraucht** während des Wartens - eine 5-minütige Verzögerung kostet dasselbe wie eine 5-tägige Verzögerung -## Communication Actions +## Kommunikationsaktionen ### E-Mail senden -Sendet eine E-Mail aus Ihrem Workflow. This is great for templated group emails. Emails will look like the ones you send from your mailbox. -Not suited for newsletters (which require richer formatting) or automated email sequences. +Sendet eine E-Mail aus Ihrem Workflow. Dies ist ideal für vordefinierte Gruppenmails. E-Mails werden so aussehen, wie sie von Ihrem Postfach gesendet werden. +Nicht geeignet für Newsletter (die eine umfassendere Formatierung erfordern) oder für automatisierte E-Mail-Sequenzen. -**Prerequisites**: Add an email account in Settings → Accounts +**Voraussetzungen**: Fügen Sie ein E-Mail-Konto unter Einstellungen → Konten hinzu **Konfiguration**: -* Select the sender email account +* Wählen Sie das Absender-E-Mail-Konto -You can only send emails from mailboxes synced to your own Twenty account. Sending from other team members' mailboxes (e.g., the account owner's email) is on the roadmap. +Sie können nur E-Mails aus Postfächern versenden, die mit Ihrem eigenen Konto synchronisiert wurden. Das Versenden von Postfächern anderer Teammitglieder (z. B. die E-Mail des Kontoinhabers) ist auf der Roadmap. -For all the following steps, you can reference variables from previous steps for personalization. +Für alle folgenden Schritte können Sie Variablen aus früheren Schritten zur Personalisierung referenzieren. * E-Mail-Adresse des Empfängers eingeben. -Only one recipient is possible at the moment. +Im Moment ist nur ein Empfänger möglich. * Betreffzeile festlegen. -* Nachrichtentext verfassen. You can format links, create numbered list, bullet point lists, add attachments. +* Nachrichtentext verfassen. Sie können Links formatieren, nummerierte Liste, Aufzählungspunkte erstellen und Anhänge hinzufügen. -Adding HTML signatures is not possible at the moment. +Das Hinzufügen von HTML-Signaturen ist im Moment nicht möglich. ### Formular -Fordert während der Workflow-Ausführung ein Formular an, um Benutzereingaben zu sammeln. The responses can then be used in subsequent steps to create records, send emails, or execute any other action based on the input. +Fordert während der Workflow-Ausführung ein Formular an, um Benutzereingaben zu sammeln. Die Antworten können dann in folgenden Schritten verwendet werden, um Datensätze zu erstellen, E-Mails zu senden oder jede andere Aktion basierend auf der Eingabe auszuführen. -**Forms are designed for manual triggers only**. Bei Workflows mit anderen Triggern (Datensatz erstellt, aktualisiert, etc.) sind Formulare nur über die Workflow-Ausführungsoberfläche zugänglich, was nicht das erwartete Benutzererlebnis ist. Ein Benachrichtigungszentrum wird im Jahr 2026 eingeführt, um die Unterstützung von Formularen in automatisierten Workflows zu verbessern. +**Formulare sind nur für manuelle Trigger konzipiert**. Bei Workflows mit anderen Triggern (Datensatz erstellt, aktualisiert, etc.) sind Formulare nur über die Workflow-Ausführungsoberfläche zugänglich, was nicht das erwartete Benutzererlebnis ist. Ein Benachrichtigungszentrum wird im Jahr 2026 eingeführt, um die Unterstützung von Formularen in automatisierten Workflows zu verbessern. **Konfiguration**: -* Configure the fields that users will be asked to fill. For each field, choose - * a type among text, number, date, a given record, a select field. Select fields from all objects are available. - * a label - * a default value under `Placeholder` (optional) -* Edit the form title +* Konfigurieren Sie die Felder, die Benutzer ausfüllen sollen. Für jedes Feld wählen + * ein Typ unter Text, Nummer, Datum, gegebener Datensatz, ein Auswahlfeld. Wählen Sie Felder aus allen Objekten verfügbar. + * ein Label + * ein Standardwert unter `Platzhalter` (optional) +* Formulartitel bearbeiten **Ausgabe**: Formularantworten sind für nachfolgende Schritte verfügbar. -**Example**: The "Quick Lead" workflow is available by default in all workspaces, available anywhere in the Command Menu `Cmd + K`. +**Beispiel**: Der "Quick Lead"-Workflow ist standardmäßig in allen Arbeitsbereichen verfügbar, die überall im Kommandomenü `Cmd + K` verfügbar sind. -**How to fill the form**: +**So füllen Sie das Formular aus**: -* Trigger your manual workflow from the command menu `Cmd K` -* Fill the form that is displayed in the side panel and click `Submit`. +* Löse deinen manuellen Workflow aus dem Kommandomenü `Cmd K` aus +* Füllen Sie das Formular aus, das im Seitenfenster angezeigt wird, und klicken Sie auf "Absenden". -The fields cannot be made mandatory. +Die Felder können nicht obligatorisch gemacht werden. - + -## Integration Actions +## Integrationsaktionen ### Code @@ -247,24 +247,24 @@ Führt benutzerdefiniertes JavaScript in Ihrem Workflow aus. **Konfiguration**: -* Greifen Sie auf Variablen aus vorherigen Schritten zu. You can edit the variables names dynamically. +* Greifen Sie auf Variablen aus vorherigen Schritten zu. Sie können die Namen der Variablen dynamisch bearbeiten. - + * Schreiben Sie JavaScript-Code im Editor * Variablen zurückgeben, um sie in nachfolgenden Schritten zu verwenden * Code direkt im Schritt testen -If you need to use external API keys in your code, you must input them directly in the function body. Sie können API-Schlüssel nicht an anderer Stelle konfigurieren und sie dann in der Logikfunktion referenzieren. +Wenn Sie externe API-Schlüssel in Ihrem Code verwenden müssen, müssen Sie diese direkt in den Funktionskörper eingeben. Sie können API-Schlüssel nicht an anderer Stelle konfigurieren und sie dann in der Logikfunktion referenzieren. -**Working with arrays?** Arrays from external systems or previous steps may come as strings. See [How to handle arrays in Code actions](/l/de/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions) for the solution. +**Mit Arrays arbeiten?** Arrays von externen Systemen oder vorherigen Schritten können als Zeichenketten verwendet werden. Siehe [Wie man Arrays in Code-Aktionen behandelt](/l/de/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions) für die Lösung. -Click the square icon at the top right of the code editor to display it in full screen — helpful since the default editor width is limited. +Klicken Sie auf das quadratische Symbol oben rechts im Code-Editor, um es im Vollbildmodus anzuzeigen – hilfreich, da die Standardbreite des Editors begrenzt ist. ### HTTP-Anfrage @@ -275,37 +275,37 @@ Sendet eine Anfrage an eine externe API als Teil Ihres Workflows. **Konfiguration**: -* Geben Sie die API-Endpunkt-URL ein. Using parameters from previous steps is possible. +* Geben Sie die API-Endpunkt-URL ein. Die Verwendung von Parametern aus früheren Schritten ist möglich. * Wählen Sie die HTTP-Methode aus (GET, POST, PUT, PATCH, DELETE) * Erforderliche Header und Werte hinzufügen * Beispielantwort zur Strukturvorschau bereitstellen -## AI Actions +## KI-Aktionen -### AI Agent - Coming Soon +### AI Agent - demnächst -Runs an AI agent within your workflow to perform intelligent tasks. +Führt einen KI-Agent innerhalb Ihres Workflows aus, um intelligente Aufgaben auszuführen. **Konfiguration**: -* **Agent**: Select an existing AI agent or use the default agent -* **Prompt**: Write the instruction for the AI agent -* Reference variables from previous steps in the prompt +* **Agent**: Wähle einen vorhandenen KI-Agent oder verwende den Standardmakler +* **Anfrage**: Schreibe die Anweisung für den KI-Agent +* Referenzvariablen von vorherigen Schritten in der Promption -**What AI Agents can do**: +**Was KI Agenten tun können**: -* Analyze and summarize data -* Classify or categorize records -* Generate text content -* Make decisions based on data -* Interact with your CRM data using tools +* Daten analysieren und zusammenfassen +* Einträge klassifizieren oder kategorisieren +* Textinhalt generieren +* Entscheidungen auf Basis von Daten treffen +* Interagiere mit deinen CRM-Daten mithilfe von Tools -**Output**: The AI agent's response is available for use in subsequent steps. If the agent has a structured output schema, the response will follow that format. +**Ausgabe**: Die Antwort des KI-Agenten ist verfügbar für die Verwendung in folgenden Schritten. Wenn der Agent ein strukturiertes Ausgabeschema hat, folgt die Antwort diesem Format. -AI Agent actions consume workflow credits based on the AI model used. See [Workflow Credits](/l/de/user-guide/workflows/capabilities/workflow-credits) for details. +AI Agent-Aktionen verbrauchen Workflow-Credits basierend auf dem verwendeten KI-Modell. Siehe [Workflow Credits](/l/de/user-guide/workflows/capabilities/workflow-credits) für Details. -AI agents respect role-based permissions. Sie können Agenten unter **Einstellungen → Mitglieder → Rollen** bestimmte Rollen zuweisen, um zu steuern, auf welche Daten sie zugreifen können. See [Permissions](/l/de/user-guide/permissions-access/capabilities/permissions) for details. +Die AI-Agenten respektieren die rollenbasierten Genehmigungen. Sie können Agenten unter **Einstellungen → Mitglieder → Rollen** bestimmte Rollen zuweisen, um zu steuern, auf welche Daten sie zugreifen können. Siehe [Permissions](/l/de/user-guide/permissions-access/capabilities/permissions) für Details. diff --git a/packages/twenty-docs/l/es/developers/contribute/capabilities/frontend-development/best-practices-front.mdx b/packages/twenty-docs/l/es/developers/contribute/capabilities/frontend-development/best-practices-front.mdx index e416216c72..4392459313 100644 --- a/packages/twenty-docs/l/es/developers/contribute/capabilities/frontend-development/best-practices-front.mdx +++ b/packages/twenty-docs/l/es/developers/contribute/capabilities/frontend-development/best-practices-front.mdx @@ -62,23 +62,23 @@ Ten en cuenta que siempre puedes evitar re-renderizaciones comprendiendo su caus Ahora es fácil evitar re-renderizaciones en nuevas funciones eliminándolas a nivel de raíz. -The `PageChangeEffect` sidecar component contains just one `useEffect` that holds all the logic to execute on a page change. +El componente sidecar `PageChangeEffect` contiene sólo un `useEffect` que contiene toda la lógica a ejecutar en un cambio de página. De esa manera, sabes que solo hay un lugar que puede desencadenar una re-renderización. -### Always think twice before adding `useEffect` in your codebase +### Siempre piensa dos veces antes de añadir `useEffect` en tu base de código -Re-renders are often caused by unnecessary `useEffect`. +Re-renders son a menudo causados por `useEffect` innecesario. -You should think whether you need `useEffect`, or if you can move the logic in a event handler function. +Debería pensar si necesita `useEffect`, o si puede mover la lógica en una función manejadora de eventos. -You'll find it generally easy to move the logic in a `handleClick` or `handleChange` function. +Generalmente te resultará fácil mover la lógica en una función `handleClick` o `handleChange`. También puedes encontrarlas en bibliotecas como Apollo: `onCompleted`, `onError`, etc. -### Use a sibling component to extract `useEffect` or data fetching logic +### Usa un componente hermano para extraer `useEffect` o lógica de obtención de datos -If you feel like you need to add a `useEffect` in your root component, you should consider extracting it in a sidecar component. +Si crees que necesitas añadir un `useEffect` en tu componente raíz, deberías considerar extraerlo en un componente sidecar. Puedes aplicar lo mismo para la lógica de obtención de datos, con hooks de Apollo. diff --git a/packages/twenty-docs/l/es/developers/contribute/capabilities/frontend-development/frontend-commands.mdx b/packages/twenty-docs/l/es/developers/contribute/capabilities/frontend-development/frontend-commands.mdx index 5b744d239a..8df6cd754b 100644 --- a/packages/twenty-docs/l/es/developers/contribute/capabilities/frontend-development/frontend-commands.mdx +++ b/packages/twenty-docs/l/es/developers/contribute/capabilities/frontend-development/frontend-commands.mdx @@ -74,7 +74,7 @@ El proyecto tiene un stack limpio y sencillo, con un código boilerplate mínimo [React Router](https://reactrouter.com/) maneja el enrutamiento. -To avoid unnecessary [re-renders](/l/es/developers/contribute/capabilities/frontend-development/best-practices-front#managing-re-renders) all the routing logic is in a `useEffect` in `PageChangeEffect`. +Para evitar [re-renders]innecesarios (/developers/contribute/capabilities/frontend-development/best-practices-front#managing-re-renders) toda la lógica de enrutamiento está en un `useEffect` en `PageChangeEffect`. ### Gestión del Estado diff --git a/packages/twenty-docs/l/es/developers/contribute/capabilities/frontend-development/hotkeys.mdx b/packages/twenty-docs/l/es/developers/contribute/capabilities/frontend-development/hotkeys.mdx index 9f14f30cbd..ee3adbd2f4 100644 --- a/packages/twenty-docs/l/es/developers/contribute/capabilities/frontend-development/hotkeys.mdx +++ b/packages/twenty-docs/l/es/developers/contribute/capabilities/frontend-development/hotkeys.mdx @@ -127,9 +127,9 @@ const MyDropdownComponent = ({ onClose }: { onClose: () => void }) => { }; ``` -It's important to use this pattern when you're not sure that just using a useEffect with mount/unmount will be enough to avoid conflicts. +Es importante usar este patrón cuando no está seguro de que sólo usar useEffect con montaje/desmontaje sea suficiente para evitar conflictos. -Those conflicts can be hard to debug, and it might happen more often than not with useEffects. +Esos conflictos pueden ser difíciles de depurar y podría ocurrir con más frecuencia que con useEffects. ## ¿Qué es un ámbito de atajo de teclado? diff --git a/packages/twenty-docs/l/es/twenty-ui/display/app-tooltip.mdx b/packages/twenty-docs/l/es/twenty-ui/display/app-tooltip.mdx index 85403c7d40..080917368a 100644 --- a/packages/twenty-docs/l/es/twenty-ui/display/app-tooltip.mdx +++ b/packages/twenty-docs/l/es/twenty-ui/display/app-tooltip.mdx @@ -42,17 +42,17 @@ export const MyComponent = () => { -| Props | Tipo | Descripción | -| ------------------ | -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| nombreDeClase | cadena | Clase CSS opcional para estilo adicional | -| anchorSelect | Selector CSS | Selector para el ancla del consejo (el elemento que activa el consejo) | -| contenido | cadena | El contenido que desea mostrar dentro del consejo | -| delayHide | número | The delay in seconds before hiding the tooltip after the cursor leaves the anchor | -| desplazamiento | número | El desplazamiento en píxeles para posicionar el consejo | -| sinFlecha | booleano | Si es `true`, oculta la flecha en el consejo | -| estáAbierto | booleano | Si es `true`, el consejo está abierto por defecto | -| lugar | Cadena `PlacesType` de `react-tooltip` | Especifica la colocación del consejo. Los valores incluyen `inferior`, `izquierda`, `derecha`, `superior`, `superior-inicio`, `superior-fin`, `derecha-inicio`, `derecha-fin`, `inferior-inicio`, `inferior-fin`, `izquierda-inicio` y `izquierda-fin` | -| estrategiaPosicion | Cadena `PositionStrategy` de `react-tooltip` | Estrategia de posición para el consejo. Tiene dos valores: `absoluto` y `fijo` | +| Props | Tipo | Descripción | +| -------------------- | -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| nombreDeClase | cadena | Clase CSS opcional para estilo adicional | +| selección de anclaje | Selector CSS | Selector para el ancla del consejo (el elemento que activa el consejo) | +| contenido | cadena | El contenido que desea mostrar dentro del consejo | +| retrasaresPie | número | El retraso en segundos antes de ocultar la descripción después de que el cursor deje el ancla | +| desplazamiento | número | El desplazamiento en píxeles para posicionar el consejo | +| sinFlecha | booleano | Si es `true`, oculta la flecha en el consejo | +| estáAbierto | booleano | Si es `true`, el consejo está abierto por defecto | +| lugar | Cadena `PlacesType` de `react-tooltip` | Especifica la colocación del consejo. Los valores incluyen `inferior`, `izquierda`, `derecha`, `superior`, `superior-inicio`, `superior-fin`, `derecha-inicio`, `derecha-fin`, `inferior-inicio`, `inferior-fin`, `izquierda-inicio` y `izquierda-fin` | +| estrategiaPosicion | Cadena `PositionStrategy` de `react-tooltip` | Estrategia de posición para el consejo. Tiene dos valores: `absoluto` y `fijo` | diff --git a/packages/twenty-docs/l/es/twenty-ui/navigation/breadcrumb.mdx b/packages/twenty-docs/l/es/twenty-ui/navigation/breadcrumb.mdx index 023059b3d3..917a68fa41 100644 --- a/packages/twenty-docs/l/es/twenty-ui/navigation/breadcrumb.mdx +++ b/packages/twenty-docs/l/es/twenty-ui/navigation/breadcrumb.mdx @@ -35,10 +35,10 @@ export const MyComponent = () => { -| Props | Tipo | Descripción | -| ------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| nombreDeClase | cadena | Nombre de clase opcional para estilos adicionales | -| enlaces | matriz | An array of objects, each representing a breadcrumb link. Cada objeto tiene una propiedad `children` (el contenido de texto del enlace) y una propiedad `href` opcional (la URL a la que navegar cuando se hace clic en el enlace) | +| Props | Tipo | Descripción | +| ------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| nombreDeClase | cadena | Nombre de clase opcional para estilos adicionales | +| enlaces | matriz | Una matriz de objetos, cada uno que representa un enlace de migas de pan. Cada objeto tiene una propiedad `children` (el contenido de texto del enlace) y una propiedad `href` opcional (la URL a la que navegar cuando se hace clic en el enlace) | diff --git a/packages/twenty-docs/l/fr/developers/contribute/capabilities/backend-development/folder-architecture-server.mdx b/packages/twenty-docs/l/fr/developers/contribute/capabilities/backend-development/folder-architecture-server.mdx index 548e265f1b..62c038bfa7 100644 --- a/packages/twenty-docs/l/fr/developers/contribute/capabilities/backend-development/folder-architecture-server.mdx +++ b/packages/twenty-docs/l/fr/developers/contribute/capabilities/backend-development/folder-architecture-server.mdx @@ -21,7 +21,7 @@ server └───utils ``` -## Ability +## Compétence Définit les permissions et inclut des gestionnaires pour chaque entité. @@ -29,13 +29,13 @@ Définit les permissions et inclut des gestionnaires pour chaque entité. Définit des décorateurs personnalisés dans NestJS pour des fonctionnalités supplémentaires. -See [custom decorators](https://docs.nestjs.com/custom-decorators) for more details. +Voir [décorateurs personnalisés](https://docs.nestjs.com/custom-decorators) pour plus de détails. ## Filtres Inclut des filtres d'exception pour gérer les exceptions qui pourraient se produire dans les points de terminaison GraphQL. -## Guards +## Gardes Voir [gardiens](https://docs.nestjs.com/guards) pour plus de détails. diff --git a/packages/twenty-docs/l/fr/developers/contribute/capabilities/frontend-development/best-practices-front.mdx b/packages/twenty-docs/l/fr/developers/contribute/capabilities/frontend-development/best-practices-front.mdx index d0cd2b8d12..98d9e72d08 100644 --- a/packages/twenty-docs/l/fr/developers/contribute/capabilities/frontend-development/best-practices-front.mdx +++ b/packages/twenty-docs/l/fr/developers/contribute/capabilities/frontend-development/best-practices-front.mdx @@ -62,23 +62,23 @@ Gardez à l'esprit que vous pouvez **toujours** éviter les re-rendus en compren Éviter les re-rendus dans les nouvelles fonctionnalités est désormais facile en les éliminant au niveau racine. -The `PageChangeEffect` sidecar component contains just one `useEffect` that holds all the logic to execute on a page change. +Le composant latéral `PageChangeEffect` contient juste un `useEffect` qui contient toute la logique à exécuter sur un changement de page. De cette manière, vous savez qu'il n'y a qu'un seul endroit qui peut déclencher un re-rendu. -### Always think twice before adding `useEffect` in your codebase +### Réfléchissez toujours à deux fois avant d'ajouter `useEffect` dans votre code de base -Re-renders are often caused by unnecessary `useEffect`. +Les re-rendus sont souvent causés par un `useEffect` inutile. -You should think whether you need `useEffect`, or if you can move the logic in a event handler function. +Vous devriez vous demander si vous avez besoin de `useEffect`, ou si vous pouvez déplacer la logique dans une fonction de gestion d'événements. -You'll find it generally easy to move the logic in a `handleClick` or `handleChange` function. +Vous trouverez généralement facile de déplacer la logique dans une fonction `handleClick` ou `handleChange`. Vous pouvez également les trouver dans des bibliothèques comme Apollo : `onCompleted`, `onError`, etc. -### Use a sibling component to extract `useEffect` or data fetching logic +### Utilisez un composant frère pour extraire `useEffect` ou une logique de récupération de données -If you feel like you need to add a `useEffect` in your root component, you should consider extracting it in a sidecar component. +Si vous avez le sentiment que vous avez besoin d'ajouter un `useEffect` à votre composant racine, vous devriez envisager de l'extraire dans un composant de voiture latérale. Vous pouvez appliquer la même chose à la logique de récupération de données, avec les hooks Apollo. diff --git a/packages/twenty-docs/l/fr/developers/contribute/capabilities/frontend-development/frontend-commands.mdx b/packages/twenty-docs/l/fr/developers/contribute/capabilities/frontend-development/frontend-commands.mdx index a5189d596e..4793467198 100644 --- a/packages/twenty-docs/l/fr/developers/contribute/capabilities/frontend-development/frontend-commands.mdx +++ b/packages/twenty-docs/l/fr/developers/contribute/capabilities/frontend-development/frontend-commands.mdx @@ -74,7 +74,7 @@ Le projet a une stack simple et propre, avec un code boilerplate minimal. [React Router](https://reactrouter.com/) gère le routage. -To avoid unnecessary [re-renders](/l/fr/developers/contribute/capabilities/frontend-development/best-practices-front#managing-re-renders) all the routing logic is in a `useEffect` in `PageChangeEffect`. +Pour éviter les [re-renders](/l/fr/developers/contribute/capabilities/frontend-development/best-practices-front#managing-re-renders) inutiles toute la logique de routage est dans un `useEffect` dans `PageChangeEffect`. ### Gestion de l'État diff --git a/packages/twenty-docs/l/fr/developers/contribute/capabilities/frontend-development/hotkeys.mdx b/packages/twenty-docs/l/fr/developers/contribute/capabilities/frontend-development/hotkeys.mdx index dabc66aa83..6ca3f57b74 100644 --- a/packages/twenty-docs/l/fr/developers/contribute/capabilities/frontend-development/hotkeys.mdx +++ b/packages/twenty-docs/l/fr/developers/contribute/capabilities/frontend-development/hotkeys.mdx @@ -127,9 +127,9 @@ const MyDropdownComponent = ({ onClose }: { onClose: () => void }) => { }; ``` -It's important to use this pattern when you're not sure that just using a useEffect with mount/unmount will be enough to avoid conflicts. +Il est important d'utiliser ce masque lorsque vous n'êtes pas sûr que le simple fait d'utiliser un useEffect avec mount/unmount sera suffisant pour éviter les conflits. -Those conflicts can be hard to debug, and it might happen more often than not with useEffects. +Ces conflits peuvent être difficiles à déboger, et cela peut se produire plus souvent avec useEffects. ## Qu'est-ce qu'un périmètre de raccourci ? diff --git a/packages/twenty-docs/l/fr/twenty-ui/input/buttons.mdx b/packages/twenty-docs/l/fr/twenty-ui/input/buttons.mdx index 2d450751c7..a1899b8272 100644 --- a/packages/twenty-docs/l/fr/twenty-ui/input/buttons.mdx +++ b/packages/twenty-docs/l/fr/twenty-ui/input/buttons.mdx @@ -51,7 +51,7 @@ export const MyComponent = () => { | variante | chaîne | La variante de style visuel du bouton. Les options incluent `primaire`, `secondaire` et `tertiaire` | | taille | chaîne | La taille du bouton. A deux options : `small` et `medium` | | position | chaîne | La position du bouton par rapport à ses voisins. Les options incluent : `indépendant`, `gauche`, `droite` et `milieu` | -| accent | chaîne | La couleur d'accentuation du bouton. Options include: `default`, `blue`, and `danger` | +| accent | chaîne | La couleur d'accentuation du bouton. Les options incluent : `default`, `blue`, et `danger` | | Bient\u00f4t | booléen | Indique si le bouton est marqué comme "bientôt" (comme pour les futures fonctionnalités) | | désactivé | booléen | Spécifie si le bouton est désactivé ou non | | focus | booléen | Détermine si le bouton a le focus | @@ -130,8 +130,8 @@ export const MyComponent = () => { | Propriétés | Type | Description | | ----------- | --------- | -------------------------------------------------------------------------------------------------------------------- | | variante | chaîne | La variante de style visuel des boutons dans le groupe. Les options incluent `primaire`, `secondaire` et `tertiaire` | -| taille | chaîne | La taille des boutons dans le groupe. Has two options: `medium` and `small` | -| accent | chaîne | La couleur d'accentuation des boutons dans le groupe. Options include `default`, `blue` and `danger` | +| taille | chaîne | La taille des boutons dans le groupe. A deux options : `medium` et `small` | +| accent | chaîne | La couleur d'accentuation des boutons dans le groupe. Les options incluent `default`, `blue` et `danger` | | nomDeClasse | chaîne | Nom de classe facultatif pour le style supplémentaire | | enfants | ReactNode | Un tableau d'éléments React représentant les boutons individuels dans le groupe | diff --git a/packages/twenty-docs/l/fr/twenty-ui/input/toggle.mdx b/packages/twenty-docs/l/fr/twenty-ui/input/toggle.mdx index 97e31acd1e..15e78ed9ce 100644 --- a/packages/twenty-docs/l/fr/twenty-ui/input/toggle.mdx +++ b/packages/twenty-docs/l/fr/twenty-ui/input/toggle.mdx @@ -25,12 +25,12 @@ export const MyComponent = () => { -| Propriétés | Type | Description | Par défaut | -| -------------- | -------- | ------------------------------------------------------------------------------------------ | -------------------- | -| valeur | booléen | The current state of the toggle | `faux` | -| onChange | fonction | Callback function triggered when the toggle state changes | | -| couleur | chaîne | Color of the toggle when it\ | est de couleur bleue | -| tailleBasculer | chaîne | Size of the toggle, affecting both height and weight. A deux options : `small` et `medium` | moyen | +| Propriétés | Type | Description | Par défaut | +| -------------- | -------- | ------------------------------------------------------------------------------------------------------ | -------------------- | +| valeur | booléen | L'état actuel de la bascule | `faux` | +| onChange | fonction | Fonction de rappel déclenchée lorsque le bascule d'état change | | +| couleur | chaîne | Couleur de l'interrupteur quand il\ | est de couleur bleue | +| tailleBasculer | chaîne | Taille du commutateur, affectant à la fois la taille et le poids. A deux options : `small` et `medium` | moyen | diff --git a/packages/twenty-docs/l/fr/twenty-ui/introduction.mdx b/packages/twenty-docs/l/fr/twenty-ui/introduction.mdx index 92c8ede7cf..1c32ae2d2d 100644 --- a/packages/twenty-docs/l/fr/twenty-ui/introduction.mdx +++ b/packages/twenty-docs/l/fr/twenty-ui/introduction.mdx @@ -10,8 +10,8 @@ import { CardTitle } from "/snippets/card-title.mdx" - Display - Display components for showing information visually + Afficher + Afficher les composants pour afficher les informations visuellement @@ -20,12 +20,12 @@ import { CardTitle } from "/snippets/card-title.mdx" - Input - Input components for user interaction + Entrée + Composants d'entrée pour interaction utilisateur Navigation - Navigation components for user interface + Composants de navigation pour l'interface utilisateur diff --git a/packages/twenty-docs/l/fr/user-guide/billing/overview.mdx b/packages/twenty-docs/l/fr/user-guide/billing/overview.mdx index 07b6affb3d..049194acda 100644 --- a/packages/twenty-docs/l/fr/user-guide/billing/overview.mdx +++ b/packages/twenty-docs/l/fr/user-guide/billing/overview.mdx @@ -8,10 +8,10 @@ Twenty propose des formules tarifaires flexibles adaptées aux besoins de votre ## Dans cette section - + Découvrez les formules tarifaires de Twenty et ce qu'elles incluent. - + Questions fréquentes sur les tarifs et la facturation. diff --git a/packages/twenty-docs/l/fr/user-guide/data-migration/capabilities/field-mapping.mdx b/packages/twenty-docs/l/fr/user-guide/data-migration/capabilities/field-mapping.mdx index f36f2fc274..9037cfa58e 100644 --- a/packages/twenty-docs/l/fr/user-guide/data-migration/capabilities/field-mapping.mdx +++ b/packages/twenty-docs/l/fr/user-guide/data-migration/capabilities/field-mapping.mdx @@ -1,176 +1,176 @@ --- -title: Field Mapping -description: How field mapping works during data import. +title: Mappage des champs +description: Comment fonctionne la cartographie des champs pendant l'importation des données. --- import { VimeoEmbed } from '/snippets/vimeo-embed.mdx'; -## How Field Mapping Works +## Comment fonctionne la cartographie des champs -When you upload a file, Twenty analyzes your columns and attempts to match them to existing fields. +Lorsque vous téléchargez un fichier, 20 analysent vos colonnes et tentent de les faire correspondre aux champs existants. -### Automatic Mapping +### Mappage automatique -Twenty tries to match columns based on: +Vingt tentatives de faire correspondre les colonnes basées sur: -* Column header names (exact or similar matches) -* Data type detection (dates, numbers, emails) -* Common field patterns +* Noms d'en-tête de colonne (correspondances exactes ou similaires) +* Détection du type de données (dates, chiffres, emails) +* Modèles de champs communs -**Quick tip:** Export a few rows from the object you want to import. The exported file will have the exact column names Twenty expects, making automatic mapping seamless during import. +**Astuce rapide:** Exporter quelques lignes depuis l'objet que vous voulez importer. Le fichier exporté aura le nom exact des colonnes à 20 attendus, rendant le mappage automatique sans problème pendant l'importation. -### Manual Mapping Options +### Options de mappage manuel -For each column, you can: +Pour chaque colonne, vous pouvez: -* **Map to a field**: Select the matching Twenty field from a dropdown -* **Do not map**: Skip the column entirely (data won't be imported) +* **Mapper à un champ**: Sélectionnez le champ correspondant à 20 dans un menu déroulant +* **Ne pas mapper** : Ignorer entièrement la colonne (les données ne seront pas importées) -**Fields must exist before import.** The import creates records, not fields. Create custom fields under **Settings → Data Model** before importing. +**Les champs doivent exister avant l'importation.** L'importation crée des enregistrements, pas des champs. Créez des champs personnalisés sous **Paramètres → Modèle de données** avant d'importer. -## Field Type Compatibility +## Compatibilité du type de champ -All field types available in the Data Model are supported for import. +Tous les types de champs disponibles dans le Modèle de Données sont pris en charge pour l'importation. -You can also import `id` values to either assign a specific ID to new records or update existing ones. +Vous pouvez également importer des valeurs `id` pour assigner un ID spécifique à de nouveaux enregistrements ou mettre à jour les valeurs existantes. -## Data Format Requirements +## Exigences du format de données **Some fields have special syntax.** We recommend downloading the sample file before preparing your import to see the expected syntax for each field type. -### Address Fields +### Champs d'adresse -Address is a nested field with multiple columns. Some can be left empty. +L'adresse est un champ imbriqué avec plusieurs colonnes. Certains peuvent être laissés vides. -* **Address / Address 1**: Street address line 1 -* **Address / Address 2**: Street address line 2 -* **Address / City**: City name -* **Address / State**: State or province -* **Address / Country**: Country name -* **Address / Post Code**: Postal/ZIP code +* **Adresse / Adresse 1**: Rue ligne 1 +* **Adresse / Adresse 2** : Rue ligne 2 +* **Adresse / Ville** : Nom de la Ville +* **Adresse / État** : État ou province +* **Adresse / Pays** : Nom du pays +* **Adresse / Code postal**: Code postal -### Array Fields +### Champs de tableau -Use the following format: +Utilisez le format suivant : ``` ["value1","value2"] ``` -### Boolean Fields +### Champs booléens -Use `TRUE` or `FALSE` (uppercase) - not `true` or `false` +Utilisez `TRUE` ou `FALSE` (majuscule) - pas `true` ou `false` -### Currency Fields +### Champs de la devise -Currency is a nested field with two columns that **both must be filled**: +La devise est un champ imbriqué avec deux colonnes qui **doivent être remplies**: -* **Amount / Amount**: The numeric value (e.g., `1234.56`) -* **Amount / Currency**: The currency code (e.g., `USD`, `EUR`) +* **Montant / Montant** : La valeur numérique (par exemple, `1234.56`) +* **Montant / Devise** : Le code de la devise (par exemple, `USD`, `EUR`) -### Date Fields +### Champs de date -Supported formats: +Formats pris en charge : -* `YYYY-MM-DD` (recommended) -* `MM/DD/YYYY` -* `DD/MM/YYYY` +* `YYYY-MM-DD` (recommandé) +* `MM/DD/YYYYY` +* `JJ/MM/YYYY` * ISO 8601 format -### Domain Fields +### Champs de domaine -* It is recommended to use the format `https://domain.com` to avoid creating duplicates, as this is the format used for Companies created by the mailbox and calendar synchronizations -* A `Domain Label` and `Domain URL` can be filled: best practice is to fill `domain.com` in the label and `https://domain.com` in the url -* Domains must be unique within the Companies object -* **Domains must be unique within the file to import** +* Il est recommandé d'utiliser le format `https://domain. om` pour éviter de créer des doublons, car c'est le format utilisé pour les entreprises créées par la boîte aux lettres et les synchronisations de calendrier +* Un `label de domaine` et `URL de domaine` peuvent être remplis : la meilleure pratique est de remplir `domain.com` dans l'étiquette et `https://domain.com` dans l'url +* Les domaines doivent être uniques au sein de l'objet Entreprises +* **Les domaines doivent être uniques dans le fichier à importer** -### Email Fields +### Champs e-mail -* Must be valid email format -* Emails must be unique within the People object -* **Emails must be unique within the file to import** -* For additional emails: use **Emails / Primary Email** for the main email, and **Emails / Additional Emails** with this format: +* Doit être un format d'email valide +* Les e-mails doivent être uniques dans l'objet People +* **Les e-mails doivent être uniques dans le fichier à importer** +* Pour les e-mails supplémentaires: utilisez **Emails / Courriel Primaire** pour l'e-mail principal, et **Emails / E-mails Supplémentaires** avec ce format: ``` ["jane@twenty.com","jane.doe@twenty.com"] ``` -### Id Fields +### Champs ID -Specifying an `id` during import is optional. Twenty auto-generates one if not provided. +Spécifier un `id` pendant l'importation est optionnel. Vingt auto-génère une si elle n'est pas fournie. -Use cases for mapping an `id` column: +Utiliser des cas pour mapper une colonne `id`: -* **Set a specific ID**: Choose the UUID for newly created records -* **Update existing records**: Match against existing records to update them instead of creating duplicates. In that case, it is recommended to not map the other unique fields: mapping only one unique field ensures a smoother import. +* **Définit un ID spécifique** : Choisissez l'UUID pour les enregistrements nouvellement créés +* **Mettre à jour les enregistrements existants**: Faites correspondre avec les enregistrements existants pour les mettre à jour au lieu de créer des doublons. Dans ce cas, il est recommandé de ne pas cartographier les autres champs uniques: la cartographie d'un seul champ unique garantit une importation plus fluide. If you provide an `id`, it must be in UUID format (e.g., `c776ee49-f608-4a77-8cc8-6fe96ae1e43f`). -### JSON Fields +### Champs JSON -Use valid JSON format: +Utiliser un format JSON valide : ``` {"key":"value","key2":"value2"} ``` -### Links Fields +### Champs de liens -Similar to Domain fields: +Semblable aux champs de domaine: -* Fill both the label and URL columns: **Links / Link URL** and **Links / Link Label** -* Use full URL format: `https://example.com` -* For secondary links, use **Links / Secondary Links** column with this format: +* Remplissez à la fois le libellé et les colonnes d'URL : **Liens / URL de liaison** et **Liens / Étiquette de lien** +* Utiliser le format complet de l'URL : `https://example.com` +* Pour les liens secondaires, utilisez la colonne **Liens / Liens secondaires** avec ce format : ``` [{"url":"https://twenty.com","label":"Twenty"}] ``` -### Multi-Select Fields +### Champs à sélection multiple -Use the **API names** (not the display labels) in the following format: +Utilisez les **noms de l'API** (pas les libellés d'affichage) dans le format suivant : ``` ["VALUE1","VALUE2"] ``` -See [here](#finding-api-names-for-select-fields) where to find the API names. +Voir [here](#finding-api-names-for-select-fields) où trouver les noms de l'API. -New select options will not be created automatically by the import. They must be added under **Settings → Data Model** before importing. +New select options will not be created automatically by the import. Ils doivent être ajoutés dans **Paramètres → Modèle de données** avant d'importer. -**Import overwrites, it does not add.** +**Importation écrasée, elle n'ajoute pas.** -If a record already has `VALUE2` and `VALUE3` selected, and you import `["VALUE1"]`, the record will only have `VALUE1` after import. The previous selections are replaced, not merged. +Si un enregistrement a déjà `VALUE2` et `VALUE3` sélectionnés, et que vous importez `["VALUE1"]`, l'enregistrement n'aura `VALUE1` qu'après l'importation. Les sélections précédentes sont remplacées, non fusionnées. -### Number Fields +### Nombre de champs -* Numbers only -* Decimals use period: `1234.56` -* No thousands separators +* Numéros uniquement +* Les décimales utilisent la période: `1234.56` +* Pas de milliers de séparateurs -### Phone Fields +### Champs du téléphone -Phone is a nested field with multiple columns that **must be filled** +Le téléphone est un champ imbriqué avec plusieurs colonnes qui **doivent être remplies** -* **Phones / Primary Phone Number**: The phone number (e.g., `4159095555`) -* **Phones / Primary Phone Country Code**: Country code (e.g., `US`) -* **Phones / Primary Phone Calling Code**: Dialing code (e.g., `+1`) +* **Téléphones / Numéro de téléphone principal**: le numéro de téléphone (par exemple, `4159095555`) +* **Téléphones / Code de pays de téléphone principal**: Code pays (par exemple, `US`) +* **Téléphones / Code d'appel téléphonique principal**: Code d'appel (par exemple, `+1`) -### Rating Fields +### Champs d'évaluation -Use the API name format: `RATING_1`, `RATING_2`, `RATING_3`, `RATING_4`, `RATING_5` +Utilisez le format du nom de l'API: `RATING_1`, `RATING_2`, `RATING_3`, `RATING_4`, `RATING_5` ### Champs de relation -Please see our dedicated article: [Import Relations Between Objects](/l/fr/user-guide/data-migration/capabilities/import-relations) +Veuillez consulter notre article dédié : [Importer des relations entre les objets](/l/fr/user-guide/data-migration/capabilities/import-relations) ### Champs de sélection -Use the **API name** of the option (not the display label): +Utilisez le **nom de l'API** de l'option (pas l'étiquette d'affichage) : ``` VALUE1 diff --git a/packages/twenty-docs/l/fr/user-guide/settings/capabilities/workspace-settings.mdx b/packages/twenty-docs/l/fr/user-guide/settings/capabilities/workspace-settings.mdx index 6bf3110f24..4e934e242d 100644 --- a/packages/twenty-docs/l/fr/user-guide/settings/capabilities/workspace-settings.mdx +++ b/packages/twenty-docs/l/fr/user-guide/settings/capabilities/workspace-settings.mdx @@ -3,7 +3,7 @@ title: Paramètres de l'espace de travail description: Personnalisez le nom et la marque de votre espace de travail. --- -Those are accessible under **Settings → General**. +Elles sont accessibles dans **Paramètres → Général**. ## Image de l'espace de travail diff --git a/packages/twenty-docs/l/it/developers/self-host/capabilities/troubleshooting.mdx b/packages/twenty-docs/l/it/developers/self-host/capabilities/troubleshooting.mdx index 7c6d089c42..da2f8671d2 100644 --- a/packages/twenty-docs/l/it/developers/self-host/capabilities/troubleshooting.mdx +++ b/packages/twenty-docs/l/it/developers/self-host/capabilities/troubleshooting.mdx @@ -5,8 +5,8 @@ icon: wrench ## Risoluzione dei problemi -If you encounter any problem while setting up environment for development, upgrading your instance or self-hosting, -here are some solutions for common problems. +Se riscontri qualche problema durante l'impostazione dell'ambiente per lo sviluppo, l'aggiornamento della tua istanza o l'auto-hosting, +qui sono alcune soluzioni per problemi comuni. ### Auto-ospitato @@ -31,7 +31,7 @@ docker compose up -d #### CR interruzioni di linea trovate [Windows] -This is due to the line break characters of Windows and the git configuration. Prova a eseguire: +Ciò è dovuto ai caratteri di interruzione di riga di Windows e la configurazione git. Prova a eseguire: ``` git config --global core.autocrlf false @@ -43,17 +43,17 @@ Quindi elimina il repository e clonalo nuovamente. Durante l'installazione di Twenty, devi fornire il tuo database postgres con gli schemi, le estensioni e gli utenti corretti. Se riesci a eseguire correttamente questo provisioning, dovresti avere schemi `default` e `metadata` nel tuo database. -If you don't, make sure you don't have more than one postgres instance running on your computer. +Se non lo fai, assicurati di non avere più di un'istanza di postgres in esecuzione sul tuo computer. -#### Cannot find module 'twenty-emails' or its corresponding type declarations. +#### Impossibile trovare il modulo 'twenty-emails' o le relative dichiarazioni di tipo corrispondente. -You have to build the package `twenty-emails` before running the initialization of the database with `npx nx run twenty-emails:build` +Devi costruire il pacchetto `twenty-emails` prima di avviare l'inizializzazione del database con `npx nx run twenty-emails:build` #### Pacchetto twenty-x mancante Assicurati di eseguire yarn nella directory principale e poi esegui `npx nx server:dev twenty-server`. Se ancora non funziona prova a costruire manualmente il pacchetto mancante. -#### Lint on Save not working +#### Lint su Salva non funzionante Questo dovrebbe funzionare direttamente con l'estensione Oxc (`oxc.oxc-vscode`) installata. Se questo non funziona prova ad aggiungere questo alle impostazioni di vscode (nello scope del container di sviluppo): @@ -69,8 +69,8 @@ Questo dovrebbe funzionare direttamente con l'estensione Oxc (`oxc.oxc-vscode`) Esegui solo i servizi di cui hai bisogno, invece di `npx nx start`. Ad esempio, se lavori sul server, esegui solo `npx nx worker twenty-server` -**If it does not work:** -If you tried to run only `npx nx run twenty-server:start` on WSL and it's failing with the below memory error: +**Se non funziona:** +Se hai provato ad eseguire solo `npx nx run twenty-server:start` su WSL e sta fallendo con l'errore di memoria sottostante: `ERRORE FATALE: Mark-compacts inefficaci vicino al limite dell'heap Assegnazione fallita - heap di memoria JavaScript esaurito` @@ -81,11 +81,11 @@ Il metodo alternativo è eseguire il seguente comando nel terminale o aggiungerl Il flag --max-old-space-size=8192 imposta un limite massimo di 8GB per l'heap di Node.js; l'utilizzo si adatta alla domanda dell'applicazione. Riferimento: https://stackoverflow.com/questions/56982005/where-do-i-set-node-options-max-old-space-size-2048 -**If it does not work:** -Investigate which processes are taking you most of your machine RAM. In Twenty, abbiamo notato che alcune estensioni di VScode stavano occupando molta RAM quindi le disabilitiamo temporaneamente. +**Se non funziona:** +indaga quali processi ti stanno portando la maggior parte della tua RAM. In Twenty, abbiamo notato che alcune estensioni di VScode stavano occupando molta RAM quindi le disabilitiamo temporaneamente. -**If it does not work:** -Restart your machine helps to clean up ghost processes. +**Se non funziona:** +Riavviare la macchina aiuta a ripulire i processi fantasma. #### Durante l'esecuzione di `npx nx start` ci sono strani [0] e [1] nei log @@ -138,7 +138,7 @@ Gli avvisi informano sul caricamento di dipendenze aggiuntive che non sono espli * Se è ricevuta una **richiesta POST**, il tuo worker è in esecuzione con successo. In caso contrario, devi risolvere i problemi del tuo worker. -#### Front-end fails to start and returns error TS5042: Option 'project' cannot be mixed with source files on a command line +#### Front-end non riesce ad avviare e restituisce l'errore TS5042: L'opzione 'project' non può essere miscelata con i file sorgente su una riga di comando Commenta il plugin checker in `packages/twenty-ui/vite-config.ts` come mostrato nell'esempio sotto diff --git a/packages/twenty-docs/l/it/user-guide/calendar-emails/how-tos/limit-emails-imported.mdx b/packages/twenty-docs/l/it/user-guide/calendar-emails/how-tos/limit-emails-imported.mdx index db4713a62f..df9760aa08 100644 --- a/packages/twenty-docs/l/it/user-guide/calendar-emails/how-tos/limit-emails-imported.mdx +++ b/packages/twenty-docs/l/it/user-guide/calendar-emails/how-tos/limit-emails-imported.mdx @@ -1,5 +1,5 @@ --- -title: Limit Emails Imported +title: Email Limite Importate description: Controlla quali email vengono importate in Twenty. --- diff --git a/packages/twenty-docs/l/it/user-guide/data-model/capabilities/relation-fields.mdx b/packages/twenty-docs/l/it/user-guide/data-model/capabilities/relation-fields.mdx index 67b1211a93..50311961ff 100644 --- a/packages/twenty-docs/l/it/user-guide/data-model/capabilities/relation-fields.mdx +++ b/packages/twenty-docs/l/it/user-guide/data-model/capabilities/relation-fields.mdx @@ -47,7 +47,7 @@ Le relazioni molti-a-molti utilizzano lo schema dell'**oggetto di giunzione**: u **Funzionalità di laboratorio**: le relazioni di giunzione devono essere abilitate in **Impostazioni → Aggiornamenti → Lab** prima dell'uso. -See [How to Create Many-to-Many Relations](/l/it/user-guide/data-model/how-tos/create-many-to-many-relations) for a complete step-by-step guide. +Vedi [Come creare molte relazioni](/l/it/user-guide/data-model/how-tos/create-many-to-many-relations) per una guida completa passo-passo. ## Creazione di un campo di relazione diff --git a/packages/twenty-docs/l/it/user-guide/data-model/how-tos/customize-your-data-model.mdx b/packages/twenty-docs/l/it/user-guide/data-model/how-tos/customize-your-data-model.mdx index e812a124ea..0f73bcef27 100644 --- a/packages/twenty-docs/l/it/user-guide/data-model/how-tos/customize-your-data-model.mdx +++ b/packages/twenty-docs/l/it/user-guide/data-model/how-tos/customize-your-data-model.mdx @@ -1,5 +1,5 @@ --- -title: Customize Your Data Model +title: Personalizza Il Modello Di Dati description: Panoramica delle opzioni di personalizzazione del modello di dati. --- diff --git a/packages/twenty-docs/l/it/user-guide/permissions-access/overview.mdx b/packages/twenty-docs/l/it/user-guide/permissions-access/overview.mdx index cd43c04db8..5f808f5999 100644 --- a/packages/twenty-docs/l/it/user-guide/permissions-access/overview.mdx +++ b/packages/twenty-docs/l/it/user-guide/permissions-access/overview.mdx @@ -1,5 +1,5 @@ --- -title: Permissions & Access +title: Permessi E Accesso description: Gestisci ruoli, permessi e il controllo degli accessi nel tuo spazio di lavoro. --- diff --git a/packages/twenty-docs/l/it/user-guide/views-pipelines/how-tos/restrict-access-to-your-view.mdx b/packages/twenty-docs/l/it/user-guide/views-pipelines/how-tos/restrict-access-to-your-view.mdx index 8806e861e4..ce327b2266 100644 --- a/packages/twenty-docs/l/it/user-guide/views-pipelines/how-tos/restrict-access-to-your-view.mdx +++ b/packages/twenty-docs/l/it/user-guide/views-pipelines/how-tos/restrict-access-to-your-view.mdx @@ -1,5 +1,5 @@ --- -title: Restrict Access to Your View +title: Limita l'accesso alla tua vista description: Controlla chi può vedere le tue visualizzazioni personalizzate. --- diff --git a/packages/twenty-docs/l/it/user-guide/workflows/capabilities/workflow-branches.mdx b/packages/twenty-docs/l/it/user-guide/workflows/capabilities/workflow-branches.mdx index 595eb3e1e5..6af44ef5bb 100644 --- a/packages/twenty-docs/l/it/user-guide/workflows/capabilities/workflow-branches.mdx +++ b/packages/twenty-docs/l/it/user-guide/workflows/capabilities/workflow-branches.mdx @@ -1,5 +1,5 @@ --- -title: Workflow Branches +title: Rami Di Workflow description: Crea percorsi paralleli e logica condizionale nei tuoi flussi di lavoro. --- diff --git a/packages/twenty-docs/l/ja/developers/contribute/capabilities/frontend-development/best-practices-front.mdx b/packages/twenty-docs/l/ja/developers/contribute/capabilities/frontend-development/best-practices-front.mdx index d382cd4209..30f76a78d9 100644 --- a/packages/twenty-docs/l/ja/developers/contribute/capabilities/frontend-development/best-practices-front.mdx +++ b/packages/twenty-docs/l/ja/developers/contribute/capabilities/frontend-development/best-practices-front.mdx @@ -62,23 +62,23 @@ React で再レンダリングを管理するのは難しいことがありま 新機能での再レンダリングをルートレベルで排除することで、簡単に避けることができるようになりました。 -The `PageChangeEffect` sidecar component contains just one `useEffect` that holds all the logic to execute on a page change. +`PageChangeEffect` サイドカーコンポーネントには、ページ変更時に実行するすべてのロジックを保持する `useEffect` が1つだけ含まれています。 その方法で、再レンダリングを引き起こす場所が 1 つだけあることを認識できます。 -### Always think twice before adding `useEffect` in your codebase +### コードベースに `useEffect` を追加する前に、常に考えてください。 -Re-renders are often caused by unnecessary `useEffect`. +再レンダリングは、しばしば不要な `useEffect` によって引き起こされます。 -You should think whether you need `useEffect`, or if you can move the logic in a event handler function. +`useEffect` が必要か、イベントハンドラ関数でロジックを動かせるか考えるべきです。 -You'll find it generally easy to move the logic in a `handleClick` or `handleChange` function. +「handleClick」関数や「handleChange」関数の中で、ロジックを簡単に動かすことができます。 Apollo などのライブラリで `onCompleted`、`onError` などとしても見つかることがあります。 -### Use a sibling component to extract `useEffect` or data fetching logic +### 兄弟コンポーネントを使用して、`useEffect` またはデータ取得ロジックを抽出します。 -If you feel like you need to add a `useEffect` in your root component, you should consider extracting it in a sidecar component. +ルートコンポーネントに `useEffect` を追加する必要があると思われる場合は、サイドカーコンポーネント内で展開することを検討する必要があります。 Apollo フックを使用してデータ取得ロジックにも同じことを適用できます。 diff --git a/packages/twenty-docs/l/ja/developers/contribute/capabilities/frontend-development/frontend-commands.mdx b/packages/twenty-docs/l/ja/developers/contribute/capabilities/frontend-development/frontend-commands.mdx index dca5a9bbdd..96c9dd8b43 100644 --- a/packages/twenty-docs/l/ja/developers/contribute/capabilities/frontend-development/frontend-commands.mdx +++ b/packages/twenty-docs/l/ja/developers/contribute/capabilities/frontend-development/frontend-commands.mdx @@ -74,7 +74,7 @@ npx nx run twenty-front:storybook:coverage # (needs yarn storybook:serve:dev to [React Router](https://reactrouter.com/)はルーティングを処理します。 -To avoid unnecessary [re-renders](/l/ja/developers/contribute/capabilities/frontend-development/best-practices-front#managing-re-renders) all the routing logic is in a `useEffect` in `PageChangeEffect`. +不要な [re-renders](/l/ja/developers/contribute/capabilities/frontend-development/best-practices-front#managing-re-renders) を避けるために、すべてのルーティングロジックは `PageChangeEffect` の `useEffect` にあります。 ### 状態管理 diff --git a/packages/twenty-docs/l/ja/developers/contribute/capabilities/frontend-development/hotkeys.mdx b/packages/twenty-docs/l/ja/developers/contribute/capabilities/frontend-development/hotkeys.mdx index bdc76ef57c..806c1dca22 100644 --- a/packages/twenty-docs/l/ja/developers/contribute/capabilities/frontend-development/hotkeys.mdx +++ b/packages/twenty-docs/l/ja/developers/contribute/capabilities/frontend-development/hotkeys.mdx @@ -127,9 +127,9 @@ const MyDropdownComponent = ({ onClose }: { onClose: () => void }) => { }; ``` -It's important to use this pattern when you're not sure that just using a useEffect with mount/unmount will be enough to avoid conflicts. +mount/unmount で useEffect を使うだけで、競合を避けるのに十分なことがわからない場合は、このパターンを使用することが重要です。 -Those conflicts can be hard to debug, and it might happen more often than not with useEffects. +これらの競合はデバッグが難しく、useEffectsを使わないよりも頻繁に発生する可能性があります。 ## ホットキースコープとは? diff --git a/packages/twenty-docs/l/ja/twenty-ui/input/radio.mdx b/packages/twenty-docs/l/ja/twenty-ui/input/radio.mdx index 543e6b3100..f8b08a9711 100644 --- a/packages/twenty-docs/l/ja/twenty-ui/input/radio.mdx +++ b/packages/twenty-docs/l/ja/twenty-ui/input/radio.mdx @@ -98,12 +98,12 @@ export const MyComponent = () => { -| プロパティ | タイプ | 説明 | -| ------------- | ----------------- | ---------------------------------------------------------------------------------- | -| 値 | string | 現在選択されているラジオボタンの値 | -| onChange | 機能 | ラジオボタンが変更されたときにトリガーされるコールバック関数 | -| onValueChange | 機能 | グループ内の選択された値が変更されたときにトリガーされるコールバック関数。 | -| children | `React.ReactNode` | Allows you to pass React components (such as Radio) as children to the Radio Group | +| プロパティ | タイプ | 説明 | +| ------------- | ----------------- | ---------------------------------------------------- | +| 値 | string | 現在選択されているラジオボタンの値 | +| onChange | 機能 | ラジオボタンが変更されたときにトリガーされるコールバック関数 | +| onValueChange | 機能 | グループ内の選択された値が変更されたときにトリガーされるコールバック関数。 | +| children | `React.ReactNode` | Radio Groupの子要素として (Radioなど) React コンポーネントを渡すことができます | diff --git a/packages/twenty-docs/l/ja/twenty-ui/input/select.mdx b/packages/twenty-docs/l/ja/twenty-ui/input/select.mdx index c42b71af8e..2f13f958ed 100644 --- a/packages/twenty-docs/l/ja/twenty-ui/input/select.mdx +++ b/packages/twenty-docs/l/ja/twenty-ui/input/select.mdx @@ -38,14 +38,14 @@ export const MyComponent = () => { -| プロパティ | タイプ | 説明 | -| --------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------- | -| className | string | 追加のスタイリング用のオプションのCSSクラス | -| disabled | ブール型 | `true` に設定すると、コンポーネントとのユーザーインタラクションが無効になります。 | -| ラベル | string | `選択` コンポーネントの目的を説明するラベル | -| onChange | 関数 | 選択された値が変更されたときに呼び出される機能 | -| オプション | 配列 | Represents the options available for the `Selected` component. 各オブジェクトが `value`(一意の識別子)、`label`(一意の識別子)、およびオプションの `アイコン` を持つオブジェクトの配列です。 | -| 値 | string | 現在選択されている値を表します。 その `options` 配列の `value` プロパティのいずれかと一致する必要があります。 | +| プロパティ | タイプ | 説明 | +| --------- | ------ | ------------------------------------------------------------------------------------------------------------- | +| className | string | 追加のスタイリング用のオプションのCSSクラス | +| disabled | ブール型 | `true` に設定すると、コンポーネントとのユーザーインタラクションが無効になります。 | +| ラベル | string | `選択` コンポーネントの目的を説明するラベル | +| onChange | 関数 | 選択された値が変更されたときに呼び出される機能 | +| オプション | 配列 | `Selected` コンポーネントで使用できるオプションを表します。 各オブジェクトが `value`(一意の識別子)、`label`(一意の識別子)、およびオプションの `アイコン` を持つオブジェクトの配列です。 | +| 値 | string | 現在選択されている値を表します。 その `options` 配列の `value` プロパティのいずれかと一致する必要があります。 | diff --git a/packages/twenty-docs/l/ja/twenty-ui/input/text.mdx b/packages/twenty-docs/l/ja/twenty-ui/input/text.mdx index 2dfa10b267..2d3181711f 100644 --- a/packages/twenty-docs/l/ja/twenty-ui/input/text.mdx +++ b/packages/twenty-docs/l/ja/twenty-ui/input/text.mdx @@ -53,8 +53,8 @@ export const MyComponent = () => { | className | string | 追加スタイル用のオプション名 | | ラベル | string | 入力のラベルを表します。 | | onChange | function | 入力値が変わるときに呼び出される関数 | -| fullWidth | ブール型 | Indicates whether the input should take up 100% of the width | -| disableHotkeys | ブール型 | Indicates whether hotkeys are enabled for the input | +| fullWidth | ブール型 | 入力が幅の100%を占めるかどうかを示します | +| disableHotkeys | ブール型 | 入力でホットキーが有効になっているかどうかを示します | | エラー | string | 表示されるエラーメッセージを表します。 指定された場合、入力の右側にアイコンエラーも追加されます。 | | onKeyDown | 機能 | 入力フィールドにフォーカスがあるときにキーが押されたときに呼び出されます。 入力フィールドにフォーカスがあるときにキーが押されたときに呼び出されます。 Receives a `React.KeyboardEvent` as an argument | | 右アイコン | アイコンコンポーネント | 入力の右側に表示されるオプションのアイコンコンポーネント | @@ -100,15 +100,15 @@ export const MyComponent = () => { -| プロパティ | タイプ | 説明 | -| ---------- | ------ | ------------------------------------------------------------------------ | -| onValidate | 機能 | ユーザーが入力を検証するときにトリガーされるコールバック関数 | -| 最小行数 | 数 | The minimum number of rows for the text area | -| プレースホルダー | string | The placeholder text you want to display when the text area is empty | -| onFocus | 機能 | テキストエリアにフォーカスが当たったときにトリガーされるコールバック関数 | -| バリアント | string | The variant of the input. オプションには `default`、 `icon`、および `button` が含まれます。 | -| ボタンタイトル | string | ボタンのタイトル(ボタンのバリアントの場合のみ適用可能) | -| 値 | string | テキストエリアの初期値 | +| プロパティ | タイプ | 説明 | +| ---------- | ------ | ---------------------------------------------------------- | +| onValidate | 機能 | ユーザーが入力を検証するときにトリガーされるコールバック関数 | +| 最小行数 | 数 | テキスト領域の最小行数 | +| プレースホルダー | string | テキストエリアが空の場合に表示するプレースホルダー テキスト | +| onFocus | 機能 | テキストエリアにフォーカスが当たったときにトリガーされるコールバック関数 | +| バリアント | string | 入力のバリエーション。 オプションには `default`、 `icon`、および `button` が含まれます。 | +| ボタンタイトル | string | ボタンのタイトル(ボタンのバリアントの場合のみ適用可能) | +| 値 | string | テキストエリアの初期値 | diff --git a/packages/twenty-docs/l/ja/user-guide/ai/how-tos/ai-faq.mdx b/packages/twenty-docs/l/ja/user-guide/ai/how-tos/ai-faq.mdx index dfce416357..4a4670f627 100644 --- a/packages/twenty-docs/l/ja/user-guide/ai/how-tos/ai-faq.mdx +++ b/packages/twenty-docs/l/ja/user-guide/ai/how-tos/ai-faq.mdx @@ -1,31 +1,31 @@ --- title: AI FAQ -description: Frequently asked questions about AI features in Twenty. +description: Twenty の AI 機能に関するよくある質問。 --- - - AI features are currently in development and will be released in beta soon. Stay tuned for updates! + + AI機能は現在開発中で、まもなくベータ版がリリースされる予定です。 アップデートをお楽しみに! - - We're building two main AI capabilities: + + 私たちは2つの主要なAI機能を構築しています。 - 1. **AI Chatbot**: A context-aware assistant that can access your Twenty data and help you with queries - 2. **AI Agents in Workflows**: Intelligent automation that can process data, make decisions, and execute tasks within your workflows + 1. **AI Chatbot**: 20 のデータにアクセスし、クエリをサポートするコンテキスト認識アシスタント + 2. **ワークフローのAIエージェント**:ワークフロー内でデータの処理、意思決定、タスクの実行を行うインテリジェントな自動化。 - - AI agents will operate under the permission system. **設定 → メンバー → ロール** で AIエージェントに特定のロールを割り当て、アクセスできるデータと実行できるアクションを完全に制御できます。 + + AIエージェントは許可システムの下で動作します。 **設定 → メンバー → ロール** で AIエージェントに特定のロールを割り当て、アクセスできるデータと実行できるアクションを完全に制御できます。 - - AI actions will consume workflow credits based on the complexity of the task and the AI model used. More details will be available when the features launch. + + AIアクションは、タスクの複雑さと使用されるAIモデルに基づいてワークフローのクレジットを消費します。 機能の起動時に詳細が表示されます。 - - Initially, Twenty will use built-in AI models. Support for custom or external AI models may be added in future releases based on user feedback. + + 当初、Twenty は組み込みの AI モデルを使用します。 今後のリリースでは、ユーザーからのフィードバックに基づいてカスタムモデルまたは外部AIモデルのサポートが追加される可能性があります。 diff --git a/packages/twenty-docs/l/ja/user-guide/billing/how-tos/billing-faq.mdx b/packages/twenty-docs/l/ja/user-guide/billing/how-tos/billing-faq.mdx index a8c8ba9846..e06bfd15d3 100644 --- a/packages/twenty-docs/l/ja/user-guide/billing/how-tos/billing-faq.mdx +++ b/packages/twenty-docs/l/ja/user-guide/billing/how-tos/billing-faq.mdx @@ -1,21 +1,21 @@ --- -title: Billing FAQ -description: Frequently asked questions about Twenty pricing and billing. +title: お支払いに関する FAQ +description: 価格設定と請求についてのよくある質問。 --- ## 料金 -はい、自分でホストしながら無料で利用できます。 You will get access to everything included in the Pro (Cloud) plan, except the support from our core-team. サポートはDiscordコミュニティを通じて利用可能です。 +はい、自分でホストしながら無料で利用できます。 弊社のコアチームのサポートを除き、Pro (クラウド) プランに含まれるすべてのものにアクセスできます。 サポートはDiscordコミュニティを通じて利用可能です。 -If you want to self-host and need the Premium features (SSO and row-level permissions), you can choose the paid Organization (Self-Hosted) license. This also includes support from the Twenty team and removes the requirement to publish custom code as open-source before distributing. +自己ホストを行い、プレミアム機能(SSOと行レベルの権限)が必要な場合は、有料の組織(セルフホスティング)ライセンスを選択できます。 これには、Twenty チームのサポートも含まれており、配布する前に、カスタム コードをオープンソースとして公開する必要がなくなります。 - -Premium features are only available on the Organization plans (Cloud or Self-Hosted): -* **SSO integration**: Single Sign-On with your identity provider -* **Row-level permissions**: Fine-grained access control at the record level + +プレミアム機能は、組織プラン(クラウドまたはセルフホスティングプラン)でのみ利用できます。 +* **SSO統合**: IDプロバイダーとのシングルサインオンformat@@0 +* **行レベルの権限**: レコードレベルでの細かいアクセス制御 * **AI 利用データ**: ワークスペース全体の AI 消費を追跡します。 @@ -48,7 +48,7 @@ Premium features are only available on the Organization plans (Cloud or Self-Hos -The number of credits depends on your billing cycle, not your plan: +クレジットの数は、あなたのプランではなく、請求サイクルによって異なります。 * **月額サブスクリプション**: 毎月5クレジット * **年間サブスクリプション**: 1年あたり50クレジット diff --git a/packages/twenty-docs/l/ja/user-guide/dashboards/capabilities/widgets.mdx b/packages/twenty-docs/l/ja/user-guide/dashboards/capabilities/widgets.mdx index 90f448cb73..40c1262a83 100644 --- a/packages/twenty-docs/l/ja/user-guide/dashboards/capabilities/widgets.mdx +++ b/packages/twenty-docs/l/ja/user-guide/dashboards/capabilities/widgets.mdx @@ -9,12 +9,12 @@ import { ChartIcon } from '/snippets/chart-icon.mdx'; Twentyは、CRMデータを可視化するためのさまざまなウィジェットタイプを提供します。 -### Bar Charts +### 棒グラフ データを横棒または縦棒で表示します。 -Bar chart +棒グラフ **最適な用途:** @@ -30,15 +30,15 @@ Twentyは、CRMデータを可視化するためのさまざまなウィジェ * 月別のコンタクト追加数 -**Display limits**: Bar charts can show a maximum of 100 bars, and 50 groups per bar when using Group By. 警告 "Undisplayed data: max X bars per chart" が表示された場合は、フィルターを追加してデータを絞り込むか、グルーピングを変更します(例: 日単位ではなく週単位でグループ化)。 +**制限を表示**: 棒グラフは、Group Byを使用する場合、最大100小節、および1小節あたり50グループを表示できます。 警告 "Undisplayed data: max X bars per chart" が表示された場合は、フィルターを追加してデータを絞り込むか、グルーピングを変更します(例: 日単位ではなく週単位でグループ化)。 -### Pie Charts +### 円グラフ 全体に占める割合を表示します。 -Pie chart +円グラフ **最適な用途:** @@ -53,12 +53,12 @@ Twentyは、CRMデータを可視化するためのさまざまなウィジェ * 業種別のコンタクト内訳 * 担当者別のパイプライン構成 -### Line Charts +### 折れ線グラフ 時間の経過に伴う傾向を表示します。 -Line chart +折れ線グラフ **最適な用途:** @@ -73,12 +73,12 @@ Twentyは、CRMデータを可視化するためのさまざまなウィジェ * 四半期ごとの売上成長 * 活動量の推移 -### Aggregate Charts +### グラフ 重要な単一値を目立つ形で表示します。 -Aggregate chart +集計グラフ **最適な用途:** @@ -98,7 +98,7 @@ Twentyは、CRMデータを可視化するためのさまざまなウィジェ * **比率**: Select フィールドで、値同士の比率を計算します。 **Data on display** → フィールドを選択 → **Ratio** オプションを有効にします。 * **Prefix & Suffix**: 可読性を高めるために、数値の前後にカスタムテキストを追加します(例: "$" のプレフィックスや "%" のサフィックス)。 -### iFrames +### iFrame 外部ツールやコンテンツをダッシュボードに直接埋め込みます。 @@ -118,25 +118,25 @@ Twentyは、CRMデータを可視化するためのさまざまなウィジェ * ダイヤラーの指標 * セールスシーケンスツールのライブコンテンツ -### Rich Text +### リッチテキスト -Add formatted text and content directly to your dashboard. +書式設定されたテキストとコンテンツをダッシュボードに直接追加します。 -Rich text +リッチテキスト **最適な用途:** -* Adding context or instructions -* Dashboard descriptions -* Notes and annotations +* 説明または説明を追加する +* ダッシュボードの説明 +* メモと注釈 -**Features:** +**機能:** -* Rich text formatting (bold, italic, lists, etc.) -* Image and file uploads -* Markdown-style editing +* リッチテキストの書式設定(太字、斜体、リストなど) +* 画像とファイルのアップロード +* Markdown スタイルの編集 **近日提供予定**: ゲージチャートとテーブルはまだ利用できませんが、ロードマップに含まれています。 diff --git a/packages/twenty-docs/l/ja/user-guide/data-model/how-tos/create-custom-fields.mdx b/packages/twenty-docs/l/ja/user-guide/data-model/how-tos/create-custom-fields.mdx index edf54a2515..923572110b 100644 --- a/packages/twenty-docs/l/ja/user-guide/data-model/how-tos/create-custom-fields.mdx +++ b/packages/twenty-docs/l/ja/user-guide/data-model/how-tos/create-custom-fields.mdx @@ -1,72 +1,72 @@ --- -title: Create Custom Fields -description: Step-by-step guide to adding custom fields to any object. +title: カスタムフィールドの作成 +description: 任意のオブジェクトにカスタムフィールドを追加するためのステップバイステップガイド --- -Custom fields let you capture information specific to your business. Add them to any object—standard or custom. +カスタムフィールドを使用すると、ビジネス固有の情報をキャプチャできます。 それらを任意のオブジェクト — 標準またはカスタムに追加します。 -## Steps +## 歩数 -1. Go to **Settings → Data Model** -2. Select the object you want to add a field to -3. Click **+ Add Field** -4. Choose a **field type** (see [Fields](/l/ja/user-guide/data-model/capabilities/fields) for all types) -5. Enter the **field name** and optional description -6. Configure field-specific settings (see below) +1. **設定 → データモデル** に移動 +2. フィールドを追加するオブジェクトを選択します。 +3. **+ Add Field** をクリックします +4. **フィールドタイプ** を選択してください (すべてのタイプについては [Fields](/l/ja/user-guide/data-model/capabilities/fields) を参照してください) +5. **フィールド名** と説明を入力してください +6. フィールド固有の設定を構成します (下記参照) 7. **保存**をクリック -**Quick method:** Click the **+** at the end of column headers in any table view → **Customize fields**. +**クイックメソッド** テーブルビューの列ヘッダーの最後に **+** をクリックします → **フィールドをカスタマイズ** 。 -## Show the Field in Views +## ビューにフィールドを表示 -New fields aren't automatically visible. To display: +新しいフィールドは自動的に表示されません。 表示する: -1. Open the object's table view -2. Click **Options → Fields** -3. Click the **eye icon** next to your field to show it -4. Drag to reorder +1. オブジェクトのテーブルビューを開く +2. **オプション → フィールド** をクリックします。 +3. フィールドの横にある **目のアイコン** をクリックして表示します +4. ドラッグして並べ替え -## Configuration Options +## 設定オプション -### For Select / Multi-Select +### 選択/複数選択用 -1. Click **+ Add option** to create choices -2. Set a **default option** if desired -3. Drag to reorder options +1. **+ オプションを追加**をクリックして選択肢を作成します +2. 必要に応じて**デフォルトオプション**を設定してください +3. ドラッグして並べ替えオプション -**Use API names for imports.** Enable **Advanced mode** in Settings to see API names. See [Field Mapping](/l/ja/user-guide/data-migration/capabilities/field-mapping). +**インポートにAPI名を使用します。** API名を表示するには、設定で**詳細モード**を有効にします。 [Field Mapping](/l/ja/user-guide/data-migration/capabilities/field-mapping)を参照してください。 -### For Currency Fields +### 通貨フィールド用 -Set the **default currency** (USD, EUR, etc.) for new records. +**デフォルトの通貨** (米ドル、ユーロなど) を設定します。 新しい記録の為に -### For Phone Fields +### 電話項目用 -Set the **default country code** to pre-fill for new phone numbers. +新しい電話番号を入力するには、**デフォルトの国コード**を設定してください。 -### Making a Field Unique +### フィールドをユニークにする -Toggle **Unique** to prevent duplicate values across records. +**ユニーク**をオンにすると、レコード間の重複値を防ぐことができます。 -If duplicates exist (including in deleted records), you'll get an error. Clean up duplicates first. +重複が(削除されたレコードを含む)存在する場合、エラーが発生します。 重複を最初にクリーンアップします。 -### Setting Default Values +### デフォルト値の設定 -For Select fields, you can choose which option is pre-selected for new records. For Checkbox fields, set whether it's checked or unchecked by default. +format@@0フィールドでは、新規レコードに事前に選択されているオプションを選択できます。 チェックボックス項目では、デフォルトでチェックボックスかチェックオフかを設定します。 -## Deactivating a Field +## フィールドを無効にしています -1. Go to **Settings → Data Model** -2. Find the field +1. **設定 → データモデル** に移動 +2. フィールドを探す 3. Click **⋮ → Deactivate** -Data is preserved. You can reactivate or permanently delete later. +データは保存されます。 再アクティブ化または後で永久に削除できます。 -## Related +## 関連 -* [Fields](/l/ja/user-guide/data-model/capabilities/fields) — all field types explained -* [Data Model FAQ](/l/ja/user-guide/data-model/how-tos/data-model-faq) — common questions +* [Fields](/l/ja/user-guide/data-model/capabilities/fields) — すべてのフィールドタイプについて説明されています +* [Data Model FAQ](/l/ja/user-guide/data-model/how-tos/data-model-faq) — よくある質問 diff --git a/packages/twenty-docs/l/ja/user-guide/getting-started/capabilities/what-is-twenty.mdx b/packages/twenty-docs/l/ja/user-guide/getting-started/capabilities/what-is-twenty.mdx index b673c897d8..972c156f5f 100644 --- a/packages/twenty-docs/l/ja/user-guide/getting-started/capabilities/what-is-twenty.mdx +++ b/packages/twenty-docs/l/ja/user-guide/getting-started/capabilities/what-is-twenty.mdx @@ -1,6 +1,6 @@ --- -title: What is Twenty -description: Twenty is an open-source CRM that gives you the building blocks to create exactly what your business needs. +title: 二十歳とは? +description: 「Twenty」はオープンソースのCRMで、お客様のビジネスニーズに合った構成要素を提供します。 --- ## ビジョン @@ -14,7 +14,7 @@ description: Twenty is an open-source CRM that gives you the building blocks to その結果、CRMはあまりにも基本的なものか、万能選手を目指して結果的にどれも得意でないものになります。 最初は、トゥエンティはあなたが既に知っているほとんどのCRMと同じように見えます:取引の追跡、連絡先の整理、タスクやノートの管理ができます。 -**But what sets it apart is our approach to extensibility. We are building an open platform that provides the building blocks for you to solve your unique business problems.** +**しかし、それを区別するのは、拡張性へのアプローチです。 私たちはあなたのビジネス上の問題を解決するためのブロックを提供するオープンなプラットフォームを構築しています。** 我々は機能リストよりも、普遍的な原則と共通のパターンを優先します。 すべての答えを出そうとはせず、代わりにユーザーが最も効果的な方法を見つけるのを助けます。 @@ -30,11 +30,11 @@ description: Twenty is an open-source CRM that gives you the building blocks to ## 主な機能 -* **Calendar & Emails:** Sync your mailbox and calendar to see all communications on your CRM records. [詳細はこちら](/l/ja/user-guide/calendar-emails/overview). -* **Data Model:** Create custom objects and fields to match your unique business processes. [Explore](/l/ja/user-guide/data-model/overview). -* **Data Migration:** Import and export your data via CSV or API. [始める](/l/ja/user-guide/data-migration/overview). -* **Views & Pipelines:** Organize your data with table views, kanban boards, and sales pipelines. [Discover](/l/ja/user-guide/views-pipelines/overview). -* **Workflows:** Automate your business processes and integrate with external tools. [Build automations](/l/ja/user-guide/workflows/overview). +* **カレンダーとメール:** メールボックスとカレンダーを同期してCRMレコード上のすべての通信を見ることができます。 [詳細はこちら](/l/ja/user-guide/calendar-emails/overview). +* **データモデル:** 独自のビジネスプロセスに合わせてカスタムオブジェクトとフィールドを作成します。 [Explore](/l/ja/user-guide/data-model/overview). +* **データの移行:** CSVまたはAPI経由でデータをインポートしてエクスポートします。 [始める](/l/ja/user-guide/data-migration/overview). +* **ビューとパイプライン:** テーブルビュー、カンバンボード、販売パイプラインでデータを整理します。 [Discover](/l/ja/user-guide/views-pipelines/overview). +* **ワークフロー:** ビジネスプロセスを自動化し、外部ツールと統合します。 [Build automations](/l/ja/user-guide/workflows/overview). * **AI:** AI搭載の機能やエージェントでCRMを強化します。 [AIを詳しく見る](/l/ja/user-guide/ai/overview)。 * **ダッシュボード:** カスタムレポートや可視化でパフォーマンスを追跡します。 [ダッシュボードを表示](/l/ja/user-guide/dashboards/overview)。 * **権限とアクセス:** ロールベースの権限で、誰がデータを閲覧、編集、管理できるかを制御します。 [アクセスを設定](/l/ja/user-guide/permissions-access/overview)。 diff --git a/packages/twenty-docs/l/ja/user-guide/permissions-access/overview.mdx b/packages/twenty-docs/l/ja/user-guide/permissions-access/overview.mdx index 620f714899..b1c4970aad 100644 --- a/packages/twenty-docs/l/ja/user-guide/permissions-access/overview.mdx +++ b/packages/twenty-docs/l/ja/user-guide/permissions-access/overview.mdx @@ -1,6 +1,6 @@ --- title: 権限とアクセス -description: Manage roles, permissions, and access control in your workspace. +description: ワークスペースのロール、権限、およびアクセス制御を管理します。 --- Twentyの権限システムは、ワークスペース内のデータに誰がアクセスし、変更できるかを制御できます。 ロールを作成し、権限を割り当て、安全なアクセスのためにSSOを構成します。 diff --git a/packages/twenty-docs/l/ja/user-guide/views-pipelines/how-tos/set-up-a-sales-pipeline.mdx b/packages/twenty-docs/l/ja/user-guide/views-pipelines/how-tos/set-up-a-sales-pipeline.mdx index 62128de1a0..bf4e02084a 100644 --- a/packages/twenty-docs/l/ja/user-guide/views-pipelines/how-tos/set-up-a-sales-pipeline.mdx +++ b/packages/twenty-docs/l/ja/user-guide/views-pipelines/how-tos/set-up-a-sales-pipeline.mdx @@ -1,120 +1,120 @@ --- -title: Set Up a Sales Pipeline -description: Configure your sales pipeline to track opportunities through stages. +title: セールスパイプラインの設定 +description: ステージを介して商談を追跡するための販売パイプラインを設定します。 --- import { VimeoEmbed } from '/snippets/vimeo-embed.mdx'; -A sales pipeline in Twenty is a Kanban view of your Opportunities object, where each column represents a stage in your sales process. +Twenty の Sales パイプラインは、商談オブジェクトのカンバン ビューです。各列は、販売プロセスのステージを表します。 -## Step 1: Configure Your Stages +## ステップ 1: ステージの設定 -Stages are defined in the Opportunities object's **Stage** field. +ステージは商談オブジェクトの **ステージ** 項目で定義されます。 -1. Go to **Settings → Data Model** -2. Select **Opportunities** -3. Find and click the **Stage** field -4. Add, remove, or rename stages to match your process +1. **設定 → データモデル** に移動 +2. **商談** を選択 +3. **ステージ**フィールドを見つけてクリックしてください +4. あなたのプロセスに合わせてステージを追加、削除、またはリネームします - + -### Recommended Stages +### 推奨ステージ -| ステージ | Purpose | -| --------------- | ----------------------------------- | -| **New** | Fresh opportunities just identified | -| **Qualified** | Confirmed as a good fit | -| **Meeting** | Engaged in discussions | -| **Proposal** | Proposal sent | -| **Negotiation** | Working on terms | -| **Closed Won** | Deal successful | -| **Closed Lost** | Deal unsuccessful | +| ステージ | 目的 | +| ---------- | ---------------- | +| **新しい** | 特定されたばかりの新鮮な機会 | +| **適格** | 良いフィットとして確認されました | +| **ミーティング** | ディスカッションに参加 | +| **提案** | 提案が送信されました | +| **交渉** | 用語で作業する | +| **獲得完了** | 取引が成功しました | +| **閉鎖失敗** | 取引に失敗しました | -**5-7 stages is optimal.** Too many stages makes the pipeline hard to scan; too few loses visibility into deal progress. +**5~7段階が最適です。** パイプラインをスキャンするのが難しくなりすぎます。ディールの進行状況が見えなくなります。 -## Step 2: Create a Pipeline View +## ステップ 2: パイプラインビューを作成 -1. Go to **Opportunities** -2. Click the view dropdown → **+ Add view** -3. Name it "Sales Pipeline" -4. Click **Create** -5. Open **Options** and select **Kanban** as the layout +1. **商談** に移動 +2. ビュードロップダウンをクリックして → **+ ビューを追加** +3. 「セールスパイプライン」という名前を付けてください +4. **作成**をクリックしてください +5. **Options** を開き、レイアウトとして **Kanban** を選択します -The view automatically uses the Stage field for columns. +ビューは自動的に列に format@@0 フィールドを使用します。 -## Step 3: Configure Your View +## ステップ 3: ビューの構成 -### Show Key Fields +### キーフィールドを表示 -1. Click **Options → Fields** -2. Look for fields in the "Hidden Fields" section -3. Click the **eye icon** to display: Company, Amount, Close Date, Owner +1. **オプション → フィールド** をクリックします。 +2. 「非表示フィールド」セクションのフィールドを探します +3. **目のアイコン**をクリックすると、会社、金額、日付を閉じる、オーナーが表示されます。 -### Enable Aggregations +### 集計を有効にする -Show totals at the top of each column: +各列の上部に合計を表示: -1. Click the number displayed next to a Stage name at the top of a column -2. Select the aggregation type (Count, Sum, Average, etc.) -3. Choose the field to aggregate (e.g., Amount) +1. 列の上部にあるステージ名の横に表示される数字をクリックします +2. 集計の種類(カウント、合計、平均など)を選択します。 +3. 集計するフィールドを選択します(例:金額) -**Example:** Show total deal value per stage by aggregating Amount with Sum. +**例:** 合計金額を集計してステージごとのディール値を表示します。 -### Use Compact View (Optional) +### コンパクトビューの使用 (オプション) -For a high-level overview with minimal card content: +最小限のカードコンテンツを持つ高レベルの概要: -1. Click **Options** -2. Turn on the toggle for **Compact view** +1. **Options** をクリックします +2. **コンパクトビュー** のトグルをオンにする -## Step 4: Create Personal and Team Views +## ステップ 4: 個人ビューとチームビューを作成 -### "My Pipeline" +### "パイプライン" -* **Filter**: Owner = Me -* **Visibility**: Unlisted (personal view) +* **フィルター**: 所有者 = Me +* **可視性**: リストに追加されていない(パーソナルビュー) -### "Team Pipeline" +### "チームパイプライン" -* **Filter**: None (show all) -* **Visibility**: Workspace (shared view) +* **フィルター**: なし (すべて表示) +* **可視性**: ワークスペース (共有ビュー) -### "Closing This Month" +### "今月の閉店" -* **Type**: Table +* **タイプ**: 表 * **Filter**: Close Date = This month, Stage ≠ Closed Won, Stage ≠ Closed Lost -* **Sort**: Close Date ascending +* **並べ替え**: 終了日昇順 -## Working with Opportunities +## 商談との作業 -### Creating Opportunities +### 案件の作成 -* Click **+ New** in the Opportunities view -* Or click **+** in a specific stage column +* 商談ビューで\*\*+ 新しい\*\*をクリックしてください +* または、特定のステージカラムの\*\*+\*\*をクリックしてください -### Moving Through Stages +### ステージを移動する -Drag and drop opportunity cards between columns to update their stage. +列間で商談カードをドラッグアンドドロップして、ステージを更新します。 - + ## ベストプラクティス -### Pipeline Hygiene +### パイプライン衛生型 -* Update deals daily as they progress -* Move or close stale deals promptly -* Keep close dates realistic +* 彼らが進むにつれて毎日情報を更新します +* 速やかに古い取引を移動または閉じる +* 現実的な日付を保ちます -### Stage Discipline +### ステージ制限 -* Define clear criteria for each stage -* Move deals promptly when criteria are met -* Don't let deals sit in stages too long +* 各ステージの明確な基準を定義する +* 基準が満たされたときに迅速に取引を移動する +* お得な情報をステージにあまりにも長く座らせてはいけません -## Related +## 関連 -* [Kanban Views](/l/ja/user-guide/views-pipelines/capabilities/kanban-views) — aggregations and compact view +* [かんばんビュー](/l/ja/user-guide/views-pipelines/capabilities/kanban-views) — 集計とコンパクトビュー * [Filters and Sorting](/l/ja/user-guide/views-pipelines/capabilities/filters-and-sorting) — creating filtered views diff --git a/packages/twenty-docs/l/ja/user-guide/workflows/capabilities/workflow-actions.mdx b/packages/twenty-docs/l/ja/user-guide/workflows/capabilities/workflow-actions.mdx index 2c520441bc..d66d8bccc2 100644 --- a/packages/twenty-docs/l/ja/user-guide/workflows/capabilities/workflow-actions.mdx +++ b/packages/twenty-docs/l/ja/user-guide/workflows/capabilities/workflow-actions.mdx @@ -256,7 +256,7 @@ import { VimeoEmbed } from '/snippets/vimeo-embed.mdx'; * ステップ内でコードを直接テスト -コードで外部のAPIキーを使用する必要がある場合は、関数本体に直接入力する必要があります。 You cannot configure API keys elsewhere and reference them in the logic function. +コードで外部のAPIキーを使用する必要がある場合は、関数本体に直接入力する必要があります。 他の場所でAPIキーを設定したり、ロジック関数で参照したりすることはできません。 diff --git a/packages/twenty-docs/l/ja/user-guide/workflows/how-tos/crm-automations/auto-reply-to-inbound-emails.mdx b/packages/twenty-docs/l/ja/user-guide/workflows/how-tos/crm-automations/auto-reply-to-inbound-emails.mdx index a2daee727c..7f1501632c 100644 --- a/packages/twenty-docs/l/ja/user-guide/workflows/how-tos/crm-automations/auto-reply-to-inbound-emails.mdx +++ b/packages/twenty-docs/l/ja/user-guide/workflows/how-tos/crm-automations/auto-reply-to-inbound-emails.mdx @@ -7,46 +7,46 @@ description: AI を使用して受信メールをトリアージし、スレッ ## メールスレッドの仕組み -すべてのメールには、送信者のメールサーバーによって割り当てられる一意の識別子である非表示の `Message-ID` ヘッダーが含まれています。 When you reply to an email, your mail client sets an `In-Reply-To` header referencing that fingerprint. That's how Gmail, Outlook, and every other client groups messages into threads. +すべてのメールには、送信者のメールサーバーによって割り当てられる一意の識別子である非表示の `Message-ID` ヘッダーが含まれています。 メールに返信すると、メールクライアントはフィンガープリントを参照する `In-Reply-To` ヘッダーを設定します。 Gmail、Outlook、その他すべてのクライアントはメッセージをスレッドにまとめています。 -In Twenty, that fingerprint is stored as `headerMessageId` on the Message object. Your workflow grabs it and passes it into the Send Email action's In-Reply-To field. +Twenty では、そのフィンガープリントは Message オブジェクトに `headerMessageId` として保存されます。 ワークフローはそれをつかみ、返信メール送信アクションのIn-Reply-To 項目に渡します。 -## Building the workflow +## ワークフローの構築 -### Step 1: Create a new workflow +### ステップ 1: 新しいワークフローを作成 -Head to **Settings -> Workflows** and click **+ New Workflow**. +**設定->ワークフロー**に進み\*\*+新しいワークフロー\*\*をクリックしてください。 -### Step 2: Trigger on incoming messages +### ステップ2:受信メッセージをトリガーする -Pick **When a Record is Created** and choose **Messages**. +**レコードが作成されたら** **メッセージ**を選択します。 -Every time an email lands in Twenty, this fires. +メールがTwentyに届くたびに、これは火事になります。 -### Step 3: Look up who sent it +### ステップ 3: 送金者を調べてください -Add a **Search Records** action. +**レコードを検索**アクションを追加します。 -The sender's address isn't on the message itself — it's on the related Message Participant record. +送信者のアドレスはメッセージ自体にありません — 関連するメッセージ参加者レコードにあります。 -| フィールド | 値 | -| ---------- | ------------------------------- | -| **オブジェクト** | Message Participants | -| **フィルター** | Message **is** `{{trigger.id}}` | -| **フィルター** | Role **is** From | -| **制限** | 1 | +| フィールド | 値 | +| ---------- | ----------------------------- | +| **オブジェクト** | メッセージ参加者 | +| **フィルター** | メッセージ **です** `{{trigger.id}}` | +| **フィルター** | ロールは **以下から** | +| **制限** | 1 | -This gives you the sender's email in `handle` and their name in `displayName`. +これにより、`handle` で送信者のメールアドレスと、`displayName` で送信者の名前が表示されます。 -### Step 4: AI triage and draft reply +### ステップ4:AIトリアージと返信のドラフトを行う -Add an **AI Agent** action. This single step does two things: decides whether the email deserves a reply, and if so, writes one. +**AI エージェント** アクションを追加します。 この単一のステップは、2つのことを行います: 電子メールに返信が値するかどうかを決定し、その場合は1つを書き込みます。 -Use a prompt like: +次のようなプロンプトを使用します。 ``` You are an email triage assistant for a sales team. Read the following @@ -67,27 +67,27 @@ Otherwise, write a short, professional reply (3-4 sentences max) that: Respond with only the reply text, no subject line or greeting prefix. ``` -The AI Agent outputs its response in a `response` field that the next steps can reference. +AI Agent は、次のステップが参照できるレスポンスを `response` フィールドに出力します。 -### Step 5: Branch on the AI decision +### ステップ5:AIの決定に支局 -Add an **If/Else** action to check whether the AI decided to reply or skip. +**If/Else**アクションを追加して、AIが返信するかスキップするかを確認します。 -| フィールド | 値 | -| ----------- | ----------------------------------------------- | -| **条件** | AI Agent `response` **does not contain** `SKIP` | -| **If true** | Continue to Send Email | -| **Else** | Do nothing (workflow ends) | +| フィールド | 値 | +| ----------- | ------------------------------------ | +| **条件** | AI Agent の`response` **`SKIP`を含まない** | +| **If true** | メール送信を続ける | +| **それ以外** | 何もしない (ワークフロー終了) | -Spam, newsletters, and auto-generated messages get dropped. Everything else moves to the next step. +スパム、ニュースレター、自動生成されたメッセージは削除されます。 他のすべてが次のステップに移動します。 -### Step 6: Send a threaded reply +### ステップ 6: スレッド返信を送信 -Add a **Send Email** action on the "if true" branch. Click **Advanced options**, then **Add In-Reply-To**. +"if true" ブランチに **メール送信** アクションを追加します。 **詳細オプション**をクリックし、**返信内に追加**をクリックします。 | フィールド | 値 | | --------------- | -------------------------------------- | @@ -96,26 +96,26 @@ Add a **Send Email** action on the "if true" branch. Click **Advanced options**, | **本文** | `{{AI Triage & Draft Reply.response}}` | | **In-Reply-To** | `{{trigger.headerMessageId}}` | -The In-Reply-To field is what makes this a reply instead of a new conversation. The recipient sees it threaded under the original email in Gmail, Outlook, or any other client. +In-Reply-To フィールドは、新しい会話ではなく返信になります。 受信者は、Gmail、Outlook、または他のクライアントでは、元の電子メールの下でスレッド化されていることを確認します。 -**In-Reply-To** expects a `message.headerMessageId` from the trigger — it's the email's unique fingerprint, not a recipient address. If you leave it empty, the email still sends, just as a standalone message. +**In-Reply-To** はトリガーから `message.headerMessageId` を期待します — 受信者のアドレスではなく、メールの固有の指紋です。 空白のままにすると、電子メールは単独のメッセージとして送信されます。 -Gmail uses the subject line to group messages into threads. The subject **must** start with `Re:` (including the colon and space) for Gmail to display the reply inside the original thread. Without it, the reply will appear as a separate conversation — even if the In-Reply-To header is set correctly. +Gmail は件名を使用してメッセージをスレッドにグループ化します。 元のスレッドの中に返信を表示するには、件名が `Re:` (コロンとスペースを含む) で始まる必要があります。 In-Reply-To ヘッダーが正しく設定されている場合でも、返信は別個の会話として表示されます。 -### Step 7: Test and activate +### ステップ 7: テストして有効化 -Hit **Test**, then check your email client. The reply should appear nested under the original message. +**テスト**をクリックし、メールクライアントを確認してください。 返信は元のメッセージの下に入れ子になっているように見えます。 -Activate when you're happy with it. +あなたがそれに満足しているときに有効にします。 -## Ideas to build on +## 上に構築するアイデア -* **Only reply to VIPs** — add a branch that checks the sender's domain or whether they exist as a Contact in Twenty -* **Route by intent** — use separate AI Agent prompts to handle sales inquiries differently from support requests -* **Enrich before replying** — add a Search Records step to pull the sender's company or deal history into the AI prompt for more personalized replies +* **VIPへの返信のみ** — 送信者のドメインを確認するブランチを追加します。 +* **意図でルート化** — サポートリクエストとは異なる販売お問い合わせに対応するために、別個の AI Agent プロンプトを使用してください。 +* **返信する前にエンリッチする** — 送信者の会社を引っ張ったり、AIプロンプトに履歴を出すために検索レコードのステップを追加し、よりパーソナライズされた返信を求めます。 diff --git a/packages/twenty-docs/l/pt/developers/contribute/capabilities/backend-development/server-commands.mdx b/packages/twenty-docs/l/pt/developers/contribute/capabilities/backend-development/server-commands.mdx index 601d716852..a0aa6307a2 100644 --- a/packages/twenty-docs/l/pt/developers/contribute/capabilities/backend-development/server-commands.mdx +++ b/packages/twenty-docs/l/pt/developers/contribute/capabilities/backend-development/server-commands.mdx @@ -6,7 +6,7 @@ icon: terminal ## Comandos Úteis Esses comandos devem ser executados a partir da pasta packages/twenty-server. -From any other folder you can run `npx nx {command} twenty-server` (or `npx nx run twenty-server:{command}`). +Em qualquer outra pasta você pode executar o `npx nx {command} twenty-server` (ou o `npx nx run twenty-server:{command}`). ### Configuração inicial @@ -37,7 +37,7 @@ Nota: você pode executar `npx nx run twenty-server:test:integration:with-db-res ### Redefinindo o banco de dados -If you want to reset and seed the database, you can run the following command: +Se você deseja redefinir e semear a base de dados, pode executar o seguinte comando: ```bash npx nx run twenty-server:database:reset @@ -69,7 +69,7 @@ Veja como a pilha de tecnologia se parece agora. * [Postgres](https://www.postgresql.org/) -**Third-party integrations** +**Integrações de terceiros** * [Sentry](https://sentry.io/welcome/) para rastreamento de bugs diff --git a/packages/twenty-docs/l/pt/developers/contribute/capabilities/frontend-development/best-practices-front.mdx b/packages/twenty-docs/l/pt/developers/contribute/capabilities/frontend-development/best-practices-front.mdx index 51c248c274..8203eb7786 100644 --- a/packages/twenty-docs/l/pt/developers/contribute/capabilities/frontend-development/best-practices-front.mdx +++ b/packages/twenty-docs/l/pt/developers/contribute/capabilities/frontend-development/best-practices-front.mdx @@ -62,23 +62,23 @@ Lembre-se de que você pode **sempre** evitar re-renderizações entendendo sua Evitar re-renderizações em novos recursos agora é fácil eliminando-as no nível raiz. -The `PageChangeEffect` sidecar component contains just one `useEffect` that holds all the logic to execute on a page change. +O componente sidecar `PageChangeEffect` contém apenas um `useEffect` que contém toda a lógica para executar em uma mudança de página. Assim você sabe que há apenas um lugar que pode disparar uma re-renderização. -### Always think twice before adding `useEffect` in your codebase +### Sempre pense duas vezes antes de adicionar `useEffect` em sua base de código -Re-renders are often caused by unnecessary `useEffect`. +As renderizações são frequentemente causadas por `useEffect` desnecessários. -You should think whether you need `useEffect`, or if you can move the logic in a event handler function. +Você deve pensar se precisa de `useEffect`, ou se você pode mover a lógica em uma função de manipulador de eventos. -You'll find it generally easy to move the logic in a `handleClick` or `handleChange` function. +Você vai achar geralmente fácil mover a lógica na função `handleClick` ou `handleChange`. Você também pode encontrá-las em bibliotecas como Apollo: `onCompleted`, `onError`, etc. -### Use a sibling component to extract `useEffect` or data fetching logic +### Use um componente irmão para extrair `useEffect` ou lógica de busca de dados -If you feel like you need to add a `useEffect` in your root component, you should consider extracting it in a sidecar component. +Se você acha que precisa adicionar um `useEffect` no seu componente raiz, considere extraí-lo em um componente sidecar. Você pode aplicar o mesmo para lógica de busca de dados, com hooks do Apollo. diff --git a/packages/twenty-docs/l/pt/developers/contribute/capabilities/frontend-development/frontend-commands.mdx b/packages/twenty-docs/l/pt/developers/contribute/capabilities/frontend-development/frontend-commands.mdx index 5860b3948e..fee097f978 100644 --- a/packages/twenty-docs/l/pt/developers/contribute/capabilities/frontend-development/frontend-commands.mdx +++ b/packages/twenty-docs/l/pt/developers/contribute/capabilities/frontend-development/frontend-commands.mdx @@ -74,7 +74,7 @@ O projeto possui uma pilha limpa e simples, com pouco código boilerplate. [React Router](https://reactrouter.com/) gerencia o roteamento. -To avoid unnecessary [re-renders](/l/pt/developers/contribute/capabilities/frontend-development/best-practices-front#managing-re-renders) all the routing logic is in a `useEffect` in `PageChangeEffect`. +Para evitar [re-renders]desnecessário (/developers/contribute/capabilities/frontend-development/best-practices-front#managing-re-renders) toda a lógica de roteamento está em um `useEffect` em `PageChangeEffect`. ### Gerenciamento de Estado diff --git a/packages/twenty-docs/l/pt/developers/contribute/capabilities/frontend-development/hotkeys.mdx b/packages/twenty-docs/l/pt/developers/contribute/capabilities/frontend-development/hotkeys.mdx index 81584148b6..3dfe3a4ebd 100644 --- a/packages/twenty-docs/l/pt/developers/contribute/capabilities/frontend-development/hotkeys.mdx +++ b/packages/twenty-docs/l/pt/developers/contribute/capabilities/frontend-development/hotkeys.mdx @@ -127,9 +127,9 @@ const MyDropdownComponent = ({ onClose }: { onClose: () => void }) => { }; ``` -It's important to use this pattern when you're not sure that just using a useEffect with mount/unmount will be enough to avoid conflicts. +É importante usar este padrão quando você não tem certeza de que apenas usar um useEffect com montagem/desmontagem será suficiente para evitar conflitos. -Those conflicts can be hard to debug, and it might happen more often than not with useEffects. +Esses conflitos podem ser difíceis de depurar, e isso pode acontecer com mais frequência do que não com useEffects. ## O que é um escopo de tecla de atalho? diff --git a/packages/twenty-docs/l/pt/developers/self-host/capabilities/troubleshooting.mdx b/packages/twenty-docs/l/pt/developers/self-host/capabilities/troubleshooting.mdx index 6524fc7b02..698fbaa8c1 100644 --- a/packages/twenty-docs/l/pt/developers/self-host/capabilities/troubleshooting.mdx +++ b/packages/twenty-docs/l/pt/developers/self-host/capabilities/troubleshooting.mdx @@ -66,7 +66,7 @@ Isso deve funcionar automaticamente com a extensão Oxc (`oxc.oxc-vscode`) insta #### Ao executar `npx nx start` ou `npx nx start twenty-front`, é lançada uma mensagem de erro de falta de memória -Run only the services you need, instead of `npx nx start`. Por exemplo, se estiver trabalhando no servidor, execute apenas `npx nx worker twenty-server` +Execute apenas os serviços que você precisa, ao invés do `npx nx start`. Por exemplo, se estiver trabalhando no servidor, execute apenas `npx nx worker twenty-server` **Se não funcionar:** Se você tentou executar apenas `npx nx run twenty-server:start` no WSL e está falhando com o erro de memória abaixo: diff --git a/packages/twenty-docs/l/pt/navigation.json b/packages/twenty-docs/l/pt/navigation.json index f31ddda825..44a268ee89 100644 --- a/packages/twenty-docs/l/pt/navigation.json +++ b/packages/twenty-docs/l/pt/navigation.json @@ -12,7 +12,7 @@ } }, "userGuide": { - "label": "User Guide", + "label": "Manual do Usuário", "groups": { "userGuideOverview": { "label": "Visão Geral" @@ -24,29 +24,29 @@ "label": "Referência" }, "dataModelHowTos": { - "label": "How-Tos" + "label": "Como-Tos" } } }, "dataMigration": { - "label": "Data Migration", + "label": "Migração de dados", "groups": { "dataMigrationReference": { "label": "Referência" }, "dataMigrationHowTos": { - "label": "How-Tos" + "label": "Como-Tos" } } }, "calendarEmails": { - "label": "Calendar & Emails", + "label": "Calendário e E-mails", "groups": { "calendarEmailsReference": { "label": "Referência" }, "calendarEmailsHowTos": { - "label": "How-Tos" + "label": "Como-Tos" } } }, @@ -57,16 +57,16 @@ "label": "Referência" }, "workflowsHowTos": { - "label": "How-Tos", + "label": "Como-Tos", "groups": { "crmAutomations": { - "label": "CRM Automations" + "label": "Automações CRM" }, "connectToOtherTools": { - "label": "Connect to Other Tools" + "label": "Conectar a outras ferramentas" }, "advancedConfigurations": { - "label": "Advanced Configurations" + "label": "Configurações avançadas" }, "needMoreHelp": { "label": "Precisa de mais ajuda" @@ -82,7 +82,7 @@ "label": "Referência" }, "aiHowTos": { - "label": "How-Tos" + "label": "Como-Tos" } } }, @@ -109,18 +109,18 @@ "label": "Referência" }, "dashboardsHowTos": { - "label": "How-Tos" + "label": "Como-Tos" } } }, "permissionsAccess": { - "label": "Permissions & Access", + "label": "Permissões e Acesso", "groups": { "permissionsAccessReference": { "label": "Referência" }, "permissionsAccessHowTos": { - "label": "How-Tos" + "label": "Como-Tos" } } }, @@ -131,7 +131,7 @@ "label": "Referência" }, "billingHowTos": { - "label": "How-Tos" + "label": "Como-Tos" } } }, @@ -142,7 +142,7 @@ "label": "Referência" }, "settingsHowTos": { - "label": "How-Tos" + "label": "Como-Tos" } } } @@ -181,10 +181,10 @@ "label": "API" }, "selfHost": { - "label": "Self-Host" + "label": "Auto-Anfitrião" }, "contribute": { - "label": "Contribute" + "label": "Contribuir" } } } diff --git a/packages/twenty-docs/l/pt/twenty-ui/input/color-scheme.mdx b/packages/twenty-docs/l/pt/twenty-ui/input/color-scheme.mdx index 79b02ee512..2ab21e0e4f 100644 --- a/packages/twenty-docs/l/pt/twenty-ui/input/color-scheme.mdx +++ b/packages/twenty-docs/l/pt/twenty-ui/input/color-scheme.mdx @@ -32,11 +32,11 @@ export const MyComponent = () => { -| Propriedades | Tipo | Descrição | Padrão | -| ----------------------- | --------------------------------------- | ------------------------------------------------------------------------------- | ------ | -| variante | string | A variante do esquema de cores. As opções incluem `Escuro`, `Claro` e `Sistema` | claro | -| selecionado | booleano | If `true`, displays a checkmark to indicate the selected color scheme | | -| propriedades adicionais | `React.ComponentPropsWithoutRef<'div'>` | Propriedades padrão do elemento HTML `div` | | +| Propriedades | Tipo | Descrição | Padrão | +| ----------------------- | --------------------------------------- | --------------------------------------------------------------------------------- | ------ | +| variante | string | A variante do esquema de cores. As opções incluem `Escuro`, `Claro` e `Sistema` | claro | +| selecionado | booleano | Se `true`, exibe uma marca de seleção para indicar o esquema de cores selecionado | | +| propriedades adicionais | `React.ComponentPropsWithoutRef<'div'>` | Propriedades padrão do elemento HTML `div` | | @@ -67,10 +67,10 @@ export const MyComponent = () => { -| Propriedades | Tipo | Descrição | -| ------------ | ------------------ | ---------------------------------------------------------------------------- | -| valor | `Esquema de Cores` | O esquema de cores atualmente selecionado | -| onChange | função | The callback function you want to trigger when a user selects a color scheme | +| Propriedades | Tipo | Descrição | +| ------------ | ------------------ | ------------------------------------------------------------------------------------------------------ | +| valor | `Esquema de Cores` | O esquema de cores atualmente selecionado | +| onChange | função | A função de retorno de chamada que você deseja acionar quando um usuário seleciona um esquema de cores | diff --git a/packages/twenty-docs/l/pt/twenty-ui/input/image-input.mdx b/packages/twenty-docs/l/pt/twenty-ui/input/image-input.mdx index 7bea4769f9..4185316225 100644 --- a/packages/twenty-docs/l/pt/twenty-ui/input/image-input.mdx +++ b/packages/twenty-docs/l/pt/twenty-ui/input/image-input.mdx @@ -30,7 +30,7 @@ export const MyComponent = () => { | onRemove | função | A função chamada quando o usuário clica no botão de remoção | | onAbort | função | A função chamada quando o usuário clica no botão de cancelamento durante o upload da imagem | | isUploading | booleano | Indica se uma imagem está sendo enviada no momento | -| errorMessage | string | An optional error message to display below the image input | +| mensagem | string | Uma mensagem de erro opcional a ser exibida abaixo da entrada de imagem | | desativado | booleano | Se `true`, a entrada inteira está desativada e os botões não são clicáveis | diff --git a/packages/twenty-docs/l/pt/twenty-ui/input/radio.mdx b/packages/twenty-docs/l/pt/twenty-ui/input/radio.mdx index ac2ea76bd2..4434885e17 100644 --- a/packages/twenty-docs/l/pt/twenty-ui/input/radio.mdx +++ b/packages/twenty-docs/l/pt/twenty-ui/input/radio.mdx @@ -98,12 +98,12 @@ export const MyComponent = () => { -| Propriedades | Tipo | Descrição | -| ------------- | ----------------- | --------------------------------------------------------------------------------------- | -| valor | string | O valor do botão de rádio atualmente selecionado | -| onChange | função | A função de retorno de chamada disparada quando o botão de rádio é alterado | -| onValueChange | função | A função de retorno de chamada disparada quando o valor selecionado no grupo muda. | -| filhos | `React.ReactNode` | Permite que você passe componentes React (como Rádio) como filhos para o Grupo de Rádio | +| Propriedades | Tipo | Descrição | +| ---------------- | ----------------- | --------------------------------------------------------------------------------------- | +| valor | string | O valor do botão de rádio atualmente selecionado | +| onChange | função | A função de retorno de chamada disparada quando o botão de rádio é alterado | +| onValueAlteração | função | A função de retorno de chamada disparada quando o valor selecionado no grupo muda. | +| filhos | `React.ReactNode` | Permite que você passe componentes React (como Rádio) como filhos para o Grupo de Rádio | diff --git a/packages/twenty-docs/l/pt/twenty-ui/input/toggle.mdx b/packages/twenty-docs/l/pt/twenty-ui/input/toggle.mdx index 59414666d4..38c0e970ae 100644 --- a/packages/twenty-docs/l/pt/twenty-ui/input/toggle.mdx +++ b/packages/twenty-docs/l/pt/twenty-ui/input/toggle.mdx @@ -25,12 +25,12 @@ export const MyComponent = () => { -| Propriedades | Tipo | Descrição | Padrão | -| --------------- | -------- | --------------------------------------------------------------------------------------------- | -------- | -| valor | booleano | O estado atual da alternância | `falso` | -| onChange | função | Função de retorno de chamada acionada quando o estado da alternância muda | | -| cor | string | Color of the toggle when it\ | cor azul | -| tamanhoAlternar | string | Size of the toggle, affecting both height and weight. Possui duas opções: `pequeno` e `médio` | médio | +| Propriedades | Tipo | Descrição | Padrão | +| --------------- | -------- | ------------------------------------------------------------------------------------------ | -------- | +| valor | booleano | O estado atual da alternância | `falso` | +| onChange | função | Função de retorno de chamada acionada quando o estado da alternância muda | | +| cor | string | Cor do alternador quando estiver \ | cor azul | +| tamanhoAlternar | string | Tamanho do alternador, afetando a altura e o peso. Possui duas opções: `pequeno` e `médio` | médio | diff --git a/packages/twenty-docs/l/pt/user-guide/dashboards/capabilities/dashboards.mdx b/packages/twenty-docs/l/pt/user-guide/dashboards/capabilities/dashboards.mdx index c01ad28f88..a2d58071ed 100644 --- a/packages/twenty-docs/l/pt/user-guide/dashboards/capabilities/dashboards.mdx +++ b/packages/twenty-docs/l/pt/user-guide/dashboards/capabilities/dashboards.mdx @@ -12,7 +12,7 @@ Os painéis no Twenty são organizados em uma hierarquia: **Painéis → Abas 1. Vá até **Dashboards** na navegação 2. Clique em **+ New Record** -Create a new dashboard +Criar novo painel de controle 3. Dê um nome ao seu painel 4. Comece a adicionar abas e widgets @@ -23,27 +23,27 @@ As abas ajudam você a organizar seu painel em seções lógicas. ### Criando abas -1. In edit mode, click **+** in the tab bar, side panel will open on the right +1. No modo de edição, clique em **+** na barra de abas, o painel lateral abrirá à direita 2. Dê um nome à sua aba (por exemplo, "Visão geral do pipeline", "Desempenho da equipe") 3. Adicione widgets à aba ### Reordering Tabs -1. In edit mode, click and hold on the tab you want to move -2. Drag and drop to the new position -3. You can also click on the tab and use the command menu to move the tab to left or right +1. No modo de edição, clique e segure na guia que deseja mover +2. Arraste e solte para a nova posição +3. Você também pode clicar na aba e usar o menu de comando para mover a guia para a esquerda ou direita -### Deleting Tabs +### Excluindo abas -1. In edit mode, click on the tab you want to delete -2. Click the **Delete** button in the command menu +1. No modo de edição, clique na aba que deseja excluir +2. Clique no botão **Excluir** no menu de comando ### Duplicando abas 1. Clique na aba que você deseja duplicar 2. Clique no botão **Duplicate** no painel lateral -Dashboard tab +Aba do Painel ## Layout do painel @@ -55,11 +55,11 @@ As abas ajudam você a organizar seu painel em seções lógicas. ### Duplicando um painel -1. Select the dashboard you want to duplicate +1. Selecione o painel que você deseja duplicar 2. Abra a barra de comandos com **Cmd + K** (ou **Ctrl + K** no Windows) 3. Selecione **Duplicar painel** -Duplicate a dashboard +Duplicar painel de controle ### Melhores Práticas diff --git a/packages/twenty-docs/l/pt/user-guide/settings/capabilities/workspace-settings.mdx b/packages/twenty-docs/l/pt/user-guide/settings/capabilities/workspace-settings.mdx index c7920ee3a9..615461c577 100644 --- a/packages/twenty-docs/l/pt/user-guide/settings/capabilities/workspace-settings.mdx +++ b/packages/twenty-docs/l/pt/user-guide/settings/capabilities/workspace-settings.mdx @@ -3,7 +3,7 @@ title: Configurações do Espaço de Trabalho description: Personalize o nome e a marca do seu espaço de trabalho. --- -Those are accessible under **Settings → General**. +Essas são acessíveis em **Configurações → Geral**. ## Foto do Espaço de Trabalho diff --git a/packages/twenty-docs/l/ro/developers/self-host/capabilities/troubleshooting.mdx b/packages/twenty-docs/l/ro/developers/self-host/capabilities/troubleshooting.mdx index 276a99e61d..60714e198d 100644 --- a/packages/twenty-docs/l/ro/developers/self-host/capabilities/troubleshooting.mdx +++ b/packages/twenty-docs/l/ro/developers/self-host/capabilities/troubleshooting.mdx @@ -55,7 +55,7 @@ Asigurați-vă că rulați yarn în directorul rădăcină și apoi rulați `npx #### Lint la salvare nu funcționează -This should work out of the box with the Oxc extension (`oxc.oxc-vscode`) installed. Dacă acest lucru nu funcționează, încercați să adăugați acest lucru la setarea vscode (în sfera containerului dev): +Acest lucru ar trebui să fie finalizat cu extensia Oxc (`oxc.oxc-vscode`) instalată. Dacă acest lucru nu funcționează, încercați să adăugați acest lucru la setarea vscode (în sfera containerului dev): ``` "editor.codeActionsOnSave": { diff --git a/packages/twenty-docs/l/ro/navigation.json b/packages/twenty-docs/l/ro/navigation.json index f5c637a3da..bdefb40a85 100644 --- a/packages/twenty-docs/l/ro/navigation.json +++ b/packages/twenty-docs/l/ro/navigation.json @@ -12,7 +12,7 @@ } }, "userGuide": { - "label": "User Guide", + "label": "Ghid de utilizator", "groups": { "userGuideOverview": { "label": "Prezentare generală" @@ -29,7 +29,7 @@ } }, "dataMigration": { - "label": "Data Migration", + "label": "Migrarea Datelor", "groups": { "dataMigrationReference": { "label": "Referință" @@ -40,7 +40,7 @@ } }, "calendarEmails": { - "label": "Calendar & Emails", + "label": "Calendar & E-mailuri", "groups": { "calendarEmailsReference": { "label": "Referință" @@ -60,13 +60,13 @@ "label": "How-Tos", "groups": { "crmAutomations": { - "label": "CRM Automations" + "label": "CRM Automate" }, "connectToOtherTools": { - "label": "Connect to Other Tools" + "label": "Conectează-te la alte instrumente" }, "advancedConfigurations": { - "label": "Advanced Configurations" + "label": "Configurații avansate" }, "needMoreHelp": { "label": "Ai nevoie de mai mult ajutor" @@ -114,7 +114,7 @@ } }, "permissionsAccess": { - "label": "Permissions & Access", + "label": "Permisiuni & Acces", "groups": { "permissionsAccessReference": { "label": "Referință" @@ -181,10 +181,10 @@ "label": "API" }, "selfHost": { - "label": "Self-Host" + "label": "Autogazda" }, "contribute": { - "label": "Contribute" + "label": "Contribuie" } } } diff --git a/packages/twenty-docs/l/ro/twenty-ui/display/app-tooltip.mdx b/packages/twenty-docs/l/ro/twenty-ui/display/app-tooltip.mdx index 2e81e561b5..889fcc40cc 100644 --- a/packages/twenty-docs/l/ro/twenty-ui/display/app-tooltip.mdx +++ b/packages/twenty-docs/l/ro/twenty-ui/display/app-tooltip.mdx @@ -47,12 +47,12 @@ export const MyComponent = () => { | className | șir | Clasă CSS opțională pentru stilizare suplimentară | | Selectează ancora | Selector CSS | Selector pentru ancora tooltipului (elementul care activează tooltipul) | | conținut | șir | Conținutul pe care doriți să îl afișați în interiorul tooltipului | -| delayHide | număr | Întârzierea în secunde înainte de a ascunde tooltipul după ce cursorul părăsește ancora | +| ascuns | număr | Întârzierea în secunde înainte de a ascunde tooltipul după ce cursorul părăsește ancora | | deplasare | număr | Deplasarea în pixeli pentru poziționarea tooltipului | | noArrow | boolean | Dacă este `adevărat`, ascunde săgeata de pe tooltip | | isOpen | boolean | Dacă este `adevărat`, tooltipul este deschis în mod implicit | | loc | șir `PlacesType` din `react-tooltip` | Specifică plasarea tooltipului. Valorile includ `jos`, `stânga`, `dreapta`, `sus`, `sus-start`, `sus-end`, `dreapta-start`, `dreapta-end`, `jos-start`, `jos-end`, `stânga-start`, și `stânga-end` | -| positionStrategy | șir `PositionStrategy` din `react-tooltip` | Strategia de poziționare pentru tooltip. Are două valori: `absolut` și `fix` | +| poziționare | șir `PositionStrategy` din `react-tooltip` | Strategia de poziționare pentru tooltip. Are două valori: `absolut` și `fix` | @@ -60,7 +60,7 @@ export const MyComponent = () => { -## Overflowing Text with Tooltip +## Text depășit cu Tooltip Gestionează textul redundant și afișează un tooltip când textul depășește. diff --git a/packages/twenty-docs/l/ro/twenty-ui/display/tag.mdx b/packages/twenty-docs/l/ro/twenty-ui/display/tag.mdx index a897dc83a5..f0999603a2 100644 --- a/packages/twenty-docs/l/ro/twenty-ui/display/tag.mdx +++ b/packages/twenty-docs/l/ro/twenty-ui/display/tag.mdx @@ -29,12 +29,12 @@ export const MyComponent = () => { -| Proprietăți | Tip | Descriere | -| ----------- | ------- | ----------------------------------------------------------------------------------------------------------------------------- | -| className | șir | Nume opțional pentru stilizare suplimentară | -| culoare | șir | Culoarea etichetei. Options include: `green`, `turquoise`, `sky`, `blue`, `purple`, `pink`, `red`, `orange`, `yellow`, `gray` | -| text | șir | Conținutul etichetei | -| onClick | funcție | Funcție opțională apelată când un utilizator face clic pe etichetă | +| Proprietăți | Tip | Descriere | +| ----------- | ------- | ------------------------------------------------------------------------------------------------------------------------------ | +| className | șir | Nume opțional pentru stilizare suplimentară | +| culoare | șir | Culoarea etichetei. Opțiunile includ: `green`, `turquoise`, `sky`, `blue`, `purple`, `pink`, `red`, `orange`, `yellow`, `gray` | +| text | șir | Conținutul etichetei | +| onClick | funcție | Funcție opțională apelată când un utilizator face clic pe etichetă | diff --git a/packages/twenty-docs/l/ro/twenty-ui/input/buttons.mdx b/packages/twenty-docs/l/ro/twenty-ui/input/buttons.mdx index f98d188800..632ce8f7f9 100644 --- a/packages/twenty-docs/l/ro/twenty-ui/input/buttons.mdx +++ b/packages/twenty-docs/l/ro/twenty-ui/input/buttons.mdx @@ -53,7 +53,7 @@ export const MyComponent = () => { | poziție | șir | Poziția butonului în raport cu frații săi. Opțiunile includ: `independent`, `stânga`, `dreapta` și `mijloc` | | accent | șir | Culoarea accentului butonului. Opțiunile includ: `implicit`, `albastru` și `pericol` | | în curând | boolean | Indică dacă butonul este marcat ca "în curând" (de exemplu, pentru funcționalități viitoare) | -| dezactivat | boolean | Specifies whether the button is disabled or not | +| dezactivat | boolean | Specifică dacă butonul este dezactivat sau nu | | focalizare | boolean | Determină dacă butonul are focalizare | | laClick | funcție | O funcție de apel de întoarcere care se declanșează când utilizatorul face clic pe buton | @@ -171,24 +171,24 @@ export const MyComponent = () => { -| Proprietăți | Tip | Descriere | -| ----------- | --------------------- | --------------------------------------------------------------------------------------------------- | -| numeClasa | șir | Nume opțional pentru stilizare suplimentară | -| Pictogramă | `React.ComponentType` | O componentă opțională de pictogramă afișată în cadrul butonului | -| titlu | șir | Conținutul textului butonului | -| dimensiune | șir | Dimensiunea butonului. Are două opțiuni: `mic` și `mediu` | -| poziție | șir | Poziția butonului în raport cu frații săi. Options include: `standalone`, `left`, `middle`, `right` | -| applyShadow | boolean | Determines whether to apply shadow to a button | -| applyBlur | boolean | Determines whether to apply a blur effect to the button | -| dezactivat | boolean | Determină dacă butonul este dezactivat | -| focalizare | boolean | Indică dacă butonul este focusat | +| Proprietăți | Tip | Descriere | +| ----------- | --------------------- | ---------------------------------------------------------------------------------------------------- | +| numeClasa | șir | Nume opțional pentru stilizare suplimentară | +| Pictogramă | `React.ComponentType` | O componentă opțională de pictogramă afișată în cadrul butonului | +| titlu | șir | Conținutul textului butonului | +| dimensiune | șir | Dimensiunea butonului. Are două opțiuni: `mic` și `mediu` | +| poziție | șir | Poziția butonului în raport cu frații săi. Opțiunile includ: `standalone`, `left`, `middle`, `right` | +| applyUmbră | boolean | Determină dacă să aplice umbra unui buton | +| Aplaurează | boolean | Determină dacă să aplice un efect de estompare pe buton | +| dezactivat | boolean | Determină dacă butonul este dezactivat | +| focalizare | boolean | Indică dacă butonul este focusat | -## Floating Button Group +## Grup butoane plutitoare @@ -281,8 +281,8 @@ export const MyComponent = () => { | Pictogramă | `React.ComponentType` | O componentă opțională de pictogramă afișată în cadrul butonului | | dimensiune | șir | Dimensiunea butonului. Are două opțiuni: `mic` și `mediu` | | poziție | șir | Poziția butonului în raport cu frații săi. Opțiunile includ: `independent`, `stânga`, `dreapta` și `mijloc` | -| applyShadow | boolean | Determines whether to apply shadow to a button | -| applyBlur | boolean | Determines whether to apply a blur effect to the button | +| applyUmbră | boolean | Determină dacă să aplice umbra unui buton | +| Aplaurează | boolean | Determină dacă să aplice un efect de estompare pe buton | | dezactivat | boolean | Determină dacă butonul este dezactivat | | focalizare | boolean | Indică dacă butonul este focusat | | laClick | funcție | O funcție callback care se declanșează când utilizatorul face click pe buton | @@ -294,7 +294,7 @@ export const MyComponent = () => { -## Floating Icon Button Group +## Grup de butoane plutitoare @@ -332,11 +332,11 @@ export const MyComponent = () => { -| Proprietăți | Tip | Descriere | -| ----------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| numeClasa | șir | Nume opțional pentru stilizare suplimentară | -| dimensiune | șir | Dimensiunea butonului. Are două opțiuni: `mic` și `mediu` | -| iconButtons | matrice | An array of objects, each representing an icon button in the group. Each object should include the icon component you want to display in the button, the function you want to call when a user clicks on the button, and whether the button should be active or not. | +| Proprietăți | Tip | Descriere | +| ----------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| numeClasa | șir | Nume opțional pentru stilizare suplimentară | +| dimensiune | șir | Dimensiunea butonului. Are două opțiuni: `mic` și `mediu` | +| iconButtons | matrice | O serie de obiecte, fiecare reprezentând un buton de pictogramă din grup. Fiecare obiect ar trebui să includă componenta pictogramă pe care doriți să o afișați în buton, funcția pe care doriți să o apelați când un utilizator face clic pe buton și dacă butonul ar trebui să fie activ sau nu. | @@ -344,7 +344,7 @@ export const MyComponent = () => { -## Light Button +## Buton luminos @@ -375,7 +375,7 @@ export const MyComponent = () => { | Proprietăți | Tip | Descriere | | ----------- | ----------------- | ---------------------------------------------------------------------------- | | numeClasa | șir | Nume opțional pentru stilizare suplimentară | -| pictogramă | `React.ReactNode` | The icon you want to display in the button | +| pictogramă | `React.ReactNode` | Pictograma pe care doriţi să o afişaţi în buton | | titlu | șir | Conținutul textului butonului | | accent | șir | Culoarea de accent a butonului. Opțiunile includ: `secundar` și `terțiar` | | activ | boolean | Determină dacă butonul este în stare activă | @@ -470,14 +470,14 @@ export const MyComponent = () => { -| Proprietăți | Tip | Descriere | -| -------------------- | -------------------------------- | -------------------------------------------------------------------------------------------- | -| titlu | șir | Conținutul textului butonului | -| lățimeCompletă | boolean | Definește dacă butonul ar trebui să ocupe toată lățimea containerului său | -| variantă | șir | Stilul vizual al butonului. Opțiunile includ `primar` și `secundar` | -| în curând | boolean | Indică dacă butonul este marcat ca "în curând" (de exemplu, pentru funcționalități viitoare) | -| Pictogramă | `React.ComponentType` | O componentă opțională de pictogramă afișată în cadrul butonului | -| React `button` props | `React.ComponentProps<'button'>` | All standard HTML button props are supported | +| Proprietăți | Tip | Descriere | +| ---------------------------- | -------------------------------- | -------------------------------------------------------------------------------------------- | +| titlu | șir | Conținutul textului butonului | +| lățimeCompletă | boolean | Definește dacă butonul ar trebui să ocupe toată lățimea containerului său | +| variantă | șir | Stilul vizual al butonului. Opțiunile includ `primar` și `secundar` | +| în curând | boolean | Indică dacă butonul este marcat ca "în curând" (de exemplu, pentru funcționalități viitoare) | +| Pictogramă | `React.ComponentType` | O componentă opțională de pictogramă afișată în cadrul butonului | +| Reacţionaţi `button` reclame | `React.ComponentProps<'button'>` | Toate variantele standard pentru butoanele HTML sunt acceptate | @@ -510,10 +510,10 @@ export const MyComponent = () => { -| Proprietăți | Tip | Descriere | -| -------------------- | ----------------------------------------------- | --------- | -| Pictogramă | `React.ComponentType` | | -| React `button` props | `React.ButtonHTMLAttributes` | | +| Proprietăți | Tip | Descriere | +| ---------------------------- | ----------------------------------------------- | --------- | +| Pictogramă | `React.ComponentType` | | +| Reacţionaţi `button` reclame | `React.ButtonHTMLAttributes` | | diff --git a/packages/twenty-docs/l/ro/twenty-ui/input/radio.mdx b/packages/twenty-docs/l/ro/twenty-ui/input/radio.mdx index 319c88f344..e4ef70e390 100644 --- a/packages/twenty-docs/l/ro/twenty-ui/input/radio.mdx +++ b/packages/twenty-docs/l/ro/twenty-ui/input/radio.mdx @@ -56,7 +56,7 @@ export const MyComponent = () => { | laSchimbareBifată | funcție | Funcția apelată atunci când starea `verificat` a butonului radio se schimbă | | dimensiune | șir | Dimensiunea butonului radio. Opțiuni incluse: `mare` și `mic` | | dezactivat | boolean | Dacă este `adevărat`, butonul radio este dezactivat și nu este clicabil | -| labelPosition | șir | Poziția textului etichetei în raport cu butonul radio. Are două opțiuni: `stânga` și `dreapta` | +| Pozitie | șir | Poziția textului etichetei în raport cu butonul radio. Are două opțiuni: `stânga` și `dreapta` | @@ -66,7 +66,7 @@ export const MyComponent = () => { ## Grup Radio -Groups together related radio buttons. +Grupează butoanele radio asociate. @@ -98,12 +98,12 @@ export const MyComponent = () => { -| Proprietăți | Tip | Descriere | -| ------------- | ----------------- | ------------------------------------------------------------------------------------- | -| valoare | șir | Valoarea butonului radio selectat în prezent | -| onChange | funcție | Funcția callback activată când butonul radio este schimbat | -| onValueChange | funcție | Funcția callback activată când valoarea selectată din grup se schimbă. | -| copii | `React.ReactNode` | Îți permite să trimiți componente React (cum ar fi Radio) ca și copii la Grupul Radio | +| Proprietăți | Tip | Descriere | +| ----------------- | ----------------- | ------------------------------------------------------------------------------------- | +| valoare | șir | Valoarea butonului radio selectat în prezent | +| onChange | funcție | Funcția callback activată când butonul radio este schimbat | +| onValueModificare | funcție | Funcția callback activată când valoarea selectată din grup se schimbă. | +| copii | `React.ReactNode` | Îți permite să trimiți componente React (cum ar fi Radio) ca și copii la Grupul Radio | diff --git a/packages/twenty-docs/l/ro/twenty-ui/input/select.mdx b/packages/twenty-docs/l/ro/twenty-ui/input/select.mdx index c3bd5c2cfc..67cf7d5f5e 100644 --- a/packages/twenty-docs/l/ro/twenty-ui/input/select.mdx +++ b/packages/twenty-docs/l/ro/twenty-ui/input/select.mdx @@ -38,14 +38,14 @@ export const MyComponent = () => { -| Proprietăți | Tip | Descriere | -| ----------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| className | șir | Clasă CSS opțională pentru stilizare suplimentară | -| dezactivat | boolean | Când este setat la `true`, dezactivează interacțiunea utilizatorului cu componenta | -| etichetă | șir | Eticheta care descrie scopul componentei `Select` | -| laSchimbare | funcție | Funcția apelată când valorile selectate se schimbă | -| opțiuni | array | Represents the options available for the `Selected` component. Este un tablou de obiecte unde fiecare obiect are un `value` (identificatorul unic), `label` (etichetă) și un `Icon` opțional | -| valoare | şir | Reprezintă valoarea momentan selectată. Ar trebui să corespundă uneia dintre proprietățile `value` din tabloul `opțiuni`. | +| Proprietăți | Tip | Descriere | +| ----------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| className | șir | Clasă CSS opțională pentru stilizare suplimentară | +| dezactivat | boolean | Când este setat la `true`, dezactivează interacțiunea utilizatorului cu componenta | +| etichetă | șir | Eticheta care descrie scopul componentei `Select` | +| laSchimbare | funcție | Funcția apelată când valorile selectate se schimbă | +| opțiuni | array | Reprezintă opţiunile disponibile pentru componenta `selectată`. (Automatic Translation) Este un tablou de obiecte unde fiecare obiect are un `value` (identificatorul unic), `label` (etichetă) și un `Icon` opțional | +| valoare | şir | Reprezintă valoarea momentan selectată. Ar trebui să corespundă uneia dintre proprietățile `value` din tabloul `opțiuni`. | diff --git a/packages/twenty-docs/l/ro/twenty-ui/input/text.mdx b/packages/twenty-docs/l/ro/twenty-ui/input/text.mdx index 13663885c8..5f714d351b 100644 --- a/packages/twenty-docs/l/ro/twenty-ui/input/text.mdx +++ b/packages/twenty-docs/l/ro/twenty-ui/input/text.mdx @@ -48,16 +48,16 @@ export const MyComponent = () => { -| Proprietăți | Tip | Descriere | -| -------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| numeClasa | șir | Nume opțional pentru stilizare suplimentară | -| etichetă | string | Reprezintă eticheta pentru intrare | -| onChange | funcție | The function called when the input value changes | -| lățimeCompletă | boolean | Indică dacă intrarea ar trebui să ocupe 100% din lățime | -| disableHotkeys | boolean | Indică dacă tastele rapide sunt activate pentru intrare | -| eroare | șir | Reprezintă mesajul de eroare care să fie afișat. Când este oferit, adaugă și o pictogramă de eroare pe partea dreaptă a intrării | -| onKeyDown | funcție | Apelează atunci când o tastă este apăsată în timp ce câmpul de intrare este focalizat. Primește un `React.KeyboardEvent` ca argument | -| RightIcon | ComponentaIcoana | An optional icon component displayed on the right side of the input | +| Proprietăți | Tip | Descriere | +| ------------------ | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------ | +| numeClasa | șir | Nume opțional pentru stilizare suplimentară | +| etichetă | string | Reprezintă eticheta pentru intrare | +| onChange | funcție | Funcția apelată atunci când valoarea de intrare se modifică | +| lățimeCompletă | boolean | Indică dacă intrarea ar trebui să ocupe 100% din lățime | +| dezactiveazăTaste | boolean | Indică dacă tastele rapide sunt activate pentru intrare | +| eroare | șir | Reprezintă mesajul de eroare care să fie afișat. Când este oferit, adaugă și o pictogramă de eroare pe partea dreaptă a intrării | +| onKeyDown | funcție | Apelează atunci când o tastă este apăsată în timp ce câmpul de intrare este focalizat. Primește un `React.KeyboardEvent` ca argument | +| Pictograma Dreapta | ComponentaIcoana | O componentă de pictogramă opțională afișată în partea dreaptă a intrării | @@ -100,15 +100,15 @@ export const MyComponent = () => { -| Proprietăți | Tip | Descriere | -| ------------- | ------- | --------------------------------------------------------------------------- | -| onValidate | funcție | The callback function you want to trigger when the user validates the input | -| minRows | număr | Numărul minim de rânduri pentru aria textului | -| text sugestiv | string | Text loc de plasare afișat când aria textului este goală | -| onFocus | funcție | Funcția de apelare dorită când aria textului câștigă focalizare | -| variantă | string | Varianta intrării. Opțiuni includ: `implicit`, `icon`, și `buton` | -| buttonTitle | string | Titlul pentru buton (aplicabil doar pentru varianta butonului) | -| valoare | string | Valoarea inițială pentru aria textului | +| Proprietăți | Tip | Descriere | +| ------------- | ------- | ------------------------------------------------------------------------------------------------- | +| onValidate | funcție | Funcția de apel invers pe care doriți să o declanșați atunci când utilizatorul validează intrarea | +| minute | număr | Numărul minim de rânduri pentru aria textului | +| text sugestiv | string | Text loc de plasare afișat când aria textului este goală | +| onFocus | funcție | Funcția de apelare dorită când aria textului câștigă focalizare | +| variantă | string | Varianta intrării. Opțiuni includ: `implicit`, `icon`, și `buton` | +| buton Titlu | string | Titlul pentru buton (aplicabil doar pentru varianta butonului) | +| valoare | string | Valoarea inițială pentru aria textului | @@ -117,7 +117,7 @@ export const MyComponent = () => { -## Text Area +## Zonă text Vă permite să creați intrări de text pe mai multe linii. @@ -146,13 +146,13 @@ export const MyComponent = () => { -| Proprietăți | Tip | Descriere | -| ------------- | ------- | -------------------------------------------------------------- | -| dezactivat | boolean | Indică dacă aria textului este dezactivată | -| minRows | număr | Numărul minim de rânduri vizibile pentru aria textului. | -| onChange | funcție | Callback function triggered when the text area content changes | -| text sugestiv | șir | Placeholder text displayed when the text area is empty | -| valoare | șir | Valoarea curentă a câmpului de text | +| Proprietăți | Tip | Descriere | +| ------------- | ------- | ----------------------------------------------------------------------- | +| dezactivat | boolean | Indică dacă aria textului este dezactivată | +| minute | număr | Numărul minim de rânduri vizibile pentru aria textului. | +| onChange | funcție | Funcția de apelare este declanșată atunci când zona de text se modifică | +| text sugestiv | șir | Text substitut afișat atunci când zona de text este goală | +| valoare | șir | Valoarea curentă a câmpului de text | diff --git a/packages/twenty-docs/l/ro/user-guide/data-migration/how-tos/fix-import-errors.mdx b/packages/twenty-docs/l/ro/user-guide/data-migration/how-tos/fix-import-errors.mdx index dac81383a4..d524e98736 100644 --- a/packages/twenty-docs/l/ro/user-guide/data-migration/how-tos/fix-import-errors.mdx +++ b/packages/twenty-docs/l/ro/user-guide/data-migration/how-tos/fix-import-errors.mdx @@ -7,116 +7,116 @@ description: Ghid complet de depanare pentru remedierea erorilor de import CSV. Importul nu funcționează? Acest ghid vă ajută să identificați și să remediați, pas cu pas, erorile comune de import. -## How Import Validation Works +## Cum funcționează validarea -After uploading your file and mapping columns, Twenty validates your data: +După încărcarea fișierului și cartografierea coloanelor, douăzeci validează datele: -1. **Validation runs** — Twenty checks each row for errors -2. **Errors are highlighted** — problematic rows appear in **yellow** -3. **You can fix in-place** — edit cells directly in the import UI -4. **Or remove rows** — skip problematic records entirely +1. **Se execută validarea** — Douăzeci de verificări pentru fiecare rând pentru erori +2. **Erorile sunt evidențiate** - în **galben** apar rânduri problematice +3. **Poți repara la locul tău** - editează celulele direct în interfața de import +4. **Sau eliminați rândurile** - săriți peste înregistrările problematice în întregime -**Fix errors in the UI.** You don't need to go back to your spreadsheet. Edit cells directly during import to save time. +**Repară erorile în UI.** Nu trebuie să te întorci la foaia de calcul. Editează celulele direct în timpul importului pentru a economisi timp. -## Step-by-Step Troubleshooting +## Depanare pas cu pas -### Step 1: Identify the Error Type +### Pasul 1: Identifică tipul de eroare -Click on a highlighted row to see the specific error message. Common error types: +Dă click pe un rând evidențiat pentru a vedea mesajul de eroare specific. Tipuri de erori comune: -| Mesaj de eroare | What It Means | -| --------------------------------------------------------------------- | ------------------------------------------------------------ | -| Duplicate values highlighted in yellow | Value already exists in Twenty or appears twice in your file | -| `{field} is not a valid {type}` (hover on yellow cell) | Data doesn't match expected format | -| Required field highlighted | A required field is empty | -| `Can't connect to {object}. No unique record found...` (import fails) | Referenced record doesn't exist | -| `Too many records. Up to 10000 allowed` (upload blocked) | File has more than 10,000 records | +| Mesaj de eroare | Ce înseamnă | +| ------------------------------------------------------------------------------------------ | ----------------------------------------------------------------- | +| Valori duplicate evidențiate în galben | Valoarea există deja în 20 sau apare de două ori în fișierul dvs. | +| `{field} nu este un {type}` (planează pe celula galbenă) | Datele nu corespund formatului așteptat | +| Câmp obligatoriu evidențiat | Un câmp obligatoriu este gol | +| `Nu se poate conecta la {object}. Nu s-a găsit nicio înregistrare unică...` (import fails) | Nu exista inregistrare referita | +| \`Prea multe înregistrări. Până la 10000 permise" (încărcare blocată) | Fișierul are mai mult de 10.000 de înregistrări | -### Step 2: Fix the Error +### Pasul 2: Repară eroarea -Follow the specific instructions below for each error type. +Urmați instrucțiunile specifice de mai jos pentru fiecare tip de eroare. --- -## Error: Duplicate Value +## Eroare: Valoare Duplicată ### Ce veți vedea -Rows with duplicate values are **highlighted in yellow** in the import UI before the import starts. +Rândurile cu valori duplicat sunt **evidențiate în galben** în interfața de import înainte de începerea importului. -### What It Means +### Ce înseamnă -A unique field (email, domain) either: +Un câmp unic (e-mail, domeniu) fie: -* Already exists in Twenty -* Appears twice in your file +* Există deja în douăzeci de ani +* Apare de două ori în fișier -### How to Fix +### Cum să repari -**Option 1: Edit the duplicate value** +**Opțiunea 1: Editare valoare duplicat** -1. Click the cell with the error -2. Change to a unique value -3. Continue with import +1. Faceți clic pe celula cu eroare +2. Schimbă la o valoare unică +3. Continuă cu import -**Option 2: Remove the duplicate row** +**Opțiunea 2: eliminarea rândului duplicat** -1. Click the X next to the row -2. The row will be skipped during import +1. Faceți clic pe X de lângă rând +2. Rândul va fi omis în timpul importului -**Option 3: Let Twenty update the existing record** +**Opțiunea 3: permiterea actualizării a douăzeci de înregistrări existente** -1. Ensure your file includes a unique identifier (`email`, `domain`, or `id`) -2. Map the unique identifier field -3. Twenty will update the existing record instead of creating a duplicate +1. Asigurați-vă că fișierul dvs. include un identificator unic (`email`, `domain`, sau `id`) +2. Hartă câmp unic de identificator +3. Douăzeci de persoane vor actualiza înregistrarea existentă în loc să creeze un duplicat -**You can update unique fields too.** +**Puteți actualiza și câmpurile unice.** -* If you keep the `id` but change the `email` → the email will be updated -* If you keep the `email` but change the `id` → the id will be updated +* Dacă păstrați `id` dar schimbați `e-mail` → e-mail-ul va fi actualizat +* Dacă păstraţi `e-mail` dar schimbaţi `id` → id-ul va fi actualizat -As long as one unique identifier matches, Twenty updates the record. +Atâta timp cât un identificator unic se potrivește, douăzeci actualizează înregistrarea. -### How to Prevent This Error +### Cum să preveniți această eroare -Before importing: +Înainte de import: -1. Sort your spreadsheet by the unique field -2. Remove duplicate rows -3. Check if records already exist in Twenty +1. Sortează foaia de calcul după câmpul unic +2. Elimină rândurile duplicate +3. Verificați dacă înregistrările există deja în douăzeci -**Soft-deleted records count toward uniqueness.** +**Numar de inregistrari soft-eliminate catre unic.** -Check Command Menu → See deleted records. Records there still enforce uniqueness. Permanently delete them or restore and update. +Verificaţi Meniul de Comenzi → Vezi înregistrările şterse. (Automatic Translation) Înregistrările de acolo trebuie încă să fie unice. Ștergeți definitiv sau restabiliți și actualizați. -For more details: [Uniqueness Constraints](/l/ro/user-guide/data-migration/capabilities/uniqueness-constraints) +Pentru mai multe detalii: [Constrângeri de unicitate](/l/ro/user-guide/data-migration/capabilities/uniqueness-constraints) --- -## Error: Invalid Format +## Eroare: Format invalid ### Ce veți vedea -The cell value is highlighted in yellow. Hover over it to see the error message: +Valoarea celulei este evidențiată în galben. Apasă pentru a vedea mesajul de eroare: ``` {field name} is not a valid {field type} ``` -### What It Means +### Ce înseamnă -The data doesn't match the expected format for that field type. +Datele nu corespund formatului așteptat pentru tipul de câmp. -### How to Fix — By Field Type +### Cum să repari — după tipul câmpului #### Email -**Problem:** Invalid email format -**Solution:** Use format `name@domain.com` +**Problemă:** Format e-mail nevalid +**Soluție:** Folosiți formatul `name@domain.com` ``` ❌ john.smith@ @@ -126,8 +126,8 @@ The data doesn't match the expected format for that field type. #### Domeniu -**Problem:** Inconsistent format may cause duplicates -**Solution:** Use `https://domain.com` format (recommended) +**Problemă:** Formatul consecvent poate cauza duplicate +**Soluție:** Folosiți formatul `https://domain.com` (recomandat) ``` ⚠️ acme.com (valid, but not recommended) @@ -135,7 +135,7 @@ The data doesn't match the expected format for that field type. ✅ https://acme.com (recommended) ``` -All formats are valid, but `https://domain.com` is recommended because it matches the format used by email/calendar sync. Using other formats may create duplicate companies. +Toate formatele sunt valide, dar `https://domain.com` este recomandat pentru că se potrivește cu formatul folosit de sincronizarea e-mail/calendar. Utilizarea altor formate poate crea companii duplicate. #### Dată @@ -150,19 +150,19 @@ The data doesn't match the expected format for that field type. #### Telefon -**Problem:** Missing required columns -**Solution:** Include all phone columns +**Problemă:** Lipsește coloanele necesare +**Soluție:** Include toate coloanele de telefon -| Column | Exemplu | -| --------------------------------------- | ------------ | -| **Phones / Primary Phone Number** | `4159095555` | -| **Phones / Primary Phone Country Code** | `US` | -| **Phones / Primary Phone Calling Code** | `+1` | +| Coloana | Exemplu | +| -------------------------------------------------------- | ------------ | +| **Telefon / Număr de telefon principal** | `4159095555` | +| **Codul de țară al telefonului principal / Telefonului** | `US` | +| **Cod telefon / apel telefonic** | `+1` | #### Boolean -**Problem:** Wrong boolean value -**Solution:** Use uppercase `TRUE` or `FALSE` +**Problemă:** Valoare booleană greșită +**Soluție:** Folosește majuscule `TRUE` sau `FALSE` ``` ❌ true @@ -172,17 +172,17 @@ The data doesn't match the expected format for that field type. ✓ FALSE ``` -#### Select / Multi-Select +#### Selectați / Multi-Selectare -**Problem:** Value doesn't match existing options -**Solution:** Use **API names**, not display labels +**Problemă:** Valoarea nu corespunde cu opțiunile existente +**Soluție:** Folosiți **nume API**, nu afișați etichetele -How to find API names: +Cum să găsești numele API: -1. Go to **Settings → Data Model** -2. Select the object and field -3. Enable **Advanced mode** (toggle at bottom right) -4. Use the API name (e.g., `OPTION_1`, not "Option 1") +1. Mergeți la **Setări → Modelul de date** +2. Selectați obiectul și câmpul +3. Activează **Mod avansat** (comutare în dreapta jos) +4. Utilizați numele API (de exemplu, `OPTION_1`, nu "Opțiunea 1") ``` ❌ High Priority @@ -191,18 +191,18 @@ How to find API names: #### Monedă -**Problem:** Missing amount or currency code -**Solution:** Fill both columns +**Problemă:** Lipsește suma sau codul monedei +**Soluție:** Umple ambele coloane -| Column | Exemplu | -| --------------------- | --------- | -| **Amount / Amount** | `1234.56` | -| **Amount / Currency** | `USD` | +| Coloana | Exemplu | +| ----------------- | --------- | +| **Sumă / Sumă** | `1234.56` | +| **Sumă / Monedă** | `USD` | #### Număr -**Problem:** Non-numeric characters -**Solution:** Numbers only, period for decimals +**Problemă:** Caractere nenumărate +**Soluţie:** Doar numere, perioadă pentru zecimale ``` ❌ $1,234.56 @@ -210,221 +210,221 @@ How to find API names: ✓ 1234.56 ``` -For complete format reference: [Field Mapping](/l/ro/user-guide/data-migration/capabilities/field-mapping) +Pentru trimiterea completă a formatului: [câmp Mapping](/l/ro/user-guide/data-migration/capabilities/field-mapping) --- -## Error: Required Field Missing +## Eroare: Câmpul obligatoriu lipsește ### Ce veți vedea -The row is highlighted in yellow with the required field cell marked. +Rândul este evidențiat cu galben cu celula de câmp dorită. -### What It Means +### Ce înseamnă -A required field is empty for this row. +Un câmp obligatoriu este gol pentru acest rând. -### How to Fix +### Cum să repari -**Option 1: Enter a value** +**Opțiunea 1: Introduceți o valoare** -1. Click the empty cell -2. Enter a value -3. Continue with import +1. Faceți clic pe celula goală +2. Introduceți o valoare +3. Continuă cu import -**Option 2: Remove the row** +**Opțiunea 2: eliminarea rândului** -1. If you don't have the data, click X to skip the row +1. Dacă nu ai date, apasă X pentru a sări peste rând -### How to Prevent This Error +### Cum să preveniți această eroare -Before importing, identify required fields: +Înainte de import, identificați câmpurile obligatorii: -1. Go to **Settings → Data Model** -2. Select your object -3. Check which fields are marked as required +1. Mergeți la **Setări → Modelul de date** +2. Selectează obiectul tău +3. Verificați care câmpuri sunt marcate ca obligatorii --- -## Error: Relation Not Found +## Eroare: Relația nu a fost găsită ### Ce veți vedea -This error appears **after the import starts** — the import fails with a message like: +Această eroare apare **după începerea importului** - importul eșuează cu un mesaj precum: ``` Can't connect to company. No unique record found with condition: id = 7776ee49-f608-4a77-8cc8-6fe96ae1e43f ``` -This means there is no Company in Twenty with that specific identifier. +Aceasta înseamnă că nu există nicio societate comercială în douăzeci de exemplare cu acest identificator specific. -Unlike other errors, this one is not caught during the data review step. The import will start and then fail when it encounters the missing relation. +Spre deosebire de alte erori, aceasta nu este prinsă în timpul pasului de revizuire a datelor. Importul va începe şi apoi va eşua atunci când se întâlneşte cu relaţia lipsă. -### What It Means +### Ce înseamnă -You're trying to link to a record that doesn't exist in Twenty. +Încercați să vă conectați la o înregistrare care nu există în douăzeci de ani. -### How to Fix +### Cum să repari -**Option 1: Import parent records first** +**Opțiunea 1: Importați mai întâi înregistrările părinte** -1. Cancel the current import -2. Import the parent records (e.g., Companies) -3. Then import the child records (e.g., People) +1. Anulează importul curent +2. Importă înregistrările părinte (de exemplu, societăți) +3. Apoi se importă înregistrările cu copii (de exemplu, oameni) -**Option 2: Fix the reference value** +\*\*Opțiunea 2: Repararea valorii de referință -1. Check the reference value in your file -2. Ensure it exactly matches an existing record -3. Verify format: domains should be `https://domain.com` +1. Verifică valoarea de referință din fișierul tău +2. Asigurați-vă că se potrivește exact cu o înregistrare existentă +3. Verificați formatul: domeniile ar trebui să fie `https://domain.com` -**Option 3: Remove the relation** +**Opțiunea 3: Eliminarea relației** -1. Clear the cell to import without the relation -2. Add the relation manually later +1. Curăță celula de importat fără legătură +2. Adaugă relația manual mai târziu -### How to Prevent This Error +### Cum să preveniți această eroare -1. **Import in the correct order:** - * Companies first - * People second (with company references) - * Opportunities third +1. **Importă în ordinea corectă:** + * Societăți primele + * Persoane a doua (cu referința companiei) + * Oportunități a treia -2. **Verify reference values:** - * Export parent records to get exact identifiers - * Use domain format `https://domain.com` - * Check for typos and case sensitivity +2. **Verificați valorile de referință:** + * Exporta inregistrarile parinte pentru a obtine identificatori exacti + * Folosiți formatul de domeniu `https://domain.com` + * Verificați dacă există caractere și senzitivitatea carcaselor -**Import will fail if a reference is made to a non-existent record.** +**Importul va eşua dacă se face referire la o înregistrare inexistentă.** -Always import parent objects before child objects. +Întotdeauna importă obiecte părinte înainte de obiecte copil. -For more details: [Import Relations](/l/ro/user-guide/data-migration/capabilities/import-relations) +Pentru mai multe detalii: [Importă Relații](/l/ro/user-guide/data-migration/capabilities/import-relations) --- -## Error: File Too Large +## Eroare: Fișier prea mare ### Ce veți vedea -This error appears **when uploading your file** — the upload is blocked entirely: +Această eroare apare **la încărcarea fișierului** — încărcarea este blocată în întregime: ``` Too many records. Up to 10000 allowed ``` -You won't be able to proceed to the data review step until you reduce the file size. +Nu veți putea trece la pasul de revizuire a datelor până când nu reduceți dimensiunea fișierului. -### What It Means +### Ce înseamnă -Your file has more than 10,000 records. +Fişierul are mai mult de 10.000 de înregistrări. -### How to Fix +### Cum să repari -**Option 1: Split into multiple files** +**Opțiunea 1: Împărțirea în mai multe fișiere** -1. Divide your data into files of 10,000 records or fewer -2. Import each file separately -3. Maintain import order (Companies before People) +1. Împărțiți datele în fișiere cu 10.000 de înregistrări sau mai puține +2. Importă fiecare fișier separat +3. Menține comanda de import (Companiile înainte de oameni) -**Option 2: Use API import** -For very large datasets, use the API which has no record limit. -See: [How to Import Data via API](/l/ro/user-guide/data-migration/how-tos/import-data-via-api) +**Opțiunea 2: Utilizați API import** +pentru seturi de date foarte mari, utilizați API-ul care nu are o limită de înregistrare. +Vedeți: [Cum să importați date prin API](/l/ro/user-guide/data-migration/how-tos/import-data-via-api) --- -## Error: Field Not Recognized +## Eroare: Câmpul nu este recunoscut -### What It Means +### Ce înseamnă -A column in your file can't be mapped because the field doesn't exist in Twenty. +O coloană din fișierul dvs. nu poate fi cartografiată deoarece câmpul nu există în Twenty. -### How to Fix +### Cum să repari -1. Go to **Settings → Data Model** -2. Select the object you're importing -3. Click **+ Add field** -4. Create the custom field with the appropriate type -5. Re-upload your file +1. Mergeți la **Setări → Modelul de date** +2. Selectați obiectul pe care îl importați +3. Click \*\*+ Adauga cîmp \*\* +4. Creați câmpul personalizat cu tipul corespunzător +5. Reîncărcați fișierul -The CSV import creates records, not fields. All fields must exist before importing. +Importul CSV creează înregistrări, nu câmpuri. Toate câmpurile trebuie să existe înainte de import. --- -## Error: User Relation Empty +## Eroare: Relația utilizatorului este goală -### What It Means +### Ce înseamnă -You're trying to assign a record to a user (Owner, Assignee) but the relation isn't being mapped. +Încercați să atribuiți o înregistrare unui utilizator (Owner, Assignee), dar relația nu este cartografiată. -### Common Causes +### Frecvente Cauze -1. **User hasn't accepted their invitation** — the user doesn't exist in Twenty yet -2. **Using user ID from old system** — Twenty can't match IDs from another system -3. **Wrong email format** — the email doesn't match the user's Twenty account +1. **Utilizatorul nu și-a acceptat invitația** — utilizatorul nu există încă în douăzeci de ani +2. **Folosind ID-ul utilizatorului din vechi** — Douăzeci de utilizatori nu se pot potrivi ID-urile din alt sistem +3. **Format de e-mail greșit** - e-mailul nu se potrivește cu contul de 20 de utilizatori -### How to Fix +### Cum să repari -1. Ensure all users have **accepted their invitation** to your Twenty workspace -2. Use the user's **email address** (not their name or old system ID) -3. Use the same email they used to join Twenty +1. Asigurați-vă că toți utilizatorii și-au **acceptat invitația** în spațiul de lucru de douăzeci +2. Folosiți **adresa de e-mail a utilizatorului** (nu numele sau vechea ID-ul de sistem) +3. Folosiți același e-mail pe care l-au folosit pentru a se alătura celor douăzeci -**Users must accept invitations before importing.** +**Utilizatorii trebuie să accepte invitațiile înainte de import.** -If a user hasn't accepted their invitation, records referencing them will have empty user relations. +Dacă un utilizator nu a acceptat invitația, înregistrările cu privire la ei vor avea relații de utilizator goale. --- -## Pre-Import Checklist +## Lista de verificare pre-import -Avoid errors by checking these before importing: +Evită erorile verificându-le înainte de import: -### File Requirements +### Fişier Cerinţe -File is CSV, XLSX, or XLS format -File has fewer than 10,000 records -File uses UTF-8 encoding +Fișierul este CSV, XLSX sau formatul XLS +Fișierul are mai puțin de 10.000 înregistrări +Fișierul folosește codificarea UTF-8 -### Data Quality +### Calitatea datelor -No duplicate emails (for People) -No duplicate domains (for Companies) -All dates use consistent format -All domains use `https://domain.com` format +Nu există e-mailuri duplicate (pentru oameni) +Nu există domenii duplicate (pentru companii) +Toate datele folosesc formatul consistent +Toate domeniile folosesc \`https://domain. formatul -### Field Formats +### Formate câmp -Boolean fields use `TRUE` or `FALSE` (uppercase) -Select fields use API names, not display labels -Phone fields have all required columns -Currency fields have both Amount and Currency Code +Câmpurile Boolean folosesc `TRUE` sau `FALSE` (majuscule) +Selectează câmpurile folosesc numele API, nu afișează etichetele +Câmpurile de telefon au toate coloanele obligatorii +Câmpurile valutare au atât Suma cât și Codul Valutar ### Relații -Parent records imported before child records -Relation columns reference existing records -Domain format matches Twenty's format exactly +Înregistrările părinte importate înainte de înregistrările copil +Coloane de referință înregistrările existente +Formatul domeniului corespunde formatului Twenty exact ### Model de date -All custom fields exist in Settings → Data Model -Select options exist before importing +Toate câmpurile personalizate există în Setări → Modelul de date +Există opțiuni înainte de a importa --- -## Still Having Issues? +## Încă aveți probleme? -If you've tried the above solutions: +Dacă aţi încercat soluţiile de mai sus: -1. **Download the sample file** — see the exact format Twenty expects -2. **Export existing records** — compare your file to working data -3. **Test with a small batch** — try 5-10 rows first -4. **Check the reference articles:** - * [Field Mapping](/l/ro/user-guide/data-migration/capabilities/field-mapping) - * [Uniqueness Constraints](/l/ro/user-guide/data-migration/capabilities/uniqueness-constraints) - * [Import Relations](/l/ro/user-guide/data-migration/capabilities/import-relations) - * [Error Handling](/l/ro/user-guide/data-migration/capabilities/error-handling) +1. **Descarcă eșantionul de fișier** - vezi formatul exact pe care douăzeci îl așteaptă +2. **Exportă înregistrările existente** - compară fișierul cu datele de lucru +3. **Testează cu un lot mic** - încearcă mai întâi 5-10 rânduri +4. **Verificați articolele de referință:** + * [Mapare câmpuri](/l/ro/user-guide/data-migration/capabilities/field-mapping) + * [Constrângeri unice](/l/ro/user-guide/data-migration/capabilities/uniqueness-constraints) + * [Importă Relații](/l/ro/user-guide/data-migration/capabilities/import-relations) + * [Gestionare eroare](/l/ro/user-guide/data-migration/capabilities/error-handling) diff --git a/packages/twenty-docs/l/ro/user-guide/views-pipelines/how-tos/restrict-access-to-your-view.mdx b/packages/twenty-docs/l/ro/user-guide/views-pipelines/how-tos/restrict-access-to-your-view.mdx index ad9e603826..01585e9df6 100644 --- a/packages/twenty-docs/l/ro/user-guide/views-pipelines/how-tos/restrict-access-to-your-view.mdx +++ b/packages/twenty-docs/l/ro/user-guide/views-pipelines/how-tos/restrict-access-to-your-view.mdx @@ -1,32 +1,32 @@ --- -title: Restrict Access to Your View -description: Control who can see your custom views. +title: Restricționează accesul la vizualizarea ta +description: Controlează cine poate vedea vizualizările tale personalizate. --- Fiecare vizualizare (cu excepția vizualizărilor implicite "Toate [Numele obiectului]") are propria setare de vizibilitate. -## Steps +## Pași -1. Open the view you want to restrict -2. Click **Options** in the top right +1. Deschideți vizualizarea pe care doriți să o restricționați +2. Faceți clic pe **Opțiuni** în dreapta sus 3. Click **Visibility** -4. Select **Unlisted** +4. Selectați **Nelistat** -Your view is now visible only to you. +Vederea dvs. este acum vizibilă doar pentru dvs. -## Visibility Options +## Opțiuni de vizibilitate -| Setting | Who Can See | -| ------------- | --------------------- | -| **Workspace** | All workspace members | -| **Unlisted** | Only you | +| Setare | Cine poate vedea | +| ------------------- | ------------------------------- | +| **Spațiu de lucru** | Toți membrii spațiului de lucru | +| **Nelistat** | Doar tu | ## Notițe -* The default "All [Object Name]" views cannot be made unlisted -* Unlisted views don't appear in other users' view dropdowns -* You can change visibility back to Workspace at any time +* Implicit "Toate vizualizările [Nume obiect]" nu pot fi făcute nelistate +* Vizualizările nelistate nu apar în meniul derulant al altor utilizatori +* Poți schimba vizibilitatea înapoi la spațiul de lucru în orice moment -## Related +## Legate -* [View Settings](/l/ro/user-guide/views-pipelines/capabilities/view-settings) — all view configuration options +* [Vezi Setările](/l/ro/user-guide/views-pipelines/capabilities/view-settings) - toate opțiunile de configurare vizualizare diff --git a/packages/twenty-docs/l/ro/user-guide/workflows/capabilities/workflow-branches.mdx b/packages/twenty-docs/l/ro/user-guide/workflows/capabilities/workflow-branches.mdx index c4f931730a..375ebe4655 100644 --- a/packages/twenty-docs/l/ro/user-guide/workflows/capabilities/workflow-branches.mdx +++ b/packages/twenty-docs/l/ro/user-guide/workflows/capabilities/workflow-branches.mdx @@ -1,5 +1,5 @@ --- -title: Workflow Branches +title: Sucursale de lucru description: Creați căi paralele și logică condițională în fluxurile dvs. de lucru. --- diff --git a/packages/twenty-docs/l/ro/user-guide/workflows/capabilities/workflow-triggers.mdx b/packages/twenty-docs/l/ro/user-guide/workflows/capabilities/workflow-triggers.mdx index 27c1cc871e..4ad4bac5c1 100644 --- a/packages/twenty-docs/l/ro/user-guide/workflows/capabilities/workflow-triggers.mdx +++ b/packages/twenty-docs/l/ro/user-guide/workflows/capabilities/workflow-triggers.mdx @@ -1,22 +1,22 @@ --- title: Declanșatoare pentru fluxuri de lucru -description: Learn about the different triggers that start your workflows. +description: Află mai multe despre diferiții declanșatori care îți încep fluxurile de lucru. --- -## About Triggers +## Despre declanşatori Fluxurile de lucru întotdeauna încep cu un declanșator unic care definește când ar trebui să ruleze automatizarea. -**Advanced objects are supported!** Beyond standard CRM objects (People, Companies, Opportunities), you can also trigger workflows and perform actions on: +**Obiectele avansate sunt acceptate!** Dincolo de obiectele standard CRM (People, Companii, Oportunități), puteți declanșa, de asemenea, fluxuri de lucru și efectua acțiuni pe: * Membri ai spațiului de lucru -* Calendar Events -* Messages (Emails) -* Tasks, Notes, and many other system objects +* Evenimente Calendar +* Mesaje (Emails) +* Sarcini, Note și multe alte obiecte de sistem -This opens up powerful automations like notifying team members when calendar events are created, or processing incoming emails automatically. +Acest lucru deschide automate puternice cum ar fi notificarea membrilor echipei atunci când evenimentele din calendar sunt create sau procesarea automată a e-mailurilor primite. ## Înregistrarea este creată @@ -26,9 +26,9 @@ Pornește fluxul de lucru când este creată o nouă înregistrare într-un obie **Configurare**: Selectați tipul de obiect pentru a monitoriza noile înregistrări. -* This trigger is great for records created by csv, mailbox and calendar synchronization, API. -* **It is not recommended for records created manually**: with this trigger, workflows start as soon as the record is created. Since Twenty UI offers auto-save on the fly (there is not an edit mode and then a validation to save records), the workflow will be triggered before the user inputs all the fields. - To trigger this workflow on records created manually, it is recommended to use the trigger `Record is created or updated` instead. +* Acest declanșator este grozav pentru înregistrările create de csv, poștală și sincronizare calendar, API. +* **Nu este recomandat pentru înregistrările create manual**: cu acest declanșator, fluxurile de lucru încep imediat ce înregistrarea este creată. Deoarece 20 de UI oferă salvare automată în zbor (nu există un mod de editare și apoi o validare pentru a salva înregistrările), fluxul de lucru va fi declanșat înainte ca utilizatorul să introducă toate câmpurile. + Pentru a declanșa acest flux de lucru pe înregistrările create manual, este recomandat să utilizați declanșatorul `Record este creat sau actualizat`. ## Înregistrarea este actualizată @@ -61,27 +61,27 @@ Pornește fluxul de lucru când o înregistrare este eliminată dintr-un obiect. **Configurare**: Selectați tipul de obiect pentru a monitoriza ștergerile. -## Manual Trigger +## Declanșare manuală -Pornește fluxul de lucru când este declanșat de o acțiune a utilizatorului. This trigger can be accessed through the `Cmd+K` menu or via a custom button that will be displayed in the top navbar after selecting record(s). +Pornește fluxul de lucru când este declanșat de o acțiune a utilizatorului. Acest declanșator poate fi accesat prin meniul `Cmd+K` sau printr-un buton personalizat care va fi afișat în bara de navigare de sus după selectarea înregistrării(lor). **Configurare disponibilitate**: Alegeți cum ar trebui ca fluxul de lucru să gestioneze selecția înregistrărilor: -* **Global**: Nu se necesită nicio înregistrare pentru a declanșa acest flux de lucru. The workflow is triggered from the command menu `Cmd + K` anywhere (from any object) and does not use record(s) as input. +* **Global**: Nu se necesită nicio înregistrare pentru a declanșa acest flux de lucru. Fluxul de lucru este declanșat din meniul de comandă `Cmd + K` oriunde (de la orice obiect) și nu folosește înregistrarea (înregistrările) ca intrare. -* **Single**: Înregistrările selectate vor fi transmise către fluxul dumneavoastră de lucru. Se configurează pentru un obiect dat. Mai multe înregistrări pot fi selectate înainte de a declanșa fluxul de lucru. The workflow will run from beginning to end as many times as there are records selected. +* **Single**: Înregistrările selectate vor fi transmise către fluxul dumneavoastră de lucru. Se configurează pentru un obiect dat. Mai multe înregistrări pot fi selectate înainte de a declanșa fluxul de lucru. Fluxul de lucru va rula de la început la sfârşit de câte ori există înregistrări selectate. (Automatic Translation) - **Soft limit: 100 runs/minute**. Beyond this, workflows remain in "Not Started" status and are processed gradually—either by a background job or when another workflow enters the queue. This means you can select more than 100 records with a Single trigger; execution will just be slower. + **Limita soft: 100 runs/minut**. Dincolo de aceasta, fluxurile de lucru rămân în starea „Nu s-a început” și sunt procesate treptat — fie de un job de fundal sau atunci când un alt flux de lucru intră în coadă. Asta înseamnă că poți selecta mai mult de 100 de înregistrări cu un singur declanșator; execuția va fi mai lentă. -* **Bulk**: Înregistrările selectate vor fi transmise către fluxul dumneavoastră de lucru. Se configurează pentru un obiect dat. Mai multe înregistrări pot fi selectate înainte de a declanșa fluxul de lucru. Fluxul de lucru va rula o singură dată, oferind întreaga listă de înregistrări ca intrare. This means the workflow needs to contain an [Iterator action](/l/ro/user-guide/workflows/capabilities/workflow-actions#iterator). +* **Bulk**: Înregistrările selectate vor fi transmise către fluxul dumneavoastră de lucru. Se configurează pentru un obiect dat. Mai multe înregistrări pot fi selectate înainte de a declanșa fluxul de lucru. Fluxul de lucru va rula o singură dată, oferind întreaga listă de înregistrări ca intrare. Aceasta înseamnă că fluxul de lucru trebuie să conțină o [acțiune Iterator](/l/ro/user-guide/workflows/capabilities/workflow-actions#iterator). -This is more advanced, and best for people who want to optimize the number of workflow runs. +Acest lucru este mai avansat, și cel mai bine pentru cei care doresc să optimizeze numărul de alergări de fluxuri de lucru. @@ -94,10 +94,10 @@ This is more advanced, and best for people who want to optimize the number of wo **Metode de acces**: -* `Cmd+K` menu to find and launch manual workflows +* Meniul `Cmd+K` pentru a găsi și lansa fluxuri de lucru manuale * Buton personalizat în navbarul superior (dacă este configurat) -## Time-Based Trigger: On a Schedule +## Declanșator temporal: Pe un program Pornește fluxul de lucru în mod recurent, conform configurării pe care o definiți. @@ -107,10 +107,10 @@ Pornește fluxul de lucru în mod recurent, conform configurării pe care o defi * Introduceți o valoare sau folosiți expresii cron personalizate pentru programare avansată -**Timezone**: Scheduled workflows run in **UTC**. When setting hours for daily schedules, convert your local time to UTC. +**Fus orar**: Fluxuri de lucru programate rulează în **UTC**. Când sunt stabilite ore pentru orarele zilnice, convertiți ora locală în UTC. -## External Trigger: Webhook +## Declanșator extern: Webhook Pornește fluxul de lucru când este primită o cerere GET sau POST de la un serviciu extern. @@ -118,18 +118,18 @@ Pornește fluxul de lucru când este primită o cerere GET sau POST de la un ser **Configurare**: -* The workflow provides a unique webhook URL—copy this and add it to your external system as the endpoint to call. -* For POST requests, define the expected body structure so Twenty knows what data to expect. Add here the fields you will receive that will be needed below in your workflow. -* Configure authentication (coming soon). +* Fluxul de lucru oferă un URL webhook unic - copiați-l și adăugați-l în sistemul dvs. extern ca punct final pentru apelare. +* În ceea ce privește cererile POST, să se definească structura organică preconizată, astfel încât douăzeci să știe ce date să aștepte. Adăugați aici câmpurile pe care le veți primi care vor fi necesare mai jos în fluxul de lucru. +* Configurați autentificarea (în curând). -## Choosing the Right Trigger +## Alegerea Declanșatorului din dreapta -| Use Case | Recommended Trigger | -| --------------------------- | ----------------------------------------- | -| New leads need processing | Înregistrarea este creată | -| Data changes need sync | Înregistrarea este actualizată | -| Import/manual data handling | Înregistrarea este actualizată sau creată | -| Cleanup after deletion | Înregistrarea este ștearsă | -| User-initiated action | Lansare manuală | -| Recurring reports | Conform unui program | -| External integration | Webhook or On a Schedule | +| Utilizare Caz | Declanșator recomandat | +| ---------------------------------------- | ----------------------------------------- | +| Noi piste necesită procesare | Înregistrarea este creată | +| Schimbarea datelor necesită sincronizare | Înregistrarea este actualizată | +| Import/manipularea manuală a datelor | Înregistrarea este actualizată sau creată | +| Curățare după ștergere | Înregistrarea este ștearsă | +| Acțiune inițiată de utilizator | Lansare manuală | +| Rapoarte periodice | Conform unui program | +| Integrarea externă | Webhook sau pe o programare | diff --git a/packages/twenty-docs/l/ro/user-guide/workflows/how-tos/crm-automations/display-number-of-emails-received.mdx b/packages/twenty-docs/l/ro/user-guide/workflows/how-tos/crm-automations/display-number-of-emails-received.mdx index ceaf8f4cac..99741c107c 100644 --- a/packages/twenty-docs/l/ro/user-guide/workflows/how-tos/crm-automations/display-number-of-emails-received.mdx +++ b/packages/twenty-docs/l/ro/user-guide/workflows/how-tos/crm-automations/display-number-of-emails-received.mdx @@ -1,6 +1,6 @@ --- -title: Display Number of Emails Received -description: Create a workflow to automatically count and display the number of emails received from each contact. +title: Afişare număr de e-mailuri primite +description: Creați un flux de lucru pentru a număra automat și afișa numărul de e-mailuri primite de la fiecare contact. --- import { VimeoEmbed } from '/snippets/vimeo-embed.mdx'; @@ -9,66 +9,66 @@ import { VimeoEmbed } from '/snippets/vimeo-embed.mdx'; ## Prezentare generală -This workflow triggers every time a new email is received and updates a custom field on the Person record with the total count of emails from that sender. +Acest flux de lucru declanșează de fiecare dată când se primește un nou e-mail și actualizează un câmp personalizat în Înregistrarea Persoanei cu numărul total de e-mailuri de la acel expeditor. ## Cerințe -Before setting up this workflow, create a custom field on the **People** object: +Înainte de a configura acest flux de lucru, creaţi un câmp personalizat pe obiectul **Persoane**: -1. Go to **Settings → Data Model → People** -2. Add a new **Number** field -3. Name it something like "Number of emails received from this person" +1. Mergeți la \*\*Setări → Model de date → Oameni \*\* +2. Adauga un nou camp **Numărul** +3. Numește-l ceva ca "Numărul de e-mailuri primite de la această persoană" -## Step-by-Step Setup +## Configurare pas cu pas -### Step 1: Configure the Trigger +### Pasul 1: Configurați Declanșatorul -1. Go to **Workflows** and create a new workflow -2. Select **Record is Created** as the trigger -3. Choose **Message Participants** (available under Advanced objects) +1. Mergeți la **Fluxuri de lucru** și creați un nou flux de lucru +2. Selectați **Înregistrarea este creată** ca declanșator +3. Alege **Participanţii la mesaje** (disponibil sub obiecte avansate) -A Message Participant is a combination of a message ID and a person ID, creating one unique record per message. This is easier to track than Messages directly because we can access the `handle` field, which contains the sender's (or recipient's) email address. +Un participant la mesaj este o combinație între un ID de mesaj și un ID de persoană, creând o înregistrare unică per mesaj. Acest lucru este mai uşor de urmărit decât mesajele direct, deoarece putem accesa câmpul "handle", care conţine adresa de e-mail a expeditorului (sau a destinatarului). -### Step 2: Filter on Role +### Pasul 2: Filtrare pe rol -1. Add a **Filter** action -2. Set the condition: **Role** equals **FROM** +1. Adaugă o acțiune **filtru** +2. Setaţi condiţia: **Rol** este egal cu **FROM** -This ensures you only count messages sent by this person, not messages sent to them. +Acest lucru vă asigură că numărați doar mesajele trimise de această persoană, nu le sunt trimise. -### Step 3: Search All Message Participants with Same Handle +### Pasul 3: Caută toţi participanţii la mesaje cu acelaşi manual -1. Add a **Search Records** action -2. Select **Message Participants** as the object -3. Add filters: **Handle** equals the handle from the trigger (the sender's email address) and **Role** equals **FROM** -4. Increase the **Limit** from 1 to **200** (the maximum) +1. Adăugați o **acțiune de căutare Records** +2. Selectați **Participanții la mesaje** ca obiect +3. Adaugă filtre: **Handle** este egal cu procesorul de la declanșatorul (adresa de e-mail a expeditorului) și **Rol** egal cu **FROM** +4. Crește **Limita** de la 1 la **200** (maxim) -This finds all messages from this email address to get the total count. +Aceasta găsește toate mesajele de la această adresă de e-mail pentru a obține numărul total. -The Search Records action is limited to returning 200 records maximum. However, since you're only using the `totalCount` value (not the individual records), this step will return the total number of emails sent by this person. +Acțiunea de căutare Înregistrări este limitată la maxim 200 de înregistrări. Cu toate acestea, deoarece utilizaţi doar valoarea `totalCount` (nu înregistrările individuale), acest pas va returna numărul total de e-mailuri trimise de această persoană. -### Step 4: Update the Person Record with a Create or Update Record action +### Pasul 4: Actualizați înregistrarea persoanei cu o acțiune de creare sau actualizare a înregistrării -1. Add a **Create or Update Record** action +1. Adăugați o acțiune **Creare sau Actualizare Înregistrare** -Use **Upsert Record** instead of **Update Record** here. This lets you identify the person by their email address (the `handle` field) rather than requiring a record ID from a previous step. +Utilizaţi **Înregistrare Upser** în loc de **Actualizare Înregistrare** aici. Acest lucru vă permite să identificaţi persoana prin adresa lor de e-mail (câmpul `handle`), în loc să solicitaţi un ID de înregistrare de la un pas anterior. -2. Select **People** as the object -3. Find the person by matching their email to the `handle` from the Message Participant -4. Set your custom "Number of emails received" field to `{{searchRecords.totalCount}}` +2. Selectează **persoane** ca obiect +3. Găsiți persoana potrivindu-și adresa de e-mail cu `handle` de la Participantul la Mesaj +4. Setaţi câmpul personalizat "Număr de e-mailuri primite" la `{{searchRecords.totalCount}}` -The `totalCount` value from the Search Records action represents the total number of emails received from this person. +Valoarea `totalCount` din acțiunea de căutare Înregistrări reprezintă numărul total de e-mailuri primite de la această persoană. -## Related +## Conexe -* [Workflow Actions](/l/ro/user-guide/workflows/capabilities/workflow-actions) -* [Create Custom Fields](/l/ro/user-guide/data-model/how-tos/customize-your-data-model) +* [Acțiuni flux de lucru](/l/ro/user-guide/workflows/capabilities/workflow-actions) +* [Creare câmpuri personalizate](/l/ro/user-guide/data-model/how-tos/customize-your-data-model) * [Search Records Action](/l/ro/user-guide/workflows/capabilities/workflow-actions#search-records) diff --git a/packages/twenty-docs/l/ru/developers/self-host/capabilities/setup.mdx b/packages/twenty-docs/l/ru/developers/self-host/capabilities/setup.mdx index cc5be8f9f7..1181ab5646 100644 --- a/packages/twenty-docs/l/ru/developers/self-host/capabilities/setup.mdx +++ b/packages/twenty-docs/l/ru/developers/self-host/capabilities/setup.mdx @@ -168,8 +168,8 @@ IS_WORKSPACE_CREATION_LIMITED_TO_SERVER_ADMINS=true **Режим только для среды:** если вы установили `IS_CONFIG_VARIABLES_IN_DB_ENABLED=false`, добавьте эти переменные в свой `.env` файл вместо этого. -**Required scopes** (automatically configured): -[See relevant source code](https://github.com/twentyhq/twenty/blob/main/packages/twenty-server/src/engine/core-modules/auth/utils/get-google-apis-oauth-scopes.ts#L4-L10) +**Необходимые границы** (автоматически настроены): +[Посмотреть соответствующий исходный код](https://github.com/twentyhq/twenty/blob/main/packages/twenty-server/src/engine/core-modules/auth/utils/get-google-apis-oauth-scopes.ts#L4-L10) * `https://www.googleapis.com/auth/calendar.events` * `https://www.googleapis.com/auth/gmail.readonly` @@ -232,7 +232,7 @@ IS_WORKSPACE_CREATION_LIMITED_TO_SERVER_ADMINS=true ### Настройка областей доступа -[See relevant source code](https://github.com/twentyhq/twenty/blob/main/packages/twenty-server/src/engine/core-modules/auth/utils/get-microsoft-apis-oauth-scopes.ts#L2-L9) +[См. соответствующий исходный код](https://github.com/twentyhq/twenty/blob/main/packages/twenty-server/src/engine/core-modules/auth/utils/get-microsoft-apis-oauth-scopes.ts#L2-L9) * 'openid' * 'электронная почта' @@ -313,10 +313,10 @@ yarn command:prod cron:workflow:automated-cron-trigger **Режим только для среды:** если вы установили `IS_CONFIG_VARIABLES_IN_DB_ENABLED=false`, добавьте эти переменные в свой `.env` файл вместо этого. -## S3 Storage +## S3 Хранилище -By default, Twenty stores uploaded files on the local filesystem. Для продакшн-развертываний используйте S3 или совместимый с S3 сервис (MinIO, DigitalOcean Spaces и т. д.). чтобы файлы сохранялись при перезапусках контейнеров и были доступны на нескольких экземплярах сервера при масштабировании. +По умолчанию Twenty магазинов загрузили файлы в локальной файловой системе. Для продакшн-развертываний используйте S3 или совместимый с S3 сервис (MinIO, DigitalOcean Spaces и т. д.). чтобы файлы сохранялись при перезапусках контейнеров и были доступны на нескольких экземплярах сервера при масштабировании. Установите `STORAGE_TYPE=S_3` и настройте переменные `STORAGE_S3_*` через админ-панель или `.env`. См. [справочник config-variables.ts](https://github.com/twentyhq/twenty/blob/main/packages/twenty-server/src/engine/core-modules/twenty-config/config-variables.ts) для полного списка переменных S3. diff --git a/packages/twenty-docs/l/ru/twenty-ui/input/text.mdx b/packages/twenty-docs/l/ru/twenty-ui/input/text.mdx index 2b621b7363..30e4168d31 100644 --- a/packages/twenty-docs/l/ru/twenty-ui/input/text.mdx +++ b/packages/twenty-docs/l/ru/twenty-ui/input/text.mdx @@ -57,7 +57,7 @@ export const MyComponent = () => { | отключитьГорячиеКлавиши | логическое | Указывает, активированы ли горячие клавиши для ввода | | ошибка | строка | Представляет сообщение об ошибке, которое будет отображаться. При наличии добавляет значок ошибки с правой стороны ввода | | приНажатииКлавиши | функция | Вызывается, когда клавиша нажата, пока поле ввода сфокусировано. Получает `React.KeyboardEvent` в качестве аргумента | -| RightIcon | ИконкаКомпонент | Опциональный компонент иконки, отображаемый с правой стороны ввода | +| Правая иконка | ИконкаКомпонент | Опциональный компонент иконки, отображаемый с правой стороны ввода | @@ -151,7 +151,7 @@ export const MyComponent = () => { | отключено | логическое | Указывает, отключена ли текстовая область | | минСтроки | число | Минимальное количество видимых строк для текстовой области. | | onChange | функция | Функция обратного вызова, вызываемая при изменении содержимого текстовой области | -| заполнитель | строка | Placeholder text displayed when the text area is empty | +| заполнитель | строка | Текст метки, отображаемый, когда текстовая область пуста | | значение | строка | Текущее значение текстовой области | diff --git a/packages/twenty-docs/l/ru/user-guide/billing/capabilities/pricing-plans.mdx b/packages/twenty-docs/l/ru/user-guide/billing/capabilities/pricing-plans.mdx index 4db0da26cf..96f31f2e11 100644 --- a/packages/twenty-docs/l/ru/user-guide/billing/capabilities/pricing-plans.mdx +++ b/packages/twenty-docs/l/ru/user-guide/billing/capabilities/pricing-plans.mdx @@ -1,5 +1,5 @@ --- -title: Pricing Plans +title: Ценовые планы description: Узнайте о тарифных планах Twenty и о том, как переключаться между ними. --- diff --git a/packages/twenty-docs/l/ru/user-guide/calendar-emails/how-tos/limit-emails-imported.mdx b/packages/twenty-docs/l/ru/user-guide/calendar-emails/how-tos/limit-emails-imported.mdx index b41ac9ec56..831265a5ca 100644 --- a/packages/twenty-docs/l/ru/user-guide/calendar-emails/how-tos/limit-emails-imported.mdx +++ b/packages/twenty-docs/l/ru/user-guide/calendar-emails/how-tos/limit-emails-imported.mdx @@ -1,5 +1,5 @@ --- -title: Limit Emails Imported +title: Ограничить Импортированные письма description: Управляйте тем, какие письма импортируются в Twenty. --- diff --git a/packages/twenty-docs/l/ru/user-guide/data-migration/how-tos/prepare-your-csv-files.mdx b/packages/twenty-docs/l/ru/user-guide/data-migration/how-tos/prepare-your-csv-files.mdx index 344626ca1e..432af81d75 100644 --- a/packages/twenty-docs/l/ru/user-guide/data-migration/how-tos/prepare-your-csv-files.mdx +++ b/packages/twenty-docs/l/ru/user-guide/data-migration/how-tos/prepare-your-csv-files.mdx @@ -1,5 +1,5 @@ --- -title: Prepare Your CSV Files +title: Подготовить файлы CSV description: Полное пошаговое руководство по форматированию ваших данных для импорта в Twenty. --- diff --git a/packages/twenty-docs/l/ru/user-guide/data-migration/overview.mdx b/packages/twenty-docs/l/ru/user-guide/data-migration/overview.mdx index c4f4616944..80f8c8e30b 100644 --- a/packages/twenty-docs/l/ru/user-guide/data-migration/overview.mdx +++ b/packages/twenty-docs/l/ru/user-guide/data-migration/overview.mdx @@ -1,5 +1,5 @@ --- -title: Data Migration +title: Миграция данных description: Импортируйте и экспортируйте данные вашей CRM через файлы CSV или API. --- diff --git a/packages/twenty-docs/l/ru/user-guide/permissions-access/overview.mdx b/packages/twenty-docs/l/ru/user-guide/permissions-access/overview.mdx index 122d36bec7..3946e93d23 100644 --- a/packages/twenty-docs/l/ru/user-guide/permissions-access/overview.mdx +++ b/packages/twenty-docs/l/ru/user-guide/permissions-access/overview.mdx @@ -1,5 +1,5 @@ --- -title: Permissions & Access +title: Права доступа и доступ description: Управляйте ролями, разрешениями и контролем доступа в вашем рабочем пространстве. --- diff --git a/packages/twenty-docs/l/ru/user-guide/views-pipelines/how-tos/show-expected-amount-in-pipeline.mdx b/packages/twenty-docs/l/ru/user-guide/views-pipelines/how-tos/show-expected-amount-in-pipeline.mdx index 201d49f564..78032729b6 100644 --- a/packages/twenty-docs/l/ru/user-guide/views-pipelines/how-tos/show-expected-amount-in-pipeline.mdx +++ b/packages/twenty-docs/l/ru/user-guide/views-pipelines/how-tos/show-expected-amount-in-pipeline.mdx @@ -1,5 +1,5 @@ --- -title: Show Expected Amount in Your Pipeline +title: Показать ожидаемую сумму на вашей конвейере description: Рассчитывайте и отображайте взвешенные значения сделок на основе вероятности по этапам. --- diff --git a/packages/twenty-docs/l/ru/user-guide/views-pipelines/how-tos/track-time-in-stage.mdx b/packages/twenty-docs/l/ru/user-guide/views-pipelines/how-tos/track-time-in-stage.mdx index f9b3e1342f..598e723d93 100644 --- a/packages/twenty-docs/l/ru/user-guide/views-pipelines/how-tos/track-time-in-stage.mdx +++ b/packages/twenty-docs/l/ru/user-guide/views-pipelines/how-tos/track-time-in-stage.mdx @@ -1,5 +1,5 @@ --- -title: Track How Long Opportunities Stay in Each Stage +title: Отслеживать как долгое время осталось на каждом этапе description: Отслеживайте скорость сделок, фиксируя момент входа сделок на каждый этап. --- diff --git a/packages/twenty-docs/l/ru/user-guide/views-pipelines/overview.mdx b/packages/twenty-docs/l/ru/user-guide/views-pipelines/overview.mdx index 03bcac48c7..3ac79a1b85 100644 --- a/packages/twenty-docs/l/ru/user-guide/views-pipelines/overview.mdx +++ b/packages/twenty-docs/l/ru/user-guide/views-pipelines/overview.mdx @@ -1,5 +1,5 @@ --- -title: Views & Pipelines +title: Представления и воронки description: Узнайте, как создавать и управлять представлениями в Twenty. --- diff --git a/packages/twenty-docs/l/ru/user-guide/workflows/capabilities/workflow-branches.mdx b/packages/twenty-docs/l/ru/user-guide/workflows/capabilities/workflow-branches.mdx index ffbf7216c0..b04b3c1486 100644 --- a/packages/twenty-docs/l/ru/user-guide/workflows/capabilities/workflow-branches.mdx +++ b/packages/twenty-docs/l/ru/user-guide/workflows/capabilities/workflow-branches.mdx @@ -1,5 +1,5 @@ --- -title: Workflow Branches +title: Ветки рабочего процесса description: Создавайте параллельные пути и условную логику в ваших рабочих процессах. --- diff --git a/packages/twenty-docs/l/tr/user-guide/views-pipelines/capabilities/kanban-views.mdx b/packages/twenty-docs/l/tr/user-guide/views-pipelines/capabilities/kanban-views.mdx index 3c86da9e31..eb8fc40d3c 100644 --- a/packages/twenty-docs/l/tr/user-guide/views-pipelines/capabilities/kanban-views.mdx +++ b/packages/twenty-docs/l/tr/user-guide/views-pipelines/capabilities/kanban-views.mdx @@ -13,7 +13,7 @@ Kanban görünümleri, her sütunun farklı bir aşamayı ve her kartın bir kay Kartların her birini, iş akışınız boyunca sürükleyip bırakarak aşamalar arasında taşıyabilirsiniz. Devam etmek için, bir karta tıklayıp tutarak sonraki aşamaya taşıyın. - + ## Add and Delete Stages @@ -44,7 +44,7 @@ You can hide all the fields and get an overview of all records at a glance. To e 1. Click **Options** on the top right 2. Turn on the toggle for **Compact view** - + ## Column Aggregations diff --git a/packages/twenty-docs/l/tr/user-guide/workflows/capabilities/workflow-actions.mdx b/packages/twenty-docs/l/tr/user-guide/workflows/capabilities/workflow-actions.mdx index c5b87d4051..6972036249 100644 --- a/packages/twenty-docs/l/tr/user-guide/workflows/capabilities/workflow-actions.mdx +++ b/packages/twenty-docs/l/tr/user-guide/workflows/capabilities/workflow-actions.mdx @@ -17,7 +17,7 @@ Aksiyonlar, bir tetikleyici devreye girdiğinde neler olacağını tanımlar. Ka ## Kayıt Eylemleri - + ### Kayıt Oluştur diff --git a/packages/twenty-docs/l/zh/developers/contribute/capabilities/frontend-development/best-practices-front.mdx b/packages/twenty-docs/l/zh/developers/contribute/capabilities/frontend-development/best-practices-front.mdx index 5704d69bd8..301f6adbaa 100644 --- a/packages/twenty-docs/l/zh/developers/contribute/capabilities/frontend-development/best-practices-front.mdx +++ b/packages/twenty-docs/l/zh/developers/contribute/capabilities/frontend-development/best-practices-front.mdx @@ -62,23 +62,23 @@ export const MyComponent = () => { 通过从根级消除它们,现在在新功能中避免再渲染变得容易。 -The `PageChangeEffect` sidecar component contains just one `useEffect` that holds all the logic to execute on a page change. +`PageChangeEffect` sidecar 组件只包含一个 `useEffect` ,它持有页面更改时要执行的所有逻辑。 这样您就知道只有一个地方可以触发再渲染。 -### Always think twice before adding `useEffect` in your codebase +### 在代码库中添加 `useEffect` 之前总是考虑一次 -Re-renders are often caused by unnecessary `useEffect`. +重新渲染往往是由不必要的“使用效果”造成的。 -You should think whether you need `useEffect`, or if you can move the logic in a event handler function. +您应该想一想您是否需要`useEffect`,或者您是否可以在事件处理函数中移动逻辑。 -You'll find it generally easy to move the logic in a `handleClick` or `handleChange` function. +你会发现移动一个 "handleClick" 或 "handleChange" 函数中的逻辑通常很容易。 您还可以在如 Apollo 的库中找到它们:`onCompleted`,`onError` 等。 -### Use a sibling component to extract `useEffect` or data fetching logic +### 使用一个兄弟组件提取`useEffect`或数据获取逻辑。 -If you feel like you need to add a `useEffect` in your root component, you should consider extracting it in a sidecar component. +如果你觉得需要在你的根组件中添加 "useEffect" ,你应该考虑在侧边组件中提取它。 对于数据获取逻辑也可以采用相同的方法,使用 Apollo hooks。 diff --git a/packages/twenty-docs/l/zh/developers/contribute/capabilities/frontend-development/frontend-commands.mdx b/packages/twenty-docs/l/zh/developers/contribute/capabilities/frontend-development/frontend-commands.mdx index 06f32f5743..ea8b3584db 100644 --- a/packages/twenty-docs/l/zh/developers/contribute/capabilities/frontend-development/frontend-commands.mdx +++ b/packages/twenty-docs/l/zh/developers/contribute/capabilities/frontend-development/frontend-commands.mdx @@ -74,7 +74,7 @@ npx nx run twenty-front:storybook:coverage # (needs yarn storybook:serve:dev to [React Router](https://reactrouter.com/) 负责处理路由。 -To avoid unnecessary [re-renders](/l/zh/developers/contribute/capabilities/frontend-development/best-practices-front#managing-re-renders) all the routing logic is in a `useEffect` in `PageChangeEffect`. +为了避免不必要的 [re-renders](/l/zh/developers/contribute/capabilities/frontend-development/best-practices-front#managing-re-renders),所有路由逻辑都在 `PageChangeEffect`中的 `useEffect` 中。 ### 状态管理 diff --git a/packages/twenty-docs/l/zh/developers/contribute/capabilities/frontend-development/hotkeys.mdx b/packages/twenty-docs/l/zh/developers/contribute/capabilities/frontend-development/hotkeys.mdx index 6f5149aaef..ae6e834110 100644 --- a/packages/twenty-docs/l/zh/developers/contribute/capabilities/frontend-development/hotkeys.mdx +++ b/packages/twenty-docs/l/zh/developers/contribute/capabilities/frontend-development/hotkeys.mdx @@ -127,9 +127,9 @@ const MyDropdownComponent = ({ onClose }: { onClose: () => void }) => { }; ``` -It's important to use this pattern when you're not sure that just using a useEffect with mount/unmount will be enough to avoid conflicts. +当你不能确定只需使用使用效果挂载/卸载就足以避免冲突时,使用此模式是很重要的。 -Those conflicts can be hard to debug, and it might happen more often than not with useEffects. +这些冲突可能难以调和,而且使用效果可能更经常地发生。 ## 什么是快捷键范围? diff --git a/packages/twenty-docs/l/zh/twenty-ui/display/checkmark.mdx b/packages/twenty-docs/l/zh/twenty-ui/display/checkmark.mdx index 4820345bc1..11a9a006a0 100644 --- a/packages/twenty-docs/l/zh/twenty-ui/display/checkmark.mdx +++ b/packages/twenty-docs/l/zh/twenty-ui/display/checkmark.mdx @@ -59,12 +59,12 @@ export const MyComponent = () => { -| 属性 | 类型 | 描述 | 默认 | -| ----------- | --- | -------------- | ----- | -| isAnimating | 布尔值 | 控制对勾标记是否在动画中 | 假 | -| 颜色 | 字符串 | 对勾标记的颜色 | | -| 持续时间 | 数字 | 动画的持续时间(以秒为单位) | 0.5 秒 | -| 大小 | 数字 | 对勾标记的大小 | 28 像素 | +| 属性 | 类型 | 描述 | 默认 | +| ---- | --- | -------------- | ----- | +| 正在动画 | 布尔值 | 控制对勾标记是否在动画中 | 假 | +| 颜色 | 字符串 | 对勾标记的颜色 | | +| 持续时间 | 数字 | 动画的持续时间(以秒为单位) | 0.5 秒 | +| 大小 | 数字 | 对勾标记的大小 | 28 像素 | diff --git a/packages/twenty-docs/l/zh/twenty-ui/input/buttons.mdx b/packages/twenty-docs/l/zh/twenty-ui/input/buttons.mdx index 617c86d90f..2de47fd21d 100644 --- a/packages/twenty-docs/l/zh/twenty-ui/input/buttons.mdx +++ b/packages/twenty-docs/l/zh/twenty-ui/input/buttons.mdx @@ -9,7 +9,7 @@ icon: hand-pointer 在应用程序中使用的按钮和按钮组的列表。 -## Button +## 按钮 @@ -51,10 +51,10 @@ export const MyComponent = () => { | 变体 | string | 按钮的视觉样式变体。 选项包括 `primary`,`secondary` 和 `tertiary` | | 大小 | 字符串 | 按钮的大小。 有两个选项:`small` 和 `medium` | | 职位 | string | 按钮与其同类的位置。 选项包括: `standalone`,`left`,`right` 和 `middle` | -| accent | string | 按钮的强调颜色。 选项包括: `default`,`blue` 和 `danger` | +| 加权: | string | 按钮的强调颜色。 选项包括: `default`,`blue` 和 `danger` | | 即将推出 | 布尔值 | 指示按钮是否标记为"即将推出"(例如针对即将推出的功能) | | disabled | 布尔值 | 指定按钮是否被禁用 | -| focus | 布尔值 | 确定按钮是否具有焦点 | +| 聚焦 | 布尔值 | 确定按钮是否具有焦点 | | onClick | 函数 | 用户点击按钮时触发的回调函数 | @@ -130,8 +130,8 @@ export const MyComponent = () => { | 属性 | 类型 | 描述 | | --------- | --------- | ---------------------------------------------------- | | 变体 | 字符串 | 组内按钮的视觉样式变体。 选项包括 `primary`,`secondary` 和 `tertiary` | -| 大小 | 字符串 | 组内按钮的大小。 Has two options: `medium` and `small` | -| accent | 字符串 | 组内按钮的强调颜色。 选项包括 `default`,`blue` 和 `danger` | +| 大小 | 字符串 | 组内按钮的大小。 有两个选项:`中等` 和 `small` | +| 加权: | 字符串 | 组内按钮的强调颜色。 选项包括 `default`,`blue` 和 `danger` | | className | string | 用于额外样式的可选类名 | | 子元素 | ReactNode | 一组代表组内各个按钮的 React 元素 | @@ -171,17 +171,17 @@ export const MyComponent = () => { -| 属性 | 类型 | 描述 | -| ----------- | --------------------- | ----------------------------------------------------- | -| className | string | 用于附加样式的可选名称 | -| 图标 | `React.ComponentType` | 按钮内显示的可选图标组件 | -| 标题 | 字符串 | 按钮的文本内容 | -| 大小 | 字符串 | 按钮的大小。 有两个选项:`small` 和 `medium` | -| 职位 | string | 按钮与其同类的位置。 选项包括: `standalone`,`left`,`middle`,`right` | -| applyShadow | 布尔值 | 确定是否对按钮应用阴影 | -| applyBlur | 布尔值 | 确定是否对按钮应用模糊效果 | -| disabled | 布尔值 | 确定按钮是否被禁用 | -| focus | 布尔值 | 指示按钮是否具有焦点 | +| 属性 | 类型 | 描述 | +| --------- | --------------------- | ----------------------------------------------------- | +| className | string | 用于附加样式的可选名称 | +| 图标 | `React.ComponentType` | 按钮内显示的可选图标组件 | +| 标题 | 字符串 | 按钮的文本内容 | +| 大小 | 字符串 | 按钮的大小。 有两个选项:`small` 和 `medium` | +| 职位 | string | 按钮与其同类的位置。 选项包括: `standalone`,`left`,`middle`,`right` | +| 苹果阴影 | 布尔值 | 确定是否对按钮应用阴影 | +| 苹果模糊 | 布尔值 | 确定是否对按钮应用模糊效果 | +| disabled | 布尔值 | 确定按钮是否被禁用 | +| 聚焦 | 布尔值 | 指示按钮是否具有焦点 | @@ -232,10 +232,10 @@ export const MyComponent = () => { -| 属性 | 类型 | 描述 | 默认 | -| --- | --------- | ------------------------------- | ----- | -| 大小 | 字符串 | 按钮的大小。 有两个选项:`small` 和 `medium` | small | -| 子元素 | ReactNode | 一组代表组内各个按钮的 React 元素 | | +| 属性 | 类型 | 描述 | 默认 | +| --- | --------- | ------------------------------- | -- | +| 大小 | 字符串 | 按钮的大小。 有两个选项:`small` 和 `medium` | 小的 | +| 子元素 | ReactNode | 一组代表组内各个按钮的 React 元素 | | @@ -275,18 +275,18 @@ export const MyComponent = () => { -| 属性 | 类型 | 描述 | -| ----------- | --------------------- | ------------------------------------------------------- | -| className | string | 用于附加样式的可选名称 | -| 图标 | `React.ComponentType` | 按钮内显示的可选图标组件 | -| 大小 | string | 按钮的大小。 有两个选项:`small` 和 `medium` | -| 职位 | string | 按钮与其同类的位置。 选项包括: `standalone`,`left`,`right`,和 `middle` | -| applyShadow | 布尔值 | 确定是否对按钮应用阴影 | -| applyBlur | 布尔值 | 确定是否对按钮应用模糊效果 | -| disabled | 布尔值 | 确定按钮是否被禁用 | -| focus | 布尔值 | 指示按钮是否具有焦点 | -| onClick | 函数 | 用户点击按钮时触发的回调函数 | -| isActive | 布尔值 | 确定按钮是否处于活动状态 | +| 属性 | 类型 | 描述 | +| --------- | --------------------- | ------------------------------------------------------- | +| className | string | 用于附加样式的可选名称 | +| 图标 | `React.ComponentType` | 按钮内显示的可选图标组件 | +| 大小 | string | 按钮的大小。 有两个选项:`small` 和 `medium` | +| 职位 | string | 按钮与其同类的位置。 选项包括: `standalone`,`left`,`right`,和 `middle` | +| 苹果阴影 | 布尔值 | 确定是否对按钮应用阴影 | +| 苹果模糊 | 布尔值 | 确定是否对按钮应用模糊效果 | +| disabled | 布尔值 | 确定按钮是否被禁用 | +| 聚焦 | 布尔值 | 指示按钮是否具有焦点 | +| onClick | 函数 | 用户点击按钮时触发的回调函数 | +| 已启用 | 布尔值 | 确定按钮是否处于活动状态 | @@ -377,10 +377,10 @@ export const MyComponent = () => { | className | string | 用于附加样式的可选名称 | | 图标 | `React.ReactNode` | 您想在按钮中显示的图标 | | 标题 | string | 按钮的文本内容 | -| accent | string | 按钮的强调颜色。 选项包括:`secondary` 和 `tertiary` | +| 加权: | string | 按钮的强调颜色。 选项包括:`secondary` 和 `tertiary` | | 活跃 | 布尔值 | 确定按钮是否处于活动状态 | | disabled | 布尔值 | 确定按钮是否被禁用 | -| focus | 布尔值 | 指示按钮是否具有焦点 | +| 聚焦 | 布尔值 | 指示按钮是否具有焦点 | | onClick | function | 用户点击按钮时触发的回调函数 | @@ -430,10 +430,10 @@ export const MyComponent = () => { | 图标 | `React.ComponentType` | 按钮内显示的可选图标组件 | | 标题 | 字符串 | 按钮的文本内容 | | 大小 | 字符串 | 按钮的大小。 有两个选项:`small` 和 `medium` | -| accent | 字符串 | 按钮的强调颜色。 选项包括:`secondary` 和 `tertiary` | +| 加权: | 字符串 | 按钮的强调颜色。 选项包括:`secondary` 和 `tertiary` | | 活跃 | 布尔值 | 确定按钮是否处于活动状态 | | disabled | 布尔值 | 确定按钮是否被禁用 | -| focus | 布尔值 | 指示按钮是否具有焦点 | +| 聚焦 | 布尔值 | 指示按钮是否具有焦点 | | onClick | 函数 | 用户点击按钮时触发的回调函数 | @@ -470,14 +470,14 @@ export const MyComponent = () => { -| 属性 | 类型 | 描述 | -| -------------------- | -------------------------------- | --------------------------------------- | -| 标题 | 字符串 | 按钮的文本内容 | -| fullWidth | 布尔值 | 定义按钮是否应占据其容器的整个宽度 | -| 变体 | 字符串 | 按钮的视觉样式变体。 选项包括 `primary` 和 `secondary` | -| 即将推出 | 布尔值 | 指示按钮是否标记为"即将推出"(例如针对即将推出的功能) | -| 图标 | `React.ComponentType` | 按钮内显示的可选图标组件 | -| React `button` props | `React.ComponentProps<'button'>` | 支持所有标准 HTML 按钮属性 | +| 属性 | 类型 | 描述 | +| ---------------- | -------------------------------- | --------------------------------------- | +| 标题 | 字符串 | 按钮的文本内容 | +| fullWidth | 布尔值 | 定义按钮是否应占据其容器的整个宽度 | +| 变体 | 字符串 | 按钮的视觉样式变体。 选项包括 `primary` 和 `secondary` | +| 即将推出 | 布尔值 | 指示按钮是否标记为"即将推出"(例如针对即将推出的功能) | +| 图标 | `React.ComponentType` | 按钮内显示的可选图标组件 | +| React "按钮" props | `React.ComponentProps<'button'>` | 支持所有标准 HTML 按钮属性 | @@ -510,10 +510,10 @@ export const MyComponent = () => { -| 属性 | 类型 | 描述 | -| -------------------- | ----------------------------------------------- | -- | -| 图标 | `React.ComponentType` | | -| React `button` props | `React.ButtonHTMLAttributes` | | +| 属性 | 类型 | 描述 | +| ---------------- | ----------------------------------------------- | -- | +| 图标 | `React.ComponentType` | | +| React "按钮" props | `React.ButtonHTMLAttributes` | | diff --git a/packages/twenty-docs/l/zh/twenty-ui/input/toggle.mdx b/packages/twenty-docs/l/zh/twenty-ui/input/toggle.mdx index 87f1468a06..fdecab3232 100644 --- a/packages/twenty-docs/l/zh/twenty-ui/input/toggle.mdx +++ b/packages/twenty-docs/l/zh/twenty-ui/input/toggle.mdx @@ -25,12 +25,12 @@ export const MyComponent = () => { -| 属性 | 类型 | 描述 | 默认 | -| ---------- | -------- | --------------------------------------- | ------------ | -| 值 | 布尔值 | 切换的当前状态 | `假` | -| onChange | function | 当切换状态变化时触发的回调函数 | | -| 颜色 | string | Color of the toggle when it\ | s blue color | -| toggleSize | string | 切换的尺寸,影响高度和宽度。 有两个选项:`small` 和 `medium` | medium | +| 属性 | 类型 | 描述 | 默认 | +| ---------- | -------- | --------------------------------------- | ------ | +| 值 | 布尔值 | 切换的当前状态 | `假` | +| onChange | function | 当切换状态变化时触发的回调函数 | | +| 颜色 | string | 开关时的颜色 | 蓝色颜色 | +| toggleSize | string | 切换的尺寸,影响高度和宽度。 有两个选项:`small` 和 `medium` | medium | diff --git a/packages/twenty-docs/l/zh/user-guide/data-migration/how-tos/migrating-from-other-crms.mdx b/packages/twenty-docs/l/zh/user-guide/data-migration/how-tos/migrating-from-other-crms.mdx index de4fa25696..482cfcea0e 100644 --- a/packages/twenty-docs/l/zh/user-guide/data-migration/how-tos/migrating-from-other-crms.mdx +++ b/packages/twenty-docs/l/zh/user-guide/data-migration/how-tos/migrating-from-other-crms.mdx @@ -31,103 +31,103 @@ description: 分步指南:将您的数据从任何客户关系管理系统迁 在您当前的客户关系管理系统与 Twenty 之间创建一份映射文档: -| 您的客户关系管理系统 | Twenty | -| ------------- | -------------------- | -| 账户 / 组织 | **公司** | -| 联系人 / 人员 | **人员** | -| 交易 / 机会 | **Opportunity** | -| Activity | **Task** or **Note** | -| Custom Object | **Custom Object** | +| 您的客户关系管理系统 | Twenty | +| ---------- | --------------- | +| 账户 / 组织 | **公司** | +| 联系人 / 人员 | **人员** | +| 交易 / 机会 | **商业机会** | +| 活动 | **任务** 或 **注意** | +| 自定义对象 | **自定义对象** | -**For each field, document:** +**对于每个字段,文档:** -* The source field name -* The target Twenty field -* Any format transformations needed (dates, phone numbers, etc.) +* 源字段名称 +* 目标20领域 +* 任何需要的格式转换 (日期, 电话号码等) -Keep this mapping document handy during import—you'll reference it when mapping columns. +在导入过程中保持此映射文档的便捷性—您将在映射列时引用。 -## Step 3: Set Up Your Twenty Workspace +## 第 3 步:设置您的20个工作区 -Before importing data, prepare your Twenty workspace: +在导入数据之前,准备您的20个工作区: -### Create Custom Objects and Fields +### 创建自定义对象和字段 -1. Go to **Settings → Data Model** -2. Create any custom objects you need -3. Add custom fields to standard and custom objects -4. Configure field settings (unique, required, select options, etc.) +1. 转到**设置 -> 数据模型** +2. 创建您需要的任何自定义对象 +3. 将自定义字段添加到标准和自定义对象 +4. 配置字段设置 (独特,需要选择选项等) -**Fields must exist before import.** +**字段必须在导入前存在。** -The CSV import creates records, not fields. Create all custom fields in Settings → Data Model before importing. +CSV 导入创建记录,而不是字段。 在导入前在 设置 -> 数据模型中创建所有自定义字段。 -### Invite Your Team +### 邀请您的团队 -**Invite users BEFORE importing data.** +**邀请用户BERE导入数据。** -If your data includes user references (Account Owner, Assignee, etc.), those users must exist in Twenty before import. Otherwise, those relations cannot be mapped. +如果您的数据包含用户引用(帐户所有者、受让人等),那么这些用户必须在20个时间内才能导入。 否则,就无法确定这些关系。 1. 转到 **设置 → 成员** -2. Invite all team members -3. **Wait for everyone to accept** their invitation -4. Verify all users appear in your Members list +2. 邀请所有团队成员 +3. **等待所有人接受**他们的邀请 +4. 验证所有用户出现在您的会员列表 -## Step 4: Export from Your Current CRM +## 第 4 步:从您当前的 CRM 导出 -Export your data from your current CRM: +从您当前的 CRM 导出数据: -1. Look for an **Export** function (usually under Settings, Data Management, or Admin) -2. Export to **CSV format** when possible -3. Export each object type separately (Companies, Contacts, Deals, etc.) -4. Include all fields you want to migrate +1. 寻找一个 **导出** 函数 (通常在设置、 数据管理或管理下) +2. 尽可能导出为 **CSV 格式** +3. 单独导出每个对象类型 (公司、联系人、交易等) +4. 包括你想要迁移的所有字段 -**Export these objects (in this order for reference):** +**导出这些对象(按此顺序作为参考):** -1. Companies / Accounts / Organizations -2. Contacts / People -3. Deals / Opportunities -4. Notes and Activities +1. 公司/帐户 / 组织 +2. 联系人 / 人员 +3. 交易/机会 +4. 说明和活动 5. 自定义对象 -## Step 5: Clean and Format Your Data +## 第 5 步:清理和格式化您的数据 -Open each exported CSV in a spreadsheet application and prepare it for Twenty. +在电子表格应用程序中打开每个导出的 CSV 并为20做准备。 -### Remove Duplicates +### 删除重复项 -1. Sort by the unique field (email for People, domain for Companies) -2. Remove or merge duplicate rows -3. Verify no duplicates exist in Twenty already +1. 按唯一字段排序 (个人电子邮件,公司域) +2. 删除或合并重复的行 +3. 验证不存在重复的 20 个已经存在 -### Format Fields Correctly +### 正确格式字段 -| Field Type | Required Format | -| ----------------- | ------------------------------------------------- | -| **Domain** | `https://domain.com` | -| **电子邮件** | `name@domain.com` (must be unique) | -| **Date** | `YYYY-MM-DD` | -| **Phone** | Three columns: Number, Country Code, Calling Code | -| **Boolean** | `TRUE` or `FALSE` (uppercase) | -| **Select fields** | Use API names, not display labels | +| 字段类型 | 所需格式 | +| ----------- | -------------------------- | +| **域** | `https://domain.com` | +| **电子邮件** | `name@domain.com` (必须是唯一的) | +| **日期** | `YYY-MM-DD` | +| **电话** | 三列:数字,国家代码,呼叫代码 | +| **Boolean** | `TRUE` 或 `FALSE` (大写) | +| **选择字段** | 使用 API 名称,不显示标签 | -**Domain format is critical.** +**域格式是关键。** -Use `https://domain.com` (not `domain.com` or `www.domain.com`). This matches Twenty's format and prevents duplicates when you connect email/calendar sync. +使用 `https://domain.com` (不是 `domain.com` 或 `www.domain.com` )。 这匹配20个格式,并且在您连接电子邮件/日历同步时防止重复。 -See [How to Prepare Your CSV Files](/l/zh/user-guide/data-migration/how-tos/prepare-your-csv-files) for complete formatting requirements for all field types. +查看[如何准备您的 CSV 文件](/l/zh/user-guide/data-migration/how-tos/prepare-your-csv-files) 以获取所有字段类型的完整格式要求。 -### Add Relation Columns +### 添加关系列 -To link records (e.g., People to Companies), add a column with the parent's unique identifier. +要连接记录(例如人与公司),添加一列与母公司唯一标识符。 -**Example: People CSV with Company link** +**示例:有公司链接的人CSV** ```csv firstName,lastName,email,companyDomain @@ -135,114 +135,114 @@ John,Smith,john@acme.com,https://acme.com Jane,Doe,jane@widgets.co,https://widgets.co ``` -See [How to Import Relations](/l/zh/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) for detailed instructions on linking records. +查看[如何导入关系](/l/zh/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) 获取链接记录的详细说明。 -### Update User References +### 更新用户引用 -If your data includes user assignments (Owner, Assignee): +如果您的数据包含用户指派(Owner,指派): -1. Add a column with the **user's email** (not just their ID from the old system) -2. Use the same email addresses that users used to join your Twenty workspace +1. 在 **用户的电子邮件** 中添加一列(不仅仅是旧系统中的他们的 ID) +2. 使用用户用来加入你的20个工作区的相同电子邮件地址 See [How to Prepare Your CSV Files](/l/zh/user-guide/data-migration/how-tos/prepare-your-csv-files) for complete formatting guide. -## Step 6: Import to Twenty +## 步骤6:导入到 20 -**Import Order Matters!** +**导入订单事项!** -Always import in this order: -1. **Companies** first (no dependencies) -2. **People** second (link to Companies) -3. **Opportunities** third (link to Companies/People) -4. **Notes and Tasks** (link to records) -5. **Custom objects** following their dependencies +总是按此顺序导入: +1. **Companies** 优先(无依赖) +2. **People** 秒(链接到公司) +3. **Opportunities** 第三个(链接到公司/人民) +4. **便笺和任务** (链接到记录) +5. **自定义对象** 跟随他们的依赖关系 -The parent record must exist before you can reference it. +在您可以引用之前必须存在父记录。 -### Import Each Object +### 导入每个对象 -For each CSV file, in order: +对于每个CSV文件,先后顺序: -1. Navigate to the object in Twenty -2. Click **⋮ → Import records** -3. Upload the CSV file -4. Map columns to fields: - * Map user email columns to the appropriate relation fields - * Map relation columns (like `companyDomain`) to relation fields -5. Review and fix any errors in the UI -6. Confirm the import -7. Verify a few records before proceeding to the next file +1. 在 20 中导航到对象 +2. 单击**视图-> 导入记录** +3. 上传CSV文件 +4. 映射列到字段: + * 映射用户电子邮件列到适当的关系字段 + * 映射关系列(例如`companyDomain`) 到关联字段 +5. 审核并修复界面中的任何错误 +6. 确认导入 +7. 在继续到下一个文件之前验证几个记录 -**Detailed guides:** +**详细指南:** -* [How to Import Companies](/l/zh/user-guide/data-migration/how-tos/import-companies-via-csv) -* [How to Import Contacts](/l/zh/user-guide/data-migration/how-tos/import-contacts-via-csv) -* [How to Import Relations](/l/zh/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) +* [如何导入公司](/l/zh/user-guide/data-migration/how-tos/import-companies-via-csv) +* [如何导入联系人](/l/zh/user-guide/data-migration/how-tos/import-contacts-via-csv) +* [如何导入关系](/l/zh/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) -## Step 7: Large Migrations (50,000+ Records) +## 步骤7:大型迁移(50 000+个记录) -For large migrations: +对于大型迁移: -| Volume | Recommended Approach | -| ----------------------- | ----------------------------- | -| Under 10,000 records | Single CSV import | -| 10,000 - 50,000 records | Split into multiple CSV files | -| 50,000+ records | Use the API | +| 音量 | 建议的办法 | +| ---------------- | ---------- | +| 不足1万份记录 | 单独导入 CSV | +| 10,000-50,000份记录 | 拆分成多个CSV文件 | +| 50,000多条记录 | 使用 API | -**For API imports:** +**用于API导入:** -* Faster and more reliable for large datasets -* Supports batch operations (up to 60 records per call) -* See [How to Import Data via API](/l/zh/user-guide/data-migration/how-tos/import-data-via-api) +* 更快、更可靠的大型数据集 +* 支持批量操作 (每次呼叫最多60个记录) +* 查看[如何通过 API 导入数据](/l/zh/user-guide/data-migration/how-tos/import-data-via-api) -## Step 8: Post-Migration Setup +## 步骤8:迁移后设置 -After importing data, complete your workspace configuration: +导入数据后,完成您的工作区配置: -### Recreate Views +### 重新创建视图 -* Set up saved views with filters, sorts, and column configurations -* Create any kanban or calendar views you need +* 使用过滤器、排序和列配置设置已保存的视图 +* 创建您需要的 kanban 或日历视图 ### 重新创建工作流 -* Rebuild your automations in **Settings → Workflows** -* Start with the most critical workflows -* Test each one before relying on it +* 在 **设置 -> Workflow** 中重建您的automatic +* 以最关键的工作流开始 +* 在依赖之前测试每一个 -### Configure Roles and Permissions +### 配置角色和权限 * 在 **设置 → 成员 → 角色** 中设置角色 -* Assign users to appropriate roles +* 分配用户到适当的角色 -### Connect Email and Calendar +### 连接电子邮件和日历 -* Each user connects their own account in **Settings → Accounts** -* Twenty will start syncing emails to contact records -* See [Email & Calendar](/l/zh/user-guide/calendar-emails/overview) +* 每个用户在 **设置 -> 帐户** 中连接自己的帐户 +* 20个将开始同步电子邮件到联系记录 +* 查看[电子邮件和日历](/l/zh/user-guide/calendar-emails/overview) -### Train Your Team +### 训练你的团队 -* Walk through the new interface together -* Document any team-specific processes +* 通过新接口一起移动 +* 记录任何特定团队的进程 ## 常见问题及解决方案 -| Issue | Cause | Solution | -| ----------------------- | --------------------------- | ------------------------------------------------------------------------------------ | -| **Duplicate errors** | Email/domain already exists | Remove duplicates from file, or include unique identifier to update existing records | -| **Relation not found** | Parent record doesn't exist | Import parent objects first (Companies before People) | -| **Missing fields** | Custom field doesn't exist | Create field in Settings → Data Model before importing | -| **Select field errors** | Using display labels | Use API names (enable Advanced mode in Settings to find them) | -| **User relation empty** | User hasn't accepted invite | Ensure all users accept invitations before importing | +| 问题 | 原因 | 解答 | +| ---------- | --------- | --------------------------- | +| **复制错误** | 电子邮件/域已存在 | 从文件中删除重复,或者包含唯一的标识符来更新现有记录 | +| **找不到关系** | 父记录不存在 | 首先导入父对象 (People之前的公司) | +| **缺少字段** | 自定义字段不存在 | 在导入前在设置 -> 数据模型中创建字段 | +| **选择字段错误** | 使用显示标签 | 使用 API 名称 (在设置中启用高级模式来查找他们) | +| **用户关系为空** | 用户未接受邀请 | 确保所有用户在导入前接受邀请 | -See [How to Fix Import Errors](/l/zh/user-guide/data-migration/how-tos/fix-import-errors) for detailed troubleshooting steps. +请参阅[如何修复导入错误](/l/zh/user-guide/data-migration/how-tos/fix-import-errors)详细故障排除步骤。 ## 迁移后检查表 -### Data Integrity +### 数据的完整性 All records imported (compare counts with source system) Relations working correctly (People linked to Companies) @@ -257,36 +257,36 @@ See [How to Fix Import Errors](/l/zh/user-guide/data-migration/how-tos/fix-impor Roles and permissions configured Email/calendar sync connected -### Team Readiness +### 团队准备情况 -Team trained on new system -Old CRM access plan decided (keep for reference? When to disable?) +团队在新系统 +老的 CRM 访问计划已决定 (保留以供参考吗? 何时禁用?) -## FAQ +## 常见问题 - - Not currently. Workflows must be recreated manually in Twenty. + + 不是当前的。 工作流必须在 20 中手动重新创建。 - - File attachments are not included in CSV exports. You'll need to re-upload them manually, migrate via API, or contact our team for assistance. + + 文件附件不包含在 CSV 导出中。 您需要手动重新上传他们,通过API迁移,或联系我们的团队寻求帮助。 - - Yes, we recommend keeping your old CRM running until you've verified the migration is complete. Just be careful not to create new data in both places. + + 是的,我们建议保持您旧的 CRM 运行,直到您验证迁移完成。 请注意不要在这两个地方建立新的数据。 - - Depends on data volume and complexity. Small migrations (under 10,000 records) can be done in a few hours. Large migrations may take several days including data cleanup and testing. + + 取决于数据量和复杂性。 可在几个小时内进行小规模移徙(不到10 000项记录)。 大规模迁移可能需要几天时间,包括数据清理和测试。 ## 需要帮助? -For complex migrations or large datasets: +对于复杂迁移或大型数据集: -* **Guided setup:** Book a 4-hour onboarding pack -* **Full migration service:** Our partners can handle the entire migration +* **导游设置:** 预订一个4小时的登机包 +* **完整的迁移服务:** 我们的合作伙伴可以处理整个迁移。 -Contact [contact@twenty.com](mailto:contact@twenty.com) or explore our [Implementation Services](/l/zh/user-guide/getting-started/capabilities/implementation-services). +联系 [contact@twenty.com](mailto:contact@twenty.com) 或探索我们的 [执行服务](/l/zh/user-guide/getting-started/capabilities/implementation-services)。 diff --git a/packages/twenty-docs/l/zh/user-guide/settings/capabilities/domains-settings.mdx b/packages/twenty-docs/l/zh/user-guide/settings/capabilities/domains-settings.mdx index 7ac166fd88..cb646fd6bf 100644 --- a/packages/twenty-docs/l/zh/user-guide/settings/capabilities/domains-settings.mdx +++ b/packages/twenty-docs/l/zh/user-guide/settings/capabilities/domains-settings.mdx @@ -1,54 +1,54 @@ --- -title: Domain Settings -description: Configure workspace domain, approved access domains, and public domains. +title: 域设置 +description: 配置工作区域、已批准的访问域和公共域。 --- 域名设置分布在三个位置,具体取决于你要配置的内容。 -## Workspace Domain +## 工作区域 在 **设置 → 常规 → 工作区域名** 下进行配置。 -Edit your subdomain name or set a custom domain for your workspace. +编辑您的子域名或为您的工作区设置一个自定义域名。 ### 自定义域名 -1. Click **Customize Domain** -2. Edit your subdomain (e.g., `yourcompany.twenty.com`) -3. Or set up a custom domain (e.g., `crm.yourcompany.com`) +1. 点击 **自定义域** +2. 编辑您的子域名(例如,`yourcompany.twenty.com`) +3. 或者设置一个自定义域名(例如`crm.youry.com`) -For custom domains, you'll need to configure DNS settings with your domain provider. +对于自定义域名,您需要与域提供商配置DNS设置。 ## 批准的域名 在 **设置 → 成员 → 邀请** 下进行配置。 -Anyone with an email address at these domains is allowed to sign up for this workspace automatically. +任何在这些域名有电子邮件地址的人都可以自动注册此工作区。 ### 添加批准的访问域 -1. Click **Add Approved Access Domain** -2. Enter your company domain (e.g., `yourcompany.com`) +1. 点击 **添加已批准的访问域** +2. 输入您的公司域名(例如,`yourcompany.com`) 3. 保存 -Once configured, anyone with an email address at that domain can join your workspace without needing a direct invitation. +一旦配置,任何在该域拥有电子邮件地址的人都可以加入您的工作区,而无需直接邀请。 -This is useful for allowing your entire team to self-register while keeping the workspace restricted to your organization. +这有助于让您的整个团队能够自行注册,同时将工作区限制在您的组织中。 -## Public Domains +## 公共域 在 **设置 → 应用 → 开发者** 下进行配置。 在这些域名上提供一个完整且安全的托管环境。 公共域名可以绑定到特定应用——绑定后,只有该应用通过 HTTP 路由的逻辑函数可以在该域名上访问。 将绑定留空以暴露所有工作区 HTTP 路由。 -### Add Public Domain +### 添加公共域 -1. Click **Add Public Domain** -2. Enter the domain you want to use +1. 点击 **添加公共域** +2. 输入您想要使用的域 3. 可选地将其绑定到某个应用 -4. Configure DNS settings as instructed -5. Verify the domain +4. 按指示配置DNS设置 +5. 验证域 -SSL certificates are automatically provisioned for public domains. +SSL 证书自动为公共域配置。 diff --git a/packages/twenty-docs/l/zh/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions.mdx b/packages/twenty-docs/l/zh/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions.mdx index c8aec7c978..2159f4e95d 100644 --- a/packages/twenty-docs/l/zh/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions.mdx +++ b/packages/twenty-docs/l/zh/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions.mdx @@ -1,24 +1,24 @@ --- -title: Handle Arrays in Code Actions -description: Learn how to properly handle array inputs in workflow Code actions. +title: 代码动作中处理数组 +description: 学习如何在工作流代码操作中正确处理数组输入。 --- -When working with arrays in Code actions, you may encounter two common challenges: +当在代码操作中与数组一起工作时,您可能会遇到两个共同的挑战: -1. **Arrays passed as strings** — data from external systems or previous steps arrives as a string instead of an actual array -2. **Can't select individual items** — you can only select the entire array, not specific fields within it +1. **作为字符串传递的数组** - 来自外部系统或前几步的数据作为字符串而不是实际数组 +2. **不能选择单个项目** — 您只能选择整个数组,而不是其中的特定字段 -Both can be solved with a Code node. +两者都可以用代码节点解决。 -## Parsing Arrays from Strings +## 从字符串解析数组 -Arrays are often passed between workflow steps as strings or JSON rather than native arrays. This happens when: +数组通常是作为字符串或 JSON 而不是本机数组在工作流步骤之间传递的。 这种情况发生在: -* Receiving data from external APIs via HTTP Request -* Processing webhook payloads -* Passing data between workflow steps +* 通过 HTTP 请求从外部 API 接收数据 +* 正在处理 webhook payload +* 工作流步骤之间传输数据 -**Solution**: Add this pattern at the start of your Code action: +**Solution**:在代码开始时添加此模式: ```javascript export const main = async (params: { @@ -39,13 +39,13 @@ export const main = async (params: { }; ``` -The key line `typeof users === "string" ? JSON.parse(users) : users` checks if the input is a string, parses it if needed, or uses it directly if it's already an array. +键行 `typeof users === "string" ? JSONparse(users) : users`检查输入是否是字符串, 如果需要解析它, 或者如果它已经是一个数组直接使用它。 -## Extracting Individual Fields from Arrays +## 从数组中提取个别字段 -A webhook might return an array like `answers: [...]`, but in subsequent workflow steps you can only select the **entire array** — not individual items within it. +Web 钩子可能返回一个数组,如'答案: [...]', 但在随后的工作流步骤中,您只能选择 **整个数组** ——而不是其中的个别项目。 -**Solution**: Add a Code node to extract specific fields and return them as a structured object: +**Solution**: 添加代码节点来提取特定字段并将其作为结构化对象返回: ```javascript export const main = async (params: { @@ -71,12 +71,12 @@ export const main = async (params: { }; ``` -The Code node returns a structured object instead of an array. In subsequent steps, you can now select individual fields like `answer.firstname` and `answer.name` from the variable picker. +代码节点返回结构化对象而不是数组。 在随后的步骤中,您现在可以从变量选择器中选择单个字段,例如`answer.firstname` 和 `answer.name` 。 -We're actively working on making array handling easier in future updates. +我们正在积极努力,在未来的更新中使阵列处理更加容易。 -Click the square icon at the top right of the code editor to display it in full screen — helpful since the default editor width is limited. +点击代码编辑器右上角的方形图标在全屏显示它——因为默认编辑器宽度是有限的,所以它是有用的。 diff --git a/packages/twenty-docs/l/zh/user-guide/workflows/how-tos/connect-to-other-tools/generate-pdf-from-twenty.mdx b/packages/twenty-docs/l/zh/user-guide/workflows/how-tos/connect-to-other-tools/generate-pdf-from-twenty.mdx index 1a0136185f..4d674c2938 100644 --- a/packages/twenty-docs/l/zh/user-guide/workflows/how-tos/connect-to-other-tools/generate-pdf-from-twenty.mdx +++ b/packages/twenty-docs/l/zh/user-guide/workflows/how-tos/connect-to-other-tools/generate-pdf-from-twenty.mdx @@ -7,7 +7,7 @@ description: 创建一个工作流,用于生成 PDF(例如报价单)并将 ## 概览 -此工作流使用 **手动触发器**,因此用户可以按需为任何选定的记录生成 PDF。 A **Logic Function** handles: +此工作流使用 **手动触发器**,因此用户可以按需为任何选定的记录生成 PDF。 **逻辑函数** 句柄: 1. 从 URL(来自 PDF 生成服务)下载 PDF 2. 将文件上传到 Twenty @@ -17,7 +17,7 @@ description: 创建一个工作流,用于生成 PDF(例如报价单)并将 设置工作流之前: -1. **创建 API 密钥**:前往 **设置 → APIs** 并创建一个新的 API 密钥。 You'll need this token for the logic function. +1. **创建 API 密钥**:前往 **设置 → APIs** 并创建一个新的 API 密钥。 逻辑函数需要这个令牌。 2. **设置 PDF 生成服务**(可选):如果您想动态生成 PDF(例如报价单),可使用 Carbone、PDFMonkey 或 DocuSeal 等服务来创建 PDF 并获取下载 URL。 ## 分步设置 @@ -32,9 +32,9 @@ description: 创建一个工作流,用于生成 PDF(例如报价单)并将 使用手动触发器,用户在选择记录后可通过右上角出现的按钮运行此工作流,以生成并附加 PDF。 -### Step 2: Add a Logic Function +### 步骤 2: 添加逻辑函数 -1. Add a **Code** action (logic function) +1. 添加 **代码** 动作(逻辑函数) 2. 使用下面的代码创建一个新函数 3. 配置输入参数 @@ -45,10 +45,10 @@ description: 创建一个工作流,用于生成 PDF(例如报价单)并将 | `companyId` | `{{trigger.object.id}}` | -If attaching to a different object (Person, Opportunity, etc.), rename the parameter accordingly (e.g., `personId`, `opportunityId`) and update the logic function. +如果附加到一个不同的对象(人员、机会等),则相应重命名参数(如:`personId`、`opportunityId`),并更新逻辑函数。 -#### Logic Function Code +#### 逻辑函数代码 ```typescript export const main = async ( @@ -207,7 +207,7 @@ export const main = async ( 如果使用 PDF 生成服务,您可以: 1. 首先创建一个 HTTP 请求操作以生成 PDF -2. Pass the returned PDF URL to the logic function as a parameter +2. 将返回的 PDF URL 传递到逻辑函数作为参数 ```typescript export const main = async ( @@ -246,7 +246,7 @@ export const main = async ( * **DocuSeal** - 文档自动化平台 * **Documint** - API 优先的文档生成 -Each service provides an API that returns a PDF URL, which you can then pass to the logic function. +每个服务提供一个 API 返回一个 PDF URL,然后你可以传递到逻辑函数中。 ## 故障排除 @@ -259,5 +259,5 @@ Each service provides an API that returns a PDF URL, which you can then pass to ## 相关内容 * [工作流触发器](/l/zh/user-guide/workflows/capabilities/workflow-triggers) -* [Logic Functions](/l/zh/user-guide/workflows/capabilities/workflow-actions#code) +* [逻辑函数](/l/zh/user-guide/workflows/capabilities/workflow-actions#code) * [从 Twenty 生成报价单或发票](/l/zh/user-guide/workflows/how-tos/connect-to-other-tools/generate-quote-or-invoice-from-twenty)