diff --git a/packages/twenty-docs/l/ar/developers/extend/apps/logic-functions.mdx b/packages/twenty-docs/l/ar/developers/extend/apps/logic-functions.mdx index f4426d7b79..b6a57bf749 100644 --- a/packages/twenty-docs/l/ar/developers/extend/apps/logic-functions.mdx +++ b/packages/twenty-docs/l/ar/developers/extend/apps/logic-functions.mdx @@ -94,15 +94,16 @@ const handler = async (event: RoutePayload) => { يحتوي نوع `RoutePayload` على البنية التالية: - | الخاصية | النوع | الوصف | مثال | - | ---------------------------- | ------------------------------------------------------- | ------------------------------------------------------------ | -------------------------------------------------------------------------- | - | `headers` | `Record\` | رؤوس HTTP (فقط تلك المدرجة في `forwardedRequestHeaders`) | انظر القسم أدناه | - | `queryStringParameters` | `Record\` | معلمات سلسلة الاستعلام (تُضمّ القيم المتعددة باستخدام فواصل) | `/users?ids=1&ids=2&ids=3&name=Alice` -> `{ ids: '1,2,3', name: 'Alice' }` | - | `pathParameters` | `Record\` | معلمات المسار المستخرجة من نمط المسار | `/users/:id`, `/users/123` -> `{ id: '123' }` | - | `body` | `object \| null` | جسم الطلب المُحلَّل (JSON) | `{ id: 1 }` -> `{ id: 1 }` | - | `isBase64Encoded` | `boolean` | ما إذا كان جسم الطلب مُرمَّزًا بترميز base64 | | - | `requestContext.http.method` | `string` | طريقة HTTP (GET, POST, PUT, PATCH, DELETE) | | - | `requestContext.http.path` | `string` | المسار الخام للطلب | | + | الخاصية | النوع | الوصف | مثال | + | ---------------------------- | ------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | + | `headers` | `Record\` | رؤوس HTTP (فقط تلك المدرجة في `forwardedRequestHeaders`) | انظر القسم أدناه | + | `queryStringParameters` | `Record\` | معلمات سلسلة الاستعلام (تُضمّ القيم المتعددة باستخدام فواصل) | `/users?ids=1&ids=2&ids=3&name=Alice` -> `{ ids: '1,2,3', name: 'Alice' }` | + | `pathParameters` | `Record\` | معلمات المسار المستخرجة من نمط المسار | `/users/:id`, `/users/123` -> `{ id: '123' }` | + | `body` | `object \| null` | جسم الطلب المُحلَّل (JSON) | `{ id: 1 }` -> `{ id: 1 }` | + | `rawBody` | `string \| undefined` | Original UTF-8 request body, before JSON parsing. Useful for verifying HMAC-style webhook signatures (e.g. GitHub's `X-Hub-Signature-256`, Stripe). `undefined` when the runtime did not preserve it. | | + | `isBase64Encoded` | `boolean` | ما إذا كان جسم الطلب مُرمَّزًا بترميز base64 | | + | `requestContext.http.method` | `string` | طريقة HTTP (GET, POST, PUT, PATCH, DELETE) | | + | `requestContext.http.path` | `string` | المسار الخام للطلب | | #### forwardedRequestHeaders diff --git a/packages/twenty-docs/l/ar/user-guide/billing/capabilities/pricing-plans.mdx b/packages/twenty-docs/l/ar/user-guide/billing/capabilities/pricing-plans.mdx index a5137a2567..1e029638c4 100644 --- a/packages/twenty-docs/l/ar/user-guide/billing/capabilities/pricing-plans.mdx +++ b/packages/twenty-docs/l/ar/user-guide/billing/capabilities/pricing-plans.mdx @@ -19,7 +19,7 @@ description: تعرّف على خطط تسعير Twenty وكيفية التبد * دعم قياسي -الميزات المتميزة (SSO وأذونات على مستوى الصف) غير مشمولة في خطة Pro. +Premium features (SSO, row-level permissions and AI usage data) are not included in the Pro plan. ### المؤسسة (سحابي) @@ -27,7 +27,7 @@ description: تعرّف على خطط تسعير Twenty وكيفية التبد للفرق الأكبر ذات الاحتياجات المتقدّمة: * كل ما في Pro -* **ميزات متميزة**: تكامل SSO وأذونات على مستوى الصف +* **Premium features**: SSO integration, row-level permissions and AI usage data * دعم متميز ## خطط الاستضافة الذاتية @@ -45,7 +45,7 @@ description: تعرّف على خطط تسعير Twenty وكيفية التبد للفرق التي تحتاج إلى ميزات متميزة أثناء الاستضافة الذاتية: * جميع ميزات Pro -* **ميزات متميزة**: تكامل SSO وأذونات على مستوى الصف +* **Premium features**: SSO integration, row-level permissions and AI usage data * دعم فريق Twenty * لا يُشترط نشر الشيفرة المخصّصة كمفتوح المصدر قبل التوزيع @@ -55,6 +55,7 @@ description: تعرّف على خطط تسعير Twenty وكيفية التبد * **تكامل SSO**: تسجيل دخول أحادي مع موفّر الهوية لديك * **أذونات على مستوى الصف**: تحكّم دقيق في الوصول على مستوى السجل +* **AI usage data**: Track AI consumption across the workspace ## التبديل بين الخطط @@ -77,3 +78,15 @@ description: تعرّف على خطط تسعير Twenty وكيفية التبد ### التبديل إلى الفوترة الشهرية تواصل مع الدعم للعودة إلى الفوترة الشهرية. + +## Obtain an Enterprise Key for Organization (Self-Hosted) + +To use the Organization (Self-Hosted) plan, you need to obtain an Enterprise key: + +1. Go to **Settings → Admin Panel → Enterprise** + +Enterprise key + +2. Click **Get Enterprise Key** +3. When you are redirected to Stripe, enter your payment details and confirm +4. When your Enterprise key is displayed, paste it into the Enterprise settings page and activate the Organization license diff --git a/packages/twenty-docs/l/ar/user-guide/billing/how-tos/billing-faq.mdx b/packages/twenty-docs/l/ar/user-guide/billing/how-tos/billing-faq.mdx index da5e1241c0..f18d0ec658 100644 --- a/packages/twenty-docs/l/ar/user-guide/billing/how-tos/billing-faq.mdx +++ b/packages/twenty-docs/l/ar/user-guide/billing/how-tos/billing-faq.mdx @@ -16,6 +16,11 @@ description: الأسئلة الشائعة حول تسعير Twenty والفوت لا تتوفر الميزات المتميزة إلا في خطط Organization (السحابة أو الاستضافة الذاتية): * **تكامل SSO**: تسجيل الدخول الأحادي مع موفر الهوية لديك * **أذونات على مستوى السجل**: تحكم دقيق في الوصول على مستوى السجل +* **AI usage data**: Track AI consumption across the workspace + + + +They offer the same premium features. However, a cloud subscription cannot be used for self-hosted deployments. Self-hosted requires an Enterprise key. diff --git a/packages/twenty-docs/l/ar/user-guide/data-model/how-tos/create-many-to-many-relations.mdx b/packages/twenty-docs/l/ar/user-guide/data-model/how-tos/create-many-to-many-relations.mdx index ea1ec16850..8d8da0c912 100644 --- a/packages/twenty-docs/l/ar/user-guide/data-model/how-tos/create-many-to-many-relations.mdx +++ b/packages/twenty-docs/l/ar/user-guide/data-model/how-tos/create-many-to-many-relations.mdx @@ -53,38 +53,45 @@ People ←→ Project Assignments ←→ Projects 1. اذهب إلى **الإعدادات → نموذج البيانات** 2. انقر **+ كائن جديد** 3. سمِّه تسمية وصفية (مثلًا: "تعيين مشروع"، "عضو فريق"، "طلب منتج") -4. انقر على **حفظ** +4. Toggle "Skip creating a Name field" on + +New pivot object + +5. انقر على **حفظ** **اتفاقية التسمية**: استخدم اسمًا يصف العلاقة، مثل "تعيين مشروع" أو "عضوية الفريق". هذا يجعل نموذج البيانات أسهل في الفهم. -## الخطوة 2: إنشاء علاقات من كائن الربط +## Step 2: Create Relations Between Objects and the Junction -أضِف حقول علاقة من كائن الربط إلى كلا الكائنين اللذين تريد ربطهما. +Add relation fields from each of your two objects to the junction object. -### العلاقة الأولى (كائن الربط → الكائن A) +### First Relation (Object A → Junction) -1. حدِّد كائن الربط في **الإعدادات → نموذج البيانات** -2. انقر **+ إضافة حقل** -3. اختر **العلاقة** كنوع الحقل -4. اختر الكائن الأول (مثلًا، "الأشخاص") -5. عيِّن نوع العلاقة إلى **متعدد-إلى-واحد** (يمكن لعديد من التعيينات الارتباط بشخص واحد) -6. قم بتسمية الحقول: - * الحقل على كائن الربط: مثلًا، "شخص" - * الحقل على الأشخاص: مثلًا، "تعيينات المشروع" -7. انقر على **حفظ** - -### العلاقة الثانية (كائن الربط → الكائن B) - -1. وأنت ما زلت في كائن الربط، انقر **+ إضافة حقل** -2. اختر **العلاقة** كنوع الحقل -3. اختر الكائن الثاني (مثلًا، "المشاريع") -4. عيِّن نوع العلاقة إلى **متعدد-إلى-واحد** +1. Select your first object in **Settings → Data Model** +2. Click **+ Add Relation** +3. Select the junction object (e.g., "Project Assignments") +4. Set the relation type to **One-To-Many** (one person can link to many assignments) 5. قم بتسمية الحقول: + * الحقل على الأشخاص: مثلًا، "تعيينات المشروع" + * الحقل على كائن الربط: مثلًا، "شخص" +6. انقر على **حفظ** + +### Second Relation (Object B → Junction) + +1. Select your second object in **Settings → Data Model** +2. Click **+ Add Relation** +3. Select the junction object (e.g., "Project Assignments") +4. Set the relation type to **One-To-Many** (one project can link to many assignments) +5. فعّل **"هذه علاقة بكائن ربط"** + + + +6. قم بتسمية الحقول: * الحقل على كائن الربط: مثلًا، "مشروع" * الحقل على المشاريع: مثلًا، "أعضاء الفريق" -6. انقر على **حفظ** +7. انقر على **حفظ** ## الخطوة 3: ضبط عرض علاقة الربط @@ -98,18 +105,6 @@ People ←→ Project Assignments ←→ Projects 6. حدِّد **العلاقة الهدف** (مثلًا، "مشروع" — الحقل على كائن الربط الذي يشير إلى الجانب الآخر) 7. انقر على **حفظ** -{/* TODO: Add image - -*/} - -كرِّر على الكائن الآخر: - -1. اختر "المشاريع" في نموذج البيانات -2. حرِّر حقل العلاقة "أعضاء الفريق" -3. فعّل مفتاح الربط -4. حدِّد "شخص" كالعلاقة الهدف -5. حفظ - ## النتيجة بعد التكوين: @@ -130,15 +125,15 @@ People ←→ Project Assignments ←→ Projects ### إضافة علاقات -1. **تعيين مشروع → الأشخاص** - * النوع: متعدد-إلى-واحد - * الحقل على التعيين: "شخص" +1. **People → Project Assignment** + * Type: One-to-Many * الحقل على الأشخاص: "تعيينات المشروع" + * الحقل على التعيين: "شخص" -2. **تعيين مشروع → المشاريع** - * النوع: متعدد-إلى-واحد - * الحقل على التعيين: "مشروع" +2. **Projects → Project Assignment** + * Type: One-to-Many * الحقل على المشاريع: "أعضاء الفريق" + * الحقل على التعيين: "مشروع" ### ضبط عرض علاقة الربط diff --git a/packages/twenty-docs/l/ar/user-guide/layout/capabilities/navigation.mdx b/packages/twenty-docs/l/ar/user-guide/layout/capabilities/navigation.mdx index edb71891ba..d9f8e6daaa 100644 --- a/packages/twenty-docs/l/ar/user-guide/layout/capabilities/navigation.mdx +++ b/packages/twenty-docs/l/ar/user-guide/layout/capabilities/navigation.mdx @@ -30,3 +30,9 @@ description: خصص الشريط الجانبي الأيسر ليتوافق مع ## قائمة الأوامر اضغط `Cmd+K` (أو `Ctrl+K`) لفتح قائمة الأوامر — شريط بحث للوصول السريع يتيح لك الانتقال إلى أي سجل أو طريقة عرض أو إجراء دون التنقل عبر الشريط الجانبي. + +## تخصيص الشريط الجانبي + +لتخصيص الشريط الجانبي، مرّر المؤشر فوق قسم "مساحة العمل" في الشريط الجانبي وانقر على أيقونة مفتاح الربط. + +Navigation edit icon diff --git a/packages/twenty-docs/l/ar/user-guide/layout/capabilities/record-pages.mdx b/packages/twenty-docs/l/ar/user-guide/layout/capabilities/record-pages.mdx index cf8fc82470..bd47dcc200 100644 --- a/packages/twenty-docs/l/ar/user-guide/layout/capabilities/record-pages.mdx +++ b/packages/twenty-docs/l/ar/user-guide/layout/capabilities/record-pages.mdx @@ -3,6 +3,8 @@ title: صفحات السجل description: خصص تخطيط صفحات تفاصيل السجلات باستخدام علامات تبويب وأدوات. --- +## نظرة عامة + عند فتح سجل في Twenty، تتكون صفحة التفاصيل من **علامات تبويب** و**أدوات**. كلاهما قابل للتخصيص بالكامل حسب نوع الكائن. ## علامات التبويب @@ -38,12 +40,20 @@ description: خصص تخطيط صفحات تفاصيل السجلات باستخ 1. افتح أي سجل 2. اضغط على `Cmd+K` وابحث عن "تحرير تخطيط صفحة السجل" + +أو + +1. انتقل إلى الإعدادات > نموذج البيانات > الكائن الذي تختاره > التخطيط + +2. انقر على الزر "تخصيص صفحة السجل" لذلك الكائن + 3. أنت الآن في وضع التخصيص: * **أضف أدوات** من منتقي الأدوات * **اسحب الأدوات** لإعادة وضعها على الشبكة * **غيّر حجم الأدوات** بسحب حوافها * **اضبط الحقول** المعروضة داخل كل أداة * **أدِر علامات التبويب** — أضف، أزل، أعد التسمية، وأعد الترتيب + 4. احفظ تغييراتك — سيتم تطبيقها على جميع السجلات لذلك النوع من الكائنات ## ظهور الحقول diff --git a/packages/twenty-docs/l/cs/developers/extend/apps/logic-functions.mdx b/packages/twenty-docs/l/cs/developers/extend/apps/logic-functions.mdx index 487e5743fa..6d39116f94 100644 --- a/packages/twenty-docs/l/cs/developers/extend/apps/logic-functions.mdx +++ b/packages/twenty-docs/l/cs/developers/extend/apps/logic-functions.mdx @@ -95,15 +95,16 @@ const handler = async (event: RoutePayload) => { Typ `RoutePayload` má následující strukturu: - | Vlastnost | Typ | Popis | Příklad | - | ---------------------------- | ------------------------------------------------------- | ----------------------------------------------------------- | -------------------------------------------------------------------------- | - | `headers` | `Record\` | Záhlaví HTTP (pouze ta uvedená v `forwardedRequestHeaders`) | viz sekci níže | - | `queryStringParameters` | `Record\` | Parametry query stringu (více hodnot spojených čárkami) | `/users?ids=1&ids=2&ids=3&name=Alice` -> `{ ids: '1,2,3', name: 'Alice' }` | - | `pathParameters` | `Record\` | Parametry cesty extrahované ze vzoru trasy | `/users/:id`, `/users/123` -> `{ id: '123' }` | - | `body` | `object \| null` | Parsované tělo požadavku (JSON) | `{ id: 1 }` -> `{ id: 1 }` | - | `isBase64Encoded` | `boolean` | Zda je tělo kódováno base64 | | - | `requestContext.http.method` | `string` | Metoda HTTP (GET, POST, PUT, PATCH, DELETE) | | - | `requestContext.http.path` | `string` | Nezpracovaná cesta požadavku | | + | Vlastnost | Typ | Popis | Příklad | + | ---------------------------- | ------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | + | `headers` | `Record\` | Záhlaví HTTP (pouze ta uvedená v `forwardedRequestHeaders`) | viz sekci níže | + | `queryStringParameters` | `Record\` | Parametry query stringu (více hodnot spojených čárkami) | `/users?ids=1&ids=2&ids=3&name=Alice` -> `{ ids: '1,2,3', name: 'Alice' }` | + | `pathParameters` | `Record\` | Parametry cesty extrahované ze vzoru trasy | `/users/:id`, `/users/123` -> `{ id: '123' }` | + | `body` | `object \| null` | Parsované tělo požadavku (JSON) | `{ id: 1 }` -> `{ id: 1 }` | + | `rawBody` | `string \| undefined` | Original UTF-8 request body, before JSON parsing. Useful for verifying HMAC-style webhook signatures (e.g. GitHub's `X-Hub-Signature-256`, Stripe). `undefined` when the runtime did not preserve it. | | + | `isBase64Encoded` | `boolean` | Zda je tělo kódováno base64 | | + | `requestContext.http.method` | `string` | Metoda HTTP (GET, POST, PUT, PATCH, DELETE) | | + | `requestContext.http.path` | `string` | Nezpracovaná cesta požadavku | | #### forwardedRequestHeaders diff --git a/packages/twenty-docs/l/cs/user-guide/billing/capabilities/pricing-plans.mdx b/packages/twenty-docs/l/cs/user-guide/billing/capabilities/pricing-plans.mdx index cbeca15e5e..17a7eeb54d 100644 --- a/packages/twenty-docs/l/cs/user-guide/billing/capabilities/pricing-plans.mdx +++ b/packages/twenty-docs/l/cs/user-guide/billing/capabilities/pricing-plans.mdx @@ -19,7 +19,7 @@ Pro týmy připravené škálovat: * Standardní podpora -Prémiové funkce (SSO a oprávnění na úrovni řádků) nejsou součástí plánu Pro. +Premium features (SSO, row-level permissions and AI usage data) are not included in the Pro plan. ### Organizace (Cloud) @@ -27,7 +27,7 @@ Prémiové funkce (SSO a oprávnění na úrovni řádků) nejsou součástí pl Pro větší týmy s pokročilými potřebami: * Vše z plánu Pro -* **Prémiové funkce**: integrace SSO a oprávnění na úrovni řádků +* **Premium features**: SSO integration, row-level permissions and AI usage data * Prioritní podpora ## Plány pro self‑hosting @@ -45,7 +45,7 @@ Hostujte Twenty na vlastní infrastruktuře bez poplatků: Pro týmy, které při self‑hostingu potřebují prémiové funkce: * Všechny funkce plánu Pro -* **Prémiové funkce**: integrace SSO a oprávnění na úrovni řádků +* **Premium features**: SSO integration, row-level permissions and AI usage data * Podpora týmu Twenty * Není vyžadováno zveřejnit vlastní kód jako open‑source před distribucí @@ -55,6 +55,7 @@ Prémiové funkce jsou dostupné pouze v plánech Organizace (Cloud nebo self‑ * **Integrace SSO**: jednotné přihlášení s vaším poskytovatelem identity * **Oprávnění na úrovni řádků**: jemně odstupňované řízení přístupu na úrovni záznamu +* **AI usage data**: Track AI consumption across the workspace ## Přepínání plánů @@ -77,3 +78,15 @@ Chcete-li přejít na nižší plán, kontaktujte podporu. ### Přepnout na měsíční fakturaci Chcete-li přepnout zpět na měsíční fakturaci, kontaktujte podporu. + +## Obtain an Enterprise Key for Organization (Self-Hosted) + +To use the Organization (Self-Hosted) plan, you need to obtain an Enterprise key: + +1. Go to **Settings → Admin Panel → Enterprise** + +Enterprise key + +2. Click **Get Enterprise Key** +3. When you are redirected to Stripe, enter your payment details and confirm +4. When your Enterprise key is displayed, paste it into the Enterprise settings page and activate the Organization license 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 21c5087b82..fb2a8aed40 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,6 +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 + + + +They offer the same premium features. However, a cloud subscription cannot be used for self-hosted deployments. Self-hosted requires an Enterprise key. diff --git a/packages/twenty-docs/l/cs/user-guide/data-model/how-tos/create-many-to-many-relations.mdx b/packages/twenty-docs/l/cs/user-guide/data-model/how-tos/create-many-to-many-relations.mdx index e51cb5e5bd..12b25ad628 100644 --- a/packages/twenty-docs/l/cs/user-guide/data-model/how-tos/create-many-to-many-relations.mdx +++ b/packages/twenty-docs/l/cs/user-guide/data-model/how-tos/create-many-to-many-relations.mdx @@ -53,38 +53,45 @@ Nejprve vytvořte mezilehlý objekt, který bude uchovávat propojení. 1. Přejděte do **Nastavení → Datový model** 2. Klikněte na **+ New object** 3. Pojmenujte jej výstižně (např. "Project Assignment", "Team Member", "Product Order") -4. Klikněte na **Uložit** +4. Toggle "Skip creating a Name field" on + +New pivot object + +5. Klikněte na **Uložit** **Konvence pojmenování**: Použijte název, který popisuje vztah, například "Project Assignment" nebo "Team Membership". Tím bude datový model srozumitelnější. -## Krok 2: Vytvořte vztahy ze spojovacího objektu +## Step 2: Create Relations Between Objects and the Junction -Přidejte relační pole ze spojovacího objektu do obou objektů, které chcete propojit. +Add relation fields from each of your two objects to the junction object. -### První vztah (Junction → Objekt A) +### First Relation (Object A → Junction) -1. Vyberte svůj spojovací objekt v **Settings → Data Model** -2. Klikněte na **+ Add Field** -3. Zvolte **Relation** jako typ pole -4. Vyberte první objekt (např. "People") -5. Nastavte typ vztahu na **Many-to-One** (mnoho přiřazení může odkazovat na jednu osobu) -6. Pojmenujte pole: - * Pole na spojovacím objektu: např. "Person" - * Pole na People: např. "Project Assignments" -7. Klikněte na **Uložit** - -### Druhý vztah (Junction → Objekt B) - -1. Stále na spojovacím objektu klikněte na **+ Add Field** -2. Zvolte **Relation** jako typ pole -3. Vyberte druhý objekt (např. "Projects") -4. Nastavte typ vztahu na **Many-to-One** +1. Select your first object in **Settings → Data Model** +2. Click **+ Add Relation** +3. Select the junction object (e.g., "Project Assignments") +4. Set the relation type to **One-To-Many** (one person can link to many assignments) 5. Pojmenujte pole: + * Pole na People: např. "Project Assignments" + * Pole na spojovacím objektu: např. "Person" +6. Klikněte na **Uložit** + +### Second Relation (Object B → Junction) + +1. Select your second object in **Settings → Data Model** +2. Click **+ Add Relation** +3. Select the junction object (e.g., "Project Assignments") +4. Set the relation type to **One-To-Many** (one project can link to many assignments) +5. Povolte **"This is a relation to a Junction Object"** + + + +6. Pojmenujte pole: * Pole na spojovacím objektu: např. "Project" * Pole na Projects: např. "Team Members" -6. Klikněte na **Uložit** +7. Klikněte na **Uložit** ## Krok 3: Nakonfigurujte zobrazení vztahu přes spojovací objekt @@ -98,18 +105,6 @@ Nyní nakonfigurujte zdrojové objekty tak, aby zobrazovaly propojené záznamy 6. Vyberte **Target relation** (např. "Project" — pole na spojovacím objektu, které ukazuje na druhou stranu) 7. Klikněte na **Uložit** -{/* TODO: Add image - -*/} - -Opakujte pro druhý objekt: - -1. Vyberte "Projects" v Data Model -2. Upravte relační pole "Team Members" -3. Povolte přepínač pro vztah přes spojovací objekt -4. Vyberte "Person" jako cílový vztah -5. Uložit - ## Výsledek Po konfiguraci: @@ -130,15 +125,15 @@ Zde je kompletní postup: ### Přidejte vztahy -1. **Project Assignment → People** - * Typ: Many-to-One - * Pole na Assignment: "Person" +1. **People → Project Assignment** + * Type: One-to-Many * Pole na People: "Project Assignments" + * Pole na Assignment: "Person" -2. **Project Assignment → Projects** - * Typ: Many-to-One - * Pole na Assignment: "Project" +2. **Projects → Project Assignment** + * Type: One-to-Many * Pole na Projects: "Team Members" + * Pole na Assignment: "Project" ### Nakonfigurujte zobrazení spojovacího objektu diff --git a/packages/twenty-docs/l/cs/user-guide/layout/capabilities/navigation.mdx b/packages/twenty-docs/l/cs/user-guide/layout/capabilities/navigation.mdx index 1c85dd3d30..eed3f91c51 100644 --- a/packages/twenty-docs/l/cs/user-guide/layout/capabilities/navigation.mdx +++ b/packages/twenty-docs/l/cs/user-guide/layout/capabilities/navigation.mdx @@ -30,3 +30,9 @@ Přidejte odkazy na externí nástroje přímo do postranního panelu. Užitečn ## Nabídka příkazů Stiskněte `Cmd+K` (nebo `Ctrl+K`) pro otevření nabídky příkazů — rychlá vyhledávací lišta pro přechod na libovolný záznam, zobrazení nebo akci bez procházení postranního panelu. + +## Přizpůsobení postranního panelu + +Chcete-li přizpůsobit postranní panel, najeďte myší na sekci "Pracovní prostor" v postranním panelu a klikněte na ikonu klíče. + +Navigation edit icon diff --git a/packages/twenty-docs/l/cs/user-guide/layout/capabilities/record-pages.mdx b/packages/twenty-docs/l/cs/user-guide/layout/capabilities/record-pages.mdx index 4910de4b7c..6d33444d8d 100644 --- a/packages/twenty-docs/l/cs/user-guide/layout/capabilities/record-pages.mdx +++ b/packages/twenty-docs/l/cs/user-guide/layout/capabilities/record-pages.mdx @@ -3,6 +3,8 @@ title: Stránky záznamů description: Přizpůsobte rozvržení jednotlivých stránek detailu záznamu pomocí karet a widgetů. --- +## Přehled + Když v Twenty otevřete záznam, stránka detailu se skládá z **karet** a **widgetů**. Obojí lze pro každý typ objektu plně přizpůsobit. ## Karty @@ -38,12 +40,20 @@ Widgety jsou stavební prvky uvnitř každé karty. Mezi dostupné typy widgetů 1. Otevřete libovolný záznam 2. Stiskněte `Cmd+K` a vyhledejte "Upravit rozložení stránky záznamu" + +nebo + +1. Go to Settings > Data model > object of your choice > Layout + +2. Click the "Customize record page" button for that object + 3. Nyní jste v režimu přizpůsobení: * **Přidávejte widgety** z výběru widgetů * **Přetahujte widgety** pro jejich přemístění v mřížce * **Změňte velikost widgetů** tažením jejich okrajů * **Nakonfigurujte pole** zobrazovaná v jednotlivých widgetech * **Spravujte karty** — přidávejte, odebírejte, přejmenovávejte, měňte pořadí + 4. Uložte změny — budou platit pro všechny záznamy daného typu objektu ## Viditelnost polí diff --git a/packages/twenty-docs/l/de/developers/extend/apps/logic-functions.mdx b/packages/twenty-docs/l/de/developers/extend/apps/logic-functions.mdx index bb7bd9fffc..7502c27b2e 100644 --- a/packages/twenty-docs/l/de/developers/extend/apps/logic-functions.mdx +++ b/packages/twenty-docs/l/de/developers/extend/apps/logic-functions.mdx @@ -94,15 +94,16 @@ const handler = async (event: RoutePayload) => { Der Typ `RoutePayload` hat die folgende Struktur: - | Eigenschaft | Typ | Beschreibung | Beispiel | - | ---------------------------- | ------------------------------------------------------- | ---------------------------------------------------------------- | -------------------------------------------------------------------------- | - | `headers` | `Record\` | HTTP-Header (nur die in `forwardedRequestHeaders` aufgelisteten) | siehe Abschnitt unten | - | `queryStringParameters` | `Record\` | Query-String-Parameter (mehrere Werte mit Kommas verbunden) | `/users?ids=1&ids=2&ids=3&name=Alice` -> `{ ids: '1,2,3', name: 'Alice' }` | - | `pathParameters` | `Record\` | Aus dem Routenmuster extrahierte Pfadparameter | `/users/:id`, `/users/123` -> `{ id: '123' }` | - | `body` | `object \| null` | Geparster Request-Body (JSON) | `{ id: 1 }` -> `{ id: 1 }` | - | `isBase64Encoded` | `boolean` | Gibt an, ob der Body Base64-codiert ist | | - | `requestContext.http.method` | `Zeichenkette` | HTTP-Methode (GET, POST, PUT, PATCH, DELETE) | | - | `requestContext.http.path` | `Zeichenkette` | Rohpfad der Anfrage | | + | Eigenschaft | Typ | Beschreibung | Beispiel | + | ---------------------------- | ------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | + | `headers` | `Record\` | HTTP-Header (nur die in `forwardedRequestHeaders` aufgelisteten) | siehe Abschnitt unten | + | `queryStringParameters` | `Record\` | Query-String-Parameter (mehrere Werte mit Kommas verbunden) | `/users?ids=1&ids=2&ids=3&name=Alice` -> `{ ids: '1,2,3', name: 'Alice' }` | + | `pathParameters` | `Record\` | Aus dem Routenmuster extrahierte Pfadparameter | `/users/:id`, `/users/123` -> `{ id: '123' }` | + | `body` | `object \| null` | Geparster Request-Body (JSON) | `{ id: 1 }` -> `{ id: 1 }` | + | `rawBody` | `string \| undefined` | Original UTF-8 request body, before JSON parsing. Useful for verifying HMAC-style webhook signatures (e.g. GitHub's `X-Hub-Signature-256`, Stripe). `undefined` when the runtime did not preserve it. | | + | `isBase64Encoded` | `boolean` | Gibt an, ob der Body Base64-codiert ist | | + | `requestContext.http.method` | `Zeichenkette` | HTTP-Methode (GET, POST, PUT, PATCH, DELETE) | | + | `requestContext.http.path` | `Zeichenkette` | Rohpfad der Anfrage | | #### forwardedRequestHeaders diff --git a/packages/twenty-docs/l/de/user-guide/billing/capabilities/pricing-plans.mdx b/packages/twenty-docs/l/de/user-guide/billing/capabilities/pricing-plans.mdx index 16ab40f35a..1cb5e70db9 100644 --- a/packages/twenty-docs/l/de/user-guide/billing/capabilities/pricing-plans.mdx +++ b/packages/twenty-docs/l/de/user-guide/billing/capabilities/pricing-plans.mdx @@ -19,7 +19,7 @@ Für Teams, die bereit sind zu skalieren: * Standard-Support -Premiumfunktionen (SSO und Berechtigungen auf Zeilenebene) sind im Pro-Plan nicht enthalten. +Premium features (SSO, row-level permissions and AI usage data) are not included in the Pro plan. ### Organisation (Cloud) @@ -27,7 +27,7 @@ Premiumfunktionen (SSO und Berechtigungen auf Zeilenebene) sind im Pro-Plan nich Für größere Teams mit erweiterten Anforderungen: * Alles aus Pro -* **Premiumfunktionen**: SSO-Integration und Berechtigungen auf Zeilenebene +* **Premium features**: SSO integration, row-level permissions and AI usage data * Vorrangiger Support ## Selbstgehostete Pläne @@ -45,7 +45,7 @@ Hosten Sie Twenty auf Ihrer eigenen Infrastruktur kostenlos: Für Teams, die beim Selbsthosting Premiumfunktionen benötigen: * Alle Pro-Funktionen -* **Premiumfunktionen**: SSO-Integration und Berechtigungen auf Zeilenebene +* **Premium features**: SSO integration, row-level permissions and AI usage data * Support durch das Twenty-Team * Keine Verpflichtung, benutzerdefinierten Code vor der Weitergabe als Open Source zu veröffentlichen @@ -55,6 +55,7 @@ Premiumfunktionen sind nur in den Organisation-Plänen (Cloud oder Selbstgehoste * **SSO-Integration**: Single Sign-On mit Ihrem Identitätsanbieter * **Berechtigungen auf Zeilenebene**: Feingranulare Zugriffskontrolle auf Datensatzebene +* **AI usage data**: Track AI consumption across the workspace ## Pläne wechseln @@ -77,3 +78,15 @@ Wenden Sie sich an den Support, um Ihren Plan herabzustufen. ### Zur monatlichen Abrechnung wechseln Wenden Sie sich an den Support, um wieder zur monatlichen Abrechnung zu wechseln. + +## Obtain an Enterprise Key for Organization (Self-Hosted) + +To use the Organization (Self-Hosted) plan, you need to obtain an Enterprise key: + +1. Go to **Settings → Admin Panel → Enterprise** + +Enterprise key + +2. Click **Get Enterprise Key** +3. When you are redirected to Stripe, enter your payment details and confirm +4. When your Enterprise key is displayed, paste it into the Enterprise settings page and activate the Organization license diff --git a/packages/twenty-docs/l/de/user-guide/billing/how-tos/billing-faq.mdx b/packages/twenty-docs/l/de/user-guide/billing/how-tos/billing-faq.mdx index ee76a3ed60..08af83030a 100644 --- a/packages/twenty-docs/l/de/user-guide/billing/how-tos/billing-faq.mdx +++ b/packages/twenty-docs/l/de/user-guide/billing/how-tos/billing-faq.mdx @@ -16,6 +16,11 @@ Wenn Sie selbst hosten möchten und die Premium-Funktionen (SSO und Berechtigung Premium-Funktionen sind nur in den Organization-Tarifen (Cloud oder Self-Hosted) verfügbar: * **SSO-Integration**: Single Sign-On mit Ihrem Identitätsanbieter * **Berechtigungen auf Zeilenebene**: feingranulare Zugriffskontrolle auf Datensatzebene +* **AI usage data**: Track AI consumption across the workspace + + + +They offer the same premium features. However, a cloud subscription cannot be used for self-hosted deployments. Self-hosted requires an Enterprise key. diff --git a/packages/twenty-docs/l/de/user-guide/data-model/how-tos/create-many-to-many-relations.mdx b/packages/twenty-docs/l/de/user-guide/data-model/how-tos/create-many-to-many-relations.mdx index 544441b4e0..49a896137e 100644 --- a/packages/twenty-docs/l/de/user-guide/data-model/how-tos/create-many-to-many-relations.mdx +++ b/packages/twenty-docs/l/de/user-guide/data-model/how-tos/create-many-to-many-relations.mdx @@ -53,38 +53,45 @@ Erstellen Sie zunächst das Zwischenobjekt, das die Verknüpfungen speichert. 1. Gehen Sie zu **Einstellungen → Datenmodell** 2. Klicken Sie auf **+ Neues Objekt** 3. Benennen Sie es aussagekräftig (z. B. "Projektzuweisung", "Teammitglied", "Produktbestellung") -4. Klicken Sie auf **Speichern** +4. Toggle "Skip creating a Name field" on + +New pivot object + +5. Klicken Sie auf **Speichern** **Namenskonvention**: Verwenden Sie einen Namen, der die Beziehung beschreibt, z. B. "Projektzuweisung" oder "Teammitgliedschaft". Das macht das Datenmodell leichter verständlich. -## Schritt 2: Beziehungen vom Verknüpfungsobjekt erstellen +## Step 2: Create Relations Between Objects and the Junction -Fügen Sie vom Verknüpfungsobjekt aus Beziehungsfelder zu beiden Objekten hinzu, die Sie verbinden möchten. +Add relation fields from each of your two objects to the junction object. -### Erste Beziehung (Verknüpfung → Objekt A) +### First Relation (Object A → Junction) -1. Wählen Sie Ihr Verknüpfungsobjekt unter **Einstellungen → Datenmodell** aus -2. Klicken Sie auf **+ Feld hinzufügen** -3. Wählen Sie **Relation** als Feldtyp -4. Wählen Sie das erste Objekt aus (z. B. "Personen") -5. Legen Sie den Beziehungstyp auf **Viele-zu-Eins** fest (viele Zuweisungen können mit einer Person verknüpft werden) -6. Benennen Sie die Felder: - * Feld auf der Verknüpfung: z. B. "Person" - * Feld bei Personen: z. B. "Projektzuweisungen" -7. Klicken Sie auf **Speichern** - -### Zweite Beziehung (Verknüpfung → Objekt B) - -1. Bleiben Sie im Verknüpfungsobjekt und klicken Sie auf **+ Feld hinzufügen** -2. Wählen Sie **Relation** als Feldtyp -3. Wählen Sie das zweite Objekt aus (z. B. "Projekte") -4. Legen Sie den Beziehungstyp auf **Viele-zu-Eins** fest +1. Select your first object in **Settings → Data Model** +2. Click **+ Add Relation** +3. Select the junction object (e.g., "Project Assignments") +4. Set the relation type to **One-To-Many** (one person can link to many assignments) 5. Benennen Sie die Felder: + * Feld bei Personen: z. B. "Projektzuweisungen" + * Feld auf der Verknüpfung: z. B. "Person" +6. Klicken Sie auf **Speichern** + +### Second Relation (Object B → Junction) + +1. Select your second object in **Settings → Data Model** +2. Click **+ Add Relation** +3. Select the junction object (e.g., "Project Assignments") +4. Set the relation type to **One-To-Many** (one project can link to many assignments) +5. Aktivieren Sie **"Dies ist eine Beziehung zu einem Verknüpfungsobjekt"** + + + +6. Benennen Sie die Felder: * Feld auf der Verknüpfung: z. B. "Projekt" * Feld bei Projekten: z. B. "Teammitglieder" -6. Klicken Sie auf **Speichern** +7. Klicken Sie auf **Speichern** ## Schritt 3: Anzeige der Verknüpfungsbeziehung konfigurieren @@ -98,18 +105,6 @@ Konfigurieren Sie nun die Quellobjekte so, dass verknüpfte Datensätze direkt a 6. Wählen Sie die **Zielbeziehung** aus (z. B. "Projekt" — das Feld an der Verknüpfung, das auf die andere Seite zeigt) 7. Klicken Sie auf **Speichern** -{/* TODO: Add image - -*/} - -Wiederholen Sie dies für das andere Objekt: - -1. Wählen Sie "Projekte" im Datenmodell aus -2. Bearbeiten Sie das Beziehungsfeld "Teammitglieder" -3. Aktivieren Sie den Verknüpfungsschalter -4. Wählen Sie "Person" als Zielbeziehung aus -5. Speichern - ## Ergebnis Nach der Konfiguration: @@ -130,15 +125,15 @@ Hier ist eine vollständige Schritt-für-Schritt-Anleitung: ### Beziehungen hinzufügen -1. **Projektzuweisung → Personen** - * Typ: Viele-zu-Eins - * Feld bei Zuweisung: "Person" +1. **People → Project Assignment** + * Type: One-to-Many * Feld bei Personen: "Projektzuweisungen" + * Feld bei Zuweisung: "Person" -2. **Projektzuweisung → Projekte** - * Typ: Viele-zu-Eins - * Feld bei Zuweisung: "Projekt" +2. **Projects → Project Assignment** + * Type: One-to-Many * Feld bei Projekten: "Teammitglieder" + * Feld bei Zuweisung: "Projekt" ### Verknüpfungsanzeige konfigurieren diff --git a/packages/twenty-docs/l/de/user-guide/layout/capabilities/navigation.mdx b/packages/twenty-docs/l/de/user-guide/layout/capabilities/navigation.mdx index 6ea213d3df..4c29f389f8 100644 --- a/packages/twenty-docs/l/de/user-guide/layout/capabilities/navigation.mdx +++ b/packages/twenty-docs/l/de/user-guide/layout/capabilities/navigation.mdx @@ -30,3 +30,9 @@ Fügen Sie Links zu externen Tools direkt in der Seitenleiste hinzu. Nützlich, ## Befehlsmenü Drücken Sie `Cmd+K` (oder `Ctrl+K`), um das Befehlsmenü zu öffnen — eine Suchleiste für den Schnellzugriff, mit der Sie zu jedem Datensatz, jeder Ansicht oder Aktion springen können, ohne durch die Seitenleiste zu navigieren. + +## Anpassung der Seitenleiste + +Um die Seitenleiste anzupassen, bewegen Sie den Mauszeiger über den Abschnitt "Arbeitsbereich" in der Seitenleiste und klicken Sie auf das Schraubenschlüssel-Symbol. + +Navigation edit icon diff --git a/packages/twenty-docs/l/de/user-guide/layout/capabilities/record-pages.mdx b/packages/twenty-docs/l/de/user-guide/layout/capabilities/record-pages.mdx index 34f1e611df..399926362b 100644 --- a/packages/twenty-docs/l/de/user-guide/layout/capabilities/record-pages.mdx +++ b/packages/twenty-docs/l/de/user-guide/layout/capabilities/record-pages.mdx @@ -3,6 +3,8 @@ title: Datensatzseiten description: Passen Sie das Layout einzelner Datensatz-Detailseiten mit Tabs und Widgets an. --- +## Übersicht + Wenn Sie in Twenty einen Datensatz öffnen, besteht die Detailseite aus **Tabs** und **Widgets**. Beide lassen sich je Objekttyp vollständig anpassen. ## Registerkarten @@ -38,12 +40,20 @@ Widgets sind die Bausteine in jedem Tab. Zu den verfügbaren Widget-Typen gehör 1. Öffnen Sie einen beliebigen Datensatz 2. Drücken Sie `Cmd+K` und suchen Sie nach "Layout der Datensatzseite bearbeiten" + +oder + +1. Go to Settings > Data model > object of your choice > Layout + +2. Click the "Customize record page" button for that object + 3. Sie befinden sich jetzt im Anpassungsmodus: * **Widgets hinzufügen** aus der Widget-Auswahl * **Widgets ziehen**, um sie im Raster neu zu positionieren * **Widgets in der Größe ändern**, indem Sie ihre Ränder ziehen * **Felder konfigurieren**, die in jedem Widget angezeigt werden * **Tabs verwalten** — hinzufügen, entfernen, umbenennen, neu anordnen + 4. Speichern Sie Ihre Änderungen — sie gelten für alle Datensätze dieses Objekttyps ## Feldsichtbarkeit diff --git a/packages/twenty-docs/l/it/developers/extend/apps/logic-functions.mdx b/packages/twenty-docs/l/it/developers/extend/apps/logic-functions.mdx index d65af436c7..4d0545a6b8 100644 --- a/packages/twenty-docs/l/it/developers/extend/apps/logic-functions.mdx +++ b/packages/twenty-docs/l/it/developers/extend/apps/logic-functions.mdx @@ -94,15 +94,16 @@ const handler = async (event: RoutePayload) => { Il tipo `RoutePayload` ha la seguente struttura: - | Proprietà | Tipo | Descrizione | Esempio | - | ---------------------------- | ------------------------------------------------------- | --------------------------------------------------------------------- | -------------------------------------------------------------------------- | - | `headers` | `Record\` | Intestazioni HTTP (solo quelle elencate in `forwardedRequestHeaders`) | vedi la sezione sotto | - | `queryStringParameters` | `Record\` | Parametri della query string (valori multipli uniti da virgole) | `/users?ids=1&ids=2&ids=3&name=Alice` -> `{ ids: '1,2,3', name: 'Alice' }` | - | `pathParameters` | `Record\` | Parametri di percorso estratti dal pattern della route | `/users/:id`, `/users/123` -> `{ id: '123' }` | - | `body` | `object \| null` | Corpo della richiesta analizzato (JSON) | `{ id: 1 }` -> `{ id: 1 }` | - | `isBase64Encoded` | `boolean` | Indica se il corpo è codificato in base64 | | - | `requestContext.http.method` | `string` | Metodo HTTP (GET, POST, PUT, PATCH, DELETE) | | - | `requestContext.http.path` | `string` | Percorso della richiesta non elaborato | | + | Proprietà | Tipo | Descrizione | Esempio | + | ---------------------------- | ------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | + | `headers` | `Record\` | Intestazioni HTTP (solo quelle elencate in `forwardedRequestHeaders`) | vedi la sezione sotto | + | `queryStringParameters` | `Record\` | Parametri della query string (valori multipli uniti da virgole) | `/users?ids=1&ids=2&ids=3&name=Alice` -> `{ ids: '1,2,3', name: 'Alice' }` | + | `pathParameters` | `Record\` | Parametri di percorso estratti dal pattern della route | `/users/:id`, `/users/123` -> `{ id: '123' }` | + | `body` | `object \| null` | Corpo della richiesta analizzato (JSON) | `{ id: 1 }` -> `{ id: 1 }` | + | `rawBody` | `string \| undefined` | Original UTF-8 request body, before JSON parsing. Useful for verifying HMAC-style webhook signatures (e.g. GitHub's `X-Hub-Signature-256`, Stripe). `undefined` when the runtime did not preserve it. | | + | `isBase64Encoded` | `boolean` | Indica se il corpo è codificato in base64 | | + | `requestContext.http.method` | `string` | Metodo HTTP (GET, POST, PUT, PATCH, DELETE) | | + | `requestContext.http.path` | `string` | Percorso della richiesta non elaborato | | #### forwardedRequestHeaders diff --git a/packages/twenty-docs/l/it/user-guide/billing/capabilities/pricing-plans.mdx b/packages/twenty-docs/l/it/user-guide/billing/capabilities/pricing-plans.mdx index 6b74d99b10..0e11bc8671 100644 --- a/packages/twenty-docs/l/it/user-guide/billing/capabilities/pricing-plans.mdx +++ b/packages/twenty-docs/l/it/user-guide/billing/capabilities/pricing-plans.mdx @@ -19,7 +19,7 @@ Per i team pronti a scalare: * Supporto standard -Le funzionalità premium (SSO e autorizzazioni a livello di riga) non sono incluse nel piano Pro. +Premium features (SSO, row-level permissions and AI usage data) are not included in the Pro plan. ### Organizzazione (Cloud) @@ -27,7 +27,7 @@ Le funzionalità premium (SSO e autorizzazioni a livello di riga) non sono inclu Per i team più numerosi con esigenze avanzate: * Tutto ciò che è incluso in Pro -* **Funzionalità premium**: integrazione SSO e autorizzazioni a livello di riga +* **Premium features**: SSO integration, row-level permissions and AI usage data * Supporto prioritario ## Piani self‑hosted @@ -45,7 +45,7 @@ Esegui Twenty sulla tua infrastruttura senza costi: Per i team che necessitano di funzionalità premium con il self‑hosting: * Tutte le funzionalità di Pro -* **Funzionalità premium**: integrazione SSO e autorizzazioni a livello di riga +* **Premium features**: SSO integration, row-level permissions and AI usage data * Supporto del team di Twenty * Nessun requisito di pubblicare il codice personalizzato come open source prima della distribuzione @@ -55,6 +55,7 @@ Le funzionalità premium sono disponibili solo nei piani Organizzazione (Cloud o * **Integrazione SSO**: Single Sign‑On con il tuo provider di identità * **Autorizzazioni a livello di riga**: controllo degli accessi granulare a livello di record +* **AI usage data**: Track AI consumption across the workspace ## Cambio piano @@ -77,3 +78,15 @@ Contatta il supporto per eseguire il downgrade del tuo piano. ### Passa alla fatturazione mensile Contatta il supporto per tornare alla fatturazione mensile. + +## Obtain an Enterprise Key for Organization (Self-Hosted) + +To use the Organization (Self-Hosted) plan, you need to obtain an Enterprise key: + +1. Go to **Settings → Admin Panel → Enterprise** + +Enterprise key + +2. Click **Get Enterprise Key** +3. When you are redirected to Stripe, enter your payment details and confirm +4. When your Enterprise key is displayed, paste it into the Enterprise settings page and activate the Organization license diff --git a/packages/twenty-docs/l/it/user-guide/billing/how-tos/billing-faq.mdx b/packages/twenty-docs/l/it/user-guide/billing/how-tos/billing-faq.mdx index 55bca52ee1..8f7cd85f8a 100644 --- a/packages/twenty-docs/l/it/user-guide/billing/how-tos/billing-faq.mdx +++ b/packages/twenty-docs/l/it/user-guide/billing/how-tos/billing-faq.mdx @@ -16,6 +16,11 @@ Se vuoi effettuare il self-hosting e hai bisogno delle funzionalità Premium (SS Le funzionalità Premium sono disponibili solo nei piani Organization (Cloud o Self-Hosted): * **Integrazione SSO**: Single Sign-On con il tuo provider di identità * **Autorizzazioni a livello di riga**: controllo degli accessi granulare a livello di record +* **AI usage data**: Track AI consumption across the workspace + + + +They offer the same premium features. However, a cloud subscription cannot be used for self-hosted deployments. Self-hosted requires an Enterprise key. diff --git a/packages/twenty-docs/l/it/user-guide/data-model/how-tos/create-many-to-many-relations.mdx b/packages/twenty-docs/l/it/user-guide/data-model/how-tos/create-many-to-many-relations.mdx index 77f34f8a75..a95fe34fb6 100644 --- a/packages/twenty-docs/l/it/user-guide/data-model/how-tos/create-many-to-many-relations.mdx +++ b/packages/twenty-docs/l/it/user-guide/data-model/how-tos/create-many-to-many-relations.mdx @@ -53,38 +53,45 @@ Per prima cosa, crea l'oggetto intermedio che conterrà i collegamenti. 1. Vai a **Impostazioni → Modello dati** 2. Fai clic su **+ Nuovo oggetto** 3. Assegnagli un nome descrittivo (ad es., "Assegnazione al progetto", "Membro del team", "Ordine del prodotto") -4. Clicca su **Salva** +4. Toggle "Skip creating a Name field" on + +New pivot object + +5. Clicca su **Salva** **Convenzione di denominazione**: Usa un nome che descriva la relazione, come "Assegnazione al progetto" o "Appartenenza al team". Questo rende il modello di dati più facile da comprendere. -## Passaggio 2: Crea le relazioni dall'oggetto di giunzione +## Step 2: Create Relations Between Objects and the Junction -Aggiungi campi di relazione dall'oggetto di giunzione a entrambi gli oggetti che desideri collegare. +Add relation fields from each of your two objects to the junction object. -### Prima relazione (Giunzione → Oggetto A) +### First Relation (Object A → Junction) -1. Seleziona il tuo oggetto di giunzione in **Impostazioni → Modello dati** -2. Fai clic su **+ Aggiungi campo** -3. Scegli **Relazione** come tipo di campo -4. Seleziona il primo oggetto (ad es., "Persone") -5. Imposta il tipo di relazione su **Molti-a-uno** (molte assegnazioni possono collegarsi a una persona) -6. Assegna un nome ai campi: - * Campo sull'oggetto di giunzione: ad es., "Persona" - * Campo su Persone: ad es., "Assegnazioni ai progetti" -7. Clicca su **Salva** - -### Seconda relazione (Giunzione → Oggetto B) - -1. Sempre sull'oggetto di giunzione, fai clic su **+ Aggiungi campo** -2. Scegli **Relazione** come tipo di campo -3. Seleziona il secondo oggetto (ad es., "Progetti") -4. Imposta il tipo di relazione su **Molti-a-uno** +1. Select your first object in **Settings → Data Model** +2. Click **+ Add Relation** +3. Select the junction object (e.g., "Project Assignments") +4. Set the relation type to **One-To-Many** (one person can link to many assignments) 5. Assegna un nome ai campi: + * Campo su Persone: ad es., "Assegnazioni ai progetti" + * Campo sull'oggetto di giunzione: ad es., "Persona" +6. Clicca su **Salva** + +### Second Relation (Object B → Junction) + +1. Select your second object in **Settings → Data Model** +2. Click **+ Add Relation** +3. Select the junction object (e.g., "Project Assignments") +4. Set the relation type to **One-To-Many** (one project can link to many assignments) +5. Abilita **"Questa è una relazione con un oggetto di giunzione"** + + + +6. Assegna un nome ai campi: * Campo sull'oggetto di giunzione: ad es., "Progetto" * Campo su Progetti: ad es., "Membri del team" -6. Clicca su **Salva** +7. Clicca su **Salva** ## Passaggio 3: Configura la visualizzazione della relazione di giunzione @@ -98,18 +105,6 @@ Ora configura gli oggetti sorgente per visualizzare direttamente i record colleg 6. Seleziona la **Relazione di destinazione** (ad es., "Progetto" — il campo sull'oggetto di giunzione che punta all'altro lato) 7. Clicca su **Salva** -{/* TODO: Add image - -*/} - -Ripeti per l'altro oggetto: - -1. Seleziona "Progetti" in Modello dati -2. Modifica il campo di relazione "Membri del team" -3. Abilita l'interruttore di giunzione -4. Seleziona "Persona" come relazione di destinazione -5. Salva - ## Risultato Dopo la configurazione: @@ -130,15 +125,15 @@ Ecco una procedura completa: ### Aggiungi relazioni -1. **Assegnazione al progetto → Persone** - * Tipo: Molti-a-uno - * Campo su Assegnazione: "Persona" +1. **People → Project Assignment** + * Type: One-to-Many * Campo su Persone: "Assegnazioni ai progetti" + * Campo su Assegnazione: "Persona" -2. **Assegnazione al progetto → Progetti** - * Tipo: Molti-a-uno - * Campo su Assegnazione: "Progetto" +2. **Projects → Project Assignment** + * Type: One-to-Many * Campo su Progetti: "Membri del team" + * Campo su Assegnazione: "Progetto" ### Configura la visualizzazione della giunzione diff --git a/packages/twenty-docs/l/it/user-guide/layout/capabilities/navigation.mdx b/packages/twenty-docs/l/it/user-guide/layout/capabilities/navigation.mdx index bb82d8e500..e7067e606b 100644 --- a/packages/twenty-docs/l/it/user-guide/layout/capabilities/navigation.mdx +++ b/packages/twenty-docs/l/it/user-guide/layout/capabilities/navigation.mdx @@ -30,3 +30,9 @@ Aggiungi collegamenti a strumenti esterni direttamente nella barra laterale. Uti ## Menu Comandi Premi `Cmd+K` (o `Ctrl+K`) per aprire il menu comandi — una barra di ricerca ad accesso rapido per passare a qualsiasi record, vista o azione senza usare la barra laterale. + +## Personalizzare la barra laterale + +Per personalizzare la barra laterale, passa il mouse sulla sezione "Workspace" nella barra laterale e fai clic sull'icona a forma di chiave inglese. + +Navigation edit icon diff --git a/packages/twenty-docs/l/it/user-guide/layout/capabilities/record-pages.mdx b/packages/twenty-docs/l/it/user-guide/layout/capabilities/record-pages.mdx index 3c436c9eff..5561778130 100644 --- a/packages/twenty-docs/l/it/user-guide/layout/capabilities/record-pages.mdx +++ b/packages/twenty-docs/l/it/user-guide/layout/capabilities/record-pages.mdx @@ -3,6 +3,8 @@ title: Pagine dei record description: Personalizza il layout delle singole pagine di dettaglio dei record con schede e widget. --- +## Panoramica + Quando apri un record in Twenty, la pagina di dettaglio è composta da **schede** e **widget**. Entrambi sono completamente personalizzabili per ciascun tipo di oggetto. ## Schede @@ -38,12 +40,20 @@ I widget sono gli elementi costitutivi all'interno di ogni scheda. Tipi di widge 1. Apri un record qualsiasi 2. Premi `Cmd+K` e cerca "Modifica il layout della pagina del record" + +o + +1. Go to Settings > Data model > object of your choice > Layout + +2. Click the "Customize record page" button for that object + 3. Ora sei in modalità di personalizzazione: * **Aggiungi widget** dal selettore di widget * **Trascina i widget** per riposizionarli sulla griglia * **Ridimensiona i widget** trascinando i bordi * **Configura i campi** mostrati all'interno di ciascun widget * **Gestisci le schede** — aggiungi, rimuovi, rinomina, riordina + 4. Salva le modifiche — si applicano a tutti i record di quel tipo di oggetto ## Visibilità dei campi diff --git a/packages/twenty-docs/l/pt/developers/extend/apps/logic-functions.mdx b/packages/twenty-docs/l/pt/developers/extend/apps/logic-functions.mdx index 674aca6ce8..588b388c3f 100644 --- a/packages/twenty-docs/l/pt/developers/extend/apps/logic-functions.mdx +++ b/packages/twenty-docs/l/pt/developers/extend/apps/logic-functions.mdx @@ -94,15 +94,16 @@ const handler = async (event: RoutePayload) => { O tipo `RoutePayload` tem a seguinte estrutura: - | Propriedade | Tipo | Descrição | Exemplo | - | ---------------------------- | ------------------------------------------------------- | ---------------------------------------------------------------------- | -------------------------------------------------------------------------- | - | `headers` | `Record\` | Cabeçalhos HTTP (apenas aqueles listados em `forwardedRequestHeaders`) | veja a seção abaixo | - | `queryStringParameters` | `Record\` | Parâmetros de query string (valores múltiplos unidos por vírgulas) | `/users?ids=1&ids=2&ids=3&name=Alice` -> `{ ids: '1,2,3', name: 'Alice' }` | - | `pathParameters` | `Record\` | Parâmetros de caminho extraídos do padrão de rota | `/users/:id`, `/users/123` -> `{ id: '123' }` | - | `body` | `object \| null` | Corpo da requisição analisado (JSON) | `{ id: 1 }` -> `{ id: 1 }` | - | `isBase64Encoded` | `boolean` | Se o corpo está codificado em base64 | | - | `requestContext.http.method` | `string` | Método HTTP (GET, POST, PUT, PATCH, DELETE) | | - | `requestContext.http.path` | `string` | Caminho bruto da requisição | | + | Propriedade | Tipo | Descrição | Exemplo | + | ---------------------------- | ------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | + | `headers` | `Record\` | Cabeçalhos HTTP (apenas aqueles listados em `forwardedRequestHeaders`) | veja a seção abaixo | + | `queryStringParameters` | `Record\` | Parâmetros de query string (valores múltiplos unidos por vírgulas) | `/users?ids=1&ids=2&ids=3&name=Alice` -> `{ ids: '1,2,3', name: 'Alice' }` | + | `pathParameters` | `Record\` | Parâmetros de caminho extraídos do padrão de rota | `/users/:id`, `/users/123` -> `{ id: '123' }` | + | `body` | `object \| null` | Corpo da requisição analisado (JSON) | `{ id: 1 }` -> `{ id: 1 }` | + | `rawBody` | `string \| undefined` | Original UTF-8 request body, before JSON parsing. Useful for verifying HMAC-style webhook signatures (e.g. GitHub's `X-Hub-Signature-256`, Stripe). `undefined` when the runtime did not preserve it. | | + | `isBase64Encoded` | `boolean` | Se o corpo está codificado em base64 | | + | `requestContext.http.method` | `string` | Método HTTP (GET, POST, PUT, PATCH, DELETE) | | + | `requestContext.http.path` | `string` | Caminho bruto da requisição | | #### forwardedRequestHeaders diff --git a/packages/twenty-docs/l/pt/user-guide/billing/capabilities/pricing-plans.mdx b/packages/twenty-docs/l/pt/user-guide/billing/capabilities/pricing-plans.mdx index e41ff025b8..944555af2c 100644 --- a/packages/twenty-docs/l/pt/user-guide/billing/capabilities/pricing-plans.mdx +++ b/packages/twenty-docs/l/pt/user-guide/billing/capabilities/pricing-plans.mdx @@ -19,7 +19,7 @@ Para equipes prontas para escalar: * Suporte padrão -Recursos premium (SSO e permissões em nível de linha) não estão incluídos no plano Pro. +Premium features (SSO, row-level permissions and AI usage data) are not included in the Pro plan. ### Organização (Nuvem) @@ -27,7 +27,7 @@ Recursos premium (SSO e permissões em nível de linha) não estão incluídos n Para equipes maiores com necessidades avançadas: * Tudo do Pro -* **Recursos premium**: integração SSO e permissões em nível de linha +* **Premium features**: SSO integration, row-level permissions and AI usage data * Suporte prioritário ## Planos auto-hospedados @@ -45,7 +45,7 @@ Hospede o Twenty na sua própria infraestrutura sem custo: Para equipes que precisam de recursos premium enquanto se auto-hospedam: * Todos os recursos do Pro -* **Recursos premium**: integração SSO e permissões em nível de linha +* **Premium features**: SSO integration, row-level permissions and AI usage data * Suporte da equipe Twenty * Sem necessidade de publicar código personalizado como código aberto antes de distribuir @@ -55,6 +55,7 @@ Os recursos premium estão disponíveis apenas nos planos Organização (Nuvem o * **Integração SSO**: Single Sign-On com seu provedor de identidade * **Permissões em nível de linha**: controle de acesso granular no nível de registro +* **AI usage data**: Track AI consumption across the workspace ## Mudança de planos @@ -77,3 +78,15 @@ Entre em contato com o suporte para fazer downgrade do seu plano. ### Mudar para faturamento mensal Entre em contato com o suporte para voltar ao faturamento mensal. + +## Obtain an Enterprise Key for Organization (Self-Hosted) + +To use the Organization (Self-Hosted) plan, you need to obtain an Enterprise key: + +1. Go to **Settings → Admin Panel → Enterprise** + +Enterprise key + +2. Click **Get Enterprise Key** +3. When you are redirected to Stripe, enter your payment details and confirm +4. When your Enterprise key is displayed, paste it into the Enterprise settings page and activate the Organization license diff --git a/packages/twenty-docs/l/pt/user-guide/billing/how-tos/billing-faq.mdx b/packages/twenty-docs/l/pt/user-guide/billing/how-tos/billing-faq.mdx index 8d7d046c51..dadca55433 100644 --- a/packages/twenty-docs/l/pt/user-guide/billing/how-tos/billing-faq.mdx +++ b/packages/twenty-docs/l/pt/user-guide/billing/how-tos/billing-faq.mdx @@ -16,6 +16,11 @@ Se você quiser hospedar por conta própria e precisar dos recursos Premium (SSO Os recursos Premium estão disponíveis apenas nos planos Organization (Cloud ou Self-Hosted): * **Integração de SSO**: Single Sign-On com seu provedor de identidade * **Permissões em nível de linha**: Controle de acesso granular no nível de registro +* **AI usage data**: Track AI consumption across the workspace + + + +They offer the same premium features. However, a cloud subscription cannot be used for self-hosted deployments. Self-hosted requires an Enterprise key. diff --git a/packages/twenty-docs/l/pt/user-guide/data-model/how-tos/create-many-to-many-relations.mdx b/packages/twenty-docs/l/pt/user-guide/data-model/how-tos/create-many-to-many-relations.mdx index 0dc3df8470..7cd9e15efc 100644 --- a/packages/twenty-docs/l/pt/user-guide/data-model/how-tos/create-many-to-many-relations.mdx +++ b/packages/twenty-docs/l/pt/user-guide/data-model/how-tos/create-many-to-many-relations.mdx @@ -53,38 +53,45 @@ Primeiro, crie o objeto intermediário que manterá as conexões. 1. Vá a **Definições → Modelo de Dados** 2. Clique em **+ Novo objeto** 3. Dê um nome descritivo (por exemplo, "Atribuição de Projeto", "Membro da Equipe", "Pedido de Produto") -4. Clique em **Salvar** +4. Toggle "Skip creating a Name field" on + +New pivot object + +5. Clique em **Salvar** **Convenção de nomenclatura**: Use um nome que descreva a relação, como "Atribuição de Projeto" ou "Participação na Equipe". Isso torna o modelo de dados mais fácil de entender. -## Etapa 2: Criar Relações a partir do Objeto de Junção +## Step 2: Create Relations Between Objects and the Junction -Adicione campos de relação do objeto de junção para ambos os objetos que deseja conectar. +Add relation fields from each of your two objects to the junction object. -### Primeira Relação (Junção → Objeto A) +### First Relation (Object A → Junction) -1. Selecione seu objeto de junção em **Settings → Data Model** -2. Clique em **+ Adicionar campo** -3. Escolha **Relação** como o tipo de campo -4. Selecione o primeiro objeto (por exemplo, "Pessoas") -5. Defina o tipo de relação como **Muitos-para-um** (muitas atribuições podem se vincular a uma pessoa) -6. Nomeie os campos: - * Campo na junção: por exemplo, "Pessoa" - * Campo em Pessoas: por exemplo, "Atribuições de Projeto" -7. Clique em **Salvar** - -### Segunda Relação (Junção → Objeto B) - -1. Ainda no objeto de junção, clique em **+ Add Field** -2. Escolha **Relação** como o tipo de campo -3. Selecione o segundo objeto (por exemplo, "Projetos") -4. Defina o tipo de relação como **Muitos-para-um** +1. Select your first object in **Settings → Data Model** +2. Click **+ Add Relation** +3. Select the junction object (e.g., "Project Assignments") +4. Set the relation type to **One-To-Many** (one person can link to many assignments) 5. Nomeie os campos: + * Campo em Pessoas: por exemplo, "Atribuições de Projeto" + * Campo na junção: por exemplo, "Pessoa" +6. Clique em **Salvar** + +### Second Relation (Object B → Junction) + +1. Select your second object in **Settings → Data Model** +2. Click **+ Add Relation** +3. Select the junction object (e.g., "Project Assignments") +4. Set the relation type to **One-To-Many** (one project can link to many assignments) +5. Ative **"Esta é uma relação com um objeto de junção"** + + + +6. Nomeie os campos: * Campo na junção: por exemplo, "Projeto" * Campo em Projetos: por exemplo, "Membros da Equipe" -6. Clique em **Salvar** +7. Clique em **Salvar** ## Etapa 3: Configurar a Exibição da Relação de Junção @@ -98,18 +105,6 @@ Agora configure os objetos de origem para exibir diretamente os registros vincul 6. Selecione a **Relação de destino** (por exemplo, "Projeto" — o campo na junção que aponta para o outro lado) 7. Clique em **Salvar** -{/* TODO: Add image - -*/} - -Repita para o outro objeto: - -1. Selecione "Projetos" em Data Model -2. Edite o campo de relação "Membros da Equipe" -3. Ative o alternador de junção -4. Selecione "Pessoa" como a relação de destino -5. Salvar - ## Resultado Após a configuração: @@ -130,15 +125,15 @@ Aqui está um passo a passo completo: ### Adicionar Relações -1. **Atribuição de Projeto → Pessoas** - * Tipo: Muitos-para-um - * Campo em Atribuição: "Pessoa" +1. **People → Project Assignment** + * Type: One-to-Many * Campo em Pessoas: "Atribuições de Projeto" + * Campo em Atribuição: "Pessoa" -2. **Atribuição de Projeto → Projetos** - * Tipo: Muitos-para-um - * Campo em Atribuição: "Projeto" +2. **Projects → Project Assignment** + * Type: One-to-Many * Campo em Projetos: "Membros da Equipe" + * Campo em Atribuição: "Projeto" ### Configurar Exibição de Junção diff --git a/packages/twenty-docs/l/pt/user-guide/layout/capabilities/navigation.mdx b/packages/twenty-docs/l/pt/user-guide/layout/capabilities/navigation.mdx index b1ae15e89c..32ca6fb4e8 100644 --- a/packages/twenty-docs/l/pt/user-guide/layout/capabilities/navigation.mdx +++ b/packages/twenty-docs/l/pt/user-guide/layout/capabilities/navigation.mdx @@ -30,3 +30,9 @@ Adicione links para ferramentas externas diretamente na barra lateral. Útil par ## Menu de Comandos Pressione `Cmd+K` (ou `Ctrl+K`) para abrir o menu de comandos — uma barra de pesquisa de acesso rápido para ir a qualquer registro, visualização ou ação sem navegar pela barra lateral. + +## Personalizando a barra lateral + +Para personalizar a barra lateral, passe o cursor sobre a seção "Workspace" na barra lateral e clique no ícone de chave inglesa. + +Navigation edit icon diff --git a/packages/twenty-docs/l/pt/user-guide/layout/capabilities/record-pages.mdx b/packages/twenty-docs/l/pt/user-guide/layout/capabilities/record-pages.mdx index 3637f9bc07..71d3e0b4f9 100644 --- a/packages/twenty-docs/l/pt/user-guide/layout/capabilities/record-pages.mdx +++ b/packages/twenty-docs/l/pt/user-guide/layout/capabilities/record-pages.mdx @@ -3,6 +3,8 @@ title: Páginas de Registos description: Personalize o layout das páginas de detalhe de registos individuais com abas e widgets. --- +## Visão Geral + Ao abrir um registo no Twenty, a página de detalhe é composta por **abas** e **widgets**. Ambos são totalmente personalizáveis por tipo de objeto. ## Abas @@ -38,12 +40,20 @@ Os widgets são os componentes básicos dentro de cada aba. Tipos de widget disp 1. Abra qualquer registro 2. Pressione `Cmd+K` e pesquise por "Edit record page layout" + +ou + +1. Go to Settings > Data model > object of your choice > Layout + +2. Click the "Customize record page" button for that object + 3. Agora você está no modo de personalização: * **Adicionar widgets** no seletor de widgets * **Arraste widgets** para reposicioná-los na grade * **Redimensione os widgets** arrastando suas bordas * **Configure campos** exibidos em cada widget * **Gerencie abas** — adicione, remova, renomeie, reordene + 4. Salve suas alterações — elas se aplicam a todos os registros desse tipo de objeto ## Visibilidade de campos diff --git a/packages/twenty-docs/l/ru/developers/extend/apps/logic-functions.mdx b/packages/twenty-docs/l/ru/developers/extend/apps/logic-functions.mdx index 82538084c6..f549419bfd 100644 --- a/packages/twenty-docs/l/ru/developers/extend/apps/logic-functions.mdx +++ b/packages/twenty-docs/l/ru/developers/extend/apps/logic-functions.mdx @@ -94,15 +94,16 @@ const handler = async (event: RoutePayload) => { Тип `RoutePayload` имеет следующую структуру: - | Свойство | Тип | Описание | Пример | - | ---------------------------- | ------------------------------------------------------- | ------------------------------------------------------------------- | -------------------------------------------------------------------------- | - | `headers` | `Record\` | HTTP-заголовки (только перечисленные в `forwardedRequestHeaders`) | см. раздел ниже | - | `queryStringParameters` | `Record\` | Параметры строки запроса (несколько значений объединяются запятыми) | `/users?ids=1&ids=2&ids=3&name=Alice` -> `{ ids: '1,2,3', name: 'Alice' }` | - | `pathParameters` | `Record\` | Параметры пути, извлечённые из шаблона маршрута | `/users/:id`, `/users/123` -> `{ id: '123' }` | - | `body` | `object \| null` | Разобранное тело запроса (JSON) | `{ id: 1 }` -> `{ id: 1 }` | - | `isBase64Encoded` | `boolean` | Является ли тело закодированным в base64 | | - | `requestContext.http.method` | `string` | Метод HTTP (GET, POST, PUT, PATCH, DELETE) | | - | `requestContext.http.path` | `string` | Необработанный путь запроса | | + | Свойство | Тип | Описание | Пример | + | ---------------------------- | ------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | + | `headers` | `Record\` | HTTP-заголовки (только перечисленные в `forwardedRequestHeaders`) | см. раздел ниже | + | `queryStringParameters` | `Record\` | Параметры строки запроса (несколько значений объединяются запятыми) | `/users?ids=1&ids=2&ids=3&name=Alice` -> `{ ids: '1,2,3', name: 'Alice' }` | + | `pathParameters` | `Record\` | Параметры пути, извлечённые из шаблона маршрута | `/users/:id`, `/users/123` -> `{ id: '123' }` | + | `body` | `object \| null` | Разобранное тело запроса (JSON) | `{ id: 1 }` -> `{ id: 1 }` | + | `rawBody` | `string \| undefined` | Original UTF-8 request body, before JSON parsing. Useful for verifying HMAC-style webhook signatures (e.g. GitHub's `X-Hub-Signature-256`, Stripe). `undefined` when the runtime did not preserve it. | | + | `isBase64Encoded` | `boolean` | Является ли тело закодированным в base64 | | + | `requestContext.http.method` | `string` | Метод HTTP (GET, POST, PUT, PATCH, DELETE) | | + | `requestContext.http.path` | `string` | Необработанный путь запроса | | #### forwardedRequestHeaders 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 c77936e70c..bf37dc8f40 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 @@ -19,7 +19,7 @@ Twenty предлагает гибкие тарифы для команд люб * Стандартная поддержка -Премиальные функции (SSO и разрешения на уровне записей) не входят в план Pro. +Premium features (SSO, row-level permissions and AI usage data) are not included in the Pro plan. ### Организация (облако) @@ -27,7 +27,7 @@ Twenty предлагает гибкие тарифы для команд люб Для крупных команд с расширенными потребностями: * Все, что есть в Pro -* **Премиальные функции**: интеграция с SSO и разрешения на уровне записей +* **Premium features**: SSO integration, row-level permissions and AI usage data * Приоритетная поддержка ## Планы для самостоятельного размещения @@ -45,7 +45,7 @@ Twenty предлагает гибкие тарифы для команд люб Для команд, которым нужны премиальные функции при самостоятельном размещении: * Все возможности Pro -* **Премиальные функции**: интеграция с SSO и разрешения на уровне записей +* **Premium features**: SSO integration, row-level permissions and AI usage data * Поддержка от команды Twenty * Не требуется публиковать пользовательский код с открытым исходным кодом перед распространением @@ -55,6 +55,7 @@ Twenty предлагает гибкие тарифы для команд люб * **Интеграция с SSO**: единый вход через вашего поставщика идентификации * **Разрешения на уровне записей**: тонкая настройка управления доступом на уровне записей +* **AI usage data**: Track AI consumption across the workspace ## Переключение планов @@ -77,3 +78,15 @@ Twenty предлагает гибкие тарифы для команд люб ### Переход на ежемесячную оплату Свяжитесь со службой поддержки, чтобы вернуться на ежемесячную оплату. + +## Obtain an Enterprise Key for Organization (Self-Hosted) + +To use the Organization (Self-Hosted) plan, you need to obtain an Enterprise key: + +1. Go to **Settings → Admin Panel → Enterprise** + +Enterprise key + +2. Click **Get Enterprise Key** +3. When you are redirected to Stripe, enter your payment details and confirm +4. When your Enterprise key is displayed, paste it into the Enterprise settings page and activate the Organization license diff --git a/packages/twenty-docs/l/ru/user-guide/billing/how-tos/billing-faq.mdx b/packages/twenty-docs/l/ru/user-guide/billing/how-tos/billing-faq.mdx index e9237c7829..beed258518 100644 --- a/packages/twenty-docs/l/ru/user-guide/billing/how-tos/billing-faq.mdx +++ b/packages/twenty-docs/l/ru/user-guide/billing/how-tos/billing-faq.mdx @@ -16,6 +16,11 @@ description: Часто задаваемые вопросы о тарифах и Премиум-функции доступны только в планах Organization (облако или Self-Hosted): * **Интеграция с SSO**: единый вход с вашим провайдером идентификации * **Разрешения на уровне записей**: детализированное управление доступом на уровне записей +* **AI usage data**: Track AI consumption across the workspace + + + +They offer the same premium features. However, a cloud subscription cannot be used for self-hosted deployments. Self-hosted requires an Enterprise key. @@ -27,7 +32,7 @@ description: Часто задаваемые вопросы о тарифах и -Пожалуйста, свяжитесь с нашей командой напрямую через Поддержку, в данный момент нет простого способа сделать это через пользовательский интерфейс. +Пожалуйста, свяжитесь с нашей командой напрямую через раздел «Поддержка», в данный момент нет простого способа сделать это через пользовательский интерфейс. diff --git a/packages/twenty-docs/l/ru/user-guide/data-model/how-tos/create-many-to-many-relations.mdx b/packages/twenty-docs/l/ru/user-guide/data-model/how-tos/create-many-to-many-relations.mdx index 4eb7ac2246..b685587375 100644 --- a/packages/twenty-docs/l/ru/user-guide/data-model/how-tos/create-many-to-many-relations.mdx +++ b/packages/twenty-docs/l/ru/user-guide/data-model/how-tos/create-many-to-many-relations.mdx @@ -53,38 +53,45 @@ People ←→ Project Assignments ←→ Projects 1. Перейдите в **Настройки → Модель данных** 2. Нажмите **+ Новый объект** 3. Дайте ему понятное имя (например, "Project Assignment", "Team Member", "Product Order") -4. Нажмите **Сохранить** +4. Toggle "Skip creating a Name field" on + +New pivot object + +5. Нажмите **Сохранить** **Рекомендации по именованию**: Используйте название, описывающее связь, например "Project Assignment" или "Team Membership". Так модель данных становится более понятной. -## Шаг 2: Создайте связи из объекта-связки +## Step 2: Create Relations Between Objects and the Junction -Добавьте поля связи из объекта-связки к обоим объектам, которые вы хотите соединить. +Add relation fields from each of your two objects to the junction object. -### Первая связь (Объект-связка → Объект A) +### First Relation (Object A → Junction) -1. Выберите ваш объект-связку в **Настройки → Модель данных** -2. Нажмите **+ Добавить поле** -3. Выберите тип поля **Связь** -4. Выберите первый объект (например, "Люди") -5. Установите тип связи **Многие-к-одному** (много назначений могут ссылаться на одного человека) -6. Назовите поля: - * Поле на объекте-связке: например, "Person" - * Поле в объекте Люди: например, "Project Assignments" -7. Нажмите **Сохранить** - -### Вторая связь (Объект-связка → Объект B) - -1. Оставаясь на объекте-связке, нажмите **+ Добавить поле** -2. Выберите тип поля **Связь** -3. Выберите второй объект (например, "Проекты") -4. Установите тип связи **Многие-к-одному** +1. Select your first object in **Settings → Data Model** +2. Click **+ Add Relation** +3. Select the junction object (e.g., "Project Assignments") +4. Set the relation type to **One-To-Many** (one person can link to many assignments) 5. Назовите поля: + * Поле в объекте Люди: например, "Project Assignments" + * Поле на объекте-связке: например, "Person" +6. Нажмите **Сохранить** + +### Second Relation (Object B → Junction) + +1. Select your second object in **Settings → Data Model** +2. Click **+ Add Relation** +3. Select the junction object (e.g., "Project Assignments") +4. Set the relation type to **One-To-Many** (one project can link to many assignments) +5. Включите **"Это связь с объектом-связкой"** + + + +6. Назовите поля: * Поле на объекте-связке: например, "Project" * Поле в объекте Проекты: например, "Team Members" -6. Нажмите **Сохранить** +7. Нажмите **Сохранить** ## Шаг 3: Настройте отображение связи через объект-связку @@ -98,18 +105,6 @@ People ←→ Project Assignments ←→ Projects 6. Выберите **Целевую связь** (например, "Project" — поле на объекте-связке, указывающее на другую сторону) 7. Нажмите **Сохранить** -{/* TODO: Add image - -*/} - -Повторите для другого объекта: - -1. Выберите "Проекты" в Модели данных -2. Отредактируйте поле связи "Team Members" -3. Включите переключатель объекта-связки -4. Выберите "Person" как целевую связь -5. Сохранить - ## Результат После настройки: @@ -130,15 +125,15 @@ People ←→ Project Assignments ←→ Projects ### Добавьте связи -1. **Project Assignment → Люди** - * Тип: Многие-к-одному - * Поле в объекте Assignment: "Person" +1. **People → Project Assignment** + * Type: One-to-Many * Поле в объекте Люди: "Project Assignments" + * Поле в объекте Assignment: "Person" -2. **Project Assignment → Проекты** - * Тип: Многие-к-одному - * Поле в объекте Assignment: "Project" +2. **Projects → Project Assignment** + * Type: One-to-Many * Поле в объекте Проекты: "Team Members" + * Поле в объекте Assignment: "Project" ### Настройте отображение объекта-связки diff --git a/packages/twenty-docs/l/ru/user-guide/layout/capabilities/navigation.mdx b/packages/twenty-docs/l/ru/user-guide/layout/capabilities/navigation.mdx index 1c5e9c07e2..a24fb5a625 100644 --- a/packages/twenty-docs/l/ru/user-guide/layout/capabilities/navigation.mdx +++ b/packages/twenty-docs/l/ru/user-guide/layout/capabilities/navigation.mdx @@ -30,3 +30,9 @@ description: Настройте левую боковую панель под т ## Меню команд Нажмите `Cmd+K` (или `Ctrl+K`), чтобы открыть меню команд — строку быстрого поиска для перехода к любой записи, представлению или действию, не используя боковую панель. + +## Настройка боковой панели + +Чтобы настроить боковую панель, наведите курсор на раздел "Workspace" на боковой панели и нажмите значок гаечного ключа. + +Navigation edit icon diff --git a/packages/twenty-docs/l/ru/user-guide/layout/capabilities/record-pages.mdx b/packages/twenty-docs/l/ru/user-guide/layout/capabilities/record-pages.mdx index a6e5128c93..a0405f94aa 100644 --- a/packages/twenty-docs/l/ru/user-guide/layout/capabilities/record-pages.mdx +++ b/packages/twenty-docs/l/ru/user-guide/layout/capabilities/record-pages.mdx @@ -3,6 +3,8 @@ title: Страницы записей description: Настройте макет отдельных страниц сведений о записях с вкладками и виджетами. --- +## Обзор + Когда вы открываете запись в Twenty, страница сведений состоит из **вкладок** и **виджетов**. Оба полностью настраиваются для каждого типа объекта. ## Вкладки @@ -38,12 +40,20 @@ description: Настройте макет отдельных страниц с 1. Откройте любую запись 2. Нажмите `Cmd+K` и найдите "Изменить макет страницы записи" + +или + +1. Go to Settings > Data model > object of your choice > Layout + +2. Click the "Customize record page" button for that object + 3. Теперь вы в режиме настройки: * **Добавляйте виджеты** из списка виджетов * **Перетаскивайте виджеты**, чтобы изменить их положение на сетке * **Изменяйте размер виджетов**, перетаскивая их границы * **Настраивайте поля**, отображаемые в каждом виджете * **Управляйте вкладками** — добавляйте, удаляйте, переименовывайте, меняйте порядок + 4. Сохраните изменения — они применятся ко всем записям этого типа объекта ## Видимость полей diff --git a/packages/twenty-docs/l/tr/developers/extend/apps/logic-functions.mdx b/packages/twenty-docs/l/tr/developers/extend/apps/logic-functions.mdx index 7bf0fd961d..b321a7acda 100644 --- a/packages/twenty-docs/l/tr/developers/extend/apps/logic-functions.mdx +++ b/packages/twenty-docs/l/tr/developers/extend/apps/logic-functions.mdx @@ -95,15 +95,16 @@ const handler = async (event: RoutePayload) => { `RoutePayload` türünün yapısı şu şekildedir: - | Özellik | Tür | Açıklama | Örnek | - | ---------------------------- | ------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | - | `headers` | `Record\` | HTTP başlıkları (`forwardedRequestHeaders` içinde listelenenlerle sınırlı) | aşağıdaki bölüme bakın | - | `queryStringParameters` | `Record\` | Sorgu dizesi parametreleri (birden çok değer virgülle birleştirilir) | `/users?ids=1&ids=2&ids=3&name=Alice` -> `{ ids: '1,2,3', name: 'Alice' }` | - | `pathParameters` | `Record\` | Rota deseninden çıkarılan yol parametreleri | `/users/:id`, `/users/123` -> `{ id: '123' }` | - | `body` | `object \| null` | Ayrıştırılmış istek gövdesi (JSON) | `{ id: 1 }` -> `{ id: 1 }` | - | `isBase64Encoded` | `boolean` | Gövdenin base64 ile kodlanıp kodlanmadığı | | - | `requestContext.http.method` | `string` | HTTP yöntemi (GET, POST, PUT, PATCH, DELETE) | | - | `requestContext.http.path` | `string` | Ham istek yolu | | + | Özellik | Tür | Açıklama | Örnek | + | ---------------------------- | ------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | + | `headers` | `Record\` | HTTP başlıkları (`forwardedRequestHeaders` içinde listelenenlerle sınırlı) | aşağıdaki bölüme bakın | + | `queryStringParameters` | `Record\` | Sorgu dizesi parametreleri (birden çok değer virgülle birleştirilir) | `/users?ids=1&ids=2&ids=3&name=Alice` -> `{ ids: '1,2,3', name: 'Alice' }` | + | `pathParameters` | `Record\` | Rota deseninden çıkarılan yol parametreleri | `/users/:id`, `/users/123` -> `{ id: '123' }` | + | `body` | `object \| null` | Ayrıştırılmış istek gövdesi (JSON) | `{ id: 1 }` -> `{ id: 1 }` | + | `rawBody` | `string \| undefined` | Original UTF-8 request body, before JSON parsing. Useful for verifying HMAC-style webhook signatures (e.g. GitHub's `X-Hub-Signature-256`, Stripe). `undefined` when the runtime did not preserve it. | | + | `isBase64Encoded` | `boolean` | Gövdenin base64 ile kodlanıp kodlanmadığı | | + | `requestContext.http.method` | `string` | HTTP yöntemi (GET, POST, PUT, PATCH, DELETE) | | + | `requestContext.http.path` | `string` | Ham istek yolu | | #### forwardedRequestHeaders diff --git a/packages/twenty-docs/l/tr/user-guide/billing/capabilities/pricing-plans.mdx b/packages/twenty-docs/l/tr/user-guide/billing/capabilities/pricing-plans.mdx index 03a11411c7..62087fced9 100644 --- a/packages/twenty-docs/l/tr/user-guide/billing/capabilities/pricing-plans.mdx +++ b/packages/twenty-docs/l/tr/user-guide/billing/capabilities/pricing-plans.mdx @@ -19,7 +19,7 @@ Büyümeye hazır ekipler için: * Standart destek -Premium özellikler (SSO ve satır düzeyi izinler) Pro planına dahil değildir. +Premium features (SSO, row-level permissions and AI usage data) are not included in the Pro plan. ### Kuruluş (Bulut) @@ -27,7 +27,7 @@ Premium özellikler (SSO ve satır düzeyi izinler) Pro planına dahil değildir Gelişmiş ihtiyaçları olan daha büyük ekipler için: * Pro'daki her şey -* **Premium özellikler**: SSO entegrasyonu ve satır düzeyi izinler +* **Premium features**: SSO integration, row-level permissions and AI usage data * Öncelikli destek ## Kendi Kendine Barındırılan Planlar @@ -45,7 +45,7 @@ Twenty'yi kendi altyapınızda hiçbir ücret ödemeden barındırın: Kendi kendine barındırma yaparken premium özelliklere ihtiyaç duyan ekipler için: * Tüm Pro özellikleri -* **Premium özellikler**: SSO entegrasyonu ve satır düzeyi izinler +* **Premium features**: SSO integration, row-level permissions and AI usage data * Twenty ekibinden destek * Dağıtmadan önce özel kodu açık kaynak olarak yayınlama zorunluluğu yoktur. @@ -55,6 +55,7 @@ Premium özellikler yalnızca Kuruluş planlarında (Bulut veya Kendi Kendine Ba * **SSO entegrasyonu**: Kimlik sağlayıcınızla Tek Oturum Açma * **Satır düzeyi izinler**: Kayıt düzeyinde ayrıntılı erişim denetimi +* **AI usage data**: Track AI consumption across the workspace ## Planlar Arasında Geçiş @@ -77,3 +78,15 @@ Planınızı düşürmek için destek ekibiyle iletişime geçin. ### Aylığa Geçiş Yap Aylık faturalamaya geri dönmek için destek ekibiyle iletişime geçin. + +## Obtain an Enterprise Key for Organization (Self-Hosted) + +To use the Organization (Self-Hosted) plan, you need to obtain an Enterprise key: + +1. Go to **Settings → Admin Panel → Enterprise** + +Enterprise key + +2. Click **Get Enterprise Key** +3. When you are redirected to Stripe, enter your payment details and confirm +4. When your Enterprise key is displayed, paste it into the Enterprise settings page and activate the Organization license diff --git a/packages/twenty-docs/l/tr/user-guide/billing/how-tos/billing-faq.mdx b/packages/twenty-docs/l/tr/user-guide/billing/how-tos/billing-faq.mdx index 23fa54c6da..9668d5a291 100644 --- a/packages/twenty-docs/l/tr/user-guide/billing/how-tos/billing-faq.mdx +++ b/packages/twenty-docs/l/tr/user-guide/billing/how-tos/billing-faq.mdx @@ -16,6 +16,11 @@ Kendiniz barındırmak istiyor ve Premium özelliklere (SSO ve satır düzeyi iz Premium özellikler yalnızca Kuruluş planlarında (Bulut veya Kendi Barındırmalı) kullanılabilir: * **SSO entegrasyonu**: Kimlik sağlayıcınızla Tek Oturum Açma * **Satır düzeyi izinler**: Kayıt düzeyinde ayrıntılı erişim denetimi +* **AI usage data**: Track AI consumption across the workspace + + + +They offer the same premium features. However, a cloud subscription cannot be used for self-hosted deployments. Self-hosted requires an Enterprise key. diff --git a/packages/twenty-docs/l/tr/user-guide/data-model/how-tos/create-many-to-many-relations.mdx b/packages/twenty-docs/l/tr/user-guide/data-model/how-tos/create-many-to-many-relations.mdx index b797d6fe31..ebe90e4a39 100644 --- a/packages/twenty-docs/l/tr/user-guide/data-model/how-tos/create-many-to-many-relations.mdx +++ b/packages/twenty-docs/l/tr/user-guide/data-model/how-tos/create-many-to-many-relations.mdx @@ -53,38 +53,45 @@ Bağlantı ilişkisi anahtarını etkinleştirdiğinizde, Twenty aradaki bağlan 1. **Ayarlar → Veri Modeli** bölümüne gidin 2. **+ Yeni nesne**'ye tıklayın 3. Açıklayıcı bir ad verin (örn. "Project Assignment", "Team Member", "Product Order") -4. **Kaydet**'e tıklayın +4. Toggle "Skip creating a Name field" on + +New pivot object + +5. **Kaydet**'e tıklayın **Adlandırma kuralı**: "Project Assignment" veya "Team Membership" gibi ilişkiyi tanımlayan bir ad kullanın. Bu, veri modelinin anlaşılmasını kolaylaştırır. -## Adım 2: Bağlantı Nesnesinden İlişkiler Oluşturun +## Step 2: Create Relations Between Objects and the Junction -Bağlamak istediğiniz her iki nesneye de bağlantı nesnesinden ilişki alanları ekleyin. +Add relation fields from each of your two objects to the junction object. -### İlk İlişki (Bağlantı → Nesne A) +### First Relation (Object A → Junction) -1. **Ayarlar → Veri Modeli**'nde bağlantı nesnenizi seçin -2. **+ Alan Ekle**'ye tıklayın -3. Alan türü olarak **İlişki**'yi seçin -4. İlk nesneyi seçin (örn. "People") -5. İlişki türünü **Çoktan-Bire** olarak ayarlayın (birçok atama bir kişiye bağlanabilir) -6. Alanları adlandırın: - * Bağlantı üzerindeki alan: örn. "Person" - * People üzerindeki alan: örn. "Project Assignments" -7. **Kaydet**'e tıklayın - -### İkinci İlişki (Bağlantı → Nesne B) - -1. Hâlâ bağlantı nesnesindeyken, **+ Add Field**'e tıklayın -2. Alan türü olarak **İlişki**'yi seçin -3. İkinci nesneyi seçin (örn. "Projects") -4. İlişki türünü **Çoktan-Bire** olarak ayarlayın +1. Select your first object in **Settings → Data Model** +2. Click **+ Add Relation** +3. Select the junction object (e.g., "Project Assignments") +4. Set the relation type to **One-To-Many** (one person can link to many assignments) 5. Alanları adlandırın: + * People üzerindeki alan: örn. "Project Assignments" + * Bağlantı üzerindeki alan: örn. "Person" +6. **Kaydet**'e tıklayın + +### Second Relation (Object B → Junction) + +1. Select your second object in **Settings → Data Model** +2. Click **+ Add Relation** +3. Select the junction object (e.g., "Project Assignments") +4. Set the relation type to **One-To-Many** (one project can link to many assignments) +5. **"Bu, bir bağlantı nesnesine kurulan bir ilişkidir"** seçeneğini etkinleştirin + + + +6. Alanları adlandırın: * Bağlantı üzerindeki alan: örn. "Project" * Projects üzerindeki alan: örn. "Team Members" -6. **Kaydet**'e tıklayın +7. **Kaydet**'e tıklayın ## Adım 3: Bağlantı İlişkisi Görüntüsünü Yapılandırın @@ -98,18 +105,6 @@ Bağlamak istediğiniz her iki nesneye de bağlantı nesnesinden ilişki alanlar 6. **Hedef ilişki**yi seçin (örn. "Project" — bağlantı üzerindeki, diğer tarafı işaret eden alan) 7. **Kaydet**'e tıklayın -{/* TODO: Add image - -*/} - -Diğer nesne için tekrarlayın: - -1. Veri Modeli'nde "Projects"i seçin -2. "Team Members" ilişki alanını düzenleyin -3. Bağlantı anahtarını etkinleştirin -4. Hedef ilişki olarak "Person"ı seçin -5. Kaydet - ## Sonuç Yapılandırmadan sonra: @@ -130,15 +125,15 @@ Bağlantı nesnesi hâlâ mevcuttur ve bağlantıları saklar, ancak kullanıcı ### İlişkiler Ekleyin -1. **Project Assignment → People** - * Tür: Çoktan-Bire - * Assignment üzerindeki alan: "Person" +1. **People → Project Assignment** + * Type: One-to-Many * People üzerindeki alan: "Project Assignments" + * Assignment üzerindeki alan: "Person" -2. **Project Assignment → Projects** - * Tür: Çoktan-Bire - * Assignment üzerindeki alan: "Project" +2. **Projects → Project Assignment** + * Type: One-to-Many * Projects üzerindeki alan: "Team Members" + * Assignment üzerindeki alan: "Project" ### Bağlantı Görüntüsünü Yapılandırın diff --git a/packages/twenty-docs/l/tr/user-guide/layout/capabilities/navigation.mdx b/packages/twenty-docs/l/tr/user-guide/layout/capabilities/navigation.mdx index e438d0a9da..39a4c45407 100644 --- a/packages/twenty-docs/l/tr/user-guide/layout/capabilities/navigation.mdx +++ b/packages/twenty-docs/l/tr/user-guide/layout/capabilities/navigation.mdx @@ -30,3 +30,9 @@ Harici araçlara yönelik bağlantıları doğrudan kenar çubuğuna ekleyin. Wi ## Komut Menüsü Komut menüsünü açmak için `Cmd+K` (veya `Ctrl+K`) tuşlarına basın — kenar çubuğunda gezinmeden herhangi bir kayda, görünüme veya eyleme atlamak için hızlı erişim sunan bir arama çubuğu. + +## Kenar Çubuğunu Özelleştirme + +Kenar çubuğunu özelleştirmek için kenar çubuğundaki "Workspace" bölümünün üzerine gelin ve anahtar simgesine tıklayın. + +Navigation edit icon diff --git a/packages/twenty-docs/l/tr/user-guide/layout/capabilities/record-pages.mdx b/packages/twenty-docs/l/tr/user-guide/layout/capabilities/record-pages.mdx index a303a18a8a..eed1477eee 100644 --- a/packages/twenty-docs/l/tr/user-guide/layout/capabilities/record-pages.mdx +++ b/packages/twenty-docs/l/tr/user-guide/layout/capabilities/record-pages.mdx @@ -3,6 +3,8 @@ title: Kayıt Sayfaları description: Her bir kayıt ayrıntı sayfasının düzenini sekmeler ve widget'larla özelleştirin. --- +## Genel Bakış + Twenty'de bir kaydı açtığınızda, ayrıntı sayfası **sekmeler** ve **widget'lar** içerir. Her ikisi de her nesne türü bazında tamamen özelleştirilebilir. ## Sekmeler @@ -38,12 +40,20 @@ Widget'lar, her sekmenin içindeki yapı taşlarıdır. Kullanılabilir widget t 1. Herhangi bir kaydı açın 2. `Cmd+K` tuşlarına basın ve "Kayıt sayfası yerleşimini düzenle" ifadesini arayın + +veya + +1. Go to Settings > Data model > object of your choice > Layout + +2. Click the "Customize record page" button for that object + 3. Artık özelleştirme modundasınız: * **Widget ekleyin** widget seçicisinden * **Widget'ları sürükleyin** ve ızgara üzerinde yeniden konumlandırın * **Widget'ları yeniden boyutlandırın** kenarlarını sürükleyerek * **Alanları yapılandırın** — her bir widget içinde gösterilen * **Sekmeleri yönetin** — ekleyin, kaldırın, yeniden adlandırın, yeniden sıralayın + 4. Değişikliklerinizi kaydedin — bu değişiklikler o nesne türündeki tüm kayıtlara uygulanır ## Alan görünürlüğü diff --git a/packages/twenty-docs/l/zh/developers/extend/apps/logic-functions.mdx b/packages/twenty-docs/l/zh/developers/extend/apps/logic-functions.mdx index 211ca86bbf..75845cc8e3 100644 --- a/packages/twenty-docs/l/zh/developers/extend/apps/logic-functions.mdx +++ b/packages/twenty-docs/l/zh/developers/extend/apps/logic-functions.mdx @@ -95,15 +95,16 @@ const handler = async (event: RoutePayload) => { `RoutePayload` 类型具有以下结构: - | 属性 | 类型 | 描述 | 示例 | - | ---------------------------- | ------------------------------------------------------- | --------------------------------------------- | -------------------------------------------------------------------------- | - | `headers` | `Record\` | HTTP 请求头(仅限 `forwardedRequestHeaders` 中列出的那些) | 见下文 | - | `queryStringParameters` | `Record\` | 查询字符串参数(多个值以逗号连接) | `/users?ids=1&ids=2&ids=3&name=Alice` -> `{ ids: '1,2,3', name: 'Alice' }` | - | `pathParameters` | `Record\` | 从路由模式中提取的路径参数 | `/users/:id`,`/users/123` -> `{ id: '123' }` | - | `body` | `object \| null` | 已解析的请求体(JSON) | `{ id: 1 }` -> `{ id: 1 }` | - | `isBase64Encoded` | `boolean` | 请求体是否为 base64 编码 | | - | `requestContext.http.method` | `string` | HTTP 方法(GET、POST、PUT、PATCH、DELETE) | | - | `requestContext.http.path` | `string` | 原始请求路径 | | + | 属性 | 类型 | 描述 | 示例 | + | ---------------------------- | ------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | + | `headers` | `Record\` | HTTP 请求头(仅限 `forwardedRequestHeaders` 中列出的那些) | 见下文 | + | `queryStringParameters` | `Record\` | 查询字符串参数(多个值以逗号连接) | `/users?ids=1&ids=2&ids=3&name=Alice` -> `{ ids: '1,2,3', name: 'Alice' }` | + | `pathParameters` | `Record\` | 从路由模式中提取的路径参数 | `/users/:id`,`/users/123` -> `{ id: '123' }` | + | `body` | `object \| null` | 已解析的请求体(JSON) | `{ id: 1 }` -> `{ id: 1 }` | + | `rawBody` | `string \| undefined` | Original UTF-8 request body, before JSON parsing. Useful for verifying HMAC-style webhook signatures (e.g. GitHub's `X-Hub-Signature-256`, Stripe). `undefined` when the runtime did not preserve it. | | + | `isBase64Encoded` | `boolean` | 请求体是否为 base64 编码 | | + | `requestContext.http.method` | `string` | HTTP 方法(GET、POST、PUT、PATCH、DELETE) | | + | `requestContext.http.path` | `string` | 原始请求路径 | | #### forwardedRequestHeaders diff --git a/packages/twenty-docs/l/zh/user-guide/billing/capabilities/pricing-plans.mdx b/packages/twenty-docs/l/zh/user-guide/billing/capabilities/pricing-plans.mdx index 740bc393e1..8d53101cc5 100644 --- a/packages/twenty-docs/l/zh/user-guide/billing/capabilities/pricing-plans.mdx +++ b/packages/twenty-docs/l/zh/user-guide/billing/capabilities/pricing-plans.mdx @@ -19,7 +19,7 @@ description: 了解 Twenty 的定价方案以及如何在它们之间切换。 * 标准支持 -Pro 计划不包含高级功能(SSO 和行级权限)。 +Premium features (SSO, row-level permissions and AI usage data) are not included in the Pro plan. ### 组织计划(云端) @@ -27,7 +27,7 @@ Pro 计划不包含高级功能(SSO 和行级权限)。 适用于具有高级需求的大型团队: * 包含 Pro 的全部内容 -* **高级功能**:SSO 集成和行级权限 +* **Premium features**: SSO integration, row-level permissions and AI usage data * 优先支持 ## 自托管方案 @@ -45,7 +45,7 @@ Pro 计划不包含高级功能(SSO 和行级权限)。 适用于在自托管同时需要高级功能的团队: * 所有 Pro 功能 -* **高级功能**:SSO 集成和行级权限 +* **Premium features**: SSO integration, row-level permissions and AI usage data * Twenty 团队支持 * 分发前无需将自定义代码开源 @@ -55,6 +55,7 @@ Pro 计划不包含高级功能(SSO 和行级权限)。 * **SSO 集成**:与您的身份提供商进行单点登录 * **行级权限**:在记录级别进行细粒度访问控制 +* **AI usage data**: Track AI consumption across the workspace ## 切换计划 @@ -77,3 +78,15 @@ Pro 计划不包含高级功能(SSO 和行级权限)。 ### 切换为按月计费 联系支持以切换回按月计费。 + +## Obtain an Enterprise Key for Organization (Self-Hosted) + +To use the Organization (Self-Hosted) plan, you need to obtain an Enterprise key: + +1. Go to **Settings → Admin Panel → Enterprise** + +Enterprise key + +2. Click **Get Enterprise Key** +3. When you are redirected to Stripe, enter your payment details and confirm +4. When your Enterprise key is displayed, paste it into the Enterprise settings page and activate the Organization license diff --git a/packages/twenty-docs/l/zh/user-guide/billing/how-tos/billing-faq.mdx b/packages/twenty-docs/l/zh/user-guide/billing/how-tos/billing-faq.mdx index 1862fefed9..1976ba2021 100644 --- a/packages/twenty-docs/l/zh/user-guide/billing/how-tos/billing-faq.mdx +++ b/packages/twenty-docs/l/zh/user-guide/billing/how-tos/billing-faq.mdx @@ -16,6 +16,11 @@ description: 关于 Twenty 定价和账单的常见问题。 高级功能仅适用于 Organization 计划(云端或自托管): * **SSO 集成**:与您的身份提供商进行单点登录 * **行级权限**:在记录级别进行细粒度的访问控制 +* **AI usage data**: Track AI consumption across the workspace + + + +They offer the same premium features. However, a cloud subscription cannot be used for self-hosted deployments. Self-hosted requires an Enterprise key. diff --git a/packages/twenty-docs/l/zh/user-guide/data-model/how-tos/create-many-to-many-relations.mdx b/packages/twenty-docs/l/zh/user-guide/data-model/how-tos/create-many-to-many-relations.mdx index 31b88034aa..341c90780b 100644 --- a/packages/twenty-docs/l/zh/user-guide/data-model/how-tos/create-many-to-many-relations.mdx +++ b/packages/twenty-docs/l/zh/user-guide/data-model/how-tos/create-many-to-many-relations.mdx @@ -53,38 +53,45 @@ People ←→ Project Assignments ←→ Projects 1. 进入 **设置 → 数据模型** 2. 点击 **+ 新建对象** 3. 使用描述性名称(例如,"Project Assignment"、"Team Member"、"Product Order") -4. 单击 **保存** +4. Toggle "Skip creating a Name field" on + +New pivot object + +5. 单击 **保存** **命名约定**:使用能描述关系的名称,例如 "Project Assignment" 或 "Team Membership"。 这会让数据模型更易理解。 -## 步骤 2:从连接对象创建关系 +## Step 2: Create Relations Between Objects and the Junction -从连接对象向您要连接的两个对象添加关系字段。 +Add relation fields from each of your two objects to the junction object. -### 第一条关系(连接对象 → 对象 A) +### First Relation (Object A → Junction) -1. 在 **Settings → Data Model** 中选择您的连接对象 -2. 点击 **+ 添加字段** -3. 将字段类型选择为 **Relation** -4. 选择第一个对象(例如,"People") -5. 将关系类型设置为 **Many-to-One**(多个分配可关联到一个人) -6. 为这些字段命名: - * 连接对象上的字段:例如,"Person" - * People 上的字段:例如,"Project Assignments" -7. 单击 **保存** - -### 第二条关系(连接对象 → 对象 B) - -1. 仍在连接对象中,点击 **+ Add Field** -2. 将字段类型选择为 **Relation** -3. 选择第二个对象(例如,"Projects") -4. 将关系类型设置为 **Many-to-One** +1. Select your first object in **Settings → Data Model** +2. Click **+ Add Relation** +3. Select the junction object (e.g., "Project Assignments") +4. Set the relation type to **One-To-Many** (one person can link to many assignments) 5. 为这些字段命名: + * People 上的字段:例如,"Project Assignments" + * 连接对象上的字段:例如,"Person" +6. 单击 **保存** + +### Second Relation (Object B → Junction) + +1. Select your second object in **Settings → Data Model** +2. Click **+ Add Relation** +3. Select the junction object (e.g., "Project Assignments") +4. Set the relation type to **One-To-Many** (one project can link to many assignments) +5. 启用 **"This is a relation to a Junction Object"** + + + +6. 为这些字段命名: * 连接对象上的字段:例如,"Project" * Projects 上的字段:例如,"Team Members" -6. 单击 **保存** +7. 单击 **保存** ## 步骤 3:配置连接关系的显示方式 @@ -98,18 +105,6 @@ People ←→ Project Assignments ←→ Projects 6. 选择 **Target relation**(例如,"Project" —— 连接对象上指向另一侧的字段) 7. 单击 **保存** -{/* TODO: Add image - -*/} - -对另一侧对象重复上述操作: - -1. 在 Data Model 中选择 "Projects" -2. 编辑 "Team Members" 关系字段 -3. 启用连接关系开关 -4. 将目标关系选择为 "Person" -5. 保存 - ## 结果 配置完成后: @@ -130,15 +125,15 @@ People ←→ Project Assignments ←→ Projects ### 添加关系 -1. **Project Assignment → People** - * 类型:Many-to-One - * Assignment 上的字段:"Person" +1. **People → Project Assignment** + * Type: One-to-Many * People 上的字段:"Project Assignments" + * Assignment 上的字段:"Person" -2. **Project Assignment → Projects** - * 类型:Many-to-One - * Assignment 上的字段:"Project" +2. **Projects → Project Assignment** + * Type: One-to-Many * Projects 上的字段:"Team Members" + * Assignment 上的字段:"Project" ### 配置连接关系显示 diff --git a/packages/twenty-docs/l/zh/user-guide/layout/capabilities/navigation.mdx b/packages/twenty-docs/l/zh/user-guide/layout/capabilities/navigation.mdx index 78d5544ad7..d041a7ae42 100644 --- a/packages/twenty-docs/l/zh/user-guide/layout/capabilities/navigation.mdx +++ b/packages/twenty-docs/l/zh/user-guide/layout/capabilities/navigation.mdx @@ -30,3 +30,9 @@ description: 自定义左侧边栏,使其符合您团队的工作方式。 ## 命令菜单 按下`Cmd+K`(或`Ctrl+K`)打开命令菜单——一个快速访问的搜索栏,无需通过侧边栏即可跳转到任何记录、视图或操作。 + +## 自定义侧边栏 + +要自定义侧边栏,请将鼠标悬停在侧边栏中的"工作区"部分,然后单击扳手图标。 + +Navigation edit icon diff --git a/packages/twenty-docs/l/zh/user-guide/layout/capabilities/record-pages.mdx b/packages/twenty-docs/l/zh/user-guide/layout/capabilities/record-pages.mdx index 771dc408ef..5da10d7b7e 100644 --- a/packages/twenty-docs/l/zh/user-guide/layout/capabilities/record-pages.mdx +++ b/packages/twenty-docs/l/zh/user-guide/layout/capabilities/record-pages.mdx @@ -3,6 +3,8 @@ title: 记录页面 description: 使用选项卡和小部件自定义单个记录详情页的布局。 --- +## 概览 + 当你在 Twenty 中打开一条记录时,详情页由**选项卡**和**小部件**组成。 两者都可按对象类型完全自定义。 ## 选项卡 @@ -38,12 +40,20 @@ description: 使用选项卡和小部件自定义单个记录详情页的布局 1. 打开任意记录 2. 按下 `Cmd+K`,搜索“编辑记录页面布局” + +或 + +1. Go to Settings > Data model > object of your choice > Layout + +2. Click the "Customize record page" button for that object + 3. 你现在处于自定义模式: * 从小部件选择器中**添加小部件** * **拖动小部件**,在网格上重新定位它们 * **调整小部件大小**,通过拖动其边缘 * **配置字段**,设置每个小部件内显示的字段 * **管理选项卡** — 添加、删除、重命名、重新排序 + 4. 保存你的更改—它们将应用于该对象类型的所有记录 ## 字段可见性