Compare commits

...
Author SHA1 Message Date
Sonarly Claude Code a730cf3f7d Logic function FILE_NOT_FOUND: missing package.json check
https://sonarly.com/issue/26891?type=bug

Logic function execution fails with FileStorageException FILE_NOT_FOUND because copyDependenciesInMemory unconditionally downloads package.json from S3 without checking if it exists first, unlike yarn.lock which has a fallback. Dependency files are only uploaded during new workspace creation, so upgraded workspaces lack them entirely.

Fix: Added a checkFileExists guard for package.json in copyDependenciesInMemory, mirroring the existing yarn.lock pattern from commit f3e0c12ce6.

Before this fix, copyDependenciesInMemory unconditionally called fileStorageService.downloadFile for package.json without checking if it exists in S3. If the file was missing (e.g., workspace upgraded from pre-application-system version, or S3 upload failed during workspace creation), the S3 driver threw FileStorageException(FILE_NOT_FOUND) which killed logic function execution.

The fix:
1. Both checkFileExists calls (package.json and yarn.lock) now run in parallel via Promise.all for efficiency
2. If package.json exists in S3, it is downloaded as before
3. If package.json is missing, the default seed package.json from SEED_DEPENDENCIES_DIRNAME is copied to the in-memory folder using fs.copyFile — this provides the full default dependency set so logic functions can still execute
4. Added import for SEED_DEPENDENCIES_DIRNAME constant and path module

This is the exact same defensive pattern already used for yarn.lock, which was added in commit f3e0c12ce6 but was not applied to package.json at that time.
2026-04-16 03:52:20 +00:00
cddc47b61f i18n - translations (#19731)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2026-04-15 19:08:24 +02:00
Charles BochetandGitHub 446c39d1c0 Fix silent failures in logic function route trigger execution (#19698)
## Summary

Route-triggered logic functions were returning empty 500 responses with
zero server-side logging when the Lambda build chain failed. This PR
makes those failures observable and returns meaningful HTTP responses to
API clients.

- **Observability** — Log errors (with stack traces) at each layer of
the execution chain: `LambdaDriver` (deps-layer fetch, SDK-layer fetch,
invocation), `LogicFunctionExecutorService`, and `RouteTriggerService`.
- **Typed exceptions** — Replace raw `throw error` sites with
`LogicFunctionException` carrying an appropriate code and
`userFriendlyMessage` (new codes: `LOGIC_FUNCTION_EXECUTION_FAILED`,
`LOGIC_FUNCTION_LAYER_BUILD_FAILED`).
- **Correct HTTP semantics** — `RouteTriggerService` maps inner
exception codes to the right `RouteTriggerExceptionCode` so
`LOGIC_FUNCTION_NOT_FOUND` returns 404 and `RATE_LIMIT_EXCEEDED` returns
429 (new code + filter case) instead of a generic 500.
- **User-facing messages** — Forward the inner
`CustomException.userFriendlyMessage` when wrapping into
`RouteTriggerException`, without leaking raw internal error text into
the public exception message.
- **Infra** — Bump Lambda ephemeral storage from 2048 to 4096 MB to
prevent `ENOSPC` errors during yarn install layer builds (root cause of
the original silent failures).
2026-04-15 16:49:43 +00:00
5eda10760c Fix navbar folder opening lag by deferring navigation until expand animation completes (#19686)
### Before


https://github.com/user-attachments/assets/7d57aa55-8d4c-43e1-8835-f40206e5e453



### After


https://github.com/user-attachments/assets/2457c8ee-fcb9-41ae-a8f7-08f8c7b4a233

---------

Co-authored-by: Etienne <45695613+etiennejouan@users.noreply.github.com>
2026-04-15 16:31:33 +00:00
b9605a3003 Refactor SnackBar duration handling and progress bar visibility logic (#19712)
## Summary

Fixes error snackbars disappearing too quickly by **disabling
auto-dismiss for error variants by default**. Error snackbars now remain
visible until the user closes them.

Closes #19694

## What changed

- Error snackbars no longer default to a 6s timeout (they only
auto-dismiss if an explicit `duration` is provided).
- Non-error snackbars keep the existing default auto-dismiss behavior
(6s).
- Progress bar animation/visibility is tied to auto-dismiss (no progress
bar when there’s no duration).

**Files**
-
packages/twenty-front/src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx

## How to test

1. Trigger a long error snackbar (example: spreadsheet/CSV import error
with a long message).
2. Confirm the snackbar **stays visible** until clicking **Close**.
3. Trigger a success/info snackbar and confirm it **still
auto-dismisses** after ~6s.

## Notes

- Call sites that explicitly pass `options.duration` for error snackbars
will continue to auto-dismiss (intentional).

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2026-04-15 16:22:28 +00:00
WeikoandGitHub 56d6e13b5d Fix fields widget flash during reset (#19726)
Summary

- Remove the evictViewMetadataForViewIds step from the page-layout reset
flow. It synchronously cleared viewFields/viewFieldGroups rows from the
metadata store, leaving a window where
useFieldsWidgetGroups saw a view with no fields and fell back to
buildDefaultFieldsWidgetGroups, briefly rendering a synthetic "General"
+ "Other" layout before the real reset defaults
arrived.
- invalidateMetadataStore() alone is sufficient: it marks the
collections stale and triggers MinimalMetadataLoadEffect to refetch,
which replaces current atomically. The UI now
transitions old-layout → new-default with no synthetic flash.
- Simplified refreshPageLayoutAfterReset to no longer take a
collectAffectedViewIds callback, and updated both tab/widget reset call
sites plus ObjectLayout.tsx accordingly.
- Deleted the now-unused evictViewMetadataForViewIds and
collectViewIdsFromWidgets utils.
2026-04-15 16:08:24 +00:00
725171bfd3 i18n - translations (#19729)
Created by Github action

Co-authored-by: github-actions <github-actions@twenty.com>
2026-04-15 18:11:26 +02:00
Raphaël BosiandGitHub 3b85747d3f Go back to the original command K button (#19727)
## Before


https://github.com/user-attachments/assets/868e5293-8843-44c8-8011-b7130e97fa95


## After


https://github.com/user-attachments/assets/89cf46cc-1fb1-4e78-bfef-53e1d04e8ebf
2026-04-15 15:53:26 +00:00
Paul RastoinandGitHub a4cc7fb9c5 [Upgrade] Fix workspace creation cursor (#19701)
## Summary

### Problem

The upgrade migration system required new workspaces to always start
from a workspace command, which was too rigid. When the system was
mid-upgrade within an instance command (IC) segment, workspace creation
would fail or produce inconsistent state.

### Solution

#### Workspace-scoped instance command rows

Instance commands now write upgrade migration rows for **all
active/suspended workspaces** alongside the global row. This means every
workspace has a complete migration history, including instance command
records.

- `InstanceCommandRunnerService` reloads `activeOrSuspendedWorkspaceIds`
immediately before writing records (both success and failure paths) to
mitigate race conditions with concurrent workspace creation.
- `recordUpgradeMigration` in `UpgradeMigrationService` accepts a
discriminated union over `status`, handles `error: unknown` formatting
internally, and writes global + workspace rows in batch.

#### Flexible initial cursor for new workspaces

`getInitialCursorForNewWorkspace` now accepts the last **attempted**
(not just completed) instance command with its status:

- If the IC is `completed` and the next step is a workspace segment →
cursor is set to the last WC of that segment (existing behavior).
- If the IC is `failed` or not the last of its segment → cursor is set
to that IC itself, preserving its status.

This allows workspaces to be created at any point during the upgrade
lifecycle, including mid-IC-segment and after IC failure.

#### Relaxed workspace segment validation

`validateWorkspaceCursorsAreInWorkspaceSegment` accepts workspaces whose
cursor is:
1. Within the current workspace segment, OR
2. At the immediately preceding instance command with `completed` status
(handles the `-w` single-workspace upgrade scenario).

Workspaces with cursors in a previous segment, ahead of the current
segment, or at a preceding IC with `failed` status are rejected.

### Test plan
created empty workspaces to allow testing upgrade with several active
workspaces
2026-04-15 15:41:10 +00:00
Raphaël BosiandGitHub 0f8152f536 Fix command menu item edit record selection dropdown icons (#19725)
## Before
<img width="816" height="126" alt="CleanShot 2026-04-15 at 17 20 11@2x"
src="https://github.com/user-attachments/assets/647d6aa6-1000-41d9-9351-c1489bc095c6"
/>


## After
<img width="808" height="120" alt="CleanShot 2026-04-15 at 17 19 05@2x"
src="https://github.com/user-attachments/assets/e7685370-b6eb-4720-a5dd-401dfae8dc6b"
/>
2026-04-15 15:31:59 +00:00
Charles BochetandGitHub a328c127f3 Fix standalone page migration failing on navigationMenuItem enum type change (#19724)
## Summary
- The `AddStandalonePageFastInstanceCommand` migration was failing with:
`default for column "type" cannot be cast automatically to type
core."navigationMenuItem_type_enum"`
- The migration was missing `DROP DEFAULT` / `SET DEFAULT` around the
`ALTER COLUMN TYPE` for `navigationMenuItem.type`. PostgreSQL cannot
automatically cast the existing default (`'VIEW'::old_enum`) to the new
enum type.
- The same 3-step pattern (DROP DEFAULT → ALTER TYPE → SET DEFAULT) was
already correctly applied for `pageLayout.type` in the same migration —
this fix brings `navigationMenuItem.type` in line.
2026-04-15 17:25:55 +02:00
Baptiste DevessierandGitHub 8cb803cedf Various bug fixes Record page layouts (#19719)
Fixes:

- Can't add multiple widgets in a row
- Ensure newly created is always focused
2026-04-15 15:12:57 +00:00
WeikoandGitHub 5e83ad43de Update backfill page layout command (#19687) 2026-04-15 14:55:42 +00:00
Raphaël BosiandGitHub 7ba5fe32f8 Add new html tags to the remote elements (#19723)
- Add 72 missing HTML and SVG elements to the remote-dom component
registry (48 HTML + 24 SVG), bringing the total from 47 to 119 supported
elements
- HTML additions include semantic inline text (b, i, u, s, mark, sub,
sup, kbd, etc.), description lists, ruby annotations, structural
elements (figure, details, dialog), and form utilities (fieldset,
progress, meter, optgroup)
- SVG additions include containers (svg, g, defs), shapes (path, circle,
rect, line, polygon), text (text, tspan), gradients (linearGradient,
radialGradient, stop), and utilities (clipPath, mask, foreignObject,
marker)
- Add htmlTag override to support SVG elements with camelCase names
(e.g. clipPath, foreignObject) while keeping custom element tags
lowercase per the Web Components spec
2026-04-15 14:53:23 +00:00
7601dbc218 i18n - translations (#19722)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2026-04-15 16:12:03 +02:00
Thomas TrompetteandGitHub 8a968d1e31 Hide workflow manual trigger from command menu on "Select All" (#19718)
https://github.com/user-attachments/assets/e19c6d23-03c1-49c8-8b83-5c8f5f0f1135
2026-04-15 13:55:38 +00:00
0c4a194c7a i18n - translations (#19720)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2026-04-15 15:50:21 +02:00
EtienneandGitHub 94b8e34362 Object view widget - Introduce new TABLE_WIDGET view type (#19545)
closes
https://discord.com/channels/1130383047699738754/1491549365263667230/1491804729397743666
2026-04-15 13:30:37 +00:00
MarieandGitHub 2fccd194f3 [Billing for self host] End dummy enterprise key validity (#19560)
<img width="1504" height="755" alt="Screenshot 2026-04-10 at 16 40 07"
src="https://github.com/user-attachments/assets/68a12e40-a077-48df-9e18-885493520a32"
/>


Re-using hasValidEnterpriseKey to avoid breaking changes. 
This will be entirely removed in the next versions.
2026-04-15 13:26:38 +00:00
762fb6fd64 Fix active navigation item disambiguation (#19664)
## Summary

- Introduce a `activeNavigationMenuItemState` Jotai atom (persisted via
localStorage) to disambiguate active navigation items when multiple
items share the same URL
- Add active item evaluation for record show pages with three scenarios:
1. Navigating from a nav item → parent stays active + dedicated RECORD
item also active
  2. Clicking a dedicated RECORD nav item → only that item active
3. Navigating via search/direct link → OBJECT nav item fallback, or
Opened section if none exists
- Extract shared active logic into `isNavigationMenuItemActive` utility
to eliminate duplication between orphan items and folder items
- Support multiple simultaneously active items within folders via
`Set<number>` instead of a single index

---------

Co-authored-by: Etienne <45695613+etiennejouan@users.noreply.github.com>
2026-04-15 13:00:47 +00:00
Raphaël BosiandGitHub 7956ecc7b2 Invert pinned and dots icon buttons in command menu items edit mode (#19717)
## Before
<img width="804" height="158" alt="CleanShot 2026-04-15 at 14 22 22@2x"
src="https://github.com/user-attachments/assets/65c4d4f1-6f17-47e2-b964-f3b7132d2f18"
/>

## After
<img width="804" height="168" alt="CleanShot 2026-04-15 at 14 21 38@2x"
src="https://github.com/user-attachments/assets/2f1d4fff-5f07-4df0-833e-129ad85391a9"
/>
2026-04-15 12:38:52 +00:00
WeikoandGitHub e12b55a951 Fix duplicate Fields widget (#19696)
## Context
Tab duplication was broken after the view creation logic was deferred
and moved to the FE.

- Duplicating a tab or a FIELDS widget now produces a fully independent
copy: new view, new view field groups, new view fields — all with fresh
IDs — while preserving any unsaved edits
  from the source widget.
- Removed the backend auto-seed of default view fields / view field
groups in ViewService.createOne for FIELDS_WIDGET views. The frontend
always sends the complete layout via
upsertFieldsWidget, so the auto-seed was both redundant and the source
of potential bugs.
- Extracted a shared useDuplicateFieldsWidgetForPageLayout hook used by
both tab and widget duplication paths, plus a small
useCloneViewInMetadataStore helper that clones the FlatView
in the metadata store and returns the copied flat view fields/groups for
the caller.
2026-04-15 12:29:44 +00:00
Raphaël BosiandGitHub 2df32f7003 Hide fallback command menu items in edit mode (#19700)
Hide fallback command menu items in edit mode
2026-04-15 09:38:54 +00:00
Thomas TrompetteandGitHub 46ee72160d Fix infinite recursion in iterator loop traversal when If/Else branch loops back to enclosing iterator (#19714)
Fix a stack overflow (Maximum call stack size exceeded) in
getAllStepIdsInLoop caused by an If/Else branch inside an iterator loop
pointing back to the enclosing iterator. The traversal incorrectly
treated the enclosing iterator as a nested iterator, calling
getAllStepIdsInLoop recursively with fresh visited sets, causing
infinite recursion.

Add the enclosing iterator's own ID to the skip condition in
traverseSteps so back-edges from If/Else branches are handled the same
way as back-edges from regular nextStepIds.

<img width="1054" height="723" alt="Capture d’écran 2026-04-15 à 11 00
42"
src="https://github.com/user-attachments/assets/aee1477b-5059-4552-809e-7c8a34a9ec4a"
/>
2026-04-15 09:23:25 +00:00
f953aea3c5 i18n - translations (#19715)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2026-04-15 11:27:10 +02:00
Baptiste DevessierandGitHub c805a351ab Reactivate disabled full tab widgets (#19702)
https://github.com/user-attachments/assets/14a48c7d-e731-4a15-883f-c53beb4943de
2026-04-15 09:11:55 +00:00
3e48be4c31 Update home card visuals and partner marketing assets (#19711)
## Summary
- replace static home card imagery with code-driven visuals for the
familiar interface, fast path, and live data cards
- refine the live data card interaction details, including hover states,
animated cursors, filter chips, table styling, and inline tag editing
- add shared company logos, people avatars, and updated partner
testimonial assets to support the new marketing visuals
- refresh related home, partner, case study, signoff, testimonials, and
design-system content/components to align with the updated marketing
presentation

## Testing
- `npx tsc -p tsconfig.json --noEmit` in `packages/twenty-website-new`

Co-authored-by: Abdullah <125115953+mabdullahabaid@users.noreply.github.com>
2026-04-15 06:35:46 +00:00
a9ea1c6eed i18n - docs translations (#19710)
Created by Github action

Co-authored-by: github-actions <github-actions@twenty.com>
2026-04-14 22:35:59 +02:00
7a721ef5dd i18n - docs translations (#19709)
Created by Github action

Co-authored-by: github-actions <github-actions@twenty.com>
2026-04-14 20:45:33 +02:00
77e5b06a50 i18n - translations (#19707)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2026-04-14 19:00:22 +02:00
MarieandGitHub bc28e1557c Introduce updateWorkspaceMemberSettings and clarify product (#19441)
## Summary

Introduces a dedicated **metadata** mutation to update **standard
(non-custom)** workspace member settings, moves profile-related UI to
use it, and aligns **workspace member** record permissions with the rest
of the CRM so users cannot escalate visibility via RLS by editing their
own member record.

## Product behaviour

### Profile and appearance (standard fields)

- Users can still update **their own** standard workspace member fields
that the product exposes in **Settings / Profile** (e.g. name, locale,
color scheme, avatar flow) via the new
**`updateWorkspaceMemberSettings`** mutation.
- The mutation returns a **boolean**; the app **merges** the updated
fields into local state so the UI stays in sync without refetching the
full workspace member record.
- **Locale** changes also keep **`userWorkspace`** in sync when a locale
is present in the payload (including from the workspace `updateOne` path
when applicable).

### Custom fields on workspace members

- The dedicated metadata mutation **rejects** any **custom** workspace
member field (and unknown keys). Those updates must go through the
normal **object** `updateOne` pipeline, which is subject to **object-
and field-level** permissions like other records. But since we don't
have object- and field-level permission configuration for system objects
yet, this permission is derived from Workspace member settings
permission.
- **Workspace member** is no longer exempt from ORM permission
validation for updates merely because it is a **system** object. Users
who **do not** have workspace member access (e.g. no **Workspace
members** settings permission and no equivalent broad settings access on
the role) **cannot** use `updateOne` on `workspaceMember` to change
**custom** (or other) fields on their own row—even though that row is
used for RLS predicates.
- This closes a path where someone could widen what they can see by
writing to fields that drive row-level rules.

### Who can change another member

- Updating **another** user’s workspace member still requires
**Workspace members** (or equivalent) settings permission, consistent
with admin tooling.
2026-04-14 16:29:00 +00:00
42f452311b i18n - docs translations (#19705)
Created by Github action

Co-authored-by: github-actions <github-actions@twenty.com>
2026-04-14 18:44:30 +02:00
59a222e0f0 i18n - translations (#19703)
Created by Github action

Co-authored-by: github-actions <github-actions@twenty.com>
2026-04-14 18:38:55 +02:00
307b6c94de Align GraphQL error handling for billing and AI chat (#19690)
## What changed

This refactor fixes AI chat error surfacing by aligning both the backend
and frontend with the existing GraphQL error architecture instead of
adding AI-local error translation.

On the backend:
- add a dedicated GraphQL billing exception path
- register billing GraphQL handling globally for GraphQL requests
- reuse the existing AI GraphQL interceptor path for agent/chat
exceptions
- keep billing status classification shared between REST and GraphQL
- remove the earlier attempt to preserve `CustomException` metadata in
the global GraphQL fallback

On the frontend:
- keep the original Apollo GraphQL error object in AI chat state
- reuse shared Apollo/GraphQL helpers for user-facing messages and
error-type checks
- delete AI-specific error extraction helpers that duplicated generic
GraphQL parsing
- replace a few direct `extensions.subCode` call sites with a shared
predicate

## Why it changed

The original bug was that `BillingException` and AI exceptions thrown
from chat were not being translated into GraphQL errors with the
expected `extensions.subCode` and `extensions.userFriendlyMessage`, so
the AI chat UI had nothing structured to inspect.

An intermediate fix worked mechanically but pushed `CustomException`
handling into the global GraphQL fallback, which blurred the intended
layering. This PR moves the behavior back to explicit GraphQL edges.

## Root cause

`AgentChatResolver` could throw `BillingException` and `AgentException`,
but:
- billing had a REST exception filter and no shared GraphQL equivalent
- AI chat was not consistently using the same GraphQL exception
translation path as the sibling AI resolver
- the frontend chat UI had drifted into AI-specific error parsing
instead of consuming the same structured Apollo errors as the rest of
the app

## Impact

- `BILLING_CREDITS_EXHAUSTED` is now preserved through GraphQL and can
render the existing credits-exhausted UI in chat
- `API_KEY_NOT_CONFIGURED` is preserved through the AI GraphQL path
- AI chat now follows the same general GraphQL error consumption pattern
as the rest of the frontend
- billing GraphQL handling is less dependent on individual resolver
authors remembering to add a filter

## Validation

- `yarn jest --config packages/twenty-server/jest.config.mjs
packages/twenty-server/src/engine/core-modules/billing/utils/__tests__/billing-graphql-api-exception-handler.util.spec.ts
packages/twenty-server/src/engine/metadata-modules/ai/ai-agent/utils/__tests__/agent-graphql-api-exception-handler.util.spec.ts`
- `yarn jest --config packages/twenty-front/jest.config.mjs
packages/twenty-front/src/utils/__tests__/is-graphql-error-of-type.util.test.ts`
- `npx oxlint --type-aware ...` on touched backend/frontend files
- `npx prettier --check ...` on touched backend/frontend files

## Follow-up ideas

- consolidate frontend GraphQL error helpers further so more existing
direct `extensions.subCode` checks move to shared utilities
- consider whether common GraphQL exception filter registration should
live in a more explicit GraphQL-specific module instead of
`CoreEngineModule`
- add an end-to-end test for a real `sendChatMessage` GraphQL failure
path in AI chat

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 18:31:59 +02:00
martmullandGitHub 3463ee5dc4 Switch default remote to lastly added remote (#19697)
as title
2026-04-14 16:03:05 +00:00
9cf6f42313 i18n - translations (#19699)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2026-04-14 18:08:57 +02:00
Raphaël BosiandGitHub a88d1f4442 Introduce standalone page (#19675)
Add support for standalone pages: a new `PageLayout` type
(`STANDALONE_PAGE`) that can be rendered independently at
`/page/:pageLayoutId`, not tied to any record or object context.

- New `STANDALONE_PAGE` page layout type
- New `PAGE_LAYOUT` navigation menu item type: adds a `pageLayoutId`
foreign key to `NavigationMenuItemEntity`, allowing sidebar items to
link directly to standalone pages
- New `GLOBAL_OBJECT_CONTEXT` command menu availability type: separates
object-context-dependent commands (Create Record, Import, Export, See
Deleted, Create View, Hide Deleted) from truly global ones, so
standalone pages only show relevant commands
- Frontend routing & rendering: adds a `/page/:pageLayoutId` route with
its own page component, header, and command menu
- Widget rendering refactor
- Instance commands: two fast 1.22 migrations: `pageLayoutId` column +
`STANDALONE_PAGE` enum, and `GLOBAL_OBJECT_CONTEXT` availability type
enum
- Workspace command: backfills existing command menu items from `GLOBAL`
to `GLOBAL_OBJECT_CONTEXT` where appropriate
- Dev seeds: adds a sample "Star History" standalone page with an iframe
widget for local development
2026-04-14 15:52:45 +00:00
martmullandGitHub 43249d80e8 Add missing doc (#19693)
follow up of the @charlesBochet presentation
as title
2026-04-14 15:30:50 +00:00
ed9dd3c275 i18n - translations (#19692)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2026-04-14 14:56:36 +02:00
martmullandGitHub b3354ab6e7 Fix multi-workspace-registration (#19685)
## Before

<img width="1512" height="915" alt="image"
src="https://github.com/user-attachments/assets/5cb05f76-b672-404e-b31d-ca455802f97a"
/>


## After

<img width="1512" height="726" alt="image"
src="https://github.com/user-attachments/assets/58229c4c-3ac6-4428-9c4d-3586a2b9ee36"
/>
2026-04-14 12:41:19 +00:00
Paul RastoinandGitHub 762de40c3d Improve upgrade registry logging for pre-release bundles (#19689)
```ts
Registered 3 fast instance command(s), 0 slow instance command(s), and 14 workspace command(s) for 1.21.0
Registered 5 fast instance command(s), 1 slow instance command(s), and 3 workspace command(s) for 1.22.0
Registered 1 fast instance command(s), 0 slow instance command(s), and 1 workspace command(s) for 1.23.0 (pre-release)
```
2026-04-14 12:33:47 +00:00
573ecea753 i18n - translations (#19691)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2026-04-14 14:39:07 +02:00
Thomas TrompetteandGitHub c8a3de6c65 Test workflow with webhook expected body (#19688)
As title. Currently payload is always undefined when testing
2026-04-14 12:21:48 +00:00
WeikoandGitHub edba7fe085 Reset to default page layout (#19682)
- Add resetPageLayoutToDefault GraphQL mutation that resets an entire
page layout (all tabs, widgets, view field groups, and view fields) to
their default state in a single operation
- Add a "Reset to default" button in the settings Layout tab
(/settings/objects/:object#layout) with a confirmation modal


<img width="673" height="426" alt="Screenshot 2026-04-14 at 13 13 53"
src="https://github.com/user-attachments/assets/002d33c9-9ea1-49f2-bef6-179ce034c126"
/>
2026-04-14 12:19:48 +00:00
Paul RastoinandGitHub ef328755bb Bump current version to 1.23.0 (#19683) 2026-04-14 12:04:44 +00:00
WeikoandGitHub 1e42be5a44 Expend field widget field supported types (#19684)
## Context
Expending field widget supported types to all field types. They will all
by default fallback to "FIELD" displaymode which is the inline display
mode (same as the one used in FIELDS widget) and can be extended to
other displayMode such as CARD or EDITOR in the future if needed. Most
of the work was already done in the previous PR and was unnecessary
filter out until this was properly tested

<img width="951" height="757" alt="Screenshot 2026-04-14 at 13 24 24"
src="https://github.com/user-attachments/assets/a08a1855-21ea-4e75-8032-4f970b3ff50d"
/>
<img width="915" height="595" alt="Screenshot 2026-04-14 at 13 23 34"
src="https://github.com/user-attachments/assets/8b420c1f-0496-4c1c-91b8-b266c40b3772"
/>
2026-04-14 11:51:01 +00:00
b194b67ac4 fix(address): populate street line from place details (#19326)
## Summary
- extract and expose `street` from Google place details (`street_number`
+ `route`) on the server DTO
- request and type `street` in front-end geo-map place details query
- use `placeData.street` as the preferred value for `addressStreet1` in
address autofill
- add regression coverage for query fields and street-line precedence
behavior

## Why
Address autocomplete selection currently writes full place text
(including city/state/postcode/country) into `addressStreet1`,
duplicating values already mapped to dedicated fields.

Fixes #18860

---------

Signed-off-by: jeevan6996 <jeevanpawar5890@gmail.com>
Co-authored-by: Charles Bochet <charles@twenty.com>
2026-04-14 11:44:36 +00:00
Thomas des FrancsandGitHub eaf54ae02f website new fixes (#19678) 2026-04-14 11:28:40 +00:00
martmullandGitHub fb4d037b93 Upgrade self hosting application (#19680)
as title, installed on
https://twentyfortwenty.twenty.com/objects/selfHostingUsers?viewId=20069db0-5137-4b2f-9b20-1797572b8eb8
2026-04-14 11:21:18 +00:00
edc47bd458 i18n - docs translations (#19677)
Created by Github action

Co-authored-by: github-actions <github-actions@twenty.com>
2026-04-14 12:45:12 +02:00
WeikoandGitHub 47bdcb11d8 Move is active to fe (#19649)
## Context
Moving isActive filtering to the frontend for page layout tabs and
widgets, hiding inactive entities from the UI while keeping them in
state for future reactivation

Next we will implement deactivated standard tab re-activation during tab
creation (cc @Devessier)
<img width="234" height="303" alt="📋 Menu (Slots)"
src="https://github.com/user-attachments/assets/17a25ac6-55e2-4778-b7f0-e7554ed69704"
/>
2026-04-14 10:18:09 +00:00
Baptiste DevessierandGitHub b817bdca02 Rpl various fixes (#19668) 2026-04-14 09:46:15 +00:00
EtienneandGitHub 9c07ecd363 Fix view filter/sort deletion (#19567)
fixes https://github.com/twentyhq/twenty/issues/19543

+ bonus bug : when deleting an advanced filter, it triggers a destroy
which cascade-deletes associated view filters. Then, view filters
deletion throws.
2026-04-14 09:43:52 +00:00
Raphaël BosiandGitHub eb13378760 Fix Quick Lead command menu item not appearing (#19635)
- Refactored prefillWorkflowCommandMenuItems and
prefillFrontComponentCommandMenuItems to use
validateBuildAndRunWorkspaceMigration instead of raw TypeORM
createQueryBuilder inserts
- This ensures the flat entity cache is properly updated when seeding
command menu items, fixing the Quick Lead item not appearing after
workspace creation
- Moved command menu item prefill calls outside the transaction since
they now go through the migration pipeline
2026-04-14 09:30:31 +00:00
Paul RastoinandGitHub 3e699c4458 Fix upgrade commands discovery outside of cli (#19671)
# Introduction
We were allowing the sequence to be empty in the worker context that was
facing an edge case importing the UpgradeModule through the
WorkspaceModule god module, no commands were discovered and it was
throwing as the sequence must have at least one workspace commands to
allow a workspace creation

Though the issue was also applicable to the twenty-server `AppModule`
too that was not discovering any commands

## Integration tests were passing
The integration test were importing the `CommandModule` at the nest
testing app creating leading to asymmetric testing context
It was a requirement for a legacy commands import and global assignation

## Fix
The `UpgradeModule` now import both `WorkspaceCommandsProviderModule`
and `InstanceCommandProviderModule` which ships the commands directly in
the module
We could consider moving the commands into the `engine/upgrade` folder

## Concern
Bootstrap could become more and more long to load at both server and
worker start
When this becomes a problem we will have to only import the latest
workspace command or whatever
For the moment this is not worth it the risk to import not the latest
workspace command
2026-04-14 09:20:33 +00:00
EtienneandGitHub f738961127 Add gql operationName metadata in sentry (#19564) 2026-04-14 08:55:54 +00:00
49aac04b84 fix: edit button not coming up on avatar right after image upload (#19596)
## Summary

After uploading an image/file to the empty avatar field in the person
tab, the edit icon next to the field would not appear until the browser
was refreshed or another field was clicked.

### Root cause

- When user clicks over the avatar field,
`recordFieldListCellEditModePosition` is set to `globalIndex`
- That is fine when a avatar already exists. But when there is no avatar
already set, the native file picker is opened with no `onClose` handler
attached.
- So after the file upload is completed,
`recordFieldListCellEditModePosition` is never reset to null.
- `FieldsWidgetCellEditModePortal` stays anchored to the avatar file
element
- When the user hovers over the same field again, its hover portal tries
to compete to anchor for the same element
- So, `RecordInlineCellDisplayMode ` (the edit button) doesn't render

### Fix

- Pass the `onClose` function through `openFieldInput` to
`openFilesFieldInput`
- `onClose` resets `recordFieldListCellEditModePosition` back to null,
when the upload completes.

## Before


https://github.com/user-attachments/assets/ac9318e9-5471-434c-8af3-5c20d0112460

## After


https://github.com/user-attachments/assets/0d064a7f-95ad-4b92-a9ee-d9570f360972

Fixes #19595

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2026-04-14 08:54:14 +00:00
40c6c63bf5 i18n - docs translations (#19672)
Created by Github action

Co-authored-by: github-actions <github-actions@twenty.com>
2026-04-14 10:54:27 +02:00
d583984bf0 fix(api-key): batch role resolution with DataLoader to fix N+1 (#19590)
## Summary

The `role` @ResolveField on `ApiKeyResolver` calls `getRolesByApiKeys`
with a single-element array per API key. When a query returns N API
keys, this produces N separate DB queries to resolve their roles.

This adds an `apiKeyRoleLoader` to the existing DataLoader
infrastructure. All API key IDs in a single GraphQL request are
collected and resolved in one batched query.

- Before: N queries (one per API key)
- After: 1 query (batched via DataLoader)

## Changes

- `dataloader.service.ts` - new `createApiKeyRoleLoader` method,
delegates to `ApiKeyRoleService.getRolesByApiKeys`
- `dataloader.interface.ts` - `apiKeyRoleLoader` added to `IDataloaders`
- `dataloader.module.ts` - import `ApiKeyModule` so `ApiKeyRoleService`
is available
- `api-key.resolver.ts` - `role()` now uses
`context.loaders.apiKeyRoleLoader.load()` instead of calling the service
directly

## Test plan

- [ ] Verify `apiKeys { id role { label } }` query returns the same
results as before
- [ ] Confirm only 1 role_target query fires regardless of how many API
keys are returned

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2026-04-14 08:43:31 +00:00
Paul RastoinandGitHub 714f149b0c Move backfill page layout to 1.23 (#19670) 2026-04-14 08:39:24 +00:00
martmullandGitHub 194f0963dc Remove 'twenty-app' keyword by default (#19669)
as title
2026-04-14 08:26:45 +00:00
5fa3094800 test: fix failing useColorScheme test and remove FIXME (#19593)
Summary
This PR fixes a bug in the `useColorScheme` test suite and removes a
lingering `FIXME` comment where the color scheme was unexpectedly
unsetting during state updates.

Root Cause
Previously, the Jotai state was being initialized *inside* the
`renderHook` callback using `useSetAtomState`. When the `setColorScheme`
function was called, it triggered a hook re-render, which caused the
callback to execute again and overwrite the new state with the hardcoded
`'System'` initial state.

The Fix
- Removed the state initialization from inside the render cycle.
- Bootstrapped the state on a fresh store using `resetJotaiStore()` and
`store.set()` *before* rendering the hook.
- Updated the mock `workspaceMember` to correctly use the
`CurrentWorkspaceMember` type.
- Removed the `FIXME` comment and successfully asserted that the color
scheme updates to `'Dark'`.

Testing
Ran tests locally to confirm the fix works as expected:
`corepack yarn jest --config packages/twenty-front/jest.config.mjs
--testPathPattern=useColorScheme.test.tsx`

---------

Co-authored-by: Srabani Ghorai <subhojit04ghorai@gmail.com>
2026-04-14 06:40:40 +00:00
87f8e5ca19 few website updates (#19663)
## Summary
- refresh pricing page content, plan cards, CTA styling, and Salesforce
comparison visuals
- update partner and hero/testimonial visuals, including pulled
carousel-compatible partner testimonial data
- improve halftone export and illustration mounting flows, plus related
button and hydration fixes
- add updated website illustration and pricing assets

## Testing
- Not run (not requested)

---------

Co-authored-by: Abdullah <125115953+mabdullahabaid@users.noreply.github.com>
2026-04-14 06:23:20 +00:00
771 changed files with 32027 additions and 17511 deletions
@@ -7,9 +7,7 @@
"npm": "please-use-yarn",
"yarn": ">=4.0.2"
},
"keywords": [
"twenty-app"
],
"keywords": [],
"packageManager": "yarn@4.9.2",
"scripts": {
"twenty": "twenty",
@@ -0,0 +1,42 @@
name: CD
on:
push:
branches:
- main
pull_request:
types: [labeled]
permissions:
contents: read
env:
TWENTY_DEPLOY_URL: http://localhost:3000
concurrency:
group: cd-${{ github.ref }}
cancel-in-progress: true
jobs:
deploy-and-install:
if: >-
github.event_name == 'push' ||
(github.event_name == 'pull_request' && github.event.label.name == 'deploy')
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha || github.sha }}
- name: Deploy
uses: twentyhq/twenty/.github/actions/deploy-twenty-app@main
with:
api-url: ${{ env.TWENTY_DEPLOY_URL }}
api-key: ${{ secrets.TWENTY_DEPLOY_API_KEY }}
- name: Install
uses: twentyhq/twenty/.github/actions/install-twenty-app@main
with:
api-url: ${{ env.TWENTY_DEPLOY_URL }}
api-key: ${{ secrets.TWENTY_DEPLOY_API_KEY }}
@@ -0,0 +1,48 @@
name: CI
on:
push:
branches:
- main
pull_request: {}
permissions:
contents: read
env:
TWENTY_VERSION: latest
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Spawn Twenty test instance
id: twenty
uses: twentyhq/twenty/.github/actions/spawn-twenty-app-dev-test@main
with:
twenty-version: ${{ env.TWENTY_VERSION }}
- name: Enable Corepack
run: corepack enable
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: yarn
- name: Install dependencies
run: yarn install --immutable
- name: Run integration tests
run: yarn test
env:
TWENTY_API_URL: ${{ steps.twenty.outputs.server-url }}
TWENTY_API_KEY: ${{ steps.twenty.outputs.api-key }}
@@ -35,3 +35,4 @@ yarn-error.log*
# typescript
*.tsbuildinfo
*.d.ts
@@ -0,0 +1 @@
24.5.0
@@ -1,40 +1,19 @@
{
"$schema": "./node_modules/oxlint/configuration_schema.json",
"plugins": ["typescript", "import", "unicorn"],
"plugins": ["typescript"],
"categories": {
"correctness": "off"
},
"ignorePatterns": ["node_modules"],
"ignorePatterns": ["node_modules", "dist"],
"rules": {
"func-style": ["error", "declaration", { "allowArrowFunctions": true }],
"no-console": ["warn", { "allow": ["group", "groupCollapsed", "groupEnd"] }],
"no-control-regex": "off",
"no-debugger": "error",
"no-duplicate-imports": "error",
"no-undef": "off",
"no-unused-vars": "off",
"no-redeclare": "off",
"import/no-duplicates": "error",
"typescript/no-redeclare": "error",
"typescript/ban-ts-comment": "error",
"typescript/consistent-type-imports": ["error", {
"prefer": "type-imports",
"fixStyle": "inline-type-imports"
}],
"typescript/explicit-function-return-type": "off",
"typescript/explicit-module-boundary-types": "off",
"typescript/no-empty-object-type": ["error", {
"allowInterfaces": "with-single-extends"
}],
"typescript/no-empty-function": "off",
"typescript/no-explicit-any": "off",
"typescript/no-unused-vars": ["warn", {
"vars": "all",
"varsIgnorePattern": "^_",
"args": "after-used",
"argsIgnorePattern": "^_"
}]
"typescript/no-unused-vars": [
"warn",
{
"argsIgnorePattern": "^_"
}
],
"typescript/no-explicit-any": "off"
}
}
@@ -1,5 +1 @@
yarnPath: .yarn/releases/yarn-4.9.2.cjs
nodeLinker: node-modules
enableTransparentWorkspaces: false
@@ -0,0 +1,14 @@
## Base documentation
- Documentation: https://docs.twenty.com/developers/extend/apps/getting-started
- Rich app example: https://github.com/twentyhq/twenty/tree/main/packages/twenty-apps/examples/postcard
## UUID requirement
- All generated UUIDs must be valid UUID v4.
## Common Pitfalls
- Creating an object without an index view associated. Unless this is a technical object, user will need to visualize it.
- Creating a view without a navigationMenuItem associated. This will make the view available on the left sidebar.
- Creating a front-end component that has a scroll instead of being responsive to its fixed widget height and width, unless it is specifically meant to be used in a canvas tab.
@@ -0,0 +1,14 @@
## Base documentation
- Documentation: https://docs.twenty.com/developers/extend/apps/getting-started
- Rich app example: https://github.com/twentyhq/twenty/tree/main/packages/twenty-apps/examples/postcard
## UUID requirement
- All generated UUIDs must be valid UUID v4.
## Common Pitfalls
- Creating an object without an index view associated. Unless this is a technical object, user will need to visualize it.
- Creating a view without a navigationMenuItem associated. This will make the view available on the left sidebar.
- Creating a front-end component that has a scroll instead of being responsive to its fixed widget height and width, unless it is specifically meant to be used in a canvas tab.
@@ -0,0 +1,14 @@
## Base documentation
- Documentation: https://docs.twenty.com/developers/extend/apps/getting-started
- Rich app example: https://github.com/twentyhq/twenty/tree/main/packages/twenty-apps/examples/postcard
## UUID requirement
- All generated UUIDs must be valid UUID v4.
## Common Pitfalls
- Creating an object without an index view associated. Unless this is a technical object, user will need to visualize it.
- Creating a view without a navigationMenuItem associated. This will make the view available on the left sidebar.
- Creating a front-end component that has a scroll instead of being responsive to its fixed widget height and width, unless it is specifically meant to be used in a canvas tab.
@@ -1,44 +1,11 @@
# Self Hosting
This is a [Twenty](https://twenty.com) application bootstrapped with [`create-twenty-app`](https://www.npmjs.com/package/create-twenty-app).
Used to manage billing and telemetry of self-hosted instances
## Getting Started
## Features
Run `yarn twenty help` to list all available commands.
### Telemetry Webhook
## Learn More
Receives user signup telemetry events from self-hosted Twenty instances and creates/updates selfHostingUser records.
**Endpoint:** `POST /webhook/telemetry`
**Payload Structure:**
```json
{
"action": "user_signup",
"timestamp": "2025-11-21T...",
"version": "1",
"payload": {
"userId": "uuid",
"workspaceId": "uuid",
"payload": {
"events": [
{
"userEmail": "user@example.com",
"userId": "uuid",
"userFirstName": "John",
"userLastName": "Doe",
"locale": "en",
"serverUrl": "https://self-hosted.example.com"
}
]
}
}
}
```
**Response:**
```json
{
"success": true,
"message": "Self hosting user created/updated: uuid"
}
```
- [Twenty Apps documentation](https://docs.twenty.com/developers/extend/apps/getting-started)
- [twenty-sdk CLI reference](https://www.npmjs.com/package/twenty-sdk)
- [Discord](https://discord.gg/cx5n4Jzs57)
@@ -1,6 +1,6 @@
{
"name": "self-hosting",
"version": "0.0.1",
"version": "1.0.0",
"license": "MIT",
"engines": {
"node": "^24.5.0",
@@ -11,13 +11,22 @@
"scripts": {
"twenty": "twenty",
"lint": "oxlint -c .oxlintrc.json .",
"lint:fix": "oxlint --fix -c .oxlintrc.json ."
"lint:fix": "oxlint --fix -c .oxlintrc.json .",
"test": "vitest run",
"test:watch": "vitest"
},
"dependencies": {
"twenty-client-sdk": "1.22.0-canary.6",
"twenty-sdk": "1.22.0-canary.6"
},
"devDependencies": {
"@types/node": "^24.7.2",
"@types/react": "^19.0.0",
"oxlint": "^0.16.0",
"twenty-sdk": "0.6.2"
},
"$schema": "https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-cli/src/constants/schemas/appManifest.schema.json",
"universalIdentifier": "a7070f46-3158-4b40-828f-8e6b1febc233"
"react": "^19.0.0",
"react-dom": "^19.0.0",
"typescript": "^5.9.3",
"vite-tsconfig-paths": "^4.2.1",
"vitest": "^3.1.1"
}
}
@@ -0,0 +1,72 @@
import { appBuild, appDeploy, appInstall, appUninstall } from 'twenty-sdk/cli';
import { MetadataApiClient } from 'twenty-client-sdk/metadata';
import { afterAll, beforeAll, describe, expect, it } from 'vitest';
import { APPLICATION_UNIVERSAL_IDENTIFIER } from 'src/application.config';
const APP_PATH = process.cwd();
describe('App installation', () => {
beforeAll(async () => {
const buildResult = await appBuild({
appPath: APP_PATH,
tarball: true,
onProgress: (message: string) => console.log(`[build] ${message}`),
});
if (!buildResult.success) {
throw new Error(
`Build failed: ${buildResult.error?.message ?? 'Unknown error'}`,
);
}
const deployResult = await appDeploy({
tarballPath: buildResult.data.tarballPath!,
onProgress: (message: string) => console.log(`[deploy] ${message}`),
});
if (!deployResult.success) {
throw new Error(
`Deploy failed: ${deployResult.error?.message ?? 'Unknown error'}`,
);
}
const installResult = await appInstall({ appPath: APP_PATH });
if (!installResult.success) {
throw new Error(
`Install failed: ${installResult.error?.message ?? 'Unknown error'}`,
);
}
});
afterAll(async () => {
const uninstallResult = await appUninstall({ appPath: APP_PATH });
if (!uninstallResult.success) {
console.warn(
`App uninstall failed: ${
uninstallResult.error?.message ?? 'Unknown error'
}`,
);
}
});
it('should find the installed app in the applications list', async () => {
const metadataClient = new MetadataApiClient();
const result = await metadataClient.query({
findManyApplications: {
id: true,
name: true,
universalIdentifier: true,
},
});
const installedApp = result.findManyApplications.find(
(application: { universalIdentifier: string }) =>
application.universalIdentifier === APPLICATION_UNIVERSAL_IDENTIFIER,
);
expect(installedApp).toBeDefined();
});
});
@@ -0,0 +1,53 @@
import * as fs from 'fs';
import * as os from 'os';
import * as path from 'path';
import { beforeAll } from 'vitest';
const CONFIG_DIR = path.join(os.homedir(), '.twenty');
const CONFIG_PATH = path.join(CONFIG_DIR, 'config.test.json');
beforeAll(async () => {
const apiUrl = process.env.TWENTY_API_URL!;
const token = process.env.TWENTY_API_KEY!;
if (!apiUrl || !token) {
throw new Error(
'TWENTY_API_URL and TWENTY_API_KEY must be set.\n' +
'Start a local server: yarn twenty server start\n' +
'Or set them in vitest env config.',
);
}
let response: Response;
try {
response = await fetch(`${apiUrl}/healthz`);
} catch {
throw new Error(
`Twenty server is not reachable at ${apiUrl}. ` +
'Make sure the server is running before executing integration tests.',
);
}
if (!response.ok) {
throw new Error(`Server at ${apiUrl} returned ${response.status}`);
}
fs.mkdirSync(CONFIG_DIR, { recursive: true });
fs.writeFileSync(
CONFIG_PATH,
JSON.stringify(
{
remotes: {
local: { apiUrl, apiKey: token },
},
defaultRemote: 'local',
},
null,
2,
),
);
process.env.TWENTY_APP_ACCESS_TOKEN ??= token;
});
@@ -1,6 +1,9 @@
import { defineApplication } from 'twenty-sdk';
import { UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers.constant';
export const APPLICATION_UNIVERSAL_IDENTIFIER =
'94f7db30-59e5-4b09-a5fe-64cd3d4a65b0';
export default defineApplication({
universalIdentifier: '94f7db30-59e5-4b09-a5fe-64cd3d4a65b0',
displayName: 'Self Hosting',
@@ -5,7 +5,7 @@ import {
type ObjectRecordUpdateEvent,
} from 'twenty-sdk';
import { SELF_HOSTING_USER_NAME_SINGULAR } from 'src/objects/selfHostingUser.object';
import { CoreApiClient } from 'twenty-sdk/clients';
import { CoreApiClient } from 'twenty-client-sdk/core';
type SelfHostingUser = {
id: string;
@@ -1,5 +1,5 @@
import { defineLogicFunction, type RoutePayload } from 'twenty-sdk';
import { CoreApiClient } from 'twenty-sdk/clients';
import { CoreApiClient } from 'twenty-client-sdk/core';
import { type TelemetryEvent } from 'src/logic-functions/types/telemetry-event.type';
export const main = async (
@@ -4,7 +4,7 @@ import { UNIVERSAL_IDENTIFIERS } from 'src/constants/universal-identifiers.const
export default defineRole({
universalIdentifier:
UNIVERSAL_IDENTIFIERS.roles.defaultRole.universalIdentifier,
label: 'default role',
label: 'Self hosting default role',
description: 'Add a description for your role',
canReadAllObjectRecords: true,
canUpdateAllObjectRecords: true,
@@ -27,5 +27,16 @@
"~/*": ["./*"]
}
},
"exclude": ["node_modules", "dist", "**/*.test.ts", "**/*.spec.ts"]
"exclude": [
"node_modules",
"dist",
"**/*.test.ts",
"**/*.spec.ts",
"**/*.integration-test.ts"
],
"references": [
{
"path": "./tsconfig.spec.json"
}
]
}
@@ -0,0 +1,9 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"composite": true,
"types": ["vitest/globals", "node"]
},
"include": ["src/**/*.ts", "src/**/*.tsx"],
"exclude": ["node_modules", "dist"]
}
@@ -0,0 +1,24 @@
import tsconfigPaths from 'vite-tsconfig-paths';
import { defineConfig } from 'vitest/config';
export default defineConfig({
plugins: [
tsconfigPaths({
projects: ['tsconfig.spec.json'],
ignoreConfigErrors: true,
}),
],
test: {
testTimeout: 120_000,
hookTimeout: 120_000,
include: ['src/**/*.integration-test.ts'],
setupFiles: ['src/__tests__/setup-test.ts'],
env: {
TWENTY_API_URL: process.env.TWENTY_API_URL ?? 'http://localhost:2020',
TWENTY_API_KEY:
process.env.TWENTY_API_KEY ??
// Tim Apple (admin) access token for twenty-app-dev
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyMDIwMjAyMC05ZTNiLTQ2ZDQtYTU1Ni04OGI5ZGRjMmIwMzQiLCJ1c2VySWQiOiIyMDIwMjAyMC05ZTNiLTQ2ZDQtYTU1Ni04OGI5ZGRjMmIwMzQiLCJ3b3Jrc3BhY2VJZCI6IjIwMjAyMDIwLTFjMjUtNGQwMi1iZjI1LTZhZWNjZjdlYTQxOSIsIndvcmtzcGFjZU1lbWJlcklkIjoiMjAyMDIwMjAtMDY4Ny00YzQxLWI3MDctZWQxYmZjYTk3MmE3IiwidXNlcldvcmtzcGFjZUlkIjoiMjAyMDIwMjAtOWUzYi00NmQ0LWE1NTYtODhiOWRkYzJiMDM1IiwidHlwZSI6IkFDQ0VTUyIsImF1dGhQcm92aWRlciI6InBhc3N3b3JkIiwiaWF0IjoxNzUxMjgxNzA0LCJleHAiOjQ5MDQ4ODE3MDR9.9S4wc0MOr5iczsomlFxZdOHD1IRDS4dnRSwNVNpctF4',
},
},
});
File diff suppressed because it is too large Load Diff
@@ -583,6 +583,7 @@ type ViewField {
workspaceId: UUID!
createdAt: DateTime!
updatedAt: DateTime!
isActive: Boolean!
deletedAt: DateTime
isOverridden: Boolean @deprecated(reason: "isOverridden is deprecated")
}
@@ -691,6 +692,7 @@ type ViewFieldGroup {
workspaceId: UUID!
createdAt: DateTime!
updatedAt: DateTime!
isActive: Boolean!
deletedAt: DateTime
viewFields: [ViewField!]!
isOverridden: Boolean! @deprecated(reason: "isOverridden is deprecated")
@@ -733,6 +735,7 @@ enum ViewType {
KANBAN
CALENDAR
FIELDS_WIDGET
TABLE_WIDGET
}
enum ViewKey {
@@ -790,7 +793,6 @@ type Workspace {
isCustomDomainEnabled: Boolean!
editableProfileFields: [String!]
defaultRole: Role
version: String
fastModel: String!
smartModel: String!
aiAdditionalInstructions: String
@@ -899,6 +901,7 @@ type PageLayoutWidget {
conditionalAvailabilityExpression: String
createdAt: DateTime!
updatedAt: DateTime!
isActive: Boolean!
deletedAt: DateTime
isOverridden: Boolean @deprecated(reason: "isOverridden is deprecated")
}
@@ -1234,6 +1237,7 @@ type PageLayoutTab {
layoutMode: PageLayoutTabLayoutMode
createdAt: DateTime!
updatedAt: DateTime!
isActive: Boolean!
deletedAt: DateTime
isOverridden: Boolean @deprecated(reason: "isOverridden is deprecated")
}
@@ -1254,6 +1258,7 @@ enum PageLayoutType {
RECORD_INDEX
RECORD_PAGE
DASHBOARD
STANDALONE_PAGE
}
type Analytics {
@@ -1482,6 +1487,7 @@ type NavigationMenuItem {
icon: String
color: String
folderId: UUID
pageLayoutId: UUID
position: Float!
applicationId: UUID
createdAt: DateTime!
@@ -1495,6 +1501,7 @@ enum NavigationMenuItemType {
LINK
OBJECT
RECORD
PAGE_LAYOUT
}
type ObjectRecordEventProperties {
@@ -2193,30 +2200,18 @@ type DeletedWorkspaceMember {
userWorkspaceId: UUID
}
type BillingEntitlement {
key: BillingEntitlementKey!
value: Boolean!
type Relation {
type: RelationType!
sourceObjectMetadata: Object!
targetObjectMetadata: Object!
sourceFieldMetadata: Field!
targetFieldMetadata: Field!
}
enum BillingEntitlementKey {
SSO
CUSTOM_DOMAIN
RLS
AUDIT_LOGS
}
type DomainRecord {
validationType: String!
type: String!
status: String!
key: String!
value: String!
}
type DomainValidRecords {
id: UUID!
domain: String!
records: [DomainRecord!]!
"""Relation type"""
enum RelationType {
ONE_TO_MANY
MANY_TO_ONE
}
type IndexEdge {
@@ -2318,25 +2313,6 @@ type ObjectFieldsConnection {
edges: [FieldEdge!]!
}
type UpsertRowLevelPermissionPredicatesResult {
predicates: [RowLevelPermissionPredicate!]!
predicateGroups: [RowLevelPermissionPredicateGroup!]!
}
type Relation {
type: RelationType!
sourceObjectMetadata: Object!
targetObjectMetadata: Object!
sourceFieldMetadata: Field!
targetFieldMetadata: Field!
}
"""Relation type"""
enum RelationType {
ONE_TO_MANY
MANY_TO_ONE
}
type FieldConnection {
"""Paging information"""
pageInfo: PageInfo!
@@ -2345,6 +2321,37 @@ type FieldConnection {
edges: [FieldEdge!]!
}
type BillingEntitlement {
key: BillingEntitlementKey!
value: Boolean!
}
enum BillingEntitlementKey {
SSO
CUSTOM_DOMAIN
RLS
AUDIT_LOGS
}
type DomainRecord {
validationType: String!
type: String!
status: String!
key: String!
value: String!
}
type DomainValidRecords {
id: UUID!
domain: String!
records: [DomainRecord!]!
}
type UpsertRowLevelPermissionPredicatesResult {
predicates: [RowLevelPermissionPredicate!]!
predicateGroups: [RowLevelPermissionPredicateGroup!]!
}
type AuthToken {
token: String!
expiresAt: DateTime!
@@ -2580,6 +2587,7 @@ type Location {
}
type PlaceDetailsResult {
street: String
state: String
postcode: String
city: String
@@ -2713,6 +2721,7 @@ enum EngineComponentKey {
enum CommandMenuItemAvailabilityType {
GLOBAL
GLOBAL_OBJECT_CONTEXT
RECORD_SELECTION
FALLBACK
}
@@ -3359,6 +3368,7 @@ type Query {
workspaceLookupAdminPanel(workspaceId: UUID!): UserLookup!
getAdminWorkspaceChatThreads(workspaceId: UUID!): [AdminWorkspaceChatThread!]!
getAdminChatThreadMessages(threadId: UUID!): AdminChatThreadMessages!
findOneAdminApplicationRegistration(id: String!): ApplicationRegistration!
getUsageAnalytics(input: UsageAnalyticsInput): UsageAnalytics!
getPostgresCredentials: PostgresCredentials
findManyPublicDomains: [PublicDomain!]!
@@ -3565,6 +3575,7 @@ type Mutation {
updatePageLayout(id: String!, input: UpdatePageLayoutInput!): PageLayout!
destroyPageLayout(id: String!): Boolean!
updatePageLayoutWithTabsAndWidgets(id: String!, input: UpdatePageLayoutWithTabsInput!): PageLayout!
resetPageLayoutToDefault(id: String!): PageLayout!
resetPageLayoutWidgetToDefault(id: String!): PageLayoutWidget!
resetPageLayoutTabToDefault(id: String!): PageLayoutTab!
createPageLayoutWidget(input: CreatePageLayoutWidgetInput!): PageLayoutWidget!
@@ -3656,6 +3667,7 @@ type Mutation {
verifyTwoFactorAuthenticationMethodForAuthenticatedUser(otp: String!): VerifyTwoFactorAuthenticationMethod!
deleteUser: User!
deleteUserFromWorkspace(workspaceMemberIdToDelete: String!): UserWorkspace!
updateWorkspaceMemberSettings(input: UpdateWorkspaceMemberSettingsInput!): Boolean!
updateUserEmail(newEmail: String!, verifyEmailRedirectPath: String): Boolean!
resendEmailVerificationToken(email: String!, origin: String!): ResendEmailVerificationToken!
activateWorkspace(data: ActivateWorkspaceInput!): Workspace!
@@ -3734,6 +3746,7 @@ input CreateNavigationMenuItemInput {
icon: String
color: String
folderId: UUID
pageLayoutId: UUID
position: Float
}
@@ -3752,6 +3765,7 @@ input UpdateNavigationMenuItemInput {
link: String
icon: String
color: String
pageLayoutId: UUID
}
"""The `Upload` scalar type represents a file upload."""
@@ -4588,6 +4602,11 @@ input UpdateApplicationRegistrationVariablePayload {
description: String
}
input UpdateWorkspaceMemberSettingsInput {
workspaceMemberId: UUID!
update: JSON!
}
input ActivateWorkspaceInput {
displayName: String
}
@@ -415,6 +415,7 @@ export interface ViewField {
workspaceId: Scalars['UUID']
createdAt: Scalars['DateTime']
updatedAt: Scalars['DateTime']
isActive: Scalars['Boolean']
deletedAt?: Scalars['DateTime']
/** @deprecated isOverridden is deprecated */
isOverridden?: Scalars['Boolean']
@@ -492,6 +493,7 @@ export interface ViewFieldGroup {
workspaceId: Scalars['UUID']
createdAt: Scalars['DateTime']
updatedAt: Scalars['DateTime']
isActive: Scalars['Boolean']
deletedAt?: Scalars['DateTime']
viewFields: ViewField[]
/** @deprecated isOverridden is deprecated */
@@ -532,7 +534,7 @@ export interface View {
__typename: 'View'
}
export type ViewType = 'TABLE' | 'KANBAN' | 'CALENDAR' | 'FIELDS_WIDGET'
export type ViewType = 'TABLE' | 'KANBAN' | 'CALENDAR' | 'FIELDS_WIDGET' | 'TABLE_WIDGET'
export type ViewKey = 'INDEX'
@@ -577,7 +579,6 @@ export interface Workspace {
isCustomDomainEnabled: Scalars['Boolean']
editableProfileFields?: Scalars['String'][]
defaultRole?: Role
version?: Scalars['String']
fastModel: Scalars['String']
smartModel: Scalars['String']
aiAdditionalInstructions?: Scalars['String']
@@ -674,6 +675,7 @@ export interface PageLayoutWidget {
conditionalAvailabilityExpression?: Scalars['String']
createdAt: Scalars['DateTime']
updatedAt: Scalars['DateTime']
isActive: Scalars['Boolean']
deletedAt?: Scalars['DateTime']
/** @deprecated isOverridden is deprecated */
isOverridden?: Scalars['Boolean']
@@ -959,6 +961,7 @@ export interface PageLayoutTab {
layoutMode?: PageLayoutTabLayoutMode
createdAt: Scalars['DateTime']
updatedAt: Scalars['DateTime']
isActive: Scalars['Boolean']
deletedAt?: Scalars['DateTime']
/** @deprecated isOverridden is deprecated */
isOverridden?: Scalars['Boolean']
@@ -978,7 +981,7 @@ export interface PageLayout {
__typename: 'PageLayout'
}
export type PageLayoutType = 'RECORD_INDEX' | 'RECORD_PAGE' | 'DASHBOARD'
export type PageLayoutType = 'RECORD_INDEX' | 'RECORD_PAGE' | 'DASHBOARD' | 'STANDALONE_PAGE'
export interface Analytics {
/** Boolean that confirms query was dispatched */
@@ -1207,6 +1210,7 @@ export interface NavigationMenuItem {
icon?: Scalars['String']
color?: Scalars['String']
folderId?: Scalars['UUID']
pageLayoutId?: Scalars['UUID']
position: Scalars['Float']
applicationId?: Scalars['UUID']
createdAt: Scalars['DateTime']
@@ -1215,7 +1219,7 @@ export interface NavigationMenuItem {
__typename: 'NavigationMenuItem'
}
export type NavigationMenuItemType = 'VIEW' | 'FOLDER' | 'LINK' | 'OBJECT' | 'RECORD'
export type NavigationMenuItemType = 'VIEW' | 'FOLDER' | 'LINK' | 'OBJECT' | 'RECORD' | 'PAGE_LAYOUT'
export interface ObjectRecordEventProperties {
updatedFields?: Scalars['String'][]
@@ -1879,29 +1883,18 @@ export interface DeletedWorkspaceMember {
__typename: 'DeletedWorkspaceMember'
}
export interface BillingEntitlement {
key: BillingEntitlementKey
value: Scalars['Boolean']
__typename: 'BillingEntitlement'
export interface Relation {
type: RelationType
sourceObjectMetadata: Object
targetObjectMetadata: Object
sourceFieldMetadata: Field
targetFieldMetadata: Field
__typename: 'Relation'
}
export type BillingEntitlementKey = 'SSO' | 'CUSTOM_DOMAIN' | 'RLS' | 'AUDIT_LOGS'
export interface DomainRecord {
validationType: Scalars['String']
type: Scalars['String']
status: Scalars['String']
key: Scalars['String']
value: Scalars['String']
__typename: 'DomainRecord'
}
export interface DomainValidRecords {
id: Scalars['UUID']
domain: Scalars['String']
records: DomainRecord[]
__typename: 'DomainValidRecords'
}
/** Relation type */
export type RelationType = 'ONE_TO_MANY' | 'MANY_TO_ONE'
export interface IndexEdge {
/** The node containing the Index */
@@ -2001,25 +1994,6 @@ export interface ObjectFieldsConnection {
__typename: 'ObjectFieldsConnection'
}
export interface UpsertRowLevelPermissionPredicatesResult {
predicates: RowLevelPermissionPredicate[]
predicateGroups: RowLevelPermissionPredicateGroup[]
__typename: 'UpsertRowLevelPermissionPredicatesResult'
}
export interface Relation {
type: RelationType
sourceObjectMetadata: Object
targetObjectMetadata: Object
sourceFieldMetadata: Field
targetFieldMetadata: Field
__typename: 'Relation'
}
/** Relation type */
export type RelationType = 'ONE_TO_MANY' | 'MANY_TO_ONE'
export interface FieldConnection {
/** Paging information */
pageInfo: PageInfo
@@ -2028,6 +2002,36 @@ export interface FieldConnection {
__typename: 'FieldConnection'
}
export interface BillingEntitlement {
key: BillingEntitlementKey
value: Scalars['Boolean']
__typename: 'BillingEntitlement'
}
export type BillingEntitlementKey = 'SSO' | 'CUSTOM_DOMAIN' | 'RLS' | 'AUDIT_LOGS'
export interface DomainRecord {
validationType: Scalars['String']
type: Scalars['String']
status: Scalars['String']
key: Scalars['String']
value: Scalars['String']
__typename: 'DomainRecord'
}
export interface DomainValidRecords {
id: Scalars['UUID']
domain: Scalars['String']
records: DomainRecord[]
__typename: 'DomainValidRecords'
}
export interface UpsertRowLevelPermissionPredicatesResult {
predicates: RowLevelPermissionPredicate[]
predicateGroups: RowLevelPermissionPredicateGroup[]
__typename: 'UpsertRowLevelPermissionPredicatesResult'
}
export interface AuthToken {
token: Scalars['String']
expiresAt: Scalars['DateTime']
@@ -2293,6 +2297,7 @@ export interface Location {
}
export interface PlaceDetailsResult {
street?: Scalars['String']
state?: Scalars['String']
postcode?: Scalars['String']
city?: Scalars['String']
@@ -2364,7 +2369,7 @@ export interface CommandMenuItem {
export type EngineComponentKey = 'NAVIGATE_TO_NEXT_RECORD' | 'NAVIGATE_TO_PREVIOUS_RECORD' | 'CREATE_NEW_RECORD' | 'DELETE_RECORDS' | 'RESTORE_RECORDS' | 'DESTROY_RECORDS' | 'ADD_TO_FAVORITES' | 'REMOVE_FROM_FAVORITES' | 'EXPORT_NOTE_TO_PDF' | 'EXPORT_RECORDS' | 'UPDATE_MULTIPLE_RECORDS' | 'MERGE_MULTIPLE_RECORDS' | 'IMPORT_RECORDS' | 'EXPORT_VIEW' | 'SEE_DELETED_RECORDS' | 'CREATE_NEW_VIEW' | 'HIDE_DELETED_RECORDS' | 'EDIT_RECORD_PAGE_LAYOUT' | 'EDIT_DASHBOARD_LAYOUT' | 'SAVE_DASHBOARD_LAYOUT' | 'CANCEL_DASHBOARD_LAYOUT' | 'DUPLICATE_DASHBOARD' | 'ACTIVATE_WORKFLOW' | 'DEACTIVATE_WORKFLOW' | 'DISCARD_DRAFT_WORKFLOW' | 'TEST_WORKFLOW' | 'SEE_ACTIVE_VERSION_WORKFLOW' | 'SEE_RUNS_WORKFLOW' | 'SEE_VERSIONS_WORKFLOW' | 'ADD_NODE_WORKFLOW' | 'TIDY_UP_WORKFLOW' | 'DUPLICATE_WORKFLOW' | 'SEE_VERSION_WORKFLOW_RUN' | 'SEE_WORKFLOW_WORKFLOW_RUN' | 'STOP_WORKFLOW_RUN' | 'SEE_RUNS_WORKFLOW_VERSION' | 'SEE_WORKFLOW_WORKFLOW_VERSION' | 'USE_AS_DRAFT_WORKFLOW_VERSION' | 'SEE_VERSIONS_WORKFLOW_VERSION' | 'SEARCH_RECORDS' | 'SEARCH_RECORDS_FALLBACK' | 'ASK_AI' | 'VIEW_PREVIOUS_AI_CHATS' | 'NAVIGATION' | 'TRIGGER_WORKFLOW_VERSION' | 'FRONT_COMPONENT_RENDERER' | 'REPLY_TO_EMAIL_THREAD' | 'COMPOSE_EMAIL' | 'GO_TO_PEOPLE' | 'GO_TO_COMPANIES' | 'GO_TO_DASHBOARDS' | 'GO_TO_OPPORTUNITIES' | 'GO_TO_SETTINGS' | 'GO_TO_TASKS' | 'GO_TO_NOTES' | 'GO_TO_WORKFLOWS' | 'GO_TO_RUNS' | 'DELETE_SINGLE_RECORD' | 'DELETE_MULTIPLE_RECORDS' | 'RESTORE_SINGLE_RECORD' | 'RESTORE_MULTIPLE_RECORDS' | 'DESTROY_SINGLE_RECORD' | 'DESTROY_MULTIPLE_RECORDS' | 'EXPORT_FROM_RECORD_INDEX' | 'EXPORT_FROM_RECORD_SHOW' | 'EXPORT_MULTIPLE_RECORDS'
export type CommandMenuItemAvailabilityType = 'GLOBAL' | 'RECORD_SELECTION' | 'FALLBACK'
export type CommandMenuItemAvailabilityType = 'GLOBAL' | 'GLOBAL_OBJECT_CONTEXT' | 'RECORD_SELECTION' | 'FALLBACK'
export type CommandMenuItemPayload = (PathCommandMenuItemPayload | ObjectMetadataCommandMenuItemPayload) & { __isUnion?: true }
@@ -2924,6 +2929,7 @@ export interface Query {
workspaceLookupAdminPanel: UserLookup
getAdminWorkspaceChatThreads: AdminWorkspaceChatThread[]
getAdminChatThreadMessages: AdminChatThreadMessages
findOneAdminApplicationRegistration: ApplicationRegistration
getUsageAnalytics: UsageAnalytics
getPostgresCredentials?: PostgresCredentials
findManyPublicDomains: PublicDomain[]
@@ -3023,6 +3029,7 @@ export interface Mutation {
updatePageLayout: PageLayout
destroyPageLayout: Scalars['Boolean']
updatePageLayoutWithTabsAndWidgets: PageLayout
resetPageLayoutToDefault: PageLayout
resetPageLayoutWidgetToDefault: PageLayoutWidget
resetPageLayoutTabToDefault: PageLayoutTab
createPageLayoutWidget: PageLayoutWidget
@@ -3114,6 +3121,7 @@ export interface Mutation {
verifyTwoFactorAuthenticationMethodForAuthenticatedUser: VerifyTwoFactorAuthenticationMethod
deleteUser: User
deleteUserFromWorkspace: UserWorkspace
updateWorkspaceMemberSettings: Scalars['Boolean']
updateUserEmail: Scalars['Boolean']
resendEmailVerificationToken: ResendEmailVerificationToken
activateWorkspace: Workspace
@@ -3631,6 +3639,7 @@ export interface ViewFieldGenqlSelection{
workspaceId?: boolean | number
createdAt?: boolean | number
updatedAt?: boolean | number
isActive?: boolean | number
deletedAt?: boolean | number
/** @deprecated isOverridden is deprecated */
isOverridden?: boolean | number
@@ -3705,6 +3714,7 @@ export interface ViewFieldGroupGenqlSelection{
workspaceId?: boolean | number
createdAt?: boolean | number
updatedAt?: boolean | number
isActive?: boolean | number
deletedAt?: boolean | number
viewFields?: ViewFieldGenqlSelection
/** @deprecated isOverridden is deprecated */
@@ -3782,7 +3792,6 @@ export interface WorkspaceGenqlSelection{
isCustomDomainEnabled?: boolean | number
editableProfileFields?: boolean | number
defaultRole?: RoleGenqlSelection
version?: boolean | number
fastModel?: boolean | number
smartModel?: boolean | number
aiAdditionalInstructions?: boolean | number
@@ -3879,6 +3888,7 @@ export interface PageLayoutWidgetGenqlSelection{
conditionalAvailabilityExpression?: boolean | number
createdAt?: boolean | number
updatedAt?: boolean | number
isActive?: boolean | number
deletedAt?: boolean | number
/** @deprecated isOverridden is deprecated */
isOverridden?: boolean | number
@@ -4191,6 +4201,7 @@ export interface PageLayoutTabGenqlSelection{
layoutMode?: boolean | number
createdAt?: boolean | number
updatedAt?: boolean | number
isActive?: boolean | number
deletedAt?: boolean | number
/** @deprecated isOverridden is deprecated */
isOverridden?: boolean | number
@@ -4450,6 +4461,7 @@ export interface NavigationMenuItemGenqlSelection{
icon?: boolean | number
color?: boolean | number
folderId?: boolean | number
pageLayoutId?: boolean | number
position?: boolean | number
applicationId?: boolean | number
createdAt?: boolean | number
@@ -5149,27 +5161,12 @@ export interface DeletedWorkspaceMemberGenqlSelection{
__scalar?: boolean | number
}
export interface BillingEntitlementGenqlSelection{
key?: boolean | number
value?: boolean | number
__typename?: boolean | number
__scalar?: boolean | number
}
export interface DomainRecordGenqlSelection{
validationType?: boolean | number
export interface RelationGenqlSelection{
type?: boolean | number
status?: boolean | number
key?: boolean | number
value?: boolean | number
__typename?: boolean | number
__scalar?: boolean | number
}
export interface DomainValidRecordsGenqlSelection{
id?: boolean | number
domain?: boolean | number
records?: DomainRecordGenqlSelection
sourceObjectMetadata?: ObjectGenqlSelection
targetObjectMetadata?: ObjectGenqlSelection
sourceFieldMetadata?: FieldGenqlSelection
targetFieldMetadata?: FieldGenqlSelection
__typename?: boolean | number
__scalar?: boolean | number
}
@@ -5284,23 +5281,6 @@ export interface ObjectFieldsConnectionGenqlSelection{
__scalar?: boolean | number
}
export interface UpsertRowLevelPermissionPredicatesResultGenqlSelection{
predicates?: RowLevelPermissionPredicateGenqlSelection
predicateGroups?: RowLevelPermissionPredicateGroupGenqlSelection
__typename?: boolean | number
__scalar?: boolean | number
}
export interface RelationGenqlSelection{
type?: boolean | number
sourceObjectMetadata?: ObjectGenqlSelection
targetObjectMetadata?: ObjectGenqlSelection
sourceFieldMetadata?: FieldGenqlSelection
targetFieldMetadata?: FieldGenqlSelection
__typename?: boolean | number
__scalar?: boolean | number
}
export interface FieldConnectionGenqlSelection{
/** Paging information */
pageInfo?: PageInfoGenqlSelection
@@ -5310,6 +5290,38 @@ export interface FieldConnectionGenqlSelection{
__scalar?: boolean | number
}
export interface BillingEntitlementGenqlSelection{
key?: boolean | number
value?: boolean | number
__typename?: boolean | number
__scalar?: boolean | number
}
export interface DomainRecordGenqlSelection{
validationType?: boolean | number
type?: boolean | number
status?: boolean | number
key?: boolean | number
value?: boolean | number
__typename?: boolean | number
__scalar?: boolean | number
}
export interface DomainValidRecordsGenqlSelection{
id?: boolean | number
domain?: boolean | number
records?: DomainRecordGenqlSelection
__typename?: boolean | number
__scalar?: boolean | number
}
export interface UpsertRowLevelPermissionPredicatesResultGenqlSelection{
predicates?: RowLevelPermissionPredicateGenqlSelection
predicateGroups?: RowLevelPermissionPredicateGroupGenqlSelection
__typename?: boolean | number
__scalar?: boolean | number
}
export interface AuthTokenGenqlSelection{
token?: boolean | number
expiresAt?: boolean | number
@@ -5608,6 +5620,7 @@ export interface LocationGenqlSelection{
}
export interface PlaceDetailsResultGenqlSelection{
street?: boolean | number
state?: boolean | number
postcode?: boolean | number
city?: boolean | number
@@ -6285,6 +6298,7 @@ export interface QueryGenqlSelection{
workspaceLookupAdminPanel?: (UserLookupGenqlSelection & { __args: {workspaceId: Scalars['UUID']} })
getAdminWorkspaceChatThreads?: (AdminWorkspaceChatThreadGenqlSelection & { __args: {workspaceId: Scalars['UUID']} })
getAdminChatThreadMessages?: (AdminChatThreadMessagesGenqlSelection & { __args: {threadId: Scalars['UUID']} })
findOneAdminApplicationRegistration?: (ApplicationRegistrationGenqlSelection & { __args: {id: Scalars['String']} })
getUsageAnalytics?: (UsageAnalyticsGenqlSelection & { __args?: {input?: (UsageAnalyticsInput | null)} })
getPostgresCredentials?: PostgresCredentialsGenqlSelection
findManyPublicDomains?: PublicDomainGenqlSelection
@@ -6403,6 +6417,7 @@ export interface MutationGenqlSelection{
updatePageLayout?: (PageLayoutGenqlSelection & { __args: {id: Scalars['String'], input: UpdatePageLayoutInput} })
destroyPageLayout?: { __args: {id: Scalars['String']} }
updatePageLayoutWithTabsAndWidgets?: (PageLayoutGenqlSelection & { __args: {id: Scalars['String'], input: UpdatePageLayoutWithTabsInput} })
resetPageLayoutToDefault?: (PageLayoutGenqlSelection & { __args: {id: Scalars['String']} })
resetPageLayoutWidgetToDefault?: (PageLayoutWidgetGenqlSelection & { __args: {id: Scalars['String']} })
resetPageLayoutTabToDefault?: (PageLayoutTabGenqlSelection & { __args: {id: Scalars['String']} })
createPageLayoutWidget?: (PageLayoutWidgetGenqlSelection & { __args: {input: CreatePageLayoutWidgetInput} })
@@ -6494,6 +6509,7 @@ export interface MutationGenqlSelection{
verifyTwoFactorAuthenticationMethodForAuthenticatedUser?: (VerifyTwoFactorAuthenticationMethodGenqlSelection & { __args: {otp: Scalars['String']} })
deleteUser?: UserGenqlSelection
deleteUserFromWorkspace?: (UserWorkspaceGenqlSelection & { __args: {workspaceMemberIdToDelete: Scalars['String']} })
updateWorkspaceMemberSettings?: { __args: {input: UpdateWorkspaceMemberSettingsInput} }
updateUserEmail?: { __args: {newEmail: Scalars['String'], verifyEmailRedirectPath?: (Scalars['String'] | null)} }
resendEmailVerificationToken?: (ResendEmailVerificationTokenGenqlSelection & { __args: {email: Scalars['String'], origin: Scalars['String']} })
activateWorkspace?: (WorkspaceGenqlSelection & { __args: {data: ActivateWorkspaceInput} })
@@ -6555,7 +6571,7 @@ export interface AddQuerySubscriptionInput {eventStreamId: Scalars['String'],que
export interface RemoveQueryFromEventStreamInput {eventStreamId: Scalars['String'],queryId: Scalars['String']}
export interface CreateNavigationMenuItemInput {id?: (Scalars['UUID'] | null),userWorkspaceId?: (Scalars['UUID'] | null),targetRecordId?: (Scalars['UUID'] | null),targetObjectMetadataId?: (Scalars['UUID'] | null),viewId?: (Scalars['UUID'] | null),type: NavigationMenuItemType,name?: (Scalars['String'] | null),link?: (Scalars['String'] | null),icon?: (Scalars['String'] | null),color?: (Scalars['String'] | null),folderId?: (Scalars['UUID'] | null),position?: (Scalars['Float'] | null)}
export interface CreateNavigationMenuItemInput {id?: (Scalars['UUID'] | null),userWorkspaceId?: (Scalars['UUID'] | null),targetRecordId?: (Scalars['UUID'] | null),targetObjectMetadataId?: (Scalars['UUID'] | null),viewId?: (Scalars['UUID'] | null),type: NavigationMenuItemType,name?: (Scalars['String'] | null),link?: (Scalars['String'] | null),icon?: (Scalars['String'] | null),color?: (Scalars['String'] | null),folderId?: (Scalars['UUID'] | null),pageLayoutId?: (Scalars['UUID'] | null),position?: (Scalars['Float'] | null)}
export interface UpdateOneNavigationMenuItemInput {
/** The id of the record to update */
@@ -6563,7 +6579,7 @@ id: Scalars['UUID'],
/** The record to update */
update: UpdateNavigationMenuItemInput}
export interface UpdateNavigationMenuItemInput {folderId?: (Scalars['UUID'] | null),position?: (Scalars['Float'] | null),name?: (Scalars['String'] | null),link?: (Scalars['String'] | null),icon?: (Scalars['String'] | null),color?: (Scalars['String'] | null)}
export interface UpdateNavigationMenuItemInput {folderId?: (Scalars['UUID'] | null),position?: (Scalars['Float'] | null),name?: (Scalars['String'] | null),link?: (Scalars['String'] | null),icon?: (Scalars['String'] | null),color?: (Scalars['String'] | null),pageLayoutId?: (Scalars['UUID'] | null)}
export interface CreateViewFilterGroupInput {id?: (Scalars['UUID'] | null),parentViewFilterGroupId?: (Scalars['UUID'] | null),logicalOperator?: (ViewFilterGroupLogicalOperator | null),positionInViewFilterGroup?: (Scalars['Float'] | null),viewId: Scalars['UUID']}
@@ -6845,6 +6861,8 @@ export interface UpdateApplicationRegistrationVariableInput {id: Scalars['String
export interface UpdateApplicationRegistrationVariablePayload {value?: (Scalars['String'] | null),description?: (Scalars['String'] | null)}
export interface UpdateWorkspaceMemberSettingsInput {workspaceMemberId: Scalars['UUID'],update: Scalars['JSON']}
export interface ActivateWorkspaceInput {displayName?: (Scalars['String'] | null)}
export interface UpdateWorkspaceInput {subdomain?: (Scalars['String'] | null),customDomain?: (Scalars['String'] | null),displayName?: (Scalars['String'] | null),logo?: (Scalars['String'] | null),inviteHash?: (Scalars['String'] | null),isPublicInviteLinkEnabled?: (Scalars['Boolean'] | null),allowImpersonation?: (Scalars['Boolean'] | null),isGoogleAuthEnabled?: (Scalars['Boolean'] | null),isMicrosoftAuthEnabled?: (Scalars['Boolean'] | null),isPasswordAuthEnabled?: (Scalars['Boolean'] | null),isGoogleAuthBypassEnabled?: (Scalars['Boolean'] | null),isMicrosoftAuthBypassEnabled?: (Scalars['Boolean'] | null),isPasswordAuthBypassEnabled?: (Scalars['Boolean'] | null),defaultRoleId?: (Scalars['UUID'] | null),isTwoFactorAuthenticationEnforced?: (Scalars['Boolean'] | null),trashRetentionDays?: (Scalars['Float'] | null),eventLogRetentionDays?: (Scalars['Float'] | null),fastModel?: (Scalars['String'] | null),smartModel?: (Scalars['String'] | null),aiAdditionalInstructions?: (Scalars['String'] | null),editableProfileFields?: (Scalars['String'][] | null),enabledAiModelIds?: (Scalars['String'][] | null),useRecommendedModels?: (Scalars['Boolean'] | null)}
@@ -8232,26 +8250,10 @@ export interface LogicFunctionLogsInput {applicationId?: (Scalars['UUID'] | null
const BillingEntitlement_possibleTypes: string[] = ['BillingEntitlement']
export const isBillingEntitlement = (obj?: { __typename?: any } | null): obj is BillingEntitlement => {
if (!obj?.__typename) throw new Error('__typename is missing in "isBillingEntitlement"')
return BillingEntitlement_possibleTypes.includes(obj.__typename)
}
const DomainRecord_possibleTypes: string[] = ['DomainRecord']
export const isDomainRecord = (obj?: { __typename?: any } | null): obj is DomainRecord => {
if (!obj?.__typename) throw new Error('__typename is missing in "isDomainRecord"')
return DomainRecord_possibleTypes.includes(obj.__typename)
}
const DomainValidRecords_possibleTypes: string[] = ['DomainValidRecords']
export const isDomainValidRecords = (obj?: { __typename?: any } | null): obj is DomainValidRecords => {
if (!obj?.__typename) throw new Error('__typename is missing in "isDomainValidRecords"')
return DomainValidRecords_possibleTypes.includes(obj.__typename)
const Relation_possibleTypes: string[] = ['Relation']
export const isRelation = (obj?: { __typename?: any } | null): obj is Relation => {
if (!obj?.__typename) throw new Error('__typename is missing in "isRelation"')
return Relation_possibleTypes.includes(obj.__typename)
}
@@ -8352,22 +8354,6 @@ export interface LogicFunctionLogsInput {applicationId?: (Scalars['UUID'] | null
const UpsertRowLevelPermissionPredicatesResult_possibleTypes: string[] = ['UpsertRowLevelPermissionPredicatesResult']
export const isUpsertRowLevelPermissionPredicatesResult = (obj?: { __typename?: any } | null): obj is UpsertRowLevelPermissionPredicatesResult => {
if (!obj?.__typename) throw new Error('__typename is missing in "isUpsertRowLevelPermissionPredicatesResult"')
return UpsertRowLevelPermissionPredicatesResult_possibleTypes.includes(obj.__typename)
}
const Relation_possibleTypes: string[] = ['Relation']
export const isRelation = (obj?: { __typename?: any } | null): obj is Relation => {
if (!obj?.__typename) throw new Error('__typename is missing in "isRelation"')
return Relation_possibleTypes.includes(obj.__typename)
}
const FieldConnection_possibleTypes: string[] = ['FieldConnection']
export const isFieldConnection = (obj?: { __typename?: any } | null): obj is FieldConnection => {
if (!obj?.__typename) throw new Error('__typename is missing in "isFieldConnection"')
@@ -8376,6 +8362,38 @@ export interface LogicFunctionLogsInput {applicationId?: (Scalars['UUID'] | null
const BillingEntitlement_possibleTypes: string[] = ['BillingEntitlement']
export const isBillingEntitlement = (obj?: { __typename?: any } | null): obj is BillingEntitlement => {
if (!obj?.__typename) throw new Error('__typename is missing in "isBillingEntitlement"')
return BillingEntitlement_possibleTypes.includes(obj.__typename)
}
const DomainRecord_possibleTypes: string[] = ['DomainRecord']
export const isDomainRecord = (obj?: { __typename?: any } | null): obj is DomainRecord => {
if (!obj?.__typename) throw new Error('__typename is missing in "isDomainRecord"')
return DomainRecord_possibleTypes.includes(obj.__typename)
}
const DomainValidRecords_possibleTypes: string[] = ['DomainValidRecords']
export const isDomainValidRecords = (obj?: { __typename?: any } | null): obj is DomainValidRecords => {
if (!obj?.__typename) throw new Error('__typename is missing in "isDomainValidRecords"')
return DomainValidRecords_possibleTypes.includes(obj.__typename)
}
const UpsertRowLevelPermissionPredicatesResult_possibleTypes: string[] = ['UpsertRowLevelPermissionPredicatesResult']
export const isUpsertRowLevelPermissionPredicatesResult = (obj?: { __typename?: any } | null): obj is UpsertRowLevelPermissionPredicatesResult => {
if (!obj?.__typename) throw new Error('__typename is missing in "isUpsertRowLevelPermissionPredicatesResult"')
return UpsertRowLevelPermissionPredicatesResult_possibleTypes.includes(obj.__typename)
}
const AuthToken_possibleTypes: string[] = ['AuthToken']
export const isAuthToken = (obj?: { __typename?: any } | null): obj is AuthToken => {
if (!obj?.__typename) throw new Error('__typename is missing in "isAuthToken"')
@@ -9249,7 +9267,8 @@ export const enumViewType = {
TABLE: 'TABLE' as const,
KANBAN: 'KANBAN' as const,
CALENDAR: 'CALENDAR' as const,
FIELDS_WIDGET: 'FIELDS_WIDGET' as const
FIELDS_WIDGET: 'FIELDS_WIDGET' as const,
TABLE_WIDGET: 'TABLE_WIDGET' as const
}
export const enumViewKey = {
@@ -9393,7 +9412,8 @@ export const enumFieldDisplayMode = {
export const enumPageLayoutType = {
RECORD_INDEX: 'RECORD_INDEX' as const,
RECORD_PAGE: 'RECORD_PAGE' as const,
DASHBOARD: 'DASHBOARD' as const
DASHBOARD: 'DASHBOARD' as const,
STANDALONE_PAGE: 'STANDALONE_PAGE' as const
}
export const enumBillingPlanKey = {
@@ -9432,7 +9452,8 @@ export const enumNavigationMenuItemType = {
FOLDER: 'FOLDER' as const,
LINK: 'LINK' as const,
OBJECT: 'OBJECT' as const,
RECORD: 'RECORD' as const
RECORD: 'RECORD' as const,
PAGE_LAYOUT: 'PAGE_LAYOUT' as const
}
export const enumMetadataEventAction = {
@@ -9576,6 +9597,11 @@ export const enumQueueMetricsTimeRange = {
OneHour: 'OneHour' as const
}
export const enumRelationType = {
ONE_TO_MANY: 'ONE_TO_MANY' as const,
MANY_TO_ONE: 'MANY_TO_ONE' as const
}
export const enumBillingEntitlementKey = {
SSO: 'SSO' as const,
CUSTOM_DOMAIN: 'CUSTOM_DOMAIN' as const,
@@ -9583,11 +9609,6 @@ export const enumBillingEntitlementKey = {
AUDIT_LOGS: 'AUDIT_LOGS' as const
}
export const enumRelationType = {
ONE_TO_MANY: 'ONE_TO_MANY' as const,
MANY_TO_ONE: 'MANY_TO_ONE' as const
}
export const enumEmailingDomainDriver = {
AWS_SES: 'AWS_SES' as const
}
@@ -9670,6 +9691,7 @@ export const enumEngineComponentKey = {
export const enumCommandMenuItemAvailabilityType = {
GLOBAL: 'GLOBAL' as const,
GLOBAL_OBJECT_CONTEXT: 'GLOBAL_OBJECT_CONTEXT' as const,
RECORD_SELECTION: 'RECORD_SELECTION' as const,
FALLBACK: 'FALLBACK' as const
}
@@ -63,7 +63,7 @@ export default {
209,
221,
238,
255,
253,
292,
293,
303,
@@ -89,9 +89,9 @@ export default {
380,
387,
418,
499,
504,
505
500,
505,
506
],
"types": {
"BillingProductDTO": {
@@ -789,10 +789,10 @@ export default {
3
],
"relation": [
254
237
],
"morphRelations": [
254
237
],
"object": [
46
@@ -851,7 +851,7 @@ export default {
36
],
"objectMetadata": [
247,
245,
{
"paging": [
39,
@@ -864,7 +864,7 @@ export default {
}
],
"indexFieldMetadatas": [
245,
243,
{
"paging": [
39,
@@ -1109,7 +1109,7 @@ export default {
37
],
"fields": [
252,
250,
{
"paging": [
39,
@@ -1122,7 +1122,7 @@ export default {
}
],
"indexMetadatas": [
250,
248,
{
"paging": [
39,
@@ -1283,6 +1283,9 @@ export default {
"updatedAt": [
4
],
"isActive": [
6
],
"deletedAt": [
4
],
@@ -1456,6 +1459,9 @@ export default {
"updatedAt": [
4
],
"isActive": [
6
],
"deletedAt": [
4
],
@@ -1669,9 +1675,6 @@ export default {
"defaultRole": [
29
],
"version": [
1
],
"fastModel": [
1
],
@@ -1703,7 +1706,7 @@ export default {
131
],
"billingEntitlements": [
237
252
],
"hasValidEnterpriseKey": [
6
@@ -1903,6 +1906,9 @@ export default {
"updatedAt": [
4
],
"isActive": [
6
],
"deletedAt": [
4
],
@@ -2561,6 +2567,9 @@ export default {
"updatedAt": [
4
],
"isActive": [
6
],
"deletedAt": [
4
],
@@ -3047,6 +3056,9 @@ export default {
"folderId": [
3
],
"pageLayoutId": [
3
],
"position": [
11
],
@@ -4419,9 +4431,179 @@ export default {
1
]
},
"Relation": {
"type": [
238
],
"sourceObjectMetadata": [
46
],
"targetObjectMetadata": [
46
],
"sourceFieldMetadata": [
34
],
"targetFieldMetadata": [
34
],
"__typename": [
1
]
},
"RelationType": {},
"IndexEdge": {
"node": [
37
],
"cursor": [
40
],
"__typename": [
1
]
},
"PageInfo": {
"hasNextPage": [
6
],
"hasPreviousPage": [
6
],
"startCursor": [
40
],
"endCursor": [
40
],
"__typename": [
1
]
},
"IndexConnection": {
"pageInfo": [
240
],
"edges": [
239
],
"__typename": [
1
]
},
"IndexFieldEdge": {
"node": [
36
],
"cursor": [
40
],
"__typename": [
1
]
},
"IndexIndexFieldMetadatasConnection": {
"pageInfo": [
240
],
"edges": [
242
],
"__typename": [
1
]
},
"ObjectEdge": {
"node": [
46
],
"cursor": [
40
],
"__typename": [
1
]
},
"IndexObjectMetadataConnection": {
"pageInfo": [
240
],
"edges": [
244
],
"__typename": [
1
]
},
"ObjectRecordCount": {
"objectNamePlural": [
1
],
"totalCount": [
21
],
"__typename": [
1
]
},
"ObjectConnection": {
"pageInfo": [
240
],
"edges": [
244
],
"__typename": [
1
]
},
"ObjectIndexMetadatasConnection": {
"pageInfo": [
240
],
"edges": [
239
],
"__typename": [
1
]
},
"FieldEdge": {
"node": [
34
],
"cursor": [
40
],
"__typename": [
1
]
},
"ObjectFieldsConnection": {
"pageInfo": [
240
],
"edges": [
249
],
"__typename": [
1
]
},
"FieldConnection": {
"pageInfo": [
240
],
"edges": [
249
],
"__typename": [
1
]
},
"BillingEntitlement": {
"key": [
238
253
],
"value": [
6
@@ -4459,145 +4641,7 @@ export default {
1
],
"records": [
239
],
"__typename": [
1
]
},
"IndexEdge": {
"node": [
37
],
"cursor": [
40
],
"__typename": [
1
]
},
"PageInfo": {
"hasNextPage": [
6
],
"hasPreviousPage": [
6
],
"startCursor": [
40
],
"endCursor": [
40
],
"__typename": [
1
]
},
"IndexConnection": {
"pageInfo": [
242
],
"edges": [
241
],
"__typename": [
1
]
},
"IndexFieldEdge": {
"node": [
36
],
"cursor": [
40
],
"__typename": [
1
]
},
"IndexIndexFieldMetadatasConnection": {
"pageInfo": [
242
],
"edges": [
244
],
"__typename": [
1
]
},
"ObjectEdge": {
"node": [
46
],
"cursor": [
40
],
"__typename": [
1
]
},
"IndexObjectMetadataConnection": {
"pageInfo": [
242
],
"edges": [
246
],
"__typename": [
1
]
},
"ObjectRecordCount": {
"objectNamePlural": [
1
],
"totalCount": [
21
],
"__typename": [
1
]
},
"ObjectConnection": {
"pageInfo": [
242
],
"edges": [
246
],
"__typename": [
1
]
},
"ObjectIndexMetadatasConnection": {
"pageInfo": [
242
],
"edges": [
241
],
"__typename": [
1
]
},
"FieldEdge": {
"node": [
34
],
"cursor": [
40
],
"__typename": [
1
]
},
"ObjectFieldsConnection": {
"pageInfo": [
242
],
"edges": [
251
254
],
"__typename": [
1
@@ -4614,38 +4658,6 @@ export default {
1
]
},
"Relation": {
"type": [
255
],
"sourceObjectMetadata": [
46
],
"targetObjectMetadata": [
46
],
"sourceFieldMetadata": [
34
],
"targetFieldMetadata": [
34
],
"__typename": [
1
]
},
"RelationType": {},
"FieldConnection": {
"pageInfo": [
242
],
"edges": [
251
],
"__typename": [
1
]
},
"AuthToken": {
"token": [
1
@@ -5158,6 +5170,9 @@ export default {
]
},
"PlaceDetailsResult": {
"street": [
1
],
"state": [
1
],
@@ -5975,7 +5990,7 @@ export default {
},
"AgentChatThreadConnection": {
"pageInfo": [
242
240
],
"edges": [
335
@@ -6582,7 +6597,7 @@ export default {
}
],
"objectRecordCounts": [
248
246
],
"object": [
46,
@@ -6594,7 +6609,7 @@ export default {
}
],
"objects": [
249,
247,
{
"paging": [
39,
@@ -6616,7 +6631,7 @@ export default {
}
],
"indexMetadatas": [
243,
241,
{
"paging": [
39,
@@ -6665,7 +6680,7 @@ export default {
}
],
"fields": [
256,
251,
{
"paging": [
39,
@@ -7151,6 +7166,15 @@ export default {
]
}
],
"findOneAdminApplicationRegistration": [
7,
{
"id": [
1,
"String!"
]
}
],
"getUsageAnalytics": [
283,
{
@@ -8079,6 +8103,15 @@ export default {
]
}
],
"resetPageLayoutToDefault": [
114,
{
"id": [
1,
"String!"
]
}
],
"resetPageLayoutWidgetToDefault": [
75,
{
@@ -8340,7 +8373,7 @@ export default {
}
],
"upsertRowLevelPermissionPredicates": [
253,
256,
{
"input": [
456,
@@ -9035,6 +9068,15 @@ export default {
]
}
],
"updateWorkspaceMemberSettings": [
6,
{
"input": [
488,
"UpdateWorkspaceMemberSettingsInput!"
]
}
],
"updateUserEmail": [
6,
{
@@ -9064,7 +9106,7 @@ export default {
66,
{
"data": [
488,
489,
"ActivateWorkspaceInput!"
]
}
@@ -9073,7 +9115,7 @@ export default {
66,
{
"data": [
489,
490,
"UpdateWorkspaceInput!"
]
}
@@ -9082,13 +9124,13 @@ export default {
66
],
"checkCustomDomainValidRecords": [
240
255
],
"createOIDCIdentityProvider": [
232,
{
"input": [
490,
491,
"SetupOIDCSsoInput!"
]
}
@@ -9097,7 +9139,7 @@ export default {
232,
{
"input": [
491,
492,
"SetupSAMLSsoInput!"
]
}
@@ -9106,7 +9148,7 @@ export default {
228,
{
"input": [
492,
493,
"DeleteSsoInput!"
]
}
@@ -9115,7 +9157,7 @@ export default {
229,
{
"input": [
493,
494,
"EditSsoInput!"
]
}
@@ -9137,7 +9179,7 @@ export default {
323,
{
"input": [
494,
495,
"SendEmailInput!"
]
}
@@ -9163,7 +9205,7 @@ export default {
"String!"
],
"connectionParameters": [
496,
497,
"EmailAccountConnectionParameters!"
],
"id": [
@@ -9175,7 +9217,7 @@ export default {
157,
{
"input": [
498,
499,
"UpdateLabPublicFeatureFlagInput!"
]
}
@@ -9253,7 +9295,7 @@ export default {
6,
{
"role": [
499,
500,
"AiModelRole!"
],
"modelId": [
@@ -9415,7 +9457,7 @@ export default {
}
],
"checkPublicDomainValidRecords": [
240,
255,
{
"domain": [
1,
@@ -9458,7 +9500,7 @@ export default {
68,
{
"input": [
500,
501,
"CreateOneAppTokenInput!"
]
}
@@ -9494,7 +9536,7 @@ export default {
6,
{
"workspaceMigration": [
502,
503,
"WorkspaceMigrationInput!"
]
}
@@ -9568,7 +9610,7 @@ export default {
"String!"
],
"fileFolder": [
505,
506,
"FileFolder!"
],
"filePath": [
@@ -9662,6 +9704,9 @@ export default {
"folderId": [
3
],
"pageLayoutId": [
3
],
"position": [
11
],
@@ -9699,6 +9744,9 @@ export default {
"color": [
1
],
"pageLayoutId": [
3
],
"__typename": [
1
]
@@ -11601,6 +11649,17 @@ export default {
1
]
},
"UpdateWorkspaceMemberSettingsInput": {
"workspaceMemberId": [
3
],
"update": [
15
],
"__typename": [
1
]
},
"ActivateWorkspaceInput": {
"displayName": [
1
@@ -11765,7 +11824,7 @@ export default {
1
],
"files": [
495
496
],
"__typename": [
1
@@ -11784,13 +11843,13 @@ export default {
},
"EmailAccountConnectionParameters": {
"IMAP": [
497
498
],
"SMTP": [
497
498
],
"CALDAV": [
497
498
],
"__typename": [
1
@@ -11830,7 +11889,7 @@ export default {
"AiModelRole": {},
"CreateOneAppTokenInput": {
"appToken": [
501
502
],
"__typename": [
1
@@ -11846,7 +11905,7 @@ export default {
},
"WorkspaceMigrationInput": {
"actions": [
503
504
],
"__typename": [
1
@@ -11854,7 +11913,7 @@ export default {
},
"WorkspaceMigrationDeleteActionInput": {
"type": [
504
505
],
"metadataName": [
355
@@ -11882,7 +11941,7 @@ export default {
260,
{
"input": [
507,
508,
"LogicFunctionLogsInput!"
]
}
@@ -220,6 +220,7 @@ The scaffolder already started a local Twenty server for you. To manage it later
|---------|-------------|
| `yarn twenty server start` | Start the local server (pulls image if needed) |
| `yarn twenty server start --port 3030` | Start on a custom port |
| `yarn twenty server start --test` | Start a separate test instance on port 2021 |
| `yarn twenty server stop` | Stop the server (preserves data) |
| `yarn twenty server status` | Show server status, URL, and credentials |
| `yarn twenty server logs` | Stream server logs |
@@ -228,6 +229,20 @@ The scaffolder already started a local Twenty server for you. To manage it later
Data is persisted across restarts in two Docker volumes (`twenty-app-dev-data` for PostgreSQL, `twenty-app-dev-storage` for files). Use `reset` to wipe everything and start fresh.
### Running a test instance
Pass `--test` to any `server` command to manage a second, fully isolated instance — useful for running integration tests or experimenting without touching your main dev data.
| Command | Description |
|---------|-------------|
| `yarn twenty server start --test` | Start the test instance (defaults to port 2021) |
| `yarn twenty server stop --test` | Stop the test instance |
| `yarn twenty server status --test` | Show test instance status, URL, and credentials |
| `yarn twenty server logs --test` | Stream test instance logs |
| `yarn twenty server reset --test` | Wipe test data and start fresh |
The test instance runs in its own Docker container (`twenty-app-dev-test`) with dedicated volumes (`twenty-app-dev-test-data`, `twenty-app-dev-test-storage`) and config, so it can run in parallel with your main instance without conflicts. Combine `--test` with `--port` to override the default 2021.
<Note>
The server requires **Docker** to be running. If you see a "Docker not running" error, make sure Docker Desktop (or the Docker daemon) is started.
</Note>
@@ -80,6 +80,57 @@ Pre-release tags work as expected: bumping `1.0.0-rc.1` → `1.0.0-rc.2` is allo
{/* TODO: add screenshot of the Upgrade button */}
## Automated CI/CD (scaffolded workflows)
Apps generated with `create-twenty-app` ship with two GitHub Actions workflows out of the box, under `.github/workflows/`. They are ready to run as soon as you push the repo to GitHub — no extra setup is needed for CI, and CD only requires a single secret.
### CI — `ci.yml`
Runs integration tests on every push to `main` and every pull request.
**What it does:**
1. Checks out your app's source.
2. Spawns an isolated Twenty test instance using the `twentyhq/twenty/.github/actions/spawn-twenty-app-dev-test@main` composite action (the CI equivalent of `yarn twenty server start --test`).
3. Enables Corepack, sets up Node.js from your `.nvmrc`, and installs dependencies with `yarn install --immutable`.
4. Runs `yarn test`, passing `TWENTY_API_URL` and `TWENTY_API_KEY` from the spawned instance so your tests can talk to a real server.
**Config knobs:**
- `TWENTY_VERSION` (env, defaults to `latest`) — pin the Twenty server version used in CI by editing this in `ci.yml`.
- Concurrency is grouped by `github.ref` and cancels in-progress runs on new pushes.
No secrets are required — the test instance is ephemeral and lives only for the duration of the job.
### CD — `cd.yml`
Deploys your app to a configured Twenty server on every push to `main`, and optionally from a pull request when the `deploy` label is applied.
**What it does:**
1. Checks out the PR head (for labeled PRs) or the pushed commit.
2. Runs `twentyhq/twenty/.github/actions/deploy-twenty-app@main` — the CI equivalent of `yarn twenty deploy`.
3. Runs `twentyhq/twenty/.github/actions/install-twenty-app@main` so the newly deployed version is installed into the target workspace.
**Required configuration:**
| Setting | Where | Purpose |
|---------|-------|---------|
| `TWENTY_DEPLOY_URL` | `env` in `cd.yml` (defaults to `http://localhost:3000`) | The Twenty server to deploy to. Change this to your real server URL before first use. |
| `TWENTY_DEPLOY_API_KEY` | GitHub repo **Settings → Secrets and variables → Actions** | API key with deploy permission on the target server. |
<Note>
The default `TWENTY_DEPLOY_URL` of `http://localhost:3000` is a placeholder — it will not reach anything from a GitHub-hosted runner. Update it to your server's public URL (or use a self-hosted runner with network access) before enabling CD.
</Note>
**Triggering a preview deploy from a PR:**
Add the `deploy` label to a pull request. The `if:` guard in `cd.yml` will run the job for that PR using the PR's head commit, letting you validate a change on the target server before merging.
### Pinning the reusable actions
Both workflows reference reusable actions at `@main`, so action updates in the `twentyhq/twenty` repo are picked up automatically. If you want deterministic builds, replace `@main` with a commit SHA or release tag on each `uses:` line.
## Publishing to npm
Publishing to npm makes your app discoverable in the Twenty marketplace. Any Twenty workspace can browse, install, and upgrade marketplace apps directly from the UI.
@@ -87,7 +138,7 @@ Publishing to npm makes your app discoverable in the Twenty marketplace. Any Twe
### Requirements
- An [npm](https://www.npmjs.com) account
- The `twenty-app` keyword in your `package.json` `keywords` array (already included when you scaffold with `create-twenty-app`)
- The `twenty-app` keyword in your `package.json` `keywords` array (add it manually — it is not included by default in the `create-twenty-app` template)
```json filename="package.json"
{
@@ -220,6 +220,7 @@ npx create-twenty-app@latest my-twenty-app --example postcard
| -------------------------------------- | --------------------------------------------- |
| `yarn twenty server start` | بدء الخادم المحلي (يسحب الصورة إذا لزم الأمر) |
| `yarn twenty server start --port 3030` | ابدأ على منفذ مخصّص |
| `yarn twenty server start --test` | ابدأ مثيل اختبار منفصل على المنفذ 2021 |
| `yarn twenty server stop` | إيقاف الخادم (مع الحفاظ على البيانات) |
| `yarn twenty server status` | عرض حالة الخادم، وعنوان URL، وبيانات الاعتماد |
| `yarn twenty server logs` | بث سجلات الخادم |
@@ -228,6 +229,20 @@ npx create-twenty-app@latest my-twenty-app --example postcard
يتم الاحتفاظ بالبيانات عبر عمليات إعادة التشغيل في وحدتي تخزين Docker (`twenty-app-dev-data` لـ PostgreSQL، و`twenty-app-dev-storage` للملفات). استخدم `reset` لمسح كل شيء والبدء من جديد.
### تشغيل مثيل الاختبار
مرر `--test` إلى أي أمر `server` لإدارة مثيل ثانٍ معزول تمامًا — مفيد لتشغيل اختبارات التكامل أو للتجربة من دون لمس بيانات التطوير الرئيسية لديك.
| أمر | الوصف |
| ---------------------------------- | ---------------------------------------------------- |
| `yarn twenty server start --test` | بدء مثيل الاختبار (المنفذ الافتراضي 2021) |
| `yarn twenty server stop --test` | إيقاف مثيل الاختبار |
| `yarn twenty server status --test` | عرض حالة مثيل الاختبار، وعنوان URL، وبيانات الاعتماد |
| `yarn twenty server logs --test` | بث سجلات مثيل الاختبار |
| `yarn twenty server reset --test` | محو بيانات الاختبار والبدء من جديد |
يعمل مثيل الاختبار في حاوية Docker خاصة به (`twenty-app-dev-test`) مع وحدات تخزين مخصصة (`twenty-app-dev-test-data`, `twenty-app-dev-test-storage`) وتهيئة مستقلة، بحيث يمكنه العمل بالتوازي مع مثيلك الرئيسي من دون تعارضات. اجمع `--test` مع `--port` لتجاوز القيمة الافتراضية 2021.
<Note>
يتطلّب الخادم أن يكون **Docker** قيد التشغيل. إذا ظهرت لك رسالة خطأ "Docker not running"، فتأكّد من تشغيل Docker Desktop (أو خادوم Docker).
</Note>
@@ -80,6 +80,57 @@ yarn twenty deploy
{/* TODO: add screenshot of the Upgrade button */}
## CI/CD المؤتمتة (مهام سير عمل مُولَّدة بالقوالب)
التطبيقات المُولَّدة باستخدام `create-twenty-app` تأتي افتراضيًا مع مهمَّتي سير عمل من GitHub Actions ضمن `.github/workflows/`. هي جاهزة للتشغيل بمجرد دفع المستودع إلى GitHub — لا حاجة لأي إعداد إضافي لـ CI، وCD يتطلّب سرًّا واحدًا فقط.
### CI — `ci.yml`
يشغّل اختبارات التكامل عند كل دفع إلى `main` وعند كل طلب سحب.
**ماذا يفعل:**
1. يجلب مصدر تطبيقك.
2. ينشئ مثيلاً اختبارياً معزولاً من Twenty باستخدام الإجراء المركّب `twentyhq/twenty/.github/actions/spawn-twenty-app-dev-test@main` (المكافئ في CI للأمر `yarn twenty server start --test`).
3. يُفعِّل Corepack، ويُعدّ Node.js من ملف `.nvmrc` لديك، ويثبّت التبعيات بواسطة `yarn install --immutable`.
4. يشغّل `yarn test`، ويمرّر `TWENTY_API_URL` و`TWENTY_API_KEY` من المثيل الذي تم إنشاؤه بحيث تتمكّن اختباراتك من التواصل مع خادم حقيقي.
**خيارات التكوين:**
* `TWENTY_VERSION` (متغيّر بيئة، القيمة الافتراضية `latest`) — ثبّت نسخة خادم Twenty المستخدمة في CI عبر تعديل هذا في `ci.yml`.
* يتم تجميع التشغيل المتزامن حسب `github.ref` ويلغي التشغيلات قيد التقدّم عند أي دفع جديد.
لا تتطلّب أي أسرار — مثيل الاختبار مؤقّت ويستمر فقط طوال مدّة المهمّة.
### CD — `cd.yml`
ينشر تطبيقك إلى خادم Twenty مُهيّأ عند كل دفع إلى `main`، وبشكل اختياري من طلب سحب عند تطبيق الوسم `deploy`.
**ماذا يفعل:**
1. يجلب رأس طلب السحب (للطلبات الموسومة) أو الالتزام المدفوع.
2. يشغّل `twentyhq/twenty/.github/actions/deploy-twenty-app@main` — وهو المكافئ في CI للأمر `yarn twenty deploy`.
3. يشغّل `twentyhq/twenty/.github/actions/install-twenty-app@main` بحيث تُثبَّت النسخة المُنشَرة حديثًا في مساحة العمل المستهدفة.
**التكوين المطلوب:**
| الإعداد | حيث | الغرض |
| ----------------------- | --------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| `TWENTY_DEPLOY_URL` | `env` في `cd.yml` (القيمة الافتراضية `http://localhost:3000`) | خادم Twenty الذي سيتم النشر إليه. غيّر هذا إلى عنوان URL لخادمك الحقيقي قبل أول استخدام. |
| `TWENTY_DEPLOY_API_KEY` | في مستودع GitHub **Settings → Secrets and variables → Actions** | مفتاح API يمتلك إذن النشر على الخادم المستهدف. |
<Note>
القيمة الافتراضية لـ `TWENTY_DEPLOY_URL` وهي `http://localhost:3000` مجرد عنصر نائب — لن تصل إلى أي شيء من مُشغِّل مستضاف لدى GitHub. حدّثها إلى عنوان URL العام لخادمك (أو استخدم مُشغِّلًا مستضافًا ذاتيًا مع وصول شبكي) قبل تمكين CD.
</Note>
**تشغيل نشر معاينة من طلب سحب:**
أضِف الوسم `deploy` إلى طلب سحب. الشرط `if:` في `cd.yml` سيشغّل المهمّة لذلك الطلب مستخدمًا التزام رأس الطلب، مما يتيح لك التحقّق من التغيير على الخادم المستهدف قبل الدمج.
### تثبيت الإجراءات القابلة لإعادة الاستخدام
يشير كلا سيرَي العمل إلى إجراءات قابلة لإعادة الاستخدام عند `@main`، لذا تُلتقط تحديثات الإجراءات في مستودع `twentyhq/twenty` تلقائيًا. إذا كنت تريد بناءات حتمية، فاستبدِل `@main` بقيمة SHA لالتزام أو بوسم إصدار في كل سطر `uses:`.
## النشر على npm
يُتيح النشر على npm إمكانية العثور على تطبيقك في سوق Twenty. يمكن لأي مساحة عمل في Twenty استعراض تطبيقات السوق وتثبيتها وترقيتها مباشرةً من واجهة المستخدم.
@@ -87,7 +138,7 @@ yarn twenty deploy
### المتطلبات
* حساب على [npm](https://www.npmjs.com)
* الكلمة المفتاحية `twenty-app` في مصفوفة `keywords` في `package.json` (موجودة مسبقًا عند تهيئة المشروع باستخدام `create-twenty-app`)
* الكلمة المفتاحية `twenty-app` في مصفوفة `keywords` في `package.json` (أضفها يدويًا — فهي غير مضمنة افتراضيًا في قالب `create-twenty-app`)
```json filename="package.json"
{
@@ -220,6 +220,7 @@ Nástroj pro vytvoření kostry vám již spustil lokální server Twenty. Pro j
| -------------------------------------- | ------------------------------------------------------ |
| `yarn twenty server start` | Spustí lokální server (v případě potřeby stáhne image) |
| `yarn twenty server start --port 3030` | Spustí na vlastním portu |
| `yarn twenty server start --test` | Spusťte samostatnou testovací instanci na portu 2021 |
| `yarn twenty server stop` | Zastaví server (zachová data) |
| `yarn twenty server status` | Zobrazí stav serveru, URL a přihlašovací údaje |
| `yarn twenty server logs` | Streamuje protokoly serveru |
@@ -228,6 +229,20 @@ Nástroj pro vytvoření kostry vám již spustil lokální server Twenty. Pro j
Data přetrvávají při restartech ve dvou svazcích Dockeru (`twenty-app-dev-data` pro PostgreSQL, `twenty-app-dev-storage` pro soubory). Pomocí `reset` vymažte vše a začněte znovu.
### Spuštění testovací instance
Předejte volbu `--test` libovolnému příkazu `server` pro správu druhé, plně izolované instance — užitečné pro spouštění integračních testů nebo experimentování, aniž byste se dotkli svých hlavních vývojových dat.
| Příkaz | Popis |
| ---------------------------------- | --------------------------------------------------------- |
| `yarn twenty server start --test` | Spustí testovací instanci (výchozí port je 2021) |
| `yarn twenty server stop --test` | Zastaví testovací instanci |
| `yarn twenty server status --test` | Zobrazí stav testovací instance, URL a přihlašovací údaje |
| `yarn twenty server logs --test` | Streamuje protokoly testovací instance |
| `yarn twenty server reset --test` | Vymaže testovací data a začne znovu |
Testovací instance běží ve vlastním kontejneru Docker (`twenty-app-dev-test`) s vyhrazenými svazky (`twenty-app-dev-test-data`, `twenty-app-dev-test-storage`) a konfigurací, takže může běžet paralelně s vaší hlavní instancí bez konfliktů. Zkombinujte `--test` s `--port` pro změnu výchozího portu 2021.
<Note>
Server vyžaduje, aby **Docker** běžel. Pokud vidíte chybu "Docker not running", ujistěte se, že je spuštěný Docker Desktop (nebo démon Dockeru).
</Note>
@@ -80,6 +80,57 @@ Předběžné tagy fungují podle očekávání: zvýšení z `1.0.0-rc.1` → `
{/* TODO: add screenshot of the Upgrade button */}
## Automatizované CI/CD (předpřipravené workflowy)
Aplikace vygenerované pomocí `create-twenty-app` jsou hned připravené se dvěma workflowy GitHub Actions ve složce `.github/workflows/`. Jsou připravené ke spuštění hned, jakmile repozitář pushnete na GitHub — pro CI není potřeba žádné další nastavení a CD vyžaduje pouze jeden secret.
### CI — `ci.yml`
Automaticky spouští integrační testy při každém pushi do `main` a u pull requestů.
**K čemu slouží:**
1. Provede checkout zdrojového kódu vaší aplikace.
2. Spustí izolovanou testovací instanci Twenty pomocí složené akce `twentyhq/twenty/.github/actions/spawn-twenty-app-dev-test@main` (ekvivalent v CI k `yarn twenty server start --test`).
3. Povolí Corepack, nastaví Node.js podle vašeho `.nvmrc` a nainstaluje závislosti pomocí `yarn install --immutable`.
4. Spustí `yarn test` a předá `TWENTY_API_URL` a `TWENTY_API_KEY` ze spuštěné instance, aby vaše testy mohly komunikovat se skutečným serverem.
**Konfigurační volby:**
* `TWENTY_VERSION` (env, výchozí hodnota `latest`) — uzamkněte v CI používanou verzi serveru Twenty úpravou této hodnoty v `ci.yml`.
* Souběžné běhy jsou seskupeny podle `github.ref` a při nových pushích ruší právě probíhající běhy.
Nejsou potřeba žádné secrety — testovací instance je efemérní a existuje pouze po dobu běhu úlohy.
### CD — `cd.yml`
Nasazuje vaši aplikaci na nakonfigurovaný server Twenty při každém pushi do `main` a volitelně také z pull requestu, pokud je přidán štítek `deploy`.
**K čemu slouží:**
1. Provede checkout headu PR (u označených PR) nebo pushnutého commitu.
2. Spustí `twentyhq/twenty/.github/actions/deploy-twenty-app@main` — ekvivalent v CI k `yarn twenty deploy`.
3. Spustí `twentyhq/twenty/.github/actions/install-twenty-app@main`, aby se nově nasazená verze nainstalovala do cílového workspace.
**Požadovaná konfigurace:**
| Nastavení | Kde | Účel |
| ----------------------- | --------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| `TWENTY_DEPLOY_URL` | `env` v `cd.yml` (výchozí `http://localhost:3000`) | Server Twenty, na který se nasazuje. Před prvním použitím to změňte na skutečnou URL vašeho serveru. |
| `TWENTY_DEPLOY_API_KEY` | GitHub repozitář **Settings → Secrets and variables → Actions** | API klíč s oprávněním k nasazení na cílovém serveru. |
<Note>
Výchozí `TWENTY_DEPLOY_URL` `http://localhost:3000` je pouze zástupná hodnota — z runneru hostovaného GitHubem tato adresa nebude dosažitelná. Před povolením CD ji aktualizujte na veřejnou URL vašeho serveru (nebo použijte self-hosted runner s přístupem do sítě).
</Note>
**Spuštění náhledového nasazení z PR:**
Přidejte k pull requestu štítek `deploy`. Podmínka `if:` v `cd.yml` spustí úlohu pro dané PR s použitím head commitu PR, což vám umožní ověřit změnu na cílovém serveru před sloučením.
### Připnutí verzí znovupoužitelných akcí
Obě workflowy odkazují na znovupoužitelné akce na `@main`, takže aktualizace akcí v repozitáři `twentyhq/twenty` se přeberou automaticky. Pokud chcete deterministická sestavení, nahraďte `@main` v každém řádku `uses:` za commit SHA nebo tag vydání.
## Publikování na npm
Publikování na npm zajistí, že bude vaše aplikace dohledatelná v Marketplace Twenty. Jakýkoli pracovní prostor Twenty může procházet, instalovat a aktualizovat aplikace z Marketplace přímo z UI.
@@ -87,7 +138,7 @@ Publikování na npm zajistí, že bude vaše aplikace dohledatelná v Marketpla
### Požadavky
* Účet na [npm](https://www.npmjs.com)
* Klíčové slovo `twenty-app` ve vašem poli `keywords` v souboru `package.json` (již je zahrnuto, když založíte projekt pomocí `create-twenty-app`)
* Klíčové slovo `twenty-app` ve vašem poli `keywords` v souboru `package.json` (přidejte je ručně — ve výchozím nastavení není zahrnuto v šabloně `create-twenty-app`)
```json filename="package.json"
{
@@ -220,6 +220,7 @@ Der Scaffolder hat bereits einen lokalen Twenty-Server für Sie gestartet. Um ih
| -------------------------------------- | ----------------------------------------------------------- |
| `yarn twenty server start` | Lokalen Server starten (lädt das Image bei Bedarf herunter) |
| `yarn twenty server start --port 3030` | Auf einem benutzerdefinierten Port starten |
| `yarn twenty server start --test` | Starten Sie eine separate Testinstanz auf Port 2021 |
| `yarn twenty server stop` | Server stoppen (Daten bleiben erhalten) |
| `yarn twenty server status` | Serverstatus, URL und Anmeldedaten anzeigen |
| `yarn twenty server logs` | Serverprotokolle streamen |
@@ -228,6 +229,20 @@ Der Scaffolder hat bereits einen lokalen Twenty-Server für Sie gestartet. Um ih
Daten bleiben über Neustarts hinweg in zwei Docker-Volumes bestehen (`twenty-app-dev-data` für PostgreSQL, `twenty-app-dev-storage` für Dateien). Verwenden Sie `reset`, um alles zu löschen und neu zu beginnen.
### Eine Testinstanz ausführen
Übergeben Sie `--test` an jeden `server`-Befehl, um eine zweite, vollständig isolierte Instanz zu verwalten — nützlich, um Integrationstests auszuführen oder zu experimentieren, ohne Ihre Hauptentwicklungsdaten anzutasten.
| Befehl | Beschreibung |
| ---------------------------------- | ----------------------------------------------------- |
| `yarn twenty server start --test` | Die Testinstanz starten (standardmäßig Port 2021) |
| `yarn twenty server stop --test` | Die Testinstanz stoppen |
| `yarn twenty server status --test` | Status, URL und Anmeldedaten der Testinstanz anzeigen |
| `yarn twenty server logs --test` | Protokolle der Testinstanz streamen |
| `yarn twenty server reset --test` | Alle Testdaten löschen und neu starten |
Die Testinstanz läuft in einem eigenen Docker-Container (`twenty-app-dev-test`) mit dedizierten Volumes (`twenty-app-dev-test-data`, `twenty-app-dev-test-storage`) und eigener Konfiguration, sodass sie parallel zu Ihrer Hauptinstanz ohne Konflikte ausgeführt werden kann. Kombinieren Sie `--test` mit `--port`, um den Standardport 2021 zu überschreiben.
<Note>
Der Server erfordert, dass **Docker** läuft. Wenn der Fehler "Docker not running" angezeigt wird, stellen Sie sicher, dass Docker Desktop (oder der Docker-Daemon) gestartet ist.
</Note>
@@ -80,6 +80,57 @@ Pre-Release-Tags funktionieren wie erwartet: Das Erhöhen von `1.0.0-rc.1` → `
{/* TODO: add screenshot of the Upgrade button */}
## Automatisiertes CI/CD (vorgefertigte Workflows)
Apps, die mit `create-twenty-app` erzeugt wurden, enthalten von Haus aus zwei GitHub-Actions-Workflows unter `.github/workflows/`. Sie sind einsatzbereit, sobald Sie das Repository zu GitHub pushen — für CI ist keine zusätzliche Einrichtung erforderlich, und für CD ist nur ein einziges Secret nötig.
### CI — `ci.yml`
Führt Ihre Integrationstests bei jedem Push auf `main` und bei Pull Requests aus.
**Was sie macht:**
1. Checkt den Quellcode Ihrer App aus.
2. Startet eine isolierte Twenty-Testinstanz mithilfe der Composite-Action `twentyhq/twenty/.github/actions/spawn-twenty-app-dev-test@main` (das CI-Äquivalent zu `yarn twenty server start --test`).
3. Aktiviert Corepack, richtet Node.js anhand Ihrer `.nvmrc` ein und installiert Abhängigkeiten mit `yarn install --immutable`.
4. Führt `yarn test` aus und übergibt `TWENTY_API_URL` und `TWENTY_API_KEY` aus der gestarteten Instanz, damit Ihre Tests mit einem echten Server kommunizieren können.
**Konfigurationsoptionen:**
* `TWENTY_VERSION` (env, standardmäßig `latest`) — fixieren Sie die in CI verwendete Twenty-Server-Version, indem Sie dies in `ci.yml` anpassen.
* Die Parallelität wird nach `github.ref` gruppiert und bricht laufende Ausführungen bei neuen Pushes ab.
Es sind keine Secrets erforderlich — die Testinstanz ist flüchtig und existiert nur für die Dauer des Jobs.
### CD — `cd.yml`
Stellt Ihre App bei jedem Push auf `main` auf einem konfigurierten Twenty-Server bereit und optional aus einem Pull Request, wenn das Label `deploy` gesetzt ist.
**Was sie macht:**
1. Checkt den PR-Head (bei PRs mit Label) oder den gepushten Commit aus.
2. Führt `twentyhq/twenty/.github/actions/deploy-twenty-app@main` aus — das CI-Äquivalent zu `yarn twenty deploy`.
3. Führt `twentyhq/twenty/.github/actions/install-twenty-app@main` aus, damit die neu bereitgestellte Version in den Ziel-Workspace installiert wird.
**Erforderliche Konfiguration:**
| Einstellung | Wo | Zweck |
| ----------------------- | ---------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `TWENTY_DEPLOY_URL` | `env` in `cd.yml` (standardmäßig `http://localhost:3000`) | Der Twenty-Server, auf den bereitgestellt werden soll. Ändern Sie dies vor der ersten Verwendung auf die echte Server-URL. |
| `TWENTY_DEPLOY_API_KEY` | GitHub-Repository **Settings → Secrets and variables → Actions** | API-Schlüssel mit Berechtigung zum Bereitstellen auf dem Zielserver. |
<Note>
Der Standardwert von `TWENTY_DEPLOY_URL` (`http://localhost:3000`) ist ein Platzhalter — von einem GitHub-gehosteten Runner ist er nicht erreichbar. Aktualisieren Sie sie auf die öffentliche URL Ihres Servers (oder verwenden Sie einen selbstgehosteten Runner mit Netzwerkzugriff), bevor Sie CD aktivieren.
</Note>
**Eine Vorschau-Bereitstellung aus einem PR auslösen:**
Fügen Sie einem Pull Request das Label `deploy` hinzu. Die `if:`-Bedingung in `cd.yml` führt den Job für diesen PR mit dem Head-Commit des PR aus, sodass Sie eine Änderung auf dem Zielserver vor dem Mergen validieren können.
### Fixieren der wiederverwendbaren Actions
Beide Workflows verweisen auf wiederverwendbare Actions mit `@main`, sodass Aktualisierungen der Actions im Repository `twentyhq/twenty` automatisch übernommen werden. Wenn Sie deterministische Builds möchten, ersetzen Sie `@main` in jeder `uses:`-Zeile durch eine Commit-SHA oder einen Release-Tag.
## Auf npm veröffentlichen
Die Veröffentlichung auf npm macht Ihre App im Twenty-Marktplatz auffindbar. Jeder Twenty-Arbeitsbereich kann Marktplatz-Apps direkt über die Benutzeroberfläche durchsuchen, installieren und aktualisieren.
@@ -87,7 +138,7 @@ Die Veröffentlichung auf npm macht Ihre App im Twenty-Marktplatz auffindbar. Je
### Anforderungen
* Ein [npm](https://www.npmjs.com)-Konto
* Das Schlüsselwort `twenty-app` in Ihrem `package.json`-Array `keywords` (bereits enthalten, wenn Sie mit `create-twenty-app` ein Gerüst erstellen)
* Das Schlüsselwort `twenty-app` in Ihrem `package.json`-Array `keywords` (manuell hinzufügen — es ist in der `create-twenty-app`-Vorlage standardmäßig nicht enthalten)
```json filename="package.json"
{
@@ -220,6 +220,7 @@ Lo scaffolder ha già avviato per te un server Twenty locale. Per gestirlo in se
| -------------------------------------- | --------------------------------------------------------- |
| `yarn twenty server start` | Avvia il server locale (scarica l'immagine se necessario) |
| `yarn twenty server start --port 3030` | Avvia su una porta personalizzata |
| `yarn twenty server start --test` | Avvia un'istanza di test separata sulla porta 2021 |
| `yarn twenty server stop` | Arresta il server (conserva i dati) |
| `yarn twenty server status` | Mostra stato del server, URL e credenziali |
| `yarn twenty server logs` | Trasmetti in streaming i log del server |
@@ -228,6 +229,20 @@ Lo scaffolder ha già avviato per te un server Twenty locale. Per gestirlo in se
I dati vengono mantenuti tra i riavvii in due volumi Docker (`twenty-app-dev-data` per PostgreSQL, `twenty-app-dev-storage` per i file). Usa `reset` per cancellare tutto e ripartire da zero.
### Esecuzione di un'istanza di test
Passa `--test` a qualsiasi comando `server` per gestire una seconda istanza completamente isolata — utile per eseguire test di integrazione o per sperimentare senza toccare i tuoi dati di sviluppo principali.
| Comando | Descrizione |
| ---------------------------------- | ------------------------------------------------------------------------ |
| `yarn twenty server start --test` | Avvia l'istanza di test (per impostazione predefinita usa la porta 2021) |
| `yarn twenty server stop --test` | Arresta l'istanza di test |
| `yarn twenty server status --test` | Mostra stato, URL e credenziali dell'istanza di test |
| `yarn twenty server logs --test` | Trasmetti in streaming i log dell'istanza di test |
| `yarn twenty server reset --test` | Cancella i dati di test e riparti da zero |
L'istanza di test viene eseguita nel proprio container Docker (`twenty-app-dev-test`) con volumi dedicati (`twenty-app-dev-test-data`, `twenty-app-dev-test-storage`) e configurazione dedicata, così può essere eseguita in parallelo con la tua istanza principale senza conflitti. Combina `--test` con `--port` per sovrascrivere il valore predefinito 2021.
<Note>
Il server richiede che **Docker** sia in esecuzione. Se vedi l'errore "Docker not running", assicurati che Docker Desktop (o il demone Docker) sia avviato.
</Note>
@@ -80,6 +80,57 @@ I tag di pre-release funzionano come previsto: incrementare `1.0.0-rc.1` → `1.
{/* TODO: add screenshot of the Upgrade button */}
## CI/CD automatizzati (workflow preconfigurati)
Le app generate con `create-twenty-app` includono due workflow di GitHub Actions pronti all'uso, nella cartella `.github/workflows/`. Sono pronti all'esecuzione non appena esegui il push del repository su GitHub — non è necessaria alcuna configurazione aggiuntiva per la CI e la CD richiede solo un singolo secret.
### CI — `ci.yml`
Esegue automaticamente i test di integrazione a ogni push su `main` e sulle pull request.
**Cosa fa:**
1. Esegue il checkout del codice sorgente della tua app.
2. Avvia un'istanza di test isolata di Twenty utilizzando l'azione composita `twentyhq/twenty/.github/actions/spawn-twenty-app-dev-test@main` (l'equivalente per la CI di `yarn twenty server start --test`).
3. Abilita Corepack, configura Node.js dal tuo `.nvmrc` e installa le dipendenze con `yarn install --immutable`.
4. Esegue `yarn test`, passando `TWENTY_API_URL` e `TWENTY_API_KEY` dall'istanza avviata affinché i tuoi test possano comunicare con un server reale.
**Opzioni di configurazione:**
* `TWENTY_VERSION` (variabile di ambiente, predefinito `latest`) — fissa la versione del server Twenty usata nella CI modificando questo valore in `ci.yml`.
* La concorrenza è raggruppata per `github.ref` e annulla le esecuzioni in corso in caso di nuovi push.
Non sono necessari Secrets — l'istanza di test è effimera ed esiste solo per la durata del job.
### CD — `cd.yml`
Esegue il deploy della tua app su un server Twenty configurato a ogni push su `main` e, facoltativamente, da una pull request quando viene applicata l'etichetta `deploy`.
**Cosa fa:**
1. Esegue il checkout della testa della PR (per le PR etichettate) oppure del commit inviato.
2. Esegue `twentyhq/twenty/.github/actions/deploy-twenty-app@main` — l'equivalente per la CI di `yarn twenty deploy`.
3. Esegue `twentyhq/twenty/.github/actions/install-twenty-app@main` in modo che la versione appena distribuita venga installata nello spazio di lavoro di destinazione.
**Configurazione richiesta:**
| Impostazione | Dove | Scopo |
| ----------------------- | ---------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| `TWENTY_DEPLOY_URL` | `env` in `cd.yml` (predefinito `http://localhost:3000`) | Il server Twenty su cui effettuare il deploy. Modificalo con l'URL reale del tuo server prima del primo utilizzo. |
| `TWENTY_DEPLOY_API_KEY` | Repository GitHub **Settings → Secrets and variables → Actions** | Chiave API con autorizzazione di deploy sul server di destinazione. |
<Note>
Il valore predefinito di `TWENTY_DEPLOY_URL`, `http://localhost:3000`, è un segnaposto — non raggiungerà alcuna risorsa da un runner ospitato su GitHub. Aggiornalo all'URL pubblico del tuo server (oppure usa un runner self-hosted con accesso di rete) prima di abilitare il CD.
</Note>
**Attivare un deploy di anteprima da una PR:**
Aggiungi l'etichetta `deploy` a una pull request. La condizione `if:` in `cd.yml` eseguirà il job per quella PR utilizzando il commit di testa della PR, permettendoti di convalidare una modifica sul server di destinazione prima del merge.
### Bloccare le azioni riutilizzabili
Entrambi i workflow fanno riferimento ad azioni riutilizzabili a `@main`, quindi gli aggiornamenti delle azioni nel repository `twentyhq/twenty` vengono recepiti automaticamente. Se desideri build deterministiche, sostituisci `@main` con uno SHA di commit o un tag di release in ciascuna riga `uses:`.
## Pubblicazione su npm
La pubblicazione su npm rende la tua app scopribile nel marketplace di Twenty. Qualsiasi spazio di lavoro Twenty può sfogliare, installare e aggiornare le app del marketplace direttamente dall'interfaccia utente.
@@ -87,7 +138,7 @@ La pubblicazione su npm rende la tua app scopribile nel marketplace di Twenty. Q
### Requisiti
* Un account [npm](https://www.npmjs.com)
* La parola chiave `twenty-app` nell'array `keywords` del tuo `package.json` (già inclusa quando inizializzi con `create-twenty-app`)
* La parola chiave `twenty-app` nell'array `keywords` del tuo `package.json` (aggiungila manualmente — non è inclusa per impostazione predefinita nel template `create-twenty-app`)
```json filename="package.json"
{
@@ -220,6 +220,7 @@ A ferramenta de scaffolding já iniciou um servidor local do Twenty para você.
| -------------------------------------- | ------------------------------------------------------ |
| `yarn twenty server start` | Inicia o servidor local (baixa a imagem se necessário) |
| `yarn twenty server start --port 3030` | Iniciar em uma porta personalizada |
| `yarn twenty server start --test` | Inicie uma instância de teste separada na porta 2021 |
| `yarn twenty server stop` | Interrompe o servidor (preserva os dados) |
| `yarn twenty server status` | Mostra o status do servidor, a URL e as credenciais |
| `yarn twenty server logs` | Transmite os logs do servidor |
@@ -228,6 +229,20 @@ A ferramenta de scaffolding já iniciou um servidor local do Twenty para você.
Os dados são persistidos entre reinicializações em dois volumes do Docker (`twenty-app-dev-data` para PostgreSQL, `twenty-app-dev-storage` para arquivos). Use `reset` para apagar tudo e começar do zero.
### Executando uma instância de teste
Passe `--test` para qualquer comando de `server` para gerenciar uma segunda instância totalmente isolada — útil para executar testes de integração ou experimentar sem tocar nos seus dados principais de desenvolvimento.
| Comando | Descrição |
| ---------------------------------- | ------------------------------------------------------------- |
| `yarn twenty server start --test` | Inicia a instância de teste (padrão: porta 2021) |
| `yarn twenty server stop --test` | Interrompe a instância de teste |
| `yarn twenty server status --test` | Mostra o status da instância de teste, a URL e as credenciais |
| `yarn twenty server logs --test` | Transmite os logs da instância de teste |
| `yarn twenty server reset --test` | Exclui os dados de teste e inicia do zero |
A instância de teste é executada em seu próprio contêiner Docker (`twenty-app-dev-test`) com volumes dedicados (`twenty-app-dev-test-data`, `twenty-app-dev-test-storage`) e configuração própria, para que possa ser executada em paralelo com sua instância principal sem conflitos. Combine `--test` com `--port` para substituir a porta padrão 2021.
<Note>
O servidor requer que o **Docker** esteja em execução. Se você vir um erro "Docker not running", certifique-se de que o Docker Desktop (ou o daemon do Docker) esteja iniciado.
</Note>
@@ -80,6 +80,57 @@ Tags de pré-lançamento funcionam como esperado: incrementar `1.0.0-rc.1` → `
{/* TODO: add screenshot of the Upgrade button */}
## CI/CD automatizado (fluxos de trabalho pré-configurados)
Os apps gerados com `create-twenty-app` já vêm com dois fluxos de trabalho do GitHub Actions prontos, em `.github/workflows/`. Eles estão prontos para executar assim que você fizer push do repositório para o GitHub — nenhuma configuração extra é necessária para CI, e CD requer apenas um único segredo.
### CI — `ci.yml`
Executa testes de integração a cada push para `main` e a cada pull request.
**O que faz:**
1. Faz checkout do código-fonte do seu app.
2. Inicia uma instância de teste do Twenty isolada usando a ação composta `twentyhq/twenty/.github/actions/spawn-twenty-app-dev-test@main` (o equivalente em CI de `yarn twenty server start --test`).
3. Habilita o Corepack, configura o Node.js a partir do seu `.nvmrc` e instala as dependências com `yarn install --immutable`.
4. Executa `yarn test`, passando `TWENTY_API_URL` e `TWENTY_API_KEY` da instância iniciada para que seus testes possam se comunicar com um servidor real.
**Opções de configuração:**
* `TWENTY_VERSION` (env, padrão `latest`) — fixe a versão do servidor Twenty usada no CI editando isto em `ci.yml`.
* A concorrência é agrupada por `github.ref` e cancela execuções em andamento quando há novos pushes.
Nenhum segredo é necessário — a instância de teste é efêmera e existe apenas durante a execução do job.
### CD — `cd.yml`
Faz o deploy do seu app para um servidor Twenty configurado a cada push para `main` e, opcionalmente, a partir de um pull request quando o rótulo `deploy` é aplicado.
**O que faz:**
1. Faz checkout do head do PR (para PRs rotulados) ou do commit enviado.
2. Executa `twentyhq/twenty/.github/actions/deploy-twenty-app@main` — o equivalente em CI de `yarn twenty deploy`.
3. Executa `twentyhq/twenty/.github/actions/install-twenty-app@main` para que a versão recém-implantada seja instalada no workspace de destino.
**Configuração obrigatória:**
| Configuração | Onde | Finalidade |
| ----------------------- | -------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| `TWENTY_DEPLOY_URL` | `env` em `cd.yml` (padrão `http://localhost:3000`) | O servidor Twenty para o qual fazer o deploy. Altere isto para a URL real do seu servidor antes do primeiro uso. |
| `TWENTY_DEPLOY_API_KEY` | Repositório do GitHub **Settings → Secrets and variables → Actions** | Chave de API com permissão de deploy no servidor de destino. |
<Note>
O `TWENTY_DEPLOY_URL` padrão de `http://localhost:3000` é um placeholder — ele não alcançará nada a partir de um runner hospedado pelo GitHub. Atualize-o para a URL pública do seu servidor (ou use um runner self-hosted com acesso à rede) antes de habilitar o CD.
</Note>
**Acionando um deploy de pré-visualização a partir de um PR:**
Adicione o rótulo `deploy` a um pull request. A condição `if:` em `cd.yml` executará o job para esse PR usando o commit HEAD do PR, permitindo que você valide uma alteração no servidor de destino antes de fazer o merge.
### Fixando as ações reutilizáveis
Ambos os fluxos de trabalho fazem referência a ações reutilizáveis em `@main`, portanto as atualizações de ações no repositório `twentyhq/twenty` são aplicadas automaticamente. Se você quiser builds determinísticos, substitua `@main` por um SHA de commit ou uma tag de release em cada linha `uses:`.
## Publicação no npm
Publicar no npm torna seu aplicativo descobrível no Marketplace da Twenty. Qualquer espaço de trabalho da Twenty pode navegar, instalar e atualizar aplicativos do Marketplace diretamente pela UI.
@@ -87,7 +138,7 @@ Publicar no npm torna seu aplicativo descobrível no Marketplace da Twenty. Qual
### Requisitos
* Uma conta no [npm](https://www.npmjs.com)
* A palavra-chave `twenty-app` no array `keywords` do seu `package.json` (já incluída quando você cria o projeto com `create-twenty-app`)
* A palavra-chave `twenty-app` no array `keywords` do seu `package.json` (adicione-a manualmente — não é incluída por padrão no template `create-twenty-app`)
```json filename="package.json"
{
@@ -220,6 +220,7 @@ npx create-twenty-app@latest my-twenty-app --example postcard
| -------------------------------------- | -------------------------------------------------------------- |
| `yarn twenty server start` | Запустить локальный сервер (при необходимости скачивает образ) |
| `yarn twenty server start --port 3030` | Запустить на пользовательском порту |
| `yarn twenty server start --test` | Запускает отдельный тестовый экземпляр на порту 2021 |
| `yarn twenty server stop` | Остановить сервер (данные сохраняются) |
| `yarn twenty server status` | Показать состояние сервера, URL и учётные данные |
| `yarn twenty server logs` | Потоковый вывод журналов сервера |
@@ -228,6 +229,20 @@ npx create-twenty-app@latest my-twenty-app --example postcard
Данные сохраняются между перезапусками в двух томах Docker (`twenty-app-dev-data` для PostgreSQL, `twenty-app-dev-storage` для файлов). Используйте `reset`, чтобы стереть всё и начать заново.
### Запуск тестового экземпляра
Передайте `--test` любой команде `server`, чтобы управлять вторым, полностью изолированным экземпляром — это полезно для запуска интеграционных тестов или экспериментов, не затрагивая ваши основные данные разработки.
| Команда | Описание |
| ---------------------------------- | ------------------------------------------------------------- |
| `yarn twenty server start --test` | Запустить тестовый экземпляр (по умолчанию — порт 2021) |
| `yarn twenty server stop --test` | Остановить тестовый экземпляр |
| `yarn twenty server status --test` | Показать состояние тестового экземпляра, URL и учётные данные |
| `yarn twenty server logs --test` | Выводить журналы тестового экземпляра в потоковом режиме |
| `yarn twenty server reset --test` | Удалить тестовые данные и начать с чистого листа |
Тестовый экземпляр запускается в собственном контейнере Docker (`twenty-app-dev-test`) с выделенными томами (`twenty-app-dev-test-data`, `twenty-app-dev-test-storage`) и собственной конфигурацией, поэтому он может работать параллельно с вашим основным экземпляром без конфликтов. Совместите `--test` с `--port`, чтобы переопределить значение по умолчанию (2021).
<Note>
Для работы сервера необходимо, чтобы **Docker** был запущен. Если вы видите ошибку "Docker not running", убедитесь, что запущен Docker Desktop (или демон Docker).
</Note>
@@ -80,6 +80,57 @@ When updating an already deployed tarball app, the server requires the `version`
{/* TODO: add screenshot of the Upgrade button */}
## Автоматизированный CI/CD (рабочие процессы, сгенерированные шаблоном)
Приложения, созданные с помощью `create-twenty-app`, «из коробки» включают два рабочих процесса GitHub Actions в каталоге `.github/workflows/`. Они готовы к запуску, как только вы запушите репозиторий на GitHub — для CI не требуется дополнительной настройки, а для CD нужен лишь один секрет.
### CI — `ci.yml`
Автоматически запускает интеграционные тесты при каждом пуше в `main` и для каждого pull request.
**Что делает:**
1. Извлекает исходный код вашего приложения.
2. Запускает изолированный тестовый экземпляр Twenty с помощью составного действия `twentyhq/twenty/.github/actions/spawn-twenty-app-dev-test@main` (эквивалент для CI `yarn twenty server start --test`).
3. Включает Corepack, настраивает Node.js на основе вашего `.nvmrc` и устанавливает зависимости с помощью `yarn install --immutable`.
4. Запускает `yarn test`, передавая `TWENTY_API_URL` и `TWENTY_API_KEY` из запущенного экземпляра, чтобы ваши тесты могли взаимодействовать с реальным сервером.
**Параметры конфигурации:**
* `TWENTY_VERSION` (переменная окружения, по умолчанию `latest`) — зафиксируйте версию сервера Twenty, используемую в CI, отредактировав это значение в `ci.yml`.
* Параллельные запуски группируются по `github.ref` и отменяют выполняющиеся прогоны при новых пушах.
Секреты не требуются — тестовый экземпляр эфемерен и существует только на время выполнения задания.
### CD — `cd.yml`
Разворачивает ваше приложение на настроенном сервере Twenty при каждом пуше в `main` и, при необходимости, из pull request при наличии метки `deploy`.
**Что делает:**
1. Извлекает head-коммит PR (для PR с меткой) или запушенный коммит.
2. Запускает `twentyhq/twenty/.github/actions/deploy-twenty-app@main` — эквивалент для CI `yarn twenty deploy`.
3. Запускает `twentyhq/twenty/.github/actions/install-twenty-app@main`, чтобы новая развернутая версия была установлена в целевое рабочее пространство.
**Обязательная конфигурация:**
| Настройка | Где | Назначение |
| ----------------------- | --------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| `TWENTY_DEPLOY_URL` | `env` в `cd.yml` (по умолчанию `http://localhost:3000`) | Сервер Twenty, на который выполняется деплой. Перед первым использованием замените это на URL вашего реального сервера. |
| `TWENTY_DEPLOY_API_KEY` | В репозитории GitHub — **Settings → Secrets and variables → Actions** | Ключ API с правом деплоя на целевом сервере. |
<Note>
Значение `TWENTY_DEPLOY_URL` по умолчанию — `http://localhost:3000` — это заглушка: с хостируемого GitHub раннера к ней не будет доступа. Перед включением CD замените его на публичный URL вашего сервера (или используйте self-hosted раннер с сетевым доступом).
</Note>
**Запуск предварительного деплоя из PR:**
Добавьте к pull request метку `deploy`. Условие `if:` в `cd.yml` запустит задачу для этого PR, используя его head-коммит, что позволит проверить изменение на целевом сервере до слияния.
### Закрепление версий повторно используемых действий
Оба рабочих процесса ссылаются на повторно используемые действия с указанием `@main`, поэтому обновления действий в репозитории `twentyhq/twenty` подхватываются автоматически. Если вам нужны детерминированные сборки, замените `@main` на SHA коммита или тег релиза в каждой строке `uses:`.
## Публикация в npm
Публикация в npm делает ваше приложение видимым в маркетплейсе Twenty. Любое рабочее пространство Twenty может просматривать, устанавливать и обновлять приложения из маркетплейса непосредственно из интерфейса.
@@ -87,7 +138,7 @@ When updating an already deployed tarball app, the server requires the `version`
### Требования
* Учётная запись [npm](https://www.npmjs.com)
* Ключевое слово `twenty-app` в массиве `keywords` вашего `package.json` (уже добавлено при создании проекта с помощью `create-twenty-app`)
* Ключевое слово `twenty-app` в массиве `keywords` вашего `package.json` (добавьте его вручную — по умолчанию оно не включено в шаблон `create-twenty-app`)
```json filename="package.json"
{
@@ -216,18 +216,33 @@ npx create-twenty-app@latest my-twenty-app --example postcard
İskelet oluşturucu sizin için zaten yerel bir Twenty sunucusu başlattı. Daha sonra yönetmek için `yarn twenty server` komutunu kullanın:
| Komut | Açıklama |
| -------------------------------------- | ------------------------------------------------------ |
| `yarn twenty server start` | Yerel sunucuyu başlatır (gerekirse imajı çeker) |
| `yarn twenty server start --port 3030` | Özel bir portta başlatır |
| `yarn twenty server stop` | Sunucuyu durdurur (verileri korur) |
| `yarn twenty server status` | Sunucu durumunu, URL'yi ve kimlik bilgilerini gösterir |
| `yarn twenty server logs` | Sunucu günlüklerini akış olarak iletir |
| `yarn twenty server logs --lines 100` | Son 100 günlük satırını gösterir |
| `yarn twenty server reset` | Tüm verileri siler ve sıfırdan başlatır |
| Komut | Açıklama |
| -------------------------------------- | --------------------------------------------------------------- |
| `yarn twenty server start` | Yerel sunucuyu başlatır (gerekirse imajı çeker) |
| `yarn twenty server start --port 3030` | Özel bir portta başlatır |
| `yarn twenty server start --test` | 2021 numaralı bağlantı noktasında ayrı bir test örneği başlatın |
| `yarn twenty server stop` | Sunucuyu durdurur (verileri korur) |
| `yarn twenty server status` | Sunucu durumunu, URL'yi ve kimlik bilgilerini gösterir |
| `yarn twenty server logs` | Sunucu günlüklerini akış olarak iletir |
| `yarn twenty server logs --lines 100` | Son 100 günlük satırını gösterir |
| `yarn twenty server reset` | Tüm verileri siler ve sıfırdan başlatır |
Veriler, yeniden başlatmalar arasında iki Docker biriminde kalıcıdır (PostgreSQL için `twenty-app-dev-data`, dosyalar için `twenty-app-dev-storage`). Her şeyi silip baştan başlamak için `reset` kullanın.
### Test örneği çalıştırma
`server` komutlarının herhangi birine `--test` parametresini vererek ikinci, tamamen yalıtılmış bir örneği yönetin — entegrasyon testlerini çalıştırmak veya ana geliştirme verilerinize dokunmadan denemeler yapmak için kullanışlıdır.
| Komut | Açıklama |
| ---------------------------------- | -------------------------------------------------------------- |
| `yarn twenty server start --test` | Test örneğini başlatır (varsayılan bağlantı noktası 2021'dir) |
| `yarn twenty server stop --test` | Test örneğini durdurur |
| `yarn twenty server status --test` | Test örneğinin durumunu, URL'yi ve kimlik bilgilerini gösterir |
| `yarn twenty server logs --test` | Test örneği günlüklerini akış olarak iletir |
| `yarn twenty server reset --test` | Test verilerini siler ve sıfırdan başlatır |
Test örneği, kendine ait bir Docker konteynerinde (`twenty-app-dev-test`), ayrılmış birimlerle (`twenty-app-dev-test-data`, `twenty-app-dev-test-storage`) ve yapılandırmayla çalışır; böylece ana örneğinizle çakışma olmadan paralel olarak çalışabilir. Varsayılan 2021'i geçersiz kılmak için `--test` ile `--port`'u birlikte kullanın.
<Note>
Sunucunun çalışması için **Docker**'ın çalışıyor olması gerekir. "Docker not running" hatası görürseniz Docker Desktop'ın (veya Docker daemon'ının) başlatıldığından emin olun.
</Note>
@@ -80,6 +80,57 @@ Bir güncelleme yayımlamak için:
{/* TODO: add screenshot of the Upgrade button */}
## Otomatik CI/CD (hazır şablonlu iş akışları)
`create-twenty-app` ile oluşturulan uygulamalar, kutudan çıktığı gibi `.github/workflows/` altında iki GitHub Actions iş akışıyla gelir. Depoyu GitHuba iter itmez çalışmaya hazırdır — CI için ek bir kurulum gerekmez ve CD yalnızca tek bir gizli anahtar gerektirir.
### CI — `ci.yml`
Entegrasyon testlerini `main` dalına yapılan her itmede ve her çekme isteğinde otomatik olarak çalıştırır.
**Ne yapar:**
1. Uygulamanızın kaynak kodunu alır.
2. `twentyhq/twenty/.github/actions/spawn-twenty-app-dev-test@main` bileşik eylemini kullanarak yalıtılmış bir Twenty test örneği başlatır (CI'daki `yarn twenty server start --test` eşdeğeri).
3. Corepacki etkinleştirir, `.nvmrc` dosyanızdan Node.js'i kurar ve bağımlılıkları `yarn install --immutable` ile yükler.
4. Oluşturulan örnekten `TWENTY_API_URL` ve `TWENTY_API_KEY` değerlerini aktararak `yarn test`i çalıştırır; böylece testleriniz gerçek bir sunucuyla haberleşebilir.
**Yapılandırma seçenekleri:**
* `TWENTY_VERSION` (ortam, varsayılanı `latest`) — CIda kullanılan Twenty sunucu sürümünü `ci.yml` içinde bunu düzenleyerek sabitleyin.
* Eşzamanlılık `github.ref` bazında gruplanır ve yeni itmelerde devam eden çalışmaları iptal eder.
Gizli anahtar gerekmez — test örneği geçicidir ve yalnızca iş süresi boyunca çalışır.
### CD — `cd.yml`
`main` dalına yapılan her itmede uygulamanızı yapılandırılmış bir Twenty sunucusuna dağıtır ve isteğe bağlı olarak `deploy` etiketi uygulandığında bir çekme isteğinden de dağıtım yapar.
**Ne yapar:**
1. Etiketli PR'ler için PR'in head commit'ini ya da itilen commit'i alır.
2. `twentyhq/twenty/.github/actions/deploy-twenty-app@main` çalıştırır — `yarn twenty deploy` komutunun CI eşdeğeridir.
3. `twentyhq/twenty/.github/actions/install-twenty-app@main` eylemini çalıştırır; böylece yeni dağıtılan sürüm hedef çalışma alanına kurulur.
**Gerekli yapılandırma:**
| Ayar | Koşul | Amaç |
| ----------------------- | ------------------------------------------------------------ | --------------------------------------------------------------------------------------------------- |
| `TWENTY_DEPLOY_URL` | `cd.yml` içinde `env` (varsayılan: `http://localhost:3000`) | Dağıtımın yapılacağı Twenty sunucusu. İlk kullanımdan önce bunu gerçek sunucu URL'nizle değiştirin. |
| `TWENTY_DEPLOY_API_KEY` | GitHub deposu **Settings → Secrets and variables → Actions** | Hedef sunucuda dağıtım iznine sahip API anahtarı. |
<Note>
Varsayılan `TWENTY_DEPLOY_URL` olan `http://localhost:3000` bir yer tutucudur — GitHub barındırmalı bir çalıştırıcıdan hiçbir yere erişemez. CD'yi etkinleştirmeden önce bunu sunucunuzun genel URL'siyle güncelleyin (veya ağ erişimi olan öz barındırılan bir çalıştırıcı kullanın).
</Note>
**Bir PR'den bir önizleme dağıtımını tetikleme:**
Bir çekme isteğine `deploy` etiketini ekleyin. `cd.yml` içindeki `if:` koruması, ilgili PR için işi PR'in head commit'ini kullanarak çalıştırır; böylece birleştirmeden önce hedef sunucuda değişikliği doğrulayabilirsiniz.
### Yeniden kullanılabilir eylemleri sabitleme
Her iki iş akışı da `@main` üzerindeki yeniden kullanılabilir eylemlere başvurur; bu nedenle `twentyhq/twenty` deposundaki eylem güncellemeleri otomatik olarak alınır. Deterministik derlemeler istiyorsanız, her `uses:` satırında `@main` ifadesini bir commit SHA'sı veya sürüm etiketiyle değiştirin.
## npmye yayımlama
npmye yayımlamak, uygulamanızın Twenty pazaryerinde keşfedilebilir olmasını sağlar. Herhangi bir Twenty çalışma alanı, pazaryeri uygulamalarına doğrudan arayüzden göz atabilir, yükleyebilir ve güncelleyebilir.
@@ -87,7 +138,7 @@ npmye yayımlamak, uygulamanızın Twenty pazaryerinde keşfedilebilir olmas
### Gereksinimler
* Bir [npm](https://www.npmjs.com) hesabı
* `package.json` içindeki `keywords` dizinizdeki `twenty-app` anahtar sözcüğü (`create-twenty-app` ile iskelet oluşturduğunuzda zaten eklenir)
* `package.json` içindeki `keywords` dizinizdeki `twenty-app` anahtar sözcüğü (elle ekleyin — varsayılan olarak `create-twenty-app` şablonunda yer almaz)
```json filename="package.json"
{
@@ -45,7 +45,7 @@ const getHtmlElementSchemas = (): ComponentSchema[] => {
events: element.events
? [...COMMON_HTML_EVENTS, ...element.events]
: COMMON_HTML_EVENTS,
htmlTag: extractHtmlTag(element.tag),
htmlTag: element.htmlTag ?? extractHtmlTag(element.tag),
}));
};
@@ -12,6 +12,7 @@ export const HtmlElementConfigZ = z.object({
.regex(/^Html[A-Z]/, 'Name must be PascalCase starting with Html'),
properties: z.record(z.string(), PropertySchemaZ),
events: z.array(z.string()).optional(),
htmlTag: z.string().optional(),
});
export const HtmlElementConfigArrayZ = z.array(HtmlElementConfigZ);
@@ -1,13 +1,12 @@
type PropertySchema = {
type: 'string' | 'number' | 'boolean';
optional: boolean;
};
import { type PropertySchema } from './PropertySchema';
import { SVG_PRESENTATION_PROPERTIES } from './SvgPresentationProperties';
export type AllowedHtmlElement = {
tag: string;
name: string;
properties: Record<string, PropertySchema>;
events?: string[];
htmlTag?: string;
};
export const ALLOWED_HTML_ELEMENTS: AllowedHtmlElement[] = [
@@ -249,4 +248,421 @@ export const ALLOWED_HTML_ELEMENTS: AllowedHtmlElement[] = [
height: { type: 'number', optional: true },
},
},
// Semantic inline text
{ tag: 'html-b', name: 'HtmlB', properties: {} },
{ tag: 'html-i', name: 'HtmlI', properties: {} },
{ tag: 'html-u', name: 'HtmlU', properties: {} },
{ tag: 'html-s', name: 'HtmlS', properties: {} },
{ tag: 'html-mark', name: 'HtmlMark', properties: {} },
{ tag: 'html-sub', name: 'HtmlSub', properties: {} },
{ tag: 'html-sup', name: 'HtmlSup', properties: {} },
{ tag: 'html-abbr', name: 'HtmlAbbr', properties: {} },
{ tag: 'html-cite', name: 'HtmlCite', properties: {} },
{ tag: 'html-kbd', name: 'HtmlKbd', properties: {} },
{ tag: 'html-samp', name: 'HtmlSamp', properties: {} },
{ tag: 'html-var', name: 'HtmlVar', properties: {} },
{ tag: 'html-dfn', name: 'HtmlDfn', properties: {} },
{ tag: 'html-bdi', name: 'HtmlBdi', properties: {} },
{
tag: 'html-bdo',
name: 'HtmlBdo',
properties: {
dir: { type: 'string', optional: true },
},
},
{
tag: 'html-data',
name: 'HtmlData',
properties: {
value: { type: 'string', optional: true },
},
},
// Edited/annotated text
{
tag: 'html-del',
name: 'HtmlDel',
properties: {
cite: { type: 'string', optional: true },
dateTime: { type: 'string', optional: true },
},
},
{
tag: 'html-ins',
name: 'HtmlIns',
properties: {
cite: { type: 'string', optional: true },
dateTime: { type: 'string', optional: true },
},
},
{
tag: 'html-q',
name: 'HtmlQ',
properties: {
cite: { type: 'string', optional: true },
},
},
{
tag: 'html-time',
name: 'HtmlTime',
properties: {
dateTime: { type: 'string', optional: true },
},
},
// Ruby annotations
{ tag: 'html-ruby', name: 'HtmlRuby', properties: {} },
{ tag: 'html-rt', name: 'HtmlRt', properties: {} },
{ tag: 'html-rp', name: 'HtmlRp', properties: {} },
// Description lists
{ tag: 'html-dl', name: 'HtmlDl', properties: {} },
{ tag: 'html-dt', name: 'HtmlDt', properties: {} },
{ tag: 'html-dd', name: 'HtmlDd', properties: {} },
// Structural/semantic
{ tag: 'html-figure', name: 'HtmlFigure', properties: {} },
{ tag: 'html-figcaption', name: 'HtmlFigcaption', properties: {} },
{
tag: 'html-details',
name: 'HtmlDetails',
properties: {
open: { type: 'boolean', optional: true },
},
},
{ tag: 'html-summary', name: 'HtmlSummary', properties: {} },
{ tag: 'html-address', name: 'HtmlAddress', properties: {} },
{
tag: 'html-dialog',
name: 'HtmlDialog',
properties: {
open: { type: 'boolean', optional: true },
},
},
{ tag: 'html-hgroup', name: 'HtmlHgroup', properties: {} },
{ tag: 'html-search', name: 'HtmlSearch', properties: {} },
// Table additions
{ tag: 'html-caption', name: 'HtmlCaption', properties: {} },
{
tag: 'html-colgroup',
name: 'HtmlColgroup',
properties: {
span: { type: 'number', optional: true },
},
},
{
tag: 'html-col',
name: 'HtmlCol',
properties: {
span: { type: 'number', optional: true },
},
},
// Form additions
{
tag: 'html-fieldset',
name: 'HtmlFieldset',
properties: {
disabled: { type: 'boolean', optional: true },
name: { type: 'string', optional: true },
},
},
{ tag: 'html-legend', name: 'HtmlLegend', properties: {} },
{
tag: 'html-output',
name: 'HtmlOutput',
properties: {
name: { type: 'string', optional: true },
htmlFor: { type: 'string', optional: true },
},
},
{
tag: 'html-progress',
name: 'HtmlProgress',
properties: {
value: { type: 'number', optional: true },
max: { type: 'number', optional: true },
},
},
{
tag: 'html-meter',
name: 'HtmlMeter',
properties: {
value: { type: 'number', optional: true },
min: { type: 'number', optional: true },
max: { type: 'number', optional: true },
low: { type: 'number', optional: true },
high: { type: 'number', optional: true },
optimum: { type: 'number', optional: true },
},
},
{
tag: 'html-optgroup',
name: 'HtmlOptgroup',
properties: {
label: { type: 'string', optional: true },
disabled: { type: 'boolean', optional: true },
},
},
{ tag: 'html-datalist', name: 'HtmlDatalist', properties: {} },
// Media additions
{ tag: 'html-picture', name: 'HtmlPicture', properties: {} },
{
tag: 'html-track',
name: 'HtmlTrack',
properties: {
src: { type: 'string', optional: true },
kind: { type: 'string', optional: true },
srclang: { type: 'string', optional: true },
label: { type: 'string', optional: true },
default: { type: 'boolean', optional: true },
},
},
// Miscellaneous
{ tag: 'html-wbr', name: 'HtmlWbr', properties: {} },
{ tag: 'html-menu', name: 'HtmlMenu', properties: {} },
// SVG container/structural
{
tag: 'html-svg',
name: 'HtmlSvg',
properties: {
...SVG_PRESENTATION_PROPERTIES,
viewBox: { type: 'string', optional: true },
xmlns: { type: 'string', optional: true },
width: { type: 'string', optional: true },
height: { type: 'string', optional: true },
preserveAspectRatio: { type: 'string', optional: true },
},
},
{
tag: 'html-g',
name: 'HtmlG',
properties: {
...SVG_PRESENTATION_PROPERTIES,
},
},
{ tag: 'html-defs', name: 'HtmlDefs', properties: {} },
{
tag: 'html-symbol',
name: 'HtmlSymbol',
properties: {
viewBox: { type: 'string', optional: true },
},
},
{
tag: 'html-use',
name: 'HtmlUse',
properties: {
href: { type: 'string', optional: true },
x: { type: 'string', optional: true },
y: { type: 'string', optional: true },
width: { type: 'string', optional: true },
height: { type: 'string', optional: true },
},
},
{
tag: 'html-clippath',
name: 'HtmlClipPath',
htmlTag: 'clipPath',
properties: {
clipPathUnits: { type: 'string', optional: true },
},
},
{
tag: 'html-mask',
name: 'HtmlMask',
properties: {
maskUnits: { type: 'string', optional: true },
},
},
// SVG shapes
{
tag: 'html-circle',
name: 'HtmlCircle',
properties: {
...SVG_PRESENTATION_PROPERTIES,
cx: { type: 'string', optional: true },
cy: { type: 'string', optional: true },
r: { type: 'string', optional: true },
},
},
{
tag: 'html-ellipse',
name: 'HtmlEllipse',
properties: {
...SVG_PRESENTATION_PROPERTIES,
cx: { type: 'string', optional: true },
cy: { type: 'string', optional: true },
rx: { type: 'string', optional: true },
ry: { type: 'string', optional: true },
},
},
{
tag: 'html-rect',
name: 'HtmlRect',
properties: {
...SVG_PRESENTATION_PROPERTIES,
x: { type: 'string', optional: true },
y: { type: 'string', optional: true },
width: { type: 'string', optional: true },
height: { type: 'string', optional: true },
rx: { type: 'string', optional: true },
ry: { type: 'string', optional: true },
},
},
{
tag: 'html-line',
name: 'HtmlLine',
properties: {
...SVG_PRESENTATION_PROPERTIES,
x1: { type: 'string', optional: true },
y1: { type: 'string', optional: true },
x2: { type: 'string', optional: true },
y2: { type: 'string', optional: true },
},
},
{
tag: 'html-path',
name: 'HtmlPath',
properties: {
...SVG_PRESENTATION_PROPERTIES,
d: { type: 'string', optional: true },
},
},
{
tag: 'html-polygon',
name: 'HtmlPolygon',
properties: {
...SVG_PRESENTATION_PROPERTIES,
points: { type: 'string', optional: true },
},
},
{
tag: 'html-polyline',
name: 'HtmlPolyline',
properties: {
...SVG_PRESENTATION_PROPERTIES,
points: { type: 'string', optional: true },
},
},
// SVG text
{
tag: 'html-text',
name: 'HtmlText',
properties: {
...SVG_PRESENTATION_PROPERTIES,
x: { type: 'string', optional: true },
y: { type: 'string', optional: true },
dx: { type: 'string', optional: true },
dy: { type: 'string', optional: true },
textAnchor: { type: 'string', optional: true },
dominantBaseline: { type: 'string', optional: true },
},
},
{
tag: 'html-tspan',
name: 'HtmlTspan',
properties: {
...SVG_PRESENTATION_PROPERTIES,
x: { type: 'string', optional: true },
y: { type: 'string', optional: true },
dx: { type: 'string', optional: true },
dy: { type: 'string', optional: true },
},
},
// SVG gradients/patterns
{
tag: 'html-lineargradient',
name: 'HtmlLinearGradient',
htmlTag: 'linearGradient',
properties: {
x1: { type: 'string', optional: true },
y1: { type: 'string', optional: true },
x2: { type: 'string', optional: true },
y2: { type: 'string', optional: true },
gradientUnits: { type: 'string', optional: true },
gradientTransform: { type: 'string', optional: true },
},
},
{
tag: 'html-radialgradient',
name: 'HtmlRadialGradient',
htmlTag: 'radialGradient',
properties: {
cx: { type: 'string', optional: true },
cy: { type: 'string', optional: true },
r: { type: 'string', optional: true },
fx: { type: 'string', optional: true },
fy: { type: 'string', optional: true },
gradientUnits: { type: 'string', optional: true },
gradientTransform: { type: 'string', optional: true },
},
},
{
tag: 'html-stop',
name: 'HtmlStop',
properties: {
offset: { type: 'string', optional: true },
stopColor: { type: 'string', optional: true },
stopOpacity: { type: 'string', optional: true },
},
},
{
tag: 'html-pattern',
name: 'HtmlPattern',
properties: {
x: { type: 'string', optional: true },
y: { type: 'string', optional: true },
width: { type: 'string', optional: true },
height: { type: 'string', optional: true },
patternUnits: { type: 'string', optional: true },
patternTransform: { type: 'string', optional: true },
},
},
// SVG other
{
tag: 'html-image',
name: 'HtmlImage',
properties: {
href: { type: 'string', optional: true },
x: { type: 'string', optional: true },
y: { type: 'string', optional: true },
width: { type: 'string', optional: true },
height: { type: 'string', optional: true },
preserveAspectRatio: { type: 'string', optional: true },
},
},
{
tag: 'html-foreignobject',
name: 'HtmlForeignObject',
htmlTag: 'foreignObject',
properties: {
x: { type: 'string', optional: true },
y: { type: 'string', optional: true },
width: { type: 'string', optional: true },
height: { type: 'string', optional: true },
},
},
{
tag: 'html-marker',
name: 'HtmlMarker',
properties: {
markerWidth: { type: 'string', optional: true },
markerHeight: { type: 'string', optional: true },
refX: { type: 'string', optional: true },
refY: { type: 'string', optional: true },
orient: { type: 'string', optional: true },
markerUnits: { type: 'string', optional: true },
},
},
{ tag: 'html-title', name: 'HtmlTitle', properties: {} },
];
@@ -4,24 +4,29 @@ const UTILITY_TAG_MAPPINGS: Record<string, string> = {
'remote-style': 'RemoteStyle',
};
const getHostTagName = (element: (typeof ALLOWED_HTML_ELEMENTS)[number]) =>
element.htmlTag ??
(element.tag.startsWith('html-') ? element.tag.slice(5) : element.tag);
export const HTML_TAG_TO_REMOTE_COMPONENT: Record<string, string> = {
...Object.fromEntries(
ALLOWED_HTML_ELEMENTS.map((element) => [
element.tag.startsWith('html-') ? element.tag.slice(5) : element.tag,
getHostTagName(element),
element.name,
]),
),
...UTILITY_TAG_MAPPINGS,
};
// Maps standard HTML tag names to their custom element equivalents
// used by the remote DOM polyfill (e.g. "div" → "html-div").
// Maps standard HTML/SVG tag names to their custom element equivalents
// used by the remote DOM polyfill (e.g. "div" → "html-div",
// "clipPath" → "html-clippath").
// Consumed by the jsx-runtime wrapper so React creates the correct
// custom elements instead of standard HTML tags.
// custom elements instead of standard HTML/SVG tags.
export const HTML_TAG_TO_CUSTOM_ELEMENT_TAG: Record<string, string> = {
...Object.fromEntries(
ALLOWED_HTML_ELEMENTS.map((element) => [
element.tag.startsWith('html-') ? element.tag.slice(5) : element.tag,
getHostTagName(element),
element.tag,
]),
),
@@ -0,0 +1,22 @@
import { type PropertySchema } from './PropertySchema';
export const SVG_PRESENTATION_PROPERTIES: Record<string, PropertySchema> = {
fill: { type: 'string', optional: true },
fillOpacity: { type: 'string', optional: true },
fillRule: { type: 'string', optional: true },
stroke: { type: 'string', optional: true },
strokeWidth: { type: 'string', optional: true },
strokeOpacity: { type: 'string', optional: true },
strokeLinecap: { type: 'string', optional: true },
strokeLinejoin: { type: 'string', optional: true },
strokeDasharray: { type: 'string', optional: true },
strokeDashoffset: { type: 'string', optional: true },
strokeMiterlimit: { type: 'string', optional: true },
opacity: { type: 'string', optional: true },
transform: { type: 'string', optional: true },
clipPath: { type: 'string', optional: true },
clipRule: { type: 'string', optional: true },
mask: { type: 'string', optional: true },
filter: { type: 'string', optional: true },
pointerEvents: { type: 'string', optional: true },
};
@@ -92,6 +92,162 @@ export const componentRegistry: Map<string, ComponentRegistryValue> = new Map([
'html-source',
createRemoteComponentRenderer(createHtmlHostWrapper('source')),
],
['html-b', createRemoteComponentRenderer(createHtmlHostWrapper('b'))],
['html-i', createRemoteComponentRenderer(createHtmlHostWrapper('i'))],
['html-u', createRemoteComponentRenderer(createHtmlHostWrapper('u'))],
['html-s', createRemoteComponentRenderer(createHtmlHostWrapper('s'))],
['html-mark', createRemoteComponentRenderer(createHtmlHostWrapper('mark'))],
['html-sub', createRemoteComponentRenderer(createHtmlHostWrapper('sub'))],
['html-sup', createRemoteComponentRenderer(createHtmlHostWrapper('sup'))],
['html-abbr', createRemoteComponentRenderer(createHtmlHostWrapper('abbr'))],
['html-cite', createRemoteComponentRenderer(createHtmlHostWrapper('cite'))],
['html-kbd', createRemoteComponentRenderer(createHtmlHostWrapper('kbd'))],
['html-samp', createRemoteComponentRenderer(createHtmlHostWrapper('samp'))],
['html-var', createRemoteComponentRenderer(createHtmlHostWrapper('var'))],
['html-dfn', createRemoteComponentRenderer(createHtmlHostWrapper('dfn'))],
['html-bdi', createRemoteComponentRenderer(createHtmlHostWrapper('bdi'))],
['html-bdo', createRemoteComponentRenderer(createHtmlHostWrapper('bdo'))],
['html-data', createRemoteComponentRenderer(createHtmlHostWrapper('data'))],
['html-del', createRemoteComponentRenderer(createHtmlHostWrapper('del'))],
['html-ins', createRemoteComponentRenderer(createHtmlHostWrapper('ins'))],
['html-q', createRemoteComponentRenderer(createHtmlHostWrapper('q'))],
['html-time', createRemoteComponentRenderer(createHtmlHostWrapper('time'))],
['html-ruby', createRemoteComponentRenderer(createHtmlHostWrapper('ruby'))],
['html-rt', createRemoteComponentRenderer(createHtmlHostWrapper('rt'))],
['html-rp', createRemoteComponentRenderer(createHtmlHostWrapper('rp'))],
['html-dl', createRemoteComponentRenderer(createHtmlHostWrapper('dl'))],
['html-dt', createRemoteComponentRenderer(createHtmlHostWrapper('dt'))],
['html-dd', createRemoteComponentRenderer(createHtmlHostWrapper('dd'))],
[
'html-figure',
createRemoteComponentRenderer(createHtmlHostWrapper('figure')),
],
[
'html-figcaption',
createRemoteComponentRenderer(createHtmlHostWrapper('figcaption')),
],
[
'html-details',
createRemoteComponentRenderer(createHtmlHostWrapper('details')),
],
[
'html-summary',
createRemoteComponentRenderer(createHtmlHostWrapper('summary')),
],
[
'html-address',
createRemoteComponentRenderer(createHtmlHostWrapper('address')),
],
[
'html-dialog',
createRemoteComponentRenderer(createHtmlHostWrapper('dialog')),
],
[
'html-hgroup',
createRemoteComponentRenderer(createHtmlHostWrapper('hgroup')),
],
[
'html-search',
createRemoteComponentRenderer(createHtmlHostWrapper('search')),
],
[
'html-caption',
createRemoteComponentRenderer(createHtmlHostWrapper('caption')),
],
[
'html-colgroup',
createRemoteComponentRenderer(createHtmlHostWrapper('colgroup')),
],
['html-col', createRemoteComponentRenderer(createHtmlHostWrapper('col'))],
[
'html-fieldset',
createRemoteComponentRenderer(createHtmlHostWrapper('fieldset')),
],
[
'html-legend',
createRemoteComponentRenderer(createHtmlHostWrapper('legend')),
],
[
'html-output',
createRemoteComponentRenderer(createHtmlHostWrapper('output')),
],
[
'html-progress',
createRemoteComponentRenderer(createHtmlHostWrapper('progress')),
],
['html-meter', createRemoteComponentRenderer(createHtmlHostWrapper('meter'))],
[
'html-optgroup',
createRemoteComponentRenderer(createHtmlHostWrapper('optgroup')),
],
[
'html-datalist',
createRemoteComponentRenderer(createHtmlHostWrapper('datalist')),
],
[
'html-picture',
createRemoteComponentRenderer(createHtmlHostWrapper('picture')),
],
['html-track', createRemoteComponentRenderer(createHtmlHostWrapper('track'))],
['html-wbr', createRemoteComponentRenderer(createHtmlHostWrapper('wbr'))],
['html-menu', createRemoteComponentRenderer(createHtmlHostWrapper('menu'))],
['html-svg', createRemoteComponentRenderer(createHtmlHostWrapper('svg'))],
['html-g', createRemoteComponentRenderer(createHtmlHostWrapper('g'))],
['html-defs', createRemoteComponentRenderer(createHtmlHostWrapper('defs'))],
[
'html-symbol',
createRemoteComponentRenderer(createHtmlHostWrapper('symbol')),
],
['html-use', createRemoteComponentRenderer(createHtmlHostWrapper('use'))],
[
'html-clippath',
createRemoteComponentRenderer(createHtmlHostWrapper('clipPath')),
],
['html-mask', createRemoteComponentRenderer(createHtmlHostWrapper('mask'))],
[
'html-circle',
createRemoteComponentRenderer(createHtmlHostWrapper('circle')),
],
[
'html-ellipse',
createRemoteComponentRenderer(createHtmlHostWrapper('ellipse')),
],
['html-rect', createRemoteComponentRenderer(createHtmlHostWrapper('rect'))],
['html-line', createRemoteComponentRenderer(createHtmlHostWrapper('line'))],
['html-path', createRemoteComponentRenderer(createHtmlHostWrapper('path'))],
[
'html-polygon',
createRemoteComponentRenderer(createHtmlHostWrapper('polygon')),
],
[
'html-polyline',
createRemoteComponentRenderer(createHtmlHostWrapper('polyline')),
],
['html-text', createRemoteComponentRenderer(createHtmlHostWrapper('text'))],
['html-tspan', createRemoteComponentRenderer(createHtmlHostWrapper('tspan'))],
[
'html-lineargradient',
createRemoteComponentRenderer(createHtmlHostWrapper('linearGradient')),
],
[
'html-radialgradient',
createRemoteComponentRenderer(createHtmlHostWrapper('radialGradient')),
],
['html-stop', createRemoteComponentRenderer(createHtmlHostWrapper('stop'))],
[
'html-pattern',
createRemoteComponentRenderer(createHtmlHostWrapper('pattern')),
],
['html-image', createRemoteComponentRenderer(createHtmlHostWrapper('image'))],
[
'html-foreignobject',
createRemoteComponentRenderer(createHtmlHostWrapper('foreignObject')),
],
[
'html-marker',
createRemoteComponentRenderer(createHtmlHostWrapper('marker')),
],
['html-title', createRemoteComponentRenderer(createHtmlHostWrapper('title'))],
['remote-style', createRemoteComponentRenderer(RemoteStyleRenderer)],
['remote-fragment', RemoteFragmentRenderer],
]);
@@ -13,14 +13,14 @@ const EVENT_NAME_MAP: Record<string, string> = Object.fromEntries(
);
const VOID_ELEMENTS = new Set([
'input',
'br',
'hr',
'img',
'area',
'base',
'br',
'col',
'embed',
'hr',
'img',
'input',
'link',
'meta',
'source',
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
@@ -2,12 +2,13 @@ import { useHasAccessTokenPair } from '@/auth/hooks/useHasAccessTokenPair';
import { useDefaultHomePagePath } from '@/navigation/hooks/useDefaultHomePagePath';
import { useOnboardingStatus } from '@/onboarding/hooks/useOnboardingStatus';
import { useIsWorkspaceActivationStatusEqualsTo } from '@/workspace/hooks/useIsWorkspaceActivationStatusEqualsTo';
import { useQuery } from '@apollo/client/react';
import { useParams } from 'react-router-dom';
import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue';
import { AppPath, SettingsPath } from 'twenty-shared/types';
import { getSettingsPath } from 'twenty-shared/utils';
import { OnboardingStatus } from '~/generated-metadata/graphql';
import { OnboardingStatus, PageLayoutType } from '~/generated-metadata/graphql';
import { useIsCurrentLocationOnAWorkspace } from '@/domain-manager/hooks/useIsCurrentLocationOnAWorkspace';
import { usePageChangeEffectNavigateLocation } from '~/hooks/usePageChangeEffectNavigateLocation';
@@ -58,11 +59,23 @@ const setupMockIsOnAWorkspace = (isOnAWorkspace: boolean) => {
});
};
jest.mock('@apollo/client/react');
const setupMockUseQuery = (result?: { data?: unknown; loading?: boolean }) => {
jest.mocked(useQuery).mockReturnValueOnce({
data: result?.data ?? undefined,
loading: result?.loading ?? false,
} as ReturnType<typeof useQuery>);
};
jest.mock('react-router-dom');
const setupMockUseParams = (objectNamePlural?: string) => {
jest
.mocked(useParams)
.mockReturnValueOnce({ objectNamePlural: objectNamePlural ?? '' });
const setupMockUseParams = (
objectNamePlural?: string,
pageLayoutId?: string,
) => {
jest.mocked(useParams).mockReturnValueOnce({
objectNamePlural: objectNamePlural ?? '',
pageLayoutId,
});
};
jest.mock('@/ui/utilities/state/jotai/hooks/useAtomStateValue');
@@ -92,6 +105,8 @@ const testCases: {
objectNamePluralFromMetadata?: string;
verifyEmailRedirectPath?: string;
returnToPath?: string;
pageLayoutId?: string;
useQueryResult?: { data?: unknown; loading?: boolean };
}[] = [
{ loc: AppPath.Verify, hasAccessTokenPair: true, isWorkspaceSuspended: false, onboardingStatus: OnboardingStatus.PLAN_REQUIRED, res: AppPath.PlanRequired },
{ loc: AppPath.Verify, hasAccessTokenPair: true, isWorkspaceSuspended: true, onboardingStatus: OnboardingStatus.COMPLETED, res: getSettingsPath(SettingsPath.Billing) },
@@ -277,6 +292,20 @@ const testCases: {
{ loc: AppPath.RecordShowPage, hasAccessTokenPair: true, isWorkspaceSuspended: false, onboardingStatus: OnboardingStatus.BOOK_ONBOARDING, res: AppPath.BookCallDecision },
{ loc: AppPath.RecordShowPage, hasAccessTokenPair: true, isWorkspaceSuspended: false, onboardingStatus: OnboardingStatus.COMPLETED, res: undefined },
{ loc: AppPath.PageLayoutPage, hasAccessTokenPair: true, isWorkspaceSuspended: false, onboardingStatus: OnboardingStatus.PLAN_REQUIRED, res: AppPath.PlanRequired },
{ loc: AppPath.PageLayoutPage, hasAccessTokenPair: true, isWorkspaceSuspended: true, onboardingStatus: OnboardingStatus.COMPLETED, res: getSettingsPath(SettingsPath.Billing) },
{ loc: AppPath.PageLayoutPage, hasAccessTokenPair: false, isWorkspaceSuspended: false, onboardingStatus: undefined, res: AppPath.SignInUp },
{ loc: AppPath.PageLayoutPage, hasAccessTokenPair: true, isWorkspaceSuspended: false, onboardingStatus: OnboardingStatus.WORKSPACE_ACTIVATION, res: AppPath.CreateWorkspace },
{ loc: AppPath.PageLayoutPage, hasAccessTokenPair: true, isWorkspaceSuspended: false, onboardingStatus: OnboardingStatus.PROFILE_CREATION, res: AppPath.CreateProfile },
{ loc: AppPath.PageLayoutPage, hasAccessTokenPair: true, isWorkspaceSuspended: false, onboardingStatus: OnboardingStatus.SYNC_EMAIL, res: AppPath.SyncEmails },
{ loc: AppPath.PageLayoutPage, hasAccessTokenPair: true, isWorkspaceSuspended: false, onboardingStatus: OnboardingStatus.INVITE_TEAM, res: AppPath.InviteTeam },
{ loc: AppPath.PageLayoutPage, hasAccessTokenPair: true, isWorkspaceSuspended: false, onboardingStatus: OnboardingStatus.BOOK_ONBOARDING, res: AppPath.BookCallDecision },
{ loc: AppPath.PageLayoutPage, hasAccessTokenPair: true, isWorkspaceSuspended: false, onboardingStatus: OnboardingStatus.COMPLETED, res: undefined },
{ loc: AppPath.PageLayoutPage, hasAccessTokenPair: true, isWorkspaceSuspended: false, onboardingStatus: OnboardingStatus.COMPLETED, res: undefined, pageLayoutId: 'valid-id', useQueryResult: { loading: true } },
{ loc: AppPath.PageLayoutPage, hasAccessTokenPair: true, isWorkspaceSuspended: false, onboardingStatus: OnboardingStatus.COMPLETED, res: AppPath.NotFound, pageLayoutId: 'non-existent-id', useQueryResult: { data: { getPageLayout: null }, loading: false } },
{ loc: AppPath.PageLayoutPage, hasAccessTokenPair: true, isWorkspaceSuspended: false, onboardingStatus: OnboardingStatus.COMPLETED, res: AppPath.NotFound, pageLayoutId: 'wrong-type-id', useQueryResult: { data: { getPageLayout: { type: PageLayoutType.RECORD_PAGE } }, loading: false } },
{ loc: AppPath.PageLayoutPage, hasAccessTokenPair: true, isWorkspaceSuspended: false, onboardingStatus: OnboardingStatus.COMPLETED, res: undefined, pageLayoutId: 'valid-standalone-id', useQueryResult: { data: { getPageLayout: { type: PageLayoutType.STANDALONE_PAGE } }, loading: false } },
{ loc: AppPath.SettingsCatchAll, hasAccessTokenPair: true, isWorkspaceSuspended: false, onboardingStatus: OnboardingStatus.PLAN_REQUIRED, res: AppPath.PlanRequired },
{ loc: AppPath.SettingsCatchAll, hasAccessTokenPair: true, isWorkspaceSuspended: true, onboardingStatus: OnboardingStatus.COMPLETED, res: undefined },
{ loc: AppPath.SettingsCatchAll, hasAccessTokenPair: false, isWorkspaceSuspended: false, onboardingStatus: undefined, res: AppPath.SignInUp },
@@ -350,6 +379,8 @@ describe('usePageChangeEffectNavigateLocation', () => {
objectNamePluralFromMetadata,
verifyEmailRedirectPath,
returnToPath,
pageLayoutId,
useQueryResult,
res,
}) => {
setupMockIsMatchingLocation(loc);
@@ -357,7 +388,8 @@ describe('usePageChangeEffectNavigateLocation', () => {
setupMockIsWorkspaceActivationStatusEqualsTo(isWorkspaceSuspended);
setupMockHasAccessTokenPair(hasAccessTokenPair);
setupMockIsOnAWorkspace(isOnAWorkspace ?? true);
setupMockUseParams(objectNamePluralFromParams);
setupMockUseQuery(useQueryResult);
setupMockUseParams(objectNamePluralFromParams, pageLayoutId);
setupMockState(
objectNamePluralFromMetadata,
verifyEmailRedirectPath,
@@ -379,6 +411,12 @@ describe('usePageChangeEffectNavigateLocation', () => {
['nonExistingObjectInParam', 'existingObjectInParam:false'].length +
['caseWithRedirectionToVerifyEmailRedirectPath', 'caseWithout']
.length +
[
'pageLayout:loading',
'pageLayout:missing',
'pageLayout:wrongType',
'pageLayout:validStandalone',
].length +
['returnToPath:verify', 'returnToPath:signInUp', 'returnToPath:index']
.length +
['notOnWorkspace:verify', 'notOnWorkspace:signInUp'].length,
@@ -11,12 +11,17 @@ import { useOnboardingStatus } from '@/onboarding/hooks/useOnboardingStatus';
import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue';
import { useIsWorkspaceActivationStatusEqualsTo } from '@/workspace/hooks/useIsWorkspaceActivationStatusEqualsTo';
import { isValidReturnToPath } from '@/auth/utils/isValidReturnToPath';
import { useQuery } from '@apollo/client/react';
import { isNonEmptyString } from '@sniptt/guards';
import { useLocation, useParams } from 'react-router-dom';
import { AppPath, SettingsPath } from 'twenty-shared/types';
import { isDefined } from 'twenty-shared/utils';
import { WorkspaceActivationStatus } from 'twenty-shared/workspace';
import { OnboardingStatus } from '~/generated-metadata/graphql';
import {
FindOnePageLayoutTypeDocument,
OnboardingStatus,
PageLayoutType,
} from '~/generated-metadata/graphql';
import { isMatchingLocation } from '~/utils/isMatchingLocation';
const readReturnToPathFromUrlSearchParams = (): string | null => {
@@ -39,11 +44,27 @@ export const usePageChangeEffectNavigateLocation = () => {
const someMatchingLocationOf = (appPaths: AppPath[]): boolean =>
appPaths.some((appPath) => isMatchingLocation(location, appPath));
const objectNamePlural = useParams().objectNamePlural ?? '';
const params = useParams();
const objectNamePlural = params.objectNamePlural ?? '';
const objectMetadataItems = useAtomStateValue(objectMetadataItemsSelector);
const objectMetadataItem = objectMetadataItems?.find(
(objectMetadataItem) => objectMetadataItem.namePlural === objectNamePlural,
);
const pageLayoutId = params.pageLayoutId;
const isOnPageLayoutPage = isMatchingLocation(
location,
AppPath.PageLayoutPage,
);
const { data: pageLayoutData, loading: isPageLayoutLoading } = useQuery(
FindOnePageLayoutTypeDocument,
{
variables: { id: pageLayoutId ?? '' },
skip: !isOnPageLayoutPage || !isDefined(pageLayoutId),
},
);
const verifyEmailRedirectPath = useAtomStateValue(
verifyEmailRedirectPathState,
);
@@ -157,5 +178,15 @@ export const usePageChangeEffectNavigateLocation = () => {
return AppPath.NotFound;
}
if (
isOnPageLayoutPage &&
isDefined(pageLayoutId) &&
!isPageLayoutLoading &&
(!isDefined(pageLayoutData?.getPageLayout) ||
pageLayoutData.getPageLayout.type !== PageLayoutType.STANDALONE_PAGE)
) {
return AppPath.NotFound;
}
return;
};
+70 -29
View File
@@ -790,7 +790,7 @@ msgstr "Aksies gebruikers kan uitvoer op hierdie voorwerp"
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Activate"
msgstr "Aktiveer"
@@ -1216,6 +1216,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
@@ -1755,6 +1756,7 @@ msgstr "'n Fout het voorgekom tydens die oplaai van die prent."
#: src/modules/ui/feedback/snack-bar-manager/hooks/useSnackBar.ts
#: src/modules/page-layout/hooks/useUpdatePageLayoutWithTabsAndWidgets.ts
#: src/modules/page-layout/hooks/useResetPageLayoutWidgetToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutTabToDefault.ts
#: src/modules/object-metadata/hooks/useUpdateOneObjectMetadataItem.ts
#: src/modules/object-metadata/hooks/useUpdateOneFieldMetadataItem.ts
@@ -1785,7 +1787,6 @@ msgstr "'n Objek met hierdie naam bestaan reeds"
#. js-lingui-id: lxentK
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
#: src/modules/ai/utils/extractErrorMessage.ts
msgid "An unexpected error occurred"
msgstr "'n Onverwagte fout het voorgekom"
@@ -1953,6 +1954,11 @@ msgstr "App"
msgid "App installed on this workspace"
msgstr "App op hierdie werkruimte geïnstalleer"
#. js-lingui-id: r5g1bX
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
msgid "App registrations"
msgstr ""
#. js-lingui-id: aAIQg2
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx
msgid "Appearance"
@@ -3183,7 +3189,6 @@ msgstr "Knipbord vereis 'n veilige verbinding (HTTPS). Gebruik asseblief hierdie
#. js-lingui-id: yz7wBu
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close"
msgstr "Maak toe"
@@ -3194,7 +3199,6 @@ msgid "Close banner"
msgstr "Sluit banier"
#. js-lingui-id: saip/v
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close side panel"
msgstr "Maak sypaneel toe"
@@ -4952,6 +4956,11 @@ msgstr "Ontwikkelaar"
msgid "Developers links"
msgstr "Skakels vir ontwikkelaars"
#. js-lingui-id: E/QGRL
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Disabled"
msgstr ""
#. js-lingui-id: Xm/s+u
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelsGeneral.tsx
msgid "Display"
@@ -4988,8 +4997,8 @@ msgid "Display text on multiple lines"
msgstr "Vertoon teks op meerdere reëls"
#. js-lingui-id: vU/Hht
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
msgid "Distribution"
msgstr "Verspreiding"
@@ -5594,6 +5603,11 @@ msgstr "Leë Inboks"
msgid "Empty Object"
msgstr "Leë Objek"
#. js-lingui-id: 7A0K1Y
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Empty tab"
msgstr ""
#. js-lingui-id: q11Dk2
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Enable bypass options"
@@ -7113,8 +7127,8 @@ msgstr ""
#. js-lingui-id: Weq9zb
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroupsForDisplay.ts
@@ -7168,11 +7182,6 @@ msgstr "Benut jou werkruimte optimaal deur jou span uit te nooi."
msgid "Get your subscription"
msgstr "Kry jou inskrywing"
#. js-lingui-id: 2GT3Hf
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Global"
msgstr "Globaal"
#. js-lingui-id: sr0UJD
#: src/pages/settings/security/event-logs/SettingsEventLogs.tsx
msgid "Go Back"
@@ -9270,7 +9279,6 @@ msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "More"
msgstr "Meer"
@@ -9655,6 +9663,20 @@ msgstr "Nuwe SSO Konfigurasie"
msgid "New SSO provider"
msgstr "Nuwe SSO Verskaffer"
#. js-lingui-id: 3YvS+c
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "New tab"
msgstr ""
#. js-lingui-id: Db+TX4
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
msgid "New Tab"
msgstr ""
#. js-lingui-id: wl18ST
#: src/modules/activities/tasks/components/TaskGroups.tsx
msgid "New task"
@@ -10349,6 +10371,11 @@ msgstr "Nota"
msgid "Notes"
msgstr "Notas"
#. js-lingui-id: DYCPYF
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "Nothing to see"
msgstr ""
#. js-lingui-id: YwzE9K
#: src/utils/date-utils.ts
#: src/utils/date-utils.ts
@@ -10414,7 +10441,7 @@ msgid "Numbered list"
msgstr ""
#. js-lingui-id: b/j06W
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "OAuth"
msgstr "OAuth"
@@ -10694,7 +10721,6 @@ msgid "Open Outlook"
msgstr "Maak Outlook oop"
#. js-lingui-id: bY2Xkv
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Open side panel"
msgstr "Maak sypaneel oop"
@@ -10785,6 +10811,7 @@ msgstr "Rangskik"
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
@@ -11697,11 +11724,6 @@ msgstr "Rekord etiket"
msgid "Record Page"
msgstr "Rekordbladsy"
#. js-lingui-id: dSCufP
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Record Selection"
msgstr "Rekord Seleksie"
#. js-lingui-id: NxW0+c
#: src/modules/side-panel/pages/page-layout/utils/getPageLayoutPageTitle.ts
msgid "Record Table Settings"
@@ -12026,6 +12048,8 @@ msgstr "Stuur e-pos weer"
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset"
msgstr "Stel terug"
@@ -12035,6 +12059,11 @@ msgstr "Stel terug"
msgid "Reset 2FA"
msgstr "Herstel 2FA"
#. js-lingui-id: kw0Yv1
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset all overrides on this layout to return it to the app default"
msgstr ""
#. js-lingui-id: YdI8A2
#: src/modules/command-menu-item/edit/components/CommandMenuItemOptionsDropdown.tsx
msgid "Reset label to default"
@@ -12047,6 +12076,8 @@ msgstr ""
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/fields/forms/address/components/SettingsDataModelFieldAddressForm.tsx
#: src/modules/command-menu-item/edit/components/SidePanelCommandMenuItemEditPage.tsx
msgid "Reset to default"
@@ -12312,6 +12343,11 @@ msgstr "Voer {formattedName} uit"
msgid "Running function"
msgstr "Funksie word uitgevoer"
#. js-lingui-id: SoR81K
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
msgid "Running workflows on all records is not yet supported. Please select records manually."
msgstr ""
#. js-lingui-id: LTC198
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Running..."
@@ -12395,11 +12431,6 @@ msgstr "SDK"
msgid "Search"
msgstr "Soek"
#. js-lingui-id: aOQ/Fi
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Search ''{sidePanelSearch}'' with..."
msgstr "Soek ''{sidePanelSearch}'' met..."
#. js-lingui-id: g2dQp/
#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelPermissionMeValueSelect.tsx
msgid "Search 1 {fieldTypeLabelLowercase} field"
@@ -14233,6 +14264,11 @@ msgstr "Hierdie rekening is gekoppel, maar ons het nog nie toestemming om e-posk
msgid "This action can return up to {maxRecordsFormatted} records."
msgstr ""
#. js-lingui-id: 2xOCJW
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "This action cannot be undone."
msgstr ""
#. js-lingui-id: Ox1hE7
#: src/modules/settings/profile/components/DeleteAccount.tsx
msgid ""
@@ -14341,6 +14377,11 @@ msgstr "Hierdie sleutel moet via die liggaam-invoer gestel word"
msgid "This model will be removed from the provider. You can re-add it later."
msgstr "Hierdie model sal van die verskaffer verwyder word. Jy kan dit later weer byvoeg."
#. js-lingui-id: NCA55L
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "This page has no content"
msgstr ""
#. js-lingui-id: R/PuIn
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
msgid "This provider doesn't have a native SDK yet — it will use OpenAI-compatible mode. Need native support? Reach out to us."
@@ -15085,7 +15126,7 @@ msgstr ""
#: src/modules/ui/field/display/components/ActorDisplay.tsx
#: src/modules/side-panel/components/SidePanelContextChip.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/page-layout/components/PageLayoutTabsRenderer.tsx
#: src/modules/page-layout/hooks/usePageLayoutAddTabStrategy.ts
#: src/modules/object-record/record-title-cell/components/RecordTitleFullNameFieldDisplay.tsx
#: src/modules/object-record/record-title-cell/components/RecordTitleCellTextFieldDisplay.tsx
#: src/modules/object-record/components/RecordChip.tsx
@@ -16416,10 +16457,10 @@ msgstr "Jou ondernemingsfunksies sal gedeaktiveer word"
msgid "Your enterprise features will remain active until {cancelAtDate}."
msgstr "Jou ondernemingsfunksies sal aktief bly tot {cancelAtDate}."
#. js-lingui-id: 69Siss
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
msgstr "Jou ondernemingssleutelformaat is verouderd. Aktiveer asseblief 'n nuwe sleutel om ondernemingsfunksies te behou."
#. js-lingui-id: 5TsUUL
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
msgstr ""
#. js-lingui-id: NTpA4U
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
+70 -29
View File
@@ -790,7 +790,7 @@ msgstr "الإجراءات التي يمكن للمستخدمين تنفيذها
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Activate"
msgstr "تفعيل"
@@ -1216,6 +1216,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
@@ -1755,6 +1756,7 @@ msgstr "حدث خطأ أثناء تحميل الصورة."
#: src/modules/ui/feedback/snack-bar-manager/hooks/useSnackBar.ts
#: src/modules/page-layout/hooks/useUpdatePageLayoutWithTabsAndWidgets.ts
#: src/modules/page-layout/hooks/useResetPageLayoutWidgetToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutTabToDefault.ts
#: src/modules/object-metadata/hooks/useUpdateOneObjectMetadataItem.ts
#: src/modules/object-metadata/hooks/useUpdateOneFieldMetadataItem.ts
@@ -1785,7 +1787,6 @@ msgstr "يوجد بالفعل كائن يحمل هذا الاسم"
#. js-lingui-id: lxentK
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
#: src/modules/ai/utils/extractErrorMessage.ts
msgid "An unexpected error occurred"
msgstr "حدث خطأ غير متوقع"
@@ -1953,6 +1954,11 @@ msgstr "التطبيق"
msgid "App installed on this workspace"
msgstr "التطبيق مثبت على مساحة العمل هذه"
#. js-lingui-id: r5g1bX
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
msgid "App registrations"
msgstr ""
#. js-lingui-id: aAIQg2
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx
msgid "Appearance"
@@ -3183,7 +3189,6 @@ msgstr "تتطلب الحافظة اتصالاً آمناً (HTTPS). يُرجى
#. js-lingui-id: yz7wBu
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close"
msgstr "إغلاق"
@@ -3194,7 +3199,6 @@ msgid "Close banner"
msgstr "إغلاق اللافتة"
#. js-lingui-id: saip/v
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close side panel"
msgstr "إغلاق اللوحة الجانبية"
@@ -4952,6 +4956,11 @@ msgstr "المطوّر"
msgid "Developers links"
msgstr "روابط المطورين"
#. js-lingui-id: E/QGRL
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Disabled"
msgstr ""
#. js-lingui-id: Xm/s+u
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelsGeneral.tsx
msgid "Display"
@@ -4988,8 +4997,8 @@ msgid "Display text on multiple lines"
msgstr "عرض النصوص في عدة خطوط"
#. js-lingui-id: vU/Hht
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
msgid "Distribution"
msgstr "التوزيع"
@@ -5594,6 +5603,11 @@ msgstr "صندوق الوارد فارغ"
msgid "Empty Object"
msgstr "كائن فارغ"
#. js-lingui-id: 7A0K1Y
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Empty tab"
msgstr ""
#. js-lingui-id: q11Dk2
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Enable bypass options"
@@ -7113,8 +7127,8 @@ msgstr "الرسم البياني القياسي"
#. js-lingui-id: Weq9zb
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroupsForDisplay.ts
@@ -7168,11 +7182,6 @@ msgstr "استفد من مساحة العمل الخاصة بك عن طريق د
msgid "Get your subscription"
msgstr "احصل على اشتراكك"
#. js-lingui-id: 2GT3Hf
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Global"
msgstr "عالمي"
#. js-lingui-id: sr0UJD
#: src/pages/settings/security/event-logs/SettingsEventLogs.tsx
msgid "Go Back"
@@ -9270,7 +9279,6 @@ msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "More"
msgstr "المزيد"
@@ -9655,6 +9663,20 @@ msgstr "تكوين SSO الجديد"
msgid "New SSO provider"
msgstr "موفر دخول موحد جديد"
#. js-lingui-id: 3YvS+c
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "New tab"
msgstr ""
#. js-lingui-id: Db+TX4
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
msgid "New Tab"
msgstr ""
#. js-lingui-id: wl18ST
#: src/modules/activities/tasks/components/TaskGroups.tsx
msgid "New task"
@@ -10349,6 +10371,11 @@ msgstr "ملاحظة"
msgid "Notes"
msgstr "الملاحظات"
#. js-lingui-id: DYCPYF
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "Nothing to see"
msgstr ""
#. js-lingui-id: YwzE9K
#: src/utils/date-utils.ts
#: src/utils/date-utils.ts
@@ -10414,7 +10441,7 @@ msgid "Numbered list"
msgstr ""
#. js-lingui-id: b/j06W
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "OAuth"
msgstr "OAuth"
@@ -10694,7 +10721,6 @@ msgid "Open Outlook"
msgstr "فتح Outlook"
#. js-lingui-id: bY2Xkv
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Open side panel"
msgstr "فتح اللوحة الجانبية"
@@ -10785,6 +10811,7 @@ msgstr "تنظيم"
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
@@ -11697,11 +11724,6 @@ msgstr "ملصق السجل"
msgid "Record Page"
msgstr "صفحة السجل"
#. js-lingui-id: dSCufP
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Record Selection"
msgstr "\\\\"
#. js-lingui-id: NxW0+c
#: src/modules/side-panel/pages/page-layout/utils/getPageLayoutPageTitle.ts
msgid "Record Table Settings"
@@ -12026,6 +12048,8 @@ msgstr "إعادة إرسال البريد الإلكتروني"
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset"
msgstr "إعادة تعيين"
@@ -12035,6 +12059,11 @@ msgstr "إعادة تعيين"
msgid "Reset 2FA"
msgstr "إعادة تعيين المصادقة الثنائية"
#. js-lingui-id: kw0Yv1
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset all overrides on this layout to return it to the app default"
msgstr ""
#. js-lingui-id: YdI8A2
#: src/modules/command-menu-item/edit/components/CommandMenuItemOptionsDropdown.tsx
msgid "Reset label to default"
@@ -12047,6 +12076,8 @@ msgstr ""
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/fields/forms/address/components/SettingsDataModelFieldAddressForm.tsx
#: src/modules/command-menu-item/edit/components/SidePanelCommandMenuItemEditPage.tsx
msgid "Reset to default"
@@ -12312,6 +12343,11 @@ msgstr "جارٍ تشغيل {formattedName}"
msgid "Running function"
msgstr "الدالة قيد التشغيل"
#. js-lingui-id: SoR81K
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
msgid "Running workflows on all records is not yet supported. Please select records manually."
msgstr ""
#. js-lingui-id: LTC198
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Running..."
@@ -12395,11 +12431,6 @@ msgstr "SDK"
msgid "Search"
msgstr "\\\\"
#. js-lingui-id: aOQ/Fi
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Search ''{sidePanelSearch}'' with..."
msgstr "ابحث عن ''{sidePanelSearch}'' بواسطة..."
#. js-lingui-id: g2dQp/
#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelPermissionMeValueSelect.tsx
msgid "Search 1 {fieldTypeLabelLowercase} field"
@@ -14233,6 +14264,11 @@ msgstr "هذا الحساب متصل، ولكن لا نملك حتى الآن إ
msgid "This action can return up to {maxRecordsFormatted} records."
msgstr ""
#. js-lingui-id: 2xOCJW
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "This action cannot be undone."
msgstr ""
#. js-lingui-id: Ox1hE7
#: src/modules/settings/profile/components/DeleteAccount.tsx
msgid ""
@@ -14341,6 +14377,11 @@ msgstr "يجب تعيين هذا المفتاح عبر إدخال نص الطل
msgid "This model will be removed from the provider. You can re-add it later."
msgstr "سيتم إزالة هذا النموذج من المزود. يمكنك إضافته مرة أخرى لاحقًا."
#. js-lingui-id: NCA55L
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "This page has no content"
msgstr ""
#. js-lingui-id: R/PuIn
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
msgid "This provider doesn't have a native SDK yet — it will use OpenAI-compatible mode. Need native support? Reach out to us."
@@ -15085,7 +15126,7 @@ msgstr ""
#: src/modules/ui/field/display/components/ActorDisplay.tsx
#: src/modules/side-panel/components/SidePanelContextChip.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/page-layout/components/PageLayoutTabsRenderer.tsx
#: src/modules/page-layout/hooks/usePageLayoutAddTabStrategy.ts
#: src/modules/object-record/record-title-cell/components/RecordTitleFullNameFieldDisplay.tsx
#: src/modules/object-record/record-title-cell/components/RecordTitleCellTextFieldDisplay.tsx
#: src/modules/object-record/components/RecordChip.tsx
@@ -16414,10 +16455,10 @@ msgstr "سيتم تعطيل ميزات Enterprise لديك"
msgid "Your enterprise features will remain active until {cancelAtDate}."
msgstr "ستظل ميزات Enterprise لديك نشطة حتى {cancelAtDate}."
#. js-lingui-id: 69Siss
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
msgstr "تنسيق مفتاح Enterprise الخاص بك لم يعد مدعومًا. يُرجى تفعيل مفتاح جديد للإبقاء على ميزات Enterprise."
#. js-lingui-id: 5TsUUL
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
msgstr ""
#. js-lingui-id: NTpA4U
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
+70 -29
View File
@@ -790,7 +790,7 @@ msgstr "Accions que poden realitzar els usuaris en aquest objecte"
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Activate"
msgstr "Activa"
@@ -1216,6 +1216,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
@@ -1755,6 +1756,7 @@ msgstr "S'ha produït un error en carregar la imatge."
#: src/modules/ui/feedback/snack-bar-manager/hooks/useSnackBar.ts
#: src/modules/page-layout/hooks/useUpdatePageLayoutWithTabsAndWidgets.ts
#: src/modules/page-layout/hooks/useResetPageLayoutWidgetToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutTabToDefault.ts
#: src/modules/object-metadata/hooks/useUpdateOneObjectMetadataItem.ts
#: src/modules/object-metadata/hooks/useUpdateOneFieldMetadataItem.ts
@@ -1785,7 +1787,6 @@ msgstr "Ja existeix un objecte amb aquest nom"
#. js-lingui-id: lxentK
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
#: src/modules/ai/utils/extractErrorMessage.ts
msgid "An unexpected error occurred"
msgstr "S'ha produït un error inesperat"
@@ -1953,6 +1954,11 @@ msgstr "App"
msgid "App installed on this workspace"
msgstr "Aplicació instal·lada en aquest espai de treball"
#. js-lingui-id: r5g1bX
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
msgid "App registrations"
msgstr ""
#. js-lingui-id: aAIQg2
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx
msgid "Appearance"
@@ -3183,7 +3189,6 @@ msgstr "El porta-retalls requereix una connexió segura (HTTPS). Accedeix a aque
#. js-lingui-id: yz7wBu
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close"
msgstr "Tanca"
@@ -3194,7 +3199,6 @@ msgid "Close banner"
msgstr "Tanca el bàner"
#. js-lingui-id: saip/v
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close side panel"
msgstr "Tanca el panell lateral"
@@ -4952,6 +4956,11 @@ msgstr "Desenvolupador"
msgid "Developers links"
msgstr "Enllaços per a desenvolupadors"
#. js-lingui-id: E/QGRL
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Disabled"
msgstr ""
#. js-lingui-id: Xm/s+u
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelsGeneral.tsx
msgid "Display"
@@ -4988,8 +4997,8 @@ msgid "Display text on multiple lines"
msgstr "Mostra text en múltiples línies"
#. js-lingui-id: vU/Hht
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
msgid "Distribution"
msgstr "Distribució"
@@ -5594,6 +5603,11 @@ msgstr "Bústia buida"
msgid "Empty Object"
msgstr "Objecte Buit"
#. js-lingui-id: 7A0K1Y
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Empty tab"
msgstr ""
#. js-lingui-id: q11Dk2
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Enable bypass options"
@@ -7113,8 +7127,8 @@ msgstr "Gràfic de mesurador"
#. js-lingui-id: Weq9zb
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroupsForDisplay.ts
@@ -7168,11 +7182,6 @@ msgstr "Treu el màxim partit al teu espai de treball convidant al teu equip."
msgid "Get your subscription"
msgstr "Obteniu la vostra subscripció"
#. js-lingui-id: 2GT3Hf
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Global"
msgstr "Global"
#. js-lingui-id: sr0UJD
#: src/pages/settings/security/event-logs/SettingsEventLogs.tsx
msgid "Go Back"
@@ -9270,7 +9279,6 @@ msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "More"
msgstr "Més"
@@ -9655,6 +9663,20 @@ msgstr "Nova configuració SSO"
msgid "New SSO provider"
msgstr "Nou proveïdor SSO"
#. js-lingui-id: 3YvS+c
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "New tab"
msgstr ""
#. js-lingui-id: Db+TX4
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
msgid "New Tab"
msgstr ""
#. js-lingui-id: wl18ST
#: src/modules/activities/tasks/components/TaskGroups.tsx
msgid "New task"
@@ -10349,6 +10371,11 @@ msgstr "Nota"
msgid "Notes"
msgstr "Notes"
#. js-lingui-id: DYCPYF
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "Nothing to see"
msgstr ""
#. js-lingui-id: YwzE9K
#: src/utils/date-utils.ts
#: src/utils/date-utils.ts
@@ -10414,7 +10441,7 @@ msgid "Numbered list"
msgstr ""
#. js-lingui-id: b/j06W
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "OAuth"
msgstr "OAuth"
@@ -10694,7 +10721,6 @@ msgid "Open Outlook"
msgstr "Obrir en Outlook"
#. js-lingui-id: bY2Xkv
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Open side panel"
msgstr "Obre el panell lateral"
@@ -10785,6 +10811,7 @@ msgstr "Organitza"
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
@@ -11697,11 +11724,6 @@ msgstr "Etiqueta de registre"
msgid "Record Page"
msgstr "Pàgina de registre"
#. js-lingui-id: dSCufP
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Record Selection"
msgstr "Selecció d'enregistrament"
#. js-lingui-id: NxW0+c
#: src/modules/side-panel/pages/page-layout/utils/getPageLayoutPageTitle.ts
msgid "Record Table Settings"
@@ -12026,6 +12048,8 @@ msgstr "Reenviar correu electrònic"
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset"
msgstr "Restableix"
@@ -12035,6 +12059,11 @@ msgstr "Restableix"
msgid "Reset 2FA"
msgstr "Reinicia 2FA"
#. js-lingui-id: kw0Yv1
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset all overrides on this layout to return it to the app default"
msgstr ""
#. js-lingui-id: YdI8A2
#: src/modules/command-menu-item/edit/components/CommandMenuItemOptionsDropdown.tsx
msgid "Reset label to default"
@@ -12047,6 +12076,8 @@ msgstr ""
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/fields/forms/address/components/SettingsDataModelFieldAddressForm.tsx
#: src/modules/command-menu-item/edit/components/SidePanelCommandMenuItemEditPage.tsx
msgid "Reset to default"
@@ -12312,6 +12343,11 @@ msgstr "Executant {formattedName}"
msgid "Running function"
msgstr "Funció en execució"
#. js-lingui-id: SoR81K
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
msgid "Running workflows on all records is not yet supported. Please select records manually."
msgstr ""
#. js-lingui-id: LTC198
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Running..."
@@ -12395,11 +12431,6 @@ msgstr "SDK"
msgid "Search"
msgstr "Cerca"
#. js-lingui-id: aOQ/Fi
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Search ''{sidePanelSearch}'' with..."
msgstr "Cerca ''{sidePanelSearch}'' amb..."
#. js-lingui-id: g2dQp/
#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelPermissionMeValueSelect.tsx
msgid "Search 1 {fieldTypeLabelLowercase} field"
@@ -14233,6 +14264,11 @@ msgstr "Aquest compte està connectat, però encara no tenim permís per redacta
msgid "This action can return up to {maxRecordsFormatted} records."
msgstr ""
#. js-lingui-id: 2xOCJW
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "This action cannot be undone."
msgstr ""
#. js-lingui-id: Ox1hE7
#: src/modules/settings/profile/components/DeleteAccount.tsx
msgid ""
@@ -14341,6 +14377,11 @@ msgstr "Aquesta clau s'hauria d'establir al cos de la sol·licitud"
msgid "This model will be removed from the provider. You can re-add it later."
msgstr "Aquest model s'eliminarà del proveïdor. El podreu tornar a afegir més endavant."
#. js-lingui-id: NCA55L
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "This page has no content"
msgstr ""
#. js-lingui-id: R/PuIn
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
msgid "This provider doesn't have a native SDK yet — it will use OpenAI-compatible mode. Need native support? Reach out to us."
@@ -15085,7 +15126,7 @@ msgstr ""
#: src/modules/ui/field/display/components/ActorDisplay.tsx
#: src/modules/side-panel/components/SidePanelContextChip.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/page-layout/components/PageLayoutTabsRenderer.tsx
#: src/modules/page-layout/hooks/usePageLayoutAddTabStrategy.ts
#: src/modules/object-record/record-title-cell/components/RecordTitleFullNameFieldDisplay.tsx
#: src/modules/object-record/record-title-cell/components/RecordTitleCellTextFieldDisplay.tsx
#: src/modules/object-record/components/RecordChip.tsx
@@ -16416,10 +16457,10 @@ msgstr "Les vostres funcionalitats Enterprise es desactivaran"
msgid "Your enterprise features will remain active until {cancelAtDate}."
msgstr "Les vostres funcionalitats Enterprise romandran actives fins al {cancelAtDate}."
#. js-lingui-id: 69Siss
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
msgstr "El format de la vostra clau Enterprise és obsolet. Activeu una clau nova per mantenir les funcionalitats Enterprise."
#. js-lingui-id: 5TsUUL
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
msgstr ""
#. js-lingui-id: NTpA4U
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
+70 -29
View File
@@ -790,7 +790,7 @@ msgstr "Akce, které uživatelé mohou provádět na tomto objektu"
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Activate"
msgstr "Aktivovat"
@@ -1216,6 +1216,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
@@ -1755,6 +1756,7 @@ msgstr "Při nahrávání obrázku došlo k chybě."
#: src/modules/ui/feedback/snack-bar-manager/hooks/useSnackBar.ts
#: src/modules/page-layout/hooks/useUpdatePageLayoutWithTabsAndWidgets.ts
#: src/modules/page-layout/hooks/useResetPageLayoutWidgetToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutTabToDefault.ts
#: src/modules/object-metadata/hooks/useUpdateOneObjectMetadataItem.ts
#: src/modules/object-metadata/hooks/useUpdateOneFieldMetadataItem.ts
@@ -1785,7 +1787,6 @@ msgstr "Objekt s tímto názvem již existuje"
#. js-lingui-id: lxentK
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
#: src/modules/ai/utils/extractErrorMessage.ts
msgid "An unexpected error occurred"
msgstr "Došlo k neočekávané chybě"
@@ -1953,6 +1954,11 @@ msgstr "Aplikace"
msgid "App installed on this workspace"
msgstr "Aplikace nainstalovaná v tomto pracovním prostoru"
#. js-lingui-id: r5g1bX
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
msgid "App registrations"
msgstr ""
#. js-lingui-id: aAIQg2
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx
msgid "Appearance"
@@ -3183,7 +3189,6 @@ msgstr "Schránka vyžaduje zabezpečené připojení (HTTPS). Pro povolení kop
#. js-lingui-id: yz7wBu
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close"
msgstr "Zavřít"
@@ -3194,7 +3199,6 @@ msgid "Close banner"
msgstr "Zavřít banner"
#. js-lingui-id: saip/v
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close side panel"
msgstr "Zavřít postranní panel"
@@ -4952,6 +4956,11 @@ msgstr "Vývojář"
msgid "Developers links"
msgstr "Odkazy pro vývojáře"
#. js-lingui-id: E/QGRL
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Disabled"
msgstr ""
#. js-lingui-id: Xm/s+u
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelsGeneral.tsx
msgid "Display"
@@ -4988,8 +4997,8 @@ msgid "Display text on multiple lines"
msgstr "Zobrazit text na více řádcích"
#. js-lingui-id: vU/Hht
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
msgid "Distribution"
msgstr "Distribuce"
@@ -5594,6 +5603,11 @@ msgstr "Prázdná schránka"
msgid "Empty Object"
msgstr "Prázdný objekt"
#. js-lingui-id: 7A0K1Y
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Empty tab"
msgstr ""
#. js-lingui-id: q11Dk2
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Enable bypass options"
@@ -7113,8 +7127,8 @@ msgstr "Ukazatelový graf"
#. js-lingui-id: Weq9zb
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroupsForDisplay.ts
@@ -7168,11 +7182,6 @@ msgstr "Získejte maximum ze svého pracovního prostoru tím, že pozvete svůj
msgid "Get your subscription"
msgstr "Získejte své předplatné"
#. js-lingui-id: 2GT3Hf
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Global"
msgstr "Globální"
#. js-lingui-id: sr0UJD
#: src/pages/settings/security/event-logs/SettingsEventLogs.tsx
msgid "Go Back"
@@ -9270,7 +9279,6 @@ msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "More"
msgstr "Více"
@@ -9655,6 +9663,20 @@ msgstr "Nová konfigurace SSO"
msgid "New SSO provider"
msgstr "Nový poskytovatel SSO"
#. js-lingui-id: 3YvS+c
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "New tab"
msgstr ""
#. js-lingui-id: Db+TX4
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
msgid "New Tab"
msgstr ""
#. js-lingui-id: wl18ST
#: src/modules/activities/tasks/components/TaskGroups.tsx
msgid "New task"
@@ -10349,6 +10371,11 @@ msgstr "Poznámka"
msgid "Notes"
msgstr "Poznámky"
#. js-lingui-id: DYCPYF
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "Nothing to see"
msgstr ""
#. js-lingui-id: YwzE9K
#: src/utils/date-utils.ts
#: src/utils/date-utils.ts
@@ -10414,7 +10441,7 @@ msgid "Numbered list"
msgstr ""
#. js-lingui-id: b/j06W
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "OAuth"
msgstr "OAuth"
@@ -10694,7 +10721,6 @@ msgid "Open Outlook"
msgstr "Otevřít Outlook"
#. js-lingui-id: bY2Xkv
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Open side panel"
msgstr "Otevřít postranní panel"
@@ -10785,6 +10811,7 @@ msgstr "Uspořádat"
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
@@ -11697,11 +11724,6 @@ msgstr "Záznamový popisek"
msgid "Record Page"
msgstr "Záznamová stránka"
#. js-lingui-id: dSCufP
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Record Selection"
msgstr "Výběr záznamů"
#. js-lingui-id: NxW0+c
#: src/modules/side-panel/pages/page-layout/utils/getPageLayoutPageTitle.ts
msgid "Record Table Settings"
@@ -12026,6 +12048,8 @@ msgstr "Znovu odeslat e-mail"
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset"
msgstr "Obnovit"
@@ -12035,6 +12059,11 @@ msgstr "Obnovit"
msgid "Reset 2FA"
msgstr "Obnovit 2FA"
#. js-lingui-id: kw0Yv1
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset all overrides on this layout to return it to the app default"
msgstr ""
#. js-lingui-id: YdI8A2
#: src/modules/command-menu-item/edit/components/CommandMenuItemOptionsDropdown.tsx
msgid "Reset label to default"
@@ -12047,6 +12076,8 @@ msgstr ""
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/fields/forms/address/components/SettingsDataModelFieldAddressForm.tsx
#: src/modules/command-menu-item/edit/components/SidePanelCommandMenuItemEditPage.tsx
msgid "Reset to default"
@@ -12312,6 +12343,11 @@ msgstr "Spouští se {formattedName}"
msgid "Running function"
msgstr "Spouští se funkce"
#. js-lingui-id: SoR81K
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
msgid "Running workflows on all records is not yet supported. Please select records manually."
msgstr ""
#. js-lingui-id: LTC198
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Running..."
@@ -12395,11 +12431,6 @@ msgstr "SDK"
msgid "Search"
msgstr "Hledat"
#. js-lingui-id: aOQ/Fi
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Search ''{sidePanelSearch}'' with..."
msgstr "Hledat ''{sidePanelSearch}'' s..."
#. js-lingui-id: g2dQp/
#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelPermissionMeValueSelect.tsx
msgid "Search 1 {fieldTypeLabelLowercase} field"
@@ -14233,6 +14264,11 @@ msgstr "Tento účet je připojen, ale zatím nemáme oprávnění vytvářet ko
msgid "This action can return up to {maxRecordsFormatted} records."
msgstr ""
#. js-lingui-id: 2xOCJW
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "This action cannot be undone."
msgstr ""
#. js-lingui-id: Ox1hE7
#: src/modules/settings/profile/components/DeleteAccount.tsx
msgid ""
@@ -14341,6 +14377,11 @@ msgstr "Tento klíč by měl být nastaven přes tělo požadavku"
msgid "This model will be removed from the provider. You can re-add it later."
msgstr "Tento model bude od poskytovatele odebrán. Později jej můžete znovu přidat."
#. js-lingui-id: NCA55L
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "This page has no content"
msgstr ""
#. js-lingui-id: R/PuIn
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
msgid "This provider doesn't have a native SDK yet — it will use OpenAI-compatible mode. Need native support? Reach out to us."
@@ -15085,7 +15126,7 @@ msgstr ""
#: src/modules/ui/field/display/components/ActorDisplay.tsx
#: src/modules/side-panel/components/SidePanelContextChip.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/page-layout/components/PageLayoutTabsRenderer.tsx
#: src/modules/page-layout/hooks/usePageLayoutAddTabStrategy.ts
#: src/modules/object-record/record-title-cell/components/RecordTitleFullNameFieldDisplay.tsx
#: src/modules/object-record/record-title-cell/components/RecordTitleCellTextFieldDisplay.tsx
#: src/modules/object-record/components/RecordChip.tsx
@@ -16416,10 +16457,10 @@ msgstr "Vaše funkce Enterprise budou deaktivovány"
msgid "Your enterprise features will remain active until {cancelAtDate}."
msgstr "Vaše funkce Enterprise zůstanou aktivní do {cancelAtDate}."
#. js-lingui-id: 69Siss
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
msgstr "Formát vašeho klíče Enterprise je zastaralý. Aktivujte prosím nový klíč, abyste zachovali funkce Enterprise."
#. js-lingui-id: 5TsUUL
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
msgstr ""
#. js-lingui-id: NTpA4U
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
+70 -29
View File
@@ -790,7 +790,7 @@ msgstr "Handlinger brugere kan udføre på denne genstand"
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Activate"
msgstr "Aktivér"
@@ -1216,6 +1216,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
@@ -1755,6 +1756,7 @@ msgstr "Der opstod en fejl under upload af billedet."
#: src/modules/ui/feedback/snack-bar-manager/hooks/useSnackBar.ts
#: src/modules/page-layout/hooks/useUpdatePageLayoutWithTabsAndWidgets.ts
#: src/modules/page-layout/hooks/useResetPageLayoutWidgetToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutTabToDefault.ts
#: src/modules/object-metadata/hooks/useUpdateOneObjectMetadataItem.ts
#: src/modules/object-metadata/hooks/useUpdateOneFieldMetadataItem.ts
@@ -1785,7 +1787,6 @@ msgstr "Et objekt med dette navn findes allerede"
#. js-lingui-id: lxentK
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
#: src/modules/ai/utils/extractErrorMessage.ts
msgid "An unexpected error occurred"
msgstr "Der opstod en uventet fejl"
@@ -1953,6 +1954,11 @@ msgstr "App"
msgid "App installed on this workspace"
msgstr "App installeret på dette arbejdsområde"
#. js-lingui-id: r5g1bX
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
msgid "App registrations"
msgstr ""
#. js-lingui-id: aAIQg2
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx
msgid "Appearance"
@@ -3183,7 +3189,6 @@ msgstr "Udklipsholderen kræver en sikker forbindelse (HTTPS). Tilgå venligst d
#. js-lingui-id: yz7wBu
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close"
msgstr "Luk"
@@ -3194,7 +3199,6 @@ msgid "Close banner"
msgstr "Luk banner"
#. js-lingui-id: saip/v
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close side panel"
msgstr "Luk sidepanelet"
@@ -4952,6 +4956,11 @@ msgstr "Udvikler"
msgid "Developers links"
msgstr ""
#. js-lingui-id: E/QGRL
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Disabled"
msgstr ""
#. js-lingui-id: Xm/s+u
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelsGeneral.tsx
msgid "Display"
@@ -4988,8 +4997,8 @@ msgid "Display text on multiple lines"
msgstr "Vis tekst på flere linjer"
#. js-lingui-id: vU/Hht
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
msgid "Distribution"
msgstr "Distribution"
@@ -5594,6 +5603,11 @@ msgstr "Tom Indbakke"
msgid "Empty Object"
msgstr "Tomt Objekt"
#. js-lingui-id: 7A0K1Y
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Empty tab"
msgstr ""
#. js-lingui-id: q11Dk2
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Enable bypass options"
@@ -7113,8 +7127,8 @@ msgstr "Målediagram"
#. js-lingui-id: Weq9zb
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroupsForDisplay.ts
@@ -7168,11 +7182,6 @@ msgstr "Få mest muligt ud af din arbejdsplads ved at invitere dit team."
msgid "Get your subscription"
msgstr "Få dit abonnement"
#. js-lingui-id: 2GT3Hf
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Global"
msgstr "Globalt"
#. js-lingui-id: sr0UJD
#: src/pages/settings/security/event-logs/SettingsEventLogs.tsx
msgid "Go Back"
@@ -9270,7 +9279,6 @@ msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "More"
msgstr "Mere"
@@ -9655,6 +9663,20 @@ msgstr "Ny SSO konfiguration"
msgid "New SSO provider"
msgstr "Ny SSO-udbyder"
#. js-lingui-id: 3YvS+c
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "New tab"
msgstr ""
#. js-lingui-id: Db+TX4
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
msgid "New Tab"
msgstr ""
#. js-lingui-id: wl18ST
#: src/modules/activities/tasks/components/TaskGroups.tsx
msgid "New task"
@@ -10349,6 +10371,11 @@ msgstr "Notat"
msgid "Notes"
msgstr "Noter"
#. js-lingui-id: DYCPYF
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "Nothing to see"
msgstr ""
#. js-lingui-id: YwzE9K
#: src/utils/date-utils.ts
#: src/utils/date-utils.ts
@@ -10414,7 +10441,7 @@ msgid "Numbered list"
msgstr ""
#. js-lingui-id: b/j06W
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "OAuth"
msgstr "OAuth"
@@ -10694,7 +10721,6 @@ msgid "Open Outlook"
msgstr "Åbn Outlook"
#. js-lingui-id: bY2Xkv
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Open side panel"
msgstr "Åbn sidepanelet"
@@ -10785,6 +10811,7 @@ msgstr "Organiser"
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
@@ -11697,11 +11724,6 @@ msgstr "Optag label"
msgid "Record Page"
msgstr "Post Side"
#. js-lingui-id: dSCufP
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Record Selection"
msgstr "Optag valg"
#. js-lingui-id: NxW0+c
#: src/modules/side-panel/pages/page-layout/utils/getPageLayoutPageTitle.ts
msgid "Record Table Settings"
@@ -12026,6 +12048,8 @@ msgstr "Send e-mail igen"
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset"
msgstr "Nulstil"
@@ -12035,6 +12059,11 @@ msgstr "Nulstil"
msgid "Reset 2FA"
msgstr "Nulstil 2FA"
#. js-lingui-id: kw0Yv1
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset all overrides on this layout to return it to the app default"
msgstr ""
#. js-lingui-id: YdI8A2
#: src/modules/command-menu-item/edit/components/CommandMenuItemOptionsDropdown.tsx
msgid "Reset label to default"
@@ -12047,6 +12076,8 @@ msgstr ""
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/fields/forms/address/components/SettingsDataModelFieldAddressForm.tsx
#: src/modules/command-menu-item/edit/components/SidePanelCommandMenuItemEditPage.tsx
msgid "Reset to default"
@@ -12312,6 +12343,11 @@ msgstr "Kører {formattedName}"
msgid "Running function"
msgstr "Kører funktion"
#. js-lingui-id: SoR81K
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
msgid "Running workflows on all records is not yet supported. Please select records manually."
msgstr ""
#. js-lingui-id: LTC198
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Running..."
@@ -12395,11 +12431,6 @@ msgstr "SDK"
msgid "Search"
msgstr "Søg"
#. js-lingui-id: aOQ/Fi
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Search ''{sidePanelSearch}'' with..."
msgstr "Søg efter ''{sidePanelSearch}'' med..."
#. js-lingui-id: g2dQp/
#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelPermissionMeValueSelect.tsx
msgid "Search 1 {fieldTypeLabelLowercase} field"
@@ -14233,6 +14264,11 @@ msgstr "Denne konto er tilknyttet, men vi har endnu ikke tilladelse til at opret
msgid "This action can return up to {maxRecordsFormatted} records."
msgstr ""
#. js-lingui-id: 2xOCJW
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "This action cannot be undone."
msgstr ""
#. js-lingui-id: Ox1hE7
#: src/modules/settings/profile/components/DeleteAccount.tsx
msgid ""
@@ -14343,6 +14379,11 @@ msgstr "Denne nøgle skal angives via body-input"
msgid "This model will be removed from the provider. You can re-add it later."
msgstr "Denne model vil blive fjernet fra udbyderen. Du kan tilføje den igen senere."
#. js-lingui-id: NCA55L
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "This page has no content"
msgstr ""
#. js-lingui-id: R/PuIn
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
msgid "This provider doesn't have a native SDK yet — it will use OpenAI-compatible mode. Need native support? Reach out to us."
@@ -15087,7 +15128,7 @@ msgstr ""
#: src/modules/ui/field/display/components/ActorDisplay.tsx
#: src/modules/side-panel/components/SidePanelContextChip.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/page-layout/components/PageLayoutTabsRenderer.tsx
#: src/modules/page-layout/hooks/usePageLayoutAddTabStrategy.ts
#: src/modules/object-record/record-title-cell/components/RecordTitleFullNameFieldDisplay.tsx
#: src/modules/object-record/record-title-cell/components/RecordTitleCellTextFieldDisplay.tsx
#: src/modules/object-record/components/RecordChip.tsx
@@ -16418,10 +16459,10 @@ msgstr "Dine Enterprise-funktioner vil blive deaktiveret"
msgid "Your enterprise features will remain active until {cancelAtDate}."
msgstr "Dine Enterprise-funktioner forbliver aktive indtil {cancelAtDate}."
#. js-lingui-id: 69Siss
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
msgstr "Formatet på din Enterprise-nøgle er udfaset. Aktivér en ny nøgle for at beholde Enterprise-funktionerne."
#. js-lingui-id: 5TsUUL
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
msgstr ""
#. js-lingui-id: NTpA4U
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
+70 -29
View File
@@ -790,7 +790,7 @@ msgstr "Aktionen, die Benutzer auf diesem Objekt durchführen können"
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Activate"
msgstr "Aktivieren"
@@ -1216,6 +1216,7 @@ msgstr "Admin"
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
@@ -1755,6 +1756,7 @@ msgstr "Beim Hochladen des Bildes ist ein Fehler aufgetreten."
#: src/modules/ui/feedback/snack-bar-manager/hooks/useSnackBar.ts
#: src/modules/page-layout/hooks/useUpdatePageLayoutWithTabsAndWidgets.ts
#: src/modules/page-layout/hooks/useResetPageLayoutWidgetToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutTabToDefault.ts
#: src/modules/object-metadata/hooks/useUpdateOneObjectMetadataItem.ts
#: src/modules/object-metadata/hooks/useUpdateOneFieldMetadataItem.ts
@@ -1785,7 +1787,6 @@ msgstr "Ein Objekt mit diesem Namen existiert bereits"
#. js-lingui-id: lxentK
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
#: src/modules/ai/utils/extractErrorMessage.ts
msgid "An unexpected error occurred"
msgstr "Ein unerwarteter Fehler ist aufgetreten"
@@ -1953,6 +1954,11 @@ msgstr "App"
msgid "App installed on this workspace"
msgstr "App in diesem Arbeitsbereich installiert"
#. js-lingui-id: r5g1bX
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
msgid "App registrations"
msgstr ""
#. js-lingui-id: aAIQg2
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx
msgid "Appearance"
@@ -3183,7 +3189,6 @@ msgstr "Die Zwischenablage erfordert eine sichere Verbindung (HTTPS). Bitte grei
#. js-lingui-id: yz7wBu
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close"
msgstr "Schließen"
@@ -3194,7 +3199,6 @@ msgid "Close banner"
msgstr "Banner schließen"
#. js-lingui-id: saip/v
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close side panel"
msgstr "Seitenpanel schließen"
@@ -4952,6 +4956,11 @@ msgstr "Entwickler"
msgid "Developers links"
msgstr "Links für Entwickler"
#. js-lingui-id: E/QGRL
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Disabled"
msgstr ""
#. js-lingui-id: Xm/s+u
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelsGeneral.tsx
msgid "Display"
@@ -4988,8 +4997,8 @@ msgid "Display text on multiple lines"
msgstr "Text auf mehreren Zeilen anzeigen"
#. js-lingui-id: vU/Hht
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
msgid "Distribution"
msgstr "Verteilung"
@@ -5594,6 +5603,11 @@ msgstr "Leerer Posteingang"
msgid "Empty Object"
msgstr "Leeres Objekt"
#. js-lingui-id: 7A0K1Y
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Empty tab"
msgstr ""
#. js-lingui-id: q11Dk2
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Enable bypass options"
@@ -7113,8 +7127,8 @@ msgstr ""
#. js-lingui-id: Weq9zb
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroupsForDisplay.ts
@@ -7168,11 +7182,6 @@ msgstr "Holen Sie das Beste aus Ihrem Arbeitsbereich heraus, indem Sie Ihr Team
msgid "Get your subscription"
msgstr "Abonnement abschließen"
#. js-lingui-id: 2GT3Hf
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Global"
msgstr "Global"
#. js-lingui-id: sr0UJD
#: src/pages/settings/security/event-logs/SettingsEventLogs.tsx
msgid "Go Back"
@@ -9270,7 +9279,6 @@ msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "More"
msgstr "Mehr"
@@ -9655,6 +9663,20 @@ msgstr "Neue SSO-Konfiguration"
msgid "New SSO provider"
msgstr "Neuer SSO-Anbieter"
#. js-lingui-id: 3YvS+c
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "New tab"
msgstr ""
#. js-lingui-id: Db+TX4
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
msgid "New Tab"
msgstr ""
#. js-lingui-id: wl18ST
#: src/modules/activities/tasks/components/TaskGroups.tsx
msgid "New task"
@@ -10349,6 +10371,11 @@ msgstr "Notiz"
msgid "Notes"
msgstr "Notizen"
#. js-lingui-id: DYCPYF
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "Nothing to see"
msgstr ""
#. js-lingui-id: YwzE9K
#: src/utils/date-utils.ts
#: src/utils/date-utils.ts
@@ -10414,7 +10441,7 @@ msgid "Numbered list"
msgstr ""
#. js-lingui-id: b/j06W
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "OAuth"
msgstr "OAuth"
@@ -10694,7 +10721,6 @@ msgid "Open Outlook"
msgstr "Outlook öffnen"
#. js-lingui-id: bY2Xkv
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Open side panel"
msgstr "Seitenpanel öffnen"
@@ -10785,6 +10811,7 @@ msgstr "Organisieren"
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
@@ -11697,11 +11724,6 @@ msgstr "Bezeichnung aufzeichnen"
msgid "Record Page"
msgstr "Rekordseite"
#. js-lingui-id: dSCufP
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Record Selection"
msgstr "Datensatz-Auswahl"
#. js-lingui-id: NxW0+c
#: src/modules/side-panel/pages/page-layout/utils/getPageLayoutPageTitle.ts
msgid "Record Table Settings"
@@ -12026,6 +12048,8 @@ msgstr "E-Mail erneut senden"
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset"
msgstr "Zurücksetzen"
@@ -12035,6 +12059,11 @@ msgstr "Zurücksetzen"
msgid "Reset 2FA"
msgstr "2FA zurücksetzen"
#. js-lingui-id: kw0Yv1
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset all overrides on this layout to return it to the app default"
msgstr ""
#. js-lingui-id: YdI8A2
#: src/modules/command-menu-item/edit/components/CommandMenuItemOptionsDropdown.tsx
msgid "Reset label to default"
@@ -12047,6 +12076,8 @@ msgstr ""
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/fields/forms/address/components/SettingsDataModelFieldAddressForm.tsx
#: src/modules/command-menu-item/edit/components/SidePanelCommandMenuItemEditPage.tsx
msgid "Reset to default"
@@ -12312,6 +12343,11 @@ msgstr "{formattedName} wird ausgeführt"
msgid "Running function"
msgstr "Funktion wird ausgeführt"
#. js-lingui-id: SoR81K
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
msgid "Running workflows on all records is not yet supported. Please select records manually."
msgstr ""
#. js-lingui-id: LTC198
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Running..."
@@ -12395,11 +12431,6 @@ msgstr "SDK"
msgid "Search"
msgstr "Suche"
#. js-lingui-id: aOQ/Fi
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Search ''{sidePanelSearch}'' with..."
msgstr "Suche ''{sidePanelSearch}'' mit..."
#. js-lingui-id: g2dQp/
#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelPermissionMeValueSelect.tsx
msgid "Search 1 {fieldTypeLabelLowercase} field"
@@ -14233,6 +14264,11 @@ msgstr "Dieses Konto ist verbunden, aber wir haben noch keine Berechtigung, E-Ma
msgid "This action can return up to {maxRecordsFormatted} records."
msgstr ""
#. js-lingui-id: 2xOCJW
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "This action cannot be undone."
msgstr ""
#. js-lingui-id: Ox1hE7
#: src/modules/settings/profile/components/DeleteAccount.tsx
msgid ""
@@ -14341,6 +14377,11 @@ msgstr "Dieser Schlüssel sollte über die Body-Eingabe gesetzt werden"
msgid "This model will be removed from the provider. You can re-add it later."
msgstr "Dieses Modell wird vom Anbieter entfernt. Sie können es später erneut hinzufügen."
#. js-lingui-id: NCA55L
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "This page has no content"
msgstr ""
#. js-lingui-id: R/PuIn
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
msgid "This provider doesn't have a native SDK yet — it will use OpenAI-compatible mode. Need native support? Reach out to us."
@@ -15085,7 +15126,7 @@ msgstr ""
#: src/modules/ui/field/display/components/ActorDisplay.tsx
#: src/modules/side-panel/components/SidePanelContextChip.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/page-layout/components/PageLayoutTabsRenderer.tsx
#: src/modules/page-layout/hooks/usePageLayoutAddTabStrategy.ts
#: src/modules/object-record/record-title-cell/components/RecordTitleFullNameFieldDisplay.tsx
#: src/modules/object-record/record-title-cell/components/RecordTitleCellTextFieldDisplay.tsx
#: src/modules/object-record/components/RecordChip.tsx
@@ -16416,10 +16457,10 @@ msgstr "Ihre Enterprise-Funktionen werden deaktiviert"
msgid "Your enterprise features will remain active until {cancelAtDate}."
msgstr "Ihre Enterprise-Funktionen bleiben bis {cancelAtDate} aktiv."
#. js-lingui-id: 69Siss
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
msgstr "Das Format Ihres Enterprise-Schlüssels ist veraltet. Bitte aktivieren Sie einen neuen Schlüssel, um die Enterprise-Funktionen beizubehalten."
#. js-lingui-id: 5TsUUL
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
msgstr ""
#. js-lingui-id: NTpA4U
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
+70 -29
View File
@@ -790,7 +790,7 @@ msgstr "Ενέργειες χρηστών που μπορούν να εκτελ
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Activate"
msgstr "Ενεργοποίηση"
@@ -1216,6 +1216,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
@@ -1755,6 +1756,7 @@ msgstr "Παρουσιάστηκε σφάλμα κατά τη μεταφόρτω
#: src/modules/ui/feedback/snack-bar-manager/hooks/useSnackBar.ts
#: src/modules/page-layout/hooks/useUpdatePageLayoutWithTabsAndWidgets.ts
#: src/modules/page-layout/hooks/useResetPageLayoutWidgetToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutTabToDefault.ts
#: src/modules/object-metadata/hooks/useUpdateOneObjectMetadataItem.ts
#: src/modules/object-metadata/hooks/useUpdateOneFieldMetadataItem.ts
@@ -1785,7 +1787,6 @@ msgstr "Υπάρχει ήδη αντικείμενο με αυτό το όνομ
#. js-lingui-id: lxentK
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
#: src/modules/ai/utils/extractErrorMessage.ts
msgid "An unexpected error occurred"
msgstr "Παρουσιάστηκε ένα απρόβλεπτο σφάλμα"
@@ -1953,6 +1954,11 @@ msgstr "Εφαρμογή"
msgid "App installed on this workspace"
msgstr "Η εφαρμογή είναι εγκατεστημένη σε αυτόν τον χώρο εργασίας"
#. js-lingui-id: r5g1bX
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
msgid "App registrations"
msgstr ""
#. js-lingui-id: aAIQg2
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx
msgid "Appearance"
@@ -3183,7 +3189,6 @@ msgstr "Το Πρόχειρο απαιτεί ασφαλή σύνδεση (HTTPS)
#. js-lingui-id: yz7wBu
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close"
msgstr "Κλείσιμο"
@@ -3194,7 +3199,6 @@ msgid "Close banner"
msgstr "Κλείσιμο banner"
#. js-lingui-id: saip/v
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close side panel"
msgstr "Κλείσιμο πλευρικού πάνελ"
@@ -4952,6 +4956,11 @@ msgstr "Προγραμματιστής"
msgid "Developers links"
msgstr "Σύνδεσμοι προγραμματιστών"
#. js-lingui-id: E/QGRL
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Disabled"
msgstr ""
#. js-lingui-id: Xm/s+u
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelsGeneral.tsx
msgid "Display"
@@ -4988,8 +4997,8 @@ msgid "Display text on multiple lines"
msgstr "Εμφανίστε το κείμενο σε πολλαπλές γραμμές"
#. js-lingui-id: vU/Hht
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
msgid "Distribution"
msgstr "Διανομή"
@@ -5594,6 +5603,11 @@ msgstr "Άδειο Γραμματοκιβώτιο"
msgid "Empty Object"
msgstr "Κενό Αντικείμενο"
#. js-lingui-id: 7A0K1Y
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Empty tab"
msgstr ""
#. js-lingui-id: q11Dk2
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Enable bypass options"
@@ -7113,8 +7127,8 @@ msgstr "Διάγραμμα δείκτη"
#. js-lingui-id: Weq9zb
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroupsForDisplay.ts
@@ -7168,11 +7182,6 @@ msgstr "Αξιοποιείστε τον χώρο εργασίας σας με τ
msgid "Get your subscription"
msgstr "Αποκτήστε τη συνδρομή σας"
#. js-lingui-id: 2GT3Hf
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Global"
msgstr "Παγκόσμιο"
#. js-lingui-id: sr0UJD
#: src/pages/settings/security/event-logs/SettingsEventLogs.tsx
msgid "Go Back"
@@ -9270,7 +9279,6 @@ msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "More"
msgstr "Περισσότερα"
@@ -9655,6 +9663,20 @@ msgstr "Νέα ρύθμιση SSO"
msgid "New SSO provider"
msgstr "Νέος πάροχος SSO"
#. js-lingui-id: 3YvS+c
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "New tab"
msgstr ""
#. js-lingui-id: Db+TX4
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
msgid "New Tab"
msgstr ""
#. js-lingui-id: wl18ST
#: src/modules/activities/tasks/components/TaskGroups.tsx
msgid "New task"
@@ -10349,6 +10371,11 @@ msgstr "Σημείωση"
msgid "Notes"
msgstr "Σημειώματα"
#. js-lingui-id: DYCPYF
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "Nothing to see"
msgstr ""
#. js-lingui-id: YwzE9K
#: src/utils/date-utils.ts
#: src/utils/date-utils.ts
@@ -10414,7 +10441,7 @@ msgid "Numbered list"
msgstr ""
#. js-lingui-id: b/j06W
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "OAuth"
msgstr "OAuth"
@@ -10694,7 +10721,6 @@ msgid "Open Outlook"
msgstr "Άνοιγμα με Outlook"
#. js-lingui-id: bY2Xkv
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Open side panel"
msgstr "Άνοιγμα πλευρικού πάνελ"
@@ -10785,6 +10811,7 @@ msgstr "Οργάνωση"
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
@@ -11697,11 +11724,6 @@ msgstr "Ετικέτα εγγραφής"
msgid "Record Page"
msgstr "Σελίδα εγγραφής"
#. js-lingui-id: dSCufP
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Record Selection"
msgstr "Επιλογή Εγγραφών"
#. js-lingui-id: NxW0+c
#: src/modules/side-panel/pages/page-layout/utils/getPageLayoutPageTitle.ts
msgid "Record Table Settings"
@@ -12026,6 +12048,8 @@ msgstr "Επαναποστολή email"
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset"
msgstr "Επαναφορά"
@@ -12035,6 +12059,11 @@ msgstr "Επαναφορά"
msgid "Reset 2FA"
msgstr "Επαναφορά 2FA"
#. js-lingui-id: kw0Yv1
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset all overrides on this layout to return it to the app default"
msgstr ""
#. js-lingui-id: YdI8A2
#: src/modules/command-menu-item/edit/components/CommandMenuItemOptionsDropdown.tsx
msgid "Reset label to default"
@@ -12047,6 +12076,8 @@ msgstr ""
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/fields/forms/address/components/SettingsDataModelFieldAddressForm.tsx
#: src/modules/command-menu-item/edit/components/SidePanelCommandMenuItemEditPage.tsx
msgid "Reset to default"
@@ -12312,6 +12343,11 @@ msgstr "Εκτελείται {formattedName}"
msgid "Running function"
msgstr "Εκτέλεση λειτουργίας"
#. js-lingui-id: SoR81K
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
msgid "Running workflows on all records is not yet supported. Please select records manually."
msgstr ""
#. js-lingui-id: LTC198
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Running..."
@@ -12395,11 +12431,6 @@ msgstr "SDK"
msgid "Search"
msgstr "Αναζήτηση"
#. js-lingui-id: aOQ/Fi
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Search ''{sidePanelSearch}'' with..."
msgstr "Αναζήτηση ''{sidePanelSearch}'' με..."
#. js-lingui-id: g2dQp/
#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelPermissionMeValueSelect.tsx
msgid "Search 1 {fieldTypeLabelLowercase} field"
@@ -14235,6 +14266,11 @@ msgstr "Αυτός ο λογαριασμός είναι συνδεδεμένος
msgid "This action can return up to {maxRecordsFormatted} records."
msgstr ""
#. js-lingui-id: 2xOCJW
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "This action cannot be undone."
msgstr ""
#. js-lingui-id: Ox1hE7
#: src/modules/settings/profile/components/DeleteAccount.tsx
msgid ""
@@ -14345,6 +14381,11 @@ msgstr "Αυτό το κλειδί πρέπει να οριστεί στο σώ
msgid "This model will be removed from the provider. You can re-add it later."
msgstr "Αυτό το μοντέλο θα αφαιρεθεί από τον πάροχο. Μπορείτε να το προσθέσετε ξανά αργότερα."
#. js-lingui-id: NCA55L
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "This page has no content"
msgstr ""
#. js-lingui-id: R/PuIn
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
msgid "This provider doesn't have a native SDK yet — it will use OpenAI-compatible mode. Need native support? Reach out to us."
@@ -15089,7 +15130,7 @@ msgstr ""
#: src/modules/ui/field/display/components/ActorDisplay.tsx
#: src/modules/side-panel/components/SidePanelContextChip.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/page-layout/components/PageLayoutTabsRenderer.tsx
#: src/modules/page-layout/hooks/usePageLayoutAddTabStrategy.ts
#: src/modules/object-record/record-title-cell/components/RecordTitleFullNameFieldDisplay.tsx
#: src/modules/object-record/record-title-cell/components/RecordTitleCellTextFieldDisplay.tsx
#: src/modules/object-record/components/RecordChip.tsx
@@ -16420,10 +16461,10 @@ msgstr "Οι δυνατότητες Enterprise θα απενεργοποιηθο
msgid "Your enterprise features will remain active until {cancelAtDate}."
msgstr "Οι δυνατότητες Enterprise θα παραμείνουν ενεργές έως {cancelAtDate}."
#. js-lingui-id: 69Siss
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
msgstr "Η μορφή του κλειδιού Enterprise δεν υποστηρίζεται πλέον. Ενεργοποιήστε ένα νέο κλειδί για να διατηρήσετε τις δυνατότητες Enterprise."
#. js-lingui-id: 5TsUUL
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
msgstr ""
#. js-lingui-id: NTpA4U
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
+70 -29
View File
@@ -785,7 +785,7 @@ msgstr "Actions users can perform on this object"
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Activate"
msgstr "Activate"
@@ -1211,6 +1211,7 @@ msgstr "Admin"
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
@@ -1750,6 +1751,7 @@ msgstr "An error occurred while uploading the picture."
#: src/modules/ui/feedback/snack-bar-manager/hooks/useSnackBar.ts
#: src/modules/page-layout/hooks/useUpdatePageLayoutWithTabsAndWidgets.ts
#: src/modules/page-layout/hooks/useResetPageLayoutWidgetToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutTabToDefault.ts
#: src/modules/object-metadata/hooks/useUpdateOneObjectMetadataItem.ts
#: src/modules/object-metadata/hooks/useUpdateOneFieldMetadataItem.ts
@@ -1780,7 +1782,6 @@ msgstr "An object with this name already exists"
#. js-lingui-id: lxentK
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
#: src/modules/ai/utils/extractErrorMessage.ts
msgid "An unexpected error occurred"
msgstr "An unexpected error occurred"
@@ -1948,6 +1949,11 @@ msgstr "App"
msgid "App installed on this workspace"
msgstr "App installed on this workspace"
#. js-lingui-id: r5g1bX
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
msgid "App registrations"
msgstr "App registrations"
#. js-lingui-id: aAIQg2
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx
msgid "Appearance"
@@ -3178,7 +3184,6 @@ msgstr "Clipboard requires a secure connection (HTTPS). Please access this app o
#. js-lingui-id: yz7wBu
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close"
msgstr "Close"
@@ -3189,7 +3194,6 @@ msgid "Close banner"
msgstr "Close banner"
#. js-lingui-id: saip/v
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close side panel"
msgstr "Close side panel"
@@ -4947,6 +4951,11 @@ msgstr "Developer"
msgid "Developers links"
msgstr "Developers links"
#. js-lingui-id: E/QGRL
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Disabled"
msgstr "Disabled"
#. js-lingui-id: Xm/s+u
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelsGeneral.tsx
msgid "Display"
@@ -4983,8 +4992,8 @@ msgid "Display text on multiple lines"
msgstr "Display text on multiple lines"
#. js-lingui-id: vU/Hht
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
msgid "Distribution"
msgstr "Distribution"
@@ -5589,6 +5598,11 @@ msgstr "Empty Inbox"
msgid "Empty Object"
msgstr "Empty Object"
#. js-lingui-id: 7A0K1Y
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Empty tab"
msgstr "Empty tab"
#. js-lingui-id: q11Dk2
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Enable bypass options"
@@ -7108,8 +7122,8 @@ msgstr "Gauge Chart"
#. js-lingui-id: Weq9zb
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroupsForDisplay.ts
@@ -7163,11 +7177,6 @@ msgstr "Get the most out of your workspace by inviting your team."
msgid "Get your subscription"
msgstr "Get your subscription"
#. js-lingui-id: 2GT3Hf
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Global"
msgstr "Global"
#. js-lingui-id: sr0UJD
#: src/pages/settings/security/event-logs/SettingsEventLogs.tsx
msgid "Go Back"
@@ -9265,7 +9274,6 @@ msgstr "months"
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "More"
msgstr "More"
@@ -9650,6 +9658,20 @@ msgstr "New SSO Configuration"
msgid "New SSO provider"
msgstr "New SSO provider"
#. js-lingui-id: 3YvS+c
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "New tab"
msgstr "New tab"
#. js-lingui-id: Db+TX4
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
msgid "New Tab"
msgstr "New Tab"
#. js-lingui-id: wl18ST
#: src/modules/activities/tasks/components/TaskGroups.tsx
msgid "New task"
@@ -10344,6 +10366,11 @@ msgstr "Note"
msgid "Notes"
msgstr "Notes"
#. js-lingui-id: DYCPYF
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "Nothing to see"
msgstr "Nothing to see"
#. js-lingui-id: YwzE9K
#: src/utils/date-utils.ts
#: src/utils/date-utils.ts
@@ -10409,7 +10436,7 @@ msgid "Numbered list"
msgstr "Numbered list"
#. js-lingui-id: b/j06W
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "OAuth"
msgstr "OAuth"
@@ -10689,7 +10716,6 @@ msgid "Open Outlook"
msgstr "Open Outlook"
#. js-lingui-id: bY2Xkv
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Open side panel"
msgstr "Open side panel"
@@ -10780,6 +10806,7 @@ msgstr "Organize"
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
@@ -11692,11 +11719,6 @@ msgstr "Record label"
msgid "Record Page"
msgstr "Record Page"
#. js-lingui-id: dSCufP
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Record Selection"
msgstr "Record Selection"
#. js-lingui-id: NxW0+c
#: src/modules/side-panel/pages/page-layout/utils/getPageLayoutPageTitle.ts
msgid "Record Table Settings"
@@ -12021,6 +12043,8 @@ msgstr "Resend email"
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset"
msgstr "Reset"
@@ -12030,6 +12054,11 @@ msgstr "Reset"
msgid "Reset 2FA"
msgstr "Reset 2FA"
#. js-lingui-id: kw0Yv1
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset all overrides on this layout to return it to the app default"
msgstr "Reset all overrides on this layout to return it to the app default"
#. js-lingui-id: YdI8A2
#: src/modules/command-menu-item/edit/components/CommandMenuItemOptionsDropdown.tsx
msgid "Reset label to default"
@@ -12042,6 +12071,8 @@ msgstr "Reset label to default"
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/fields/forms/address/components/SettingsDataModelFieldAddressForm.tsx
#: src/modules/command-menu-item/edit/components/SidePanelCommandMenuItemEditPage.tsx
msgid "Reset to default"
@@ -12307,6 +12338,11 @@ msgstr "Running {formattedName}"
msgid "Running function"
msgstr "Running function"
#. js-lingui-id: SoR81K
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
msgid "Running workflows on all records is not yet supported. Please select records manually."
msgstr "Running workflows on all records is not yet supported. Please select records manually."
#. js-lingui-id: LTC198
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Running..."
@@ -12390,11 +12426,6 @@ msgstr "SDK"
msgid "Search"
msgstr "Search"
#. js-lingui-id: aOQ/Fi
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Search ''{sidePanelSearch}'' with..."
msgstr "Search ''{sidePanelSearch}'' with..."
#. js-lingui-id: g2dQp/
#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelPermissionMeValueSelect.tsx
msgid "Search 1 {fieldTypeLabelLowercase} field"
@@ -14228,6 +14259,11 @@ msgstr "This account is connected, but we don't have permission to draft emails
msgid "This action can return up to {maxRecordsFormatted} records."
msgstr "This action can return up to {maxRecordsFormatted} records."
#. js-lingui-id: 2xOCJW
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "This action cannot be undone."
msgstr "This action cannot be undone."
#. js-lingui-id: Ox1hE7
#: src/modules/settings/profile/components/DeleteAccount.tsx
msgid ""
@@ -14338,6 +14374,11 @@ msgstr "This key should be set through body input"
msgid "This model will be removed from the provider. You can re-add it later."
msgstr "This model will be removed from the provider. You can re-add it later."
#. js-lingui-id: NCA55L
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "This page has no content"
msgstr "This page has no content"
#. js-lingui-id: R/PuIn
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
msgid "This provider doesn't have a native SDK yet — it will use OpenAI-compatible mode. Need native support? Reach out to us."
@@ -15082,7 +15123,7 @@ msgstr "Unordered list with bullets"
#: src/modules/ui/field/display/components/ActorDisplay.tsx
#: src/modules/side-panel/components/SidePanelContextChip.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/page-layout/components/PageLayoutTabsRenderer.tsx
#: src/modules/page-layout/hooks/usePageLayoutAddTabStrategy.ts
#: src/modules/object-record/record-title-cell/components/RecordTitleFullNameFieldDisplay.tsx
#: src/modules/object-record/record-title-cell/components/RecordTitleCellTextFieldDisplay.tsx
#: src/modules/object-record/components/RecordChip.tsx
@@ -16413,10 +16454,10 @@ msgstr "Your enterprise features will be disabled"
msgid "Your enterprise features will remain active until {cancelAtDate}."
msgstr "Your enterprise features will remain active until {cancelAtDate}."
#. js-lingui-id: 69Siss
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
msgstr "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
#. js-lingui-id: 5TsUUL
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
msgstr "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
#. js-lingui-id: NTpA4U
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
+70 -29
View File
@@ -790,7 +790,7 @@ msgstr "Acciones que los usuarios pueden realizar en este objeto"
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Activate"
msgstr "Activar"
@@ -1216,6 +1216,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
@@ -1755,6 +1756,7 @@ msgstr "Se produjo un error al subir la imagen."
#: src/modules/ui/feedback/snack-bar-manager/hooks/useSnackBar.ts
#: src/modules/page-layout/hooks/useUpdatePageLayoutWithTabsAndWidgets.ts
#: src/modules/page-layout/hooks/useResetPageLayoutWidgetToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutTabToDefault.ts
#: src/modules/object-metadata/hooks/useUpdateOneObjectMetadataItem.ts
#: src/modules/object-metadata/hooks/useUpdateOneFieldMetadataItem.ts
@@ -1785,7 +1787,6 @@ msgstr "Ya existe un objeto con este nombre"
#. js-lingui-id: lxentK
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
#: src/modules/ai/utils/extractErrorMessage.ts
msgid "An unexpected error occurred"
msgstr "Se produjo un error inesperado"
@@ -1953,6 +1954,11 @@ msgstr "Aplicación"
msgid "App installed on this workspace"
msgstr "Aplicación instalada en este espacio de trabajo"
#. js-lingui-id: r5g1bX
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
msgid "App registrations"
msgstr ""
#. js-lingui-id: aAIQg2
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx
msgid "Appearance"
@@ -3183,7 +3189,6 @@ msgstr "El portapapeles requiere una conexión segura (HTTPS). Accede a esta apl
#. js-lingui-id: yz7wBu
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close"
msgstr "Cerrar"
@@ -3194,7 +3199,6 @@ msgid "Close banner"
msgstr "Cerrar banner"
#. js-lingui-id: saip/v
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close side panel"
msgstr "Cerrar panel lateral"
@@ -4952,6 +4956,11 @@ msgstr "Desarrollador"
msgid "Developers links"
msgstr "Enlaces para desarrolladores"
#. js-lingui-id: E/QGRL
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Disabled"
msgstr ""
#. js-lingui-id: Xm/s+u
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelsGeneral.tsx
msgid "Display"
@@ -4988,8 +4997,8 @@ msgid "Display text on multiple lines"
msgstr "Mostrar texto en varias líneas"
#. js-lingui-id: vU/Hht
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
msgid "Distribution"
msgstr "Distribución"
@@ -5594,6 +5603,11 @@ msgstr "Bandeja de entrada vacía"
msgid "Empty Object"
msgstr "Objeto vacío"
#. js-lingui-id: 7A0K1Y
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Empty tab"
msgstr ""
#. js-lingui-id: q11Dk2
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Enable bypass options"
@@ -7113,8 +7127,8 @@ msgstr "Gráfico de Medidor"
#. js-lingui-id: Weq9zb
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroupsForDisplay.ts
@@ -7168,11 +7182,6 @@ msgstr "Aproveche al máximo su espacio de trabajo invitando a su equipo."
msgid "Get your subscription"
msgstr "Obtenga su suscripción"
#. js-lingui-id: 2GT3Hf
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Global"
msgstr "Global"
#. js-lingui-id: sr0UJD
#: src/pages/settings/security/event-logs/SettingsEventLogs.tsx
msgid "Go Back"
@@ -9270,7 +9279,6 @@ msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "More"
msgstr "Más"
@@ -9655,6 +9663,20 @@ msgstr "Nueva Configuración SSO"
msgid "New SSO provider"
msgstr "Nuevo proveedor SSO"
#. js-lingui-id: 3YvS+c
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "New tab"
msgstr ""
#. js-lingui-id: Db+TX4
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
msgid "New Tab"
msgstr ""
#. js-lingui-id: wl18ST
#: src/modules/activities/tasks/components/TaskGroups.tsx
msgid "New task"
@@ -10349,6 +10371,11 @@ msgstr "Nota"
msgid "Notes"
msgstr "Notas"
#. js-lingui-id: DYCPYF
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "Nothing to see"
msgstr ""
#. js-lingui-id: YwzE9K
#: src/utils/date-utils.ts
#: src/utils/date-utils.ts
@@ -10414,7 +10441,7 @@ msgid "Numbered list"
msgstr "Lista numerada"
#. js-lingui-id: b/j06W
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "OAuth"
msgstr "OAuth"
@@ -10694,7 +10721,6 @@ msgid "Open Outlook"
msgstr "Abrir Outlook"
#. js-lingui-id: bY2Xkv
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Open side panel"
msgstr "Abrir panel lateral"
@@ -10785,6 +10811,7 @@ msgstr "Organizar"
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
@@ -11697,11 +11724,6 @@ msgstr "Etiqueta de registro"
msgid "Record Page"
msgstr "Página de registro"
#. js-lingui-id: dSCufP
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Record Selection"
msgstr "Selección de registros"
#. js-lingui-id: NxW0+c
#: src/modules/side-panel/pages/page-layout/utils/getPageLayoutPageTitle.ts
msgid "Record Table Settings"
@@ -12026,6 +12048,8 @@ msgstr "Reenviar correo electrónico"
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset"
msgstr "Restablecer"
@@ -12035,6 +12059,11 @@ msgstr "Restablecer"
msgid "Reset 2FA"
msgstr "Restablecer 2FA"
#. js-lingui-id: kw0Yv1
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset all overrides on this layout to return it to the app default"
msgstr ""
#. js-lingui-id: YdI8A2
#: src/modules/command-menu-item/edit/components/CommandMenuItemOptionsDropdown.tsx
msgid "Reset label to default"
@@ -12047,6 +12076,8 @@ msgstr ""
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/fields/forms/address/components/SettingsDataModelFieldAddressForm.tsx
#: src/modules/command-menu-item/edit/components/SidePanelCommandMenuItemEditPage.tsx
msgid "Reset to default"
@@ -12312,6 +12343,11 @@ msgstr "Ejecutando {formattedName}"
msgid "Running function"
msgstr "Ejecutando función"
#. js-lingui-id: SoR81K
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
msgid "Running workflows on all records is not yet supported. Please select records manually."
msgstr ""
#. js-lingui-id: LTC198
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Running..."
@@ -12395,11 +12431,6 @@ msgstr "SDK"
msgid "Search"
msgstr "Buscar"
#. js-lingui-id: aOQ/Fi
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Search ''{sidePanelSearch}'' with..."
msgstr "Buscar ''{sidePanelSearch}'' con..."
#. js-lingui-id: g2dQp/
#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelPermissionMeValueSelect.tsx
msgid "Search 1 {fieldTypeLabelLowercase} field"
@@ -14233,6 +14264,11 @@ msgstr "Esta cuenta está conectada, pero aún no tenemos permiso para crear bor
msgid "This action can return up to {maxRecordsFormatted} records."
msgstr ""
#. js-lingui-id: 2xOCJW
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "This action cannot be undone."
msgstr ""
#. js-lingui-id: Ox1hE7
#: src/modules/settings/profile/components/DeleteAccount.tsx
msgid ""
@@ -14343,6 +14379,11 @@ msgstr "Esta clave debe establecerse mediante la entrada del cuerpo"
msgid "This model will be removed from the provider. You can re-add it later."
msgstr "Este modelo se eliminará del proveedor. Podrás volver a añadirlo más tarde."
#. js-lingui-id: NCA55L
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "This page has no content"
msgstr ""
#. js-lingui-id: R/PuIn
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
msgid "This provider doesn't have a native SDK yet — it will use OpenAI-compatible mode. Need native support? Reach out to us."
@@ -15087,7 +15128,7 @@ msgstr "Lista sin ordenar con puntos"
#: src/modules/ui/field/display/components/ActorDisplay.tsx
#: src/modules/side-panel/components/SidePanelContextChip.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/page-layout/components/PageLayoutTabsRenderer.tsx
#: src/modules/page-layout/hooks/usePageLayoutAddTabStrategy.ts
#: src/modules/object-record/record-title-cell/components/RecordTitleFullNameFieldDisplay.tsx
#: src/modules/object-record/record-title-cell/components/RecordTitleCellTextFieldDisplay.tsx
#: src/modules/object-record/components/RecordChip.tsx
@@ -16418,10 +16459,10 @@ msgstr "Tus funciones Enterprise se desactivarán"
msgid "Your enterprise features will remain active until {cancelAtDate}."
msgstr "Tus funciones Enterprise seguirán activas hasta {cancelAtDate}."
#. js-lingui-id: 69Siss
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
msgstr "El formato de tu clave Enterprise está obsoleto. Activa una nueva clave para mantener las funciones Enterprise."
#. js-lingui-id: 5TsUUL
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
msgstr ""
#. js-lingui-id: NTpA4U
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
+70 -29
View File
@@ -790,7 +790,7 @@ msgstr "Toiminnot, joita käyttäjät voivat suorittaa tällä kohteella"
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Activate"
msgstr "Aktivoi"
@@ -1216,6 +1216,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
@@ -1755,6 +1756,7 @@ msgstr "Kuvaa ladattaessa tapahtui virhe."
#: src/modules/ui/feedback/snack-bar-manager/hooks/useSnackBar.ts
#: src/modules/page-layout/hooks/useUpdatePageLayoutWithTabsAndWidgets.ts
#: src/modules/page-layout/hooks/useResetPageLayoutWidgetToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutTabToDefault.ts
#: src/modules/object-metadata/hooks/useUpdateOneObjectMetadataItem.ts
#: src/modules/object-metadata/hooks/useUpdateOneFieldMetadataItem.ts
@@ -1785,7 +1787,6 @@ msgstr "Tämän niminen objekti on jo olemassa"
#. js-lingui-id: lxentK
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
#: src/modules/ai/utils/extractErrorMessage.ts
msgid "An unexpected error occurred"
msgstr "Tapahtui odottamaton virhe"
@@ -1953,6 +1954,11 @@ msgstr "Sovellus"
msgid "App installed on this workspace"
msgstr "Sovellus on asennettu tähän työtilaan"
#. js-lingui-id: r5g1bX
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
msgid "App registrations"
msgstr ""
#. js-lingui-id: aAIQg2
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx
msgid "Appearance"
@@ -3183,7 +3189,6 @@ msgstr "Leikepöytä edellyttää suojattua yhteyttä (HTTPS). Avaa tämä sovel
#. js-lingui-id: yz7wBu
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close"
msgstr "Sulje"
@@ -3194,7 +3199,6 @@ msgid "Close banner"
msgstr "Sulje banneri"
#. js-lingui-id: saip/v
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close side panel"
msgstr "Sulje sivupaneeli"
@@ -4952,6 +4956,11 @@ msgstr "Kehittäjä"
msgid "Developers links"
msgstr "Kehittäjien linkit"
#. js-lingui-id: E/QGRL
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Disabled"
msgstr ""
#. js-lingui-id: Xm/s+u
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelsGeneral.tsx
msgid "Display"
@@ -4988,8 +4997,8 @@ msgid "Display text on multiple lines"
msgstr "Näytä teksti useammalla rivillä"
#. js-lingui-id: vU/Hht
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
msgid "Distribution"
msgstr "Jakelu"
@@ -5594,6 +5603,11 @@ msgstr "Tyhjä Saapuneet"
msgid "Empty Object"
msgstr "Tyhjä objekti"
#. js-lingui-id: 7A0K1Y
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Empty tab"
msgstr ""
#. js-lingui-id: q11Dk2
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Enable bypass options"
@@ -7113,8 +7127,8 @@ msgstr "Mittarikaavio"
#. js-lingui-id: Weq9zb
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroupsForDisplay.ts
@@ -7168,11 +7182,6 @@ msgstr "Saa kaiken irti työtilastasi kutsuen tiimisi mukaan."
msgid "Get your subscription"
msgstr "Hanki tilaus"
#. js-lingui-id: 2GT3Hf
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Global"
msgstr "Globaali"
#. js-lingui-id: sr0UJD
#: src/pages/settings/security/event-logs/SettingsEventLogs.tsx
msgid "Go Back"
@@ -9270,7 +9279,6 @@ msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "More"
msgstr "Lisää"
@@ -9655,6 +9663,20 @@ msgstr "Uusi SSO-konfiguraatio"
msgid "New SSO provider"
msgstr "Uusi SSO-tarjoaja"
#. js-lingui-id: 3YvS+c
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "New tab"
msgstr ""
#. js-lingui-id: Db+TX4
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
msgid "New Tab"
msgstr ""
#. js-lingui-id: wl18ST
#: src/modules/activities/tasks/components/TaskGroups.tsx
msgid "New task"
@@ -10349,6 +10371,11 @@ msgstr "Muistiinpano"
msgid "Notes"
msgstr "Muistiinpanot"
#. js-lingui-id: DYCPYF
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "Nothing to see"
msgstr ""
#. js-lingui-id: YwzE9K
#: src/utils/date-utils.ts
#: src/utils/date-utils.ts
@@ -10414,7 +10441,7 @@ msgid "Numbered list"
msgstr ""
#. js-lingui-id: b/j06W
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "OAuth"
msgstr "OAuth"
@@ -10694,7 +10721,6 @@ msgid "Open Outlook"
msgstr "Avaa Outlookissa"
#. js-lingui-id: bY2Xkv
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Open side panel"
msgstr "Avaa sivupaneeli"
@@ -10785,6 +10811,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
@@ -11697,11 +11724,6 @@ msgstr "Tietueen otsikko"
msgid "Record Page"
msgstr "Tietuesivu"
#. js-lingui-id: dSCufP
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Record Selection"
msgstr "Valitse tietueet"
#. js-lingui-id: NxW0+c
#: src/modules/side-panel/pages/page-layout/utils/getPageLayoutPageTitle.ts
msgid "Record Table Settings"
@@ -12026,6 +12048,8 @@ msgstr "Lähetä sähköposti uudelleen"
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset"
msgstr "Nollaa"
@@ -12035,6 +12059,11 @@ msgstr "Nollaa"
msgid "Reset 2FA"
msgstr "Nollaa 2FA"
#. js-lingui-id: kw0Yv1
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset all overrides on this layout to return it to the app default"
msgstr ""
#. js-lingui-id: YdI8A2
#: src/modules/command-menu-item/edit/components/CommandMenuItemOptionsDropdown.tsx
msgid "Reset label to default"
@@ -12047,6 +12076,8 @@ msgstr ""
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/fields/forms/address/components/SettingsDataModelFieldAddressForm.tsx
#: src/modules/command-menu-item/edit/components/SidePanelCommandMenuItemEditPage.tsx
msgid "Reset to default"
@@ -12312,6 +12343,11 @@ msgstr "Suoritetaan {formattedName}"
msgid "Running function"
msgstr "Suoritetaan funktiota"
#. js-lingui-id: SoR81K
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
msgid "Running workflows on all records is not yet supported. Please select records manually."
msgstr ""
#. js-lingui-id: LTC198
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Running..."
@@ -12395,11 +12431,6 @@ msgstr "SDK"
msgid "Search"
msgstr "Hae"
#. js-lingui-id: aOQ/Fi
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Search ''{sidePanelSearch}'' with..."
msgstr "Hae ''{sidePanelSearch}'' avulla..."
#. js-lingui-id: g2dQp/
#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelPermissionMeValueSelect.tsx
msgid "Search 1 {fieldTypeLabelLowercase} field"
@@ -14233,6 +14264,11 @@ msgstr "Tämä tili on yhdistetty, mutta meillä ei vielä ole käyttöoikeutta
msgid "This action can return up to {maxRecordsFormatted} records."
msgstr ""
#. js-lingui-id: 2xOCJW
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "This action cannot be undone."
msgstr ""
#. js-lingui-id: Ox1hE7
#: src/modules/settings/profile/components/DeleteAccount.tsx
msgid ""
@@ -14341,6 +14377,11 @@ msgstr "Tämä avain tulisi asettaa viestirungon syötteessä"
msgid "This model will be removed from the provider. You can re-add it later."
msgstr "Tämä malli poistetaan tarjoajalta. Voit lisätä sen uudelleen myöhemmin."
#. js-lingui-id: NCA55L
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "This page has no content"
msgstr ""
#. js-lingui-id: R/PuIn
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
msgid "This provider doesn't have a native SDK yet — it will use OpenAI-compatible mode. Need native support? Reach out to us."
@@ -15085,7 +15126,7 @@ msgstr ""
#: src/modules/ui/field/display/components/ActorDisplay.tsx
#: src/modules/side-panel/components/SidePanelContextChip.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/page-layout/components/PageLayoutTabsRenderer.tsx
#: src/modules/page-layout/hooks/usePageLayoutAddTabStrategy.ts
#: src/modules/object-record/record-title-cell/components/RecordTitleFullNameFieldDisplay.tsx
#: src/modules/object-record/record-title-cell/components/RecordTitleCellTextFieldDisplay.tsx
#: src/modules/object-record/components/RecordChip.tsx
@@ -16416,10 +16457,10 @@ msgstr "Enterprise-ominaisuudet poistetaan käytöstä"
msgid "Your enterprise features will remain active until {cancelAtDate}."
msgstr "Enterprise-ominaisuudet pysyvät aktiivisina {cancelAtDate} asti."
#. js-lingui-id: 69Siss
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
msgstr "Enterprise-avaimesi muoto on vanhentunut. Aktivoi uusi avain säilyttääksesi Enterprise-ominaisuudet."
#. js-lingui-id: 5TsUUL
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
msgstr ""
#. js-lingui-id: NTpA4U
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
+70 -29
View File
@@ -790,7 +790,7 @@ msgstr "Actions que les utilisateurs peuvent effectuer sur cet objet"
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Activate"
msgstr "Activer"
@@ -1216,6 +1216,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
@@ -1755,6 +1756,7 @@ msgstr "Une erreur s'est produite lors du téléversement de l'image."
#: src/modules/ui/feedback/snack-bar-manager/hooks/useSnackBar.ts
#: src/modules/page-layout/hooks/useUpdatePageLayoutWithTabsAndWidgets.ts
#: src/modules/page-layout/hooks/useResetPageLayoutWidgetToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutTabToDefault.ts
#: src/modules/object-metadata/hooks/useUpdateOneObjectMetadataItem.ts
#: src/modules/object-metadata/hooks/useUpdateOneFieldMetadataItem.ts
@@ -1785,7 +1787,6 @@ msgstr "Un objet avec ce nom existe déjà"
#. js-lingui-id: lxentK
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
#: src/modules/ai/utils/extractErrorMessage.ts
msgid "An unexpected error occurred"
msgstr "Une erreur inattendue s'est produite"
@@ -1953,6 +1954,11 @@ msgstr "Application"
msgid "App installed on this workspace"
msgstr "Application installée sur cet espace de travail"
#. js-lingui-id: r5g1bX
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
msgid "App registrations"
msgstr ""
#. js-lingui-id: aAIQg2
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx
msgid "Appearance"
@@ -3183,7 +3189,6 @@ msgstr "Le presse-papiers nécessite une connexion sécurisée (HTTPS). Veuillez
#. js-lingui-id: yz7wBu
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close"
msgstr "Fermer"
@@ -3194,7 +3199,6 @@ msgid "Close banner"
msgstr "Fermer la bannière"
#. js-lingui-id: saip/v
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close side panel"
msgstr "Fermer le panneau latéral"
@@ -4952,6 +4956,11 @@ msgstr ""
msgid "Developers links"
msgstr "Liens pour développeurs"
#. js-lingui-id: E/QGRL
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Disabled"
msgstr ""
#. js-lingui-id: Xm/s+u
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelsGeneral.tsx
msgid "Display"
@@ -4988,8 +4997,8 @@ msgid "Display text on multiple lines"
msgstr "Afficher le texte sur plusieurs lignes"
#. js-lingui-id: vU/Hht
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
msgid "Distribution"
msgstr ""
@@ -5594,6 +5603,11 @@ msgstr "Boîte de réception vide"
msgid "Empty Object"
msgstr "Objet vide"
#. js-lingui-id: 7A0K1Y
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Empty tab"
msgstr ""
#. js-lingui-id: q11Dk2
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Enable bypass options"
@@ -7113,8 +7127,8 @@ msgstr ""
#. js-lingui-id: Weq9zb
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroupsForDisplay.ts
@@ -7168,11 +7182,6 @@ msgstr "Tirez le meilleur parti de votre espace de travail en invitant votre éq
msgid "Get your subscription"
msgstr "Obtenez votre abonnement"
#. js-lingui-id: 2GT3Hf
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Global"
msgstr "Global"
#. js-lingui-id: sr0UJD
#: src/pages/settings/security/event-logs/SettingsEventLogs.tsx
msgid "Go Back"
@@ -9270,7 +9279,6 @@ msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "More"
msgstr "Plus"
@@ -9655,6 +9663,20 @@ msgstr "Nouvelle configuration SSO"
msgid "New SSO provider"
msgstr "Nouveau fournisseur SSO"
#. js-lingui-id: 3YvS+c
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "New tab"
msgstr ""
#. js-lingui-id: Db+TX4
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
msgid "New Tab"
msgstr ""
#. js-lingui-id: wl18ST
#: src/modules/activities/tasks/components/TaskGroups.tsx
msgid "New task"
@@ -10349,6 +10371,11 @@ msgstr "Note"
msgid "Notes"
msgstr "Notes"
#. js-lingui-id: DYCPYF
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "Nothing to see"
msgstr ""
#. js-lingui-id: YwzE9K
#: src/utils/date-utils.ts
#: src/utils/date-utils.ts
@@ -10414,7 +10441,7 @@ msgid "Numbered list"
msgstr ""
#. js-lingui-id: b/j06W
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "OAuth"
msgstr "OAuth"
@@ -10694,7 +10721,6 @@ msgid "Open Outlook"
msgstr "Ouvrir Outlook"
#. js-lingui-id: bY2Xkv
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Open side panel"
msgstr "Ouvrir le panneau latéral"
@@ -10785,6 +10811,7 @@ msgstr "Organiser"
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
@@ -11697,11 +11724,6 @@ msgstr "Étiquette d'enregistrement"
msgid "Record Page"
msgstr "Page d'enregistrement"
#. js-lingui-id: dSCufP
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Record Selection"
msgstr "Sélection des enregistrements"
#. js-lingui-id: NxW0+c
#: src/modules/side-panel/pages/page-layout/utils/getPageLayoutPageTitle.ts
msgid "Record Table Settings"
@@ -12026,6 +12048,8 @@ msgstr "Renvoyer l'email"
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset"
msgstr "Réinitialiser"
@@ -12035,6 +12059,11 @@ msgstr "Réinitialiser"
msgid "Reset 2FA"
msgstr "Réinitialiser 2FA"
#. js-lingui-id: kw0Yv1
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset all overrides on this layout to return it to the app default"
msgstr ""
#. js-lingui-id: YdI8A2
#: src/modules/command-menu-item/edit/components/CommandMenuItemOptionsDropdown.tsx
msgid "Reset label to default"
@@ -12047,6 +12076,8 @@ msgstr ""
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/fields/forms/address/components/SettingsDataModelFieldAddressForm.tsx
#: src/modules/command-menu-item/edit/components/SidePanelCommandMenuItemEditPage.tsx
msgid "Reset to default"
@@ -12312,6 +12343,11 @@ msgstr "Exécution de {formattedName}"
msgid "Running function"
msgstr "Exécution de la fonction"
#. js-lingui-id: SoR81K
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
msgid "Running workflows on all records is not yet supported. Please select records manually."
msgstr ""
#. js-lingui-id: LTC198
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Running..."
@@ -12395,11 +12431,6 @@ msgstr "SDK"
msgid "Search"
msgstr "Recherche"
#. js-lingui-id: aOQ/Fi
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Search ''{sidePanelSearch}'' with..."
msgstr "Rechercher ''{sidePanelSearch}'' avec..."
#. js-lingui-id: g2dQp/
#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelPermissionMeValueSelect.tsx
msgid "Search 1 {fieldTypeLabelLowercase} field"
@@ -14233,6 +14264,11 @@ msgstr "Ce compte est connecté, mais nous n'avons pas encore l'autorisation de
msgid "This action can return up to {maxRecordsFormatted} records."
msgstr ""
#. js-lingui-id: 2xOCJW
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "This action cannot be undone."
msgstr ""
#. js-lingui-id: Ox1hE7
#: src/modules/settings/profile/components/DeleteAccount.tsx
msgid ""
@@ -14343,6 +14379,11 @@ msgstr "Cette clé doit être définie via la saisie du corps"
msgid "This model will be removed from the provider. You can re-add it later."
msgstr "Ce modèle sera supprimé du fournisseur. Vous pourrez le réajouter plus tard."
#. js-lingui-id: NCA55L
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "This page has no content"
msgstr ""
#. js-lingui-id: R/PuIn
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
msgid "This provider doesn't have a native SDK yet — it will use OpenAI-compatible mode. Need native support? Reach out to us."
@@ -15087,7 +15128,7 @@ msgstr ""
#: src/modules/ui/field/display/components/ActorDisplay.tsx
#: src/modules/side-panel/components/SidePanelContextChip.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/page-layout/components/PageLayoutTabsRenderer.tsx
#: src/modules/page-layout/hooks/usePageLayoutAddTabStrategy.ts
#: src/modules/object-record/record-title-cell/components/RecordTitleFullNameFieldDisplay.tsx
#: src/modules/object-record/record-title-cell/components/RecordTitleCellTextFieldDisplay.tsx
#: src/modules/object-record/components/RecordChip.tsx
@@ -16418,10 +16459,10 @@ msgstr "Vos fonctionnalités Enterprise seront désactivées"
msgid "Your enterprise features will remain active until {cancelAtDate}."
msgstr "Vos fonctionnalités Enterprise resteront actives jusqu'au {cancelAtDate}."
#. js-lingui-id: 69Siss
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
msgstr "Le format de votre clé Enterprise est obsolète. Veuillez activer une nouvelle clé pour conserver les fonctionnalités Enterprise."
#. js-lingui-id: 5TsUUL
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
msgstr ""
#. js-lingui-id: NTpA4U
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+70 -29
View File
@@ -790,7 +790,7 @@ msgstr "פעולות משתמשים יכולים לבצע על אובייקט ז
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Activate"
msgstr "הפעל"
@@ -1216,6 +1216,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
@@ -1755,6 +1756,7 @@ msgstr "אירעה שגיאה בעת העלאת התמונה."
#: src/modules/ui/feedback/snack-bar-manager/hooks/useSnackBar.ts
#: src/modules/page-layout/hooks/useUpdatePageLayoutWithTabsAndWidgets.ts
#: src/modules/page-layout/hooks/useResetPageLayoutWidgetToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutTabToDefault.ts
#: src/modules/object-metadata/hooks/useUpdateOneObjectMetadataItem.ts
#: src/modules/object-metadata/hooks/useUpdateOneFieldMetadataItem.ts
@@ -1785,7 +1787,6 @@ msgstr "אובייקט בשם זה כבר קיים"
#. js-lingui-id: lxentK
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
#: src/modules/ai/utils/extractErrorMessage.ts
msgid "An unexpected error occurred"
msgstr "אירעה שגיאה בלתי צפויה"
@@ -1953,6 +1954,11 @@ msgstr "אפליקציה"
msgid "App installed on this workspace"
msgstr "האפליקציה מותקנת בסביבת עבודה זו"
#. js-lingui-id: r5g1bX
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
msgid "App registrations"
msgstr ""
#. js-lingui-id: aAIQg2
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx
msgid "Appearance"
@@ -3183,7 +3189,6 @@ msgstr "לוח הגזירים דורש חיבור מאובטח (HTTPS). יש ל
#. js-lingui-id: yz7wBu
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close"
msgstr "סגור"
@@ -3194,7 +3199,6 @@ msgid "Close banner"
msgstr "סגור באנר"
#. js-lingui-id: saip/v
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close side panel"
msgstr "סגור את חלונית הצד"
@@ -4952,6 +4956,11 @@ msgstr "מפתח"
msgid "Developers links"
msgstr "קישורי מפתחים"
#. js-lingui-id: E/QGRL
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Disabled"
msgstr ""
#. js-lingui-id: Xm/s+u
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelsGeneral.tsx
msgid "Display"
@@ -4988,8 +4997,8 @@ msgid "Display text on multiple lines"
msgstr "הצג טקסט במספר שורות"
#. js-lingui-id: vU/Hht
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
msgid "Distribution"
msgstr "הפצה"
@@ -5594,6 +5603,11 @@ msgstr "תיבת דואר ריקה"
msgid "Empty Object"
msgstr "אובייקט ריק"
#. js-lingui-id: 7A0K1Y
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Empty tab"
msgstr ""
#. js-lingui-id: q11Dk2
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Enable bypass options"
@@ -7113,8 +7127,8 @@ msgstr "תרשים מד"
#. js-lingui-id: Weq9zb
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroupsForDisplay.ts
@@ -7168,11 +7182,6 @@ msgstr "נצלו את המרחב שלכם על ידי הזמנת הצוות של
msgid "Get your subscription"
msgstr "השיגו את המנוי שלכם"
#. js-lingui-id: 2GT3Hf
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Global"
msgstr "גלובלי"
#. js-lingui-id: sr0UJD
#: src/pages/settings/security/event-logs/SettingsEventLogs.tsx
msgid "Go Back"
@@ -9270,7 +9279,6 @@ msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "More"
msgstr "עוד"
@@ -9655,6 +9663,20 @@ msgstr "תצורה חדשה של SSO"
msgid "New SSO provider"
msgstr "ספק SSO חדש"
#. js-lingui-id: 3YvS+c
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "New tab"
msgstr ""
#. js-lingui-id: Db+TX4
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
msgid "New Tab"
msgstr ""
#. js-lingui-id: wl18ST
#: src/modules/activities/tasks/components/TaskGroups.tsx
msgid "New task"
@@ -10349,6 +10371,11 @@ msgstr "הערה"
msgid "Notes"
msgstr "הערות"
#. js-lingui-id: DYCPYF
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "Nothing to see"
msgstr ""
#. js-lingui-id: YwzE9K
#: src/utils/date-utils.ts
#: src/utils/date-utils.ts
@@ -10414,7 +10441,7 @@ msgid "Numbered list"
msgstr ""
#. js-lingui-id: b/j06W
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "OAuth"
msgstr "OAuth"
@@ -10694,7 +10721,6 @@ msgid "Open Outlook"
msgstr "פתח ב-Outlook"
#. js-lingui-id: bY2Xkv
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Open side panel"
msgstr "פתח את חלונית הצד"
@@ -10785,6 +10811,7 @@ msgstr "ארגון"
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
@@ -11697,11 +11724,6 @@ msgstr "תווית של רישום"
msgid "Record Page"
msgstr "דף רישום"
#. js-lingui-id: dSCufP
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Record Selection"
msgstr "\\"
#. js-lingui-id: NxW0+c
#: src/modules/side-panel/pages/page-layout/utils/getPageLayoutPageTitle.ts
msgid "Record Table Settings"
@@ -12026,6 +12048,8 @@ msgstr "שלח שוב את הדוא\"ל"
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset"
msgstr "איפוס"
@@ -12035,6 +12059,11 @@ msgstr "איפוס"
msgid "Reset 2FA"
msgstr "אתחל אימות דו-שלבי"
#. js-lingui-id: kw0Yv1
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset all overrides on this layout to return it to the app default"
msgstr ""
#. js-lingui-id: YdI8A2
#: src/modules/command-menu-item/edit/components/CommandMenuItemOptionsDropdown.tsx
msgid "Reset label to default"
@@ -12047,6 +12076,8 @@ msgstr ""
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/fields/forms/address/components/SettingsDataModelFieldAddressForm.tsx
#: src/modules/command-menu-item/edit/components/SidePanelCommandMenuItemEditPage.tsx
msgid "Reset to default"
@@ -12312,6 +12343,11 @@ msgstr "מריץ את {formattedName}"
msgid "Running function"
msgstr "מריץ פונקציה"
#. js-lingui-id: SoR81K
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
msgid "Running workflows on all records is not yet supported. Please select records manually."
msgstr ""
#. js-lingui-id: LTC198
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Running..."
@@ -12395,11 +12431,6 @@ msgstr "SDK"
msgid "Search"
msgstr "\\"
#. js-lingui-id: aOQ/Fi
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Search ''{sidePanelSearch}'' with..."
msgstr "חפש \\\"{sidePanelSearch}\\\" עם..."
#. js-lingui-id: g2dQp/
#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelPermissionMeValueSelect.tsx
msgid "Search 1 {fieldTypeLabelLowercase} field"
@@ -14233,6 +14264,11 @@ msgstr "החשבון הזה מחובר, אך עדיין אין לנו הרשאה
msgid "This action can return up to {maxRecordsFormatted} records."
msgstr ""
#. js-lingui-id: 2xOCJW
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "This action cannot be undone."
msgstr ""
#. js-lingui-id: Ox1hE7
#: src/modules/settings/profile/components/DeleteAccount.tsx
msgid ""
@@ -14341,6 +14377,11 @@ msgstr "יש להגדיר מפתח זה דרך קלט הגוף"
msgid "This model will be removed from the provider. You can re-add it later."
msgstr "מודל זה יוסר מהספק. ניתן להוסיפו מחדש מאוחר יותר."
#. js-lingui-id: NCA55L
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "This page has no content"
msgstr ""
#. js-lingui-id: R/PuIn
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
msgid "This provider doesn't have a native SDK yet — it will use OpenAI-compatible mode. Need native support? Reach out to us."
@@ -15085,7 +15126,7 @@ msgstr ""
#: src/modules/ui/field/display/components/ActorDisplay.tsx
#: src/modules/side-panel/components/SidePanelContextChip.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/page-layout/components/PageLayoutTabsRenderer.tsx
#: src/modules/page-layout/hooks/usePageLayoutAddTabStrategy.ts
#: src/modules/object-record/record-title-cell/components/RecordTitleFullNameFieldDisplay.tsx
#: src/modules/object-record/record-title-cell/components/RecordTitleCellTextFieldDisplay.tsx
#: src/modules/object-record/components/RecordChip.tsx
@@ -16416,10 +16457,10 @@ msgstr "תכונות ה-Enterprise שלך יושבתו"
msgid "Your enterprise features will remain active until {cancelAtDate}."
msgstr "תכונות ה-Enterprise שלך יישארו פעילות עד {cancelAtDate}."
#. js-lingui-id: 69Siss
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
msgstr "תבנית מפתח ה-Enterprise שלך הוצאה משימוש. אנא הפעל מפתח חדש כדי לשמור על תכונות ה-Enterprise."
#. js-lingui-id: 5TsUUL
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
msgstr ""
#. js-lingui-id: NTpA4U
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
+70 -29
View File
@@ -790,7 +790,7 @@ msgstr "Műveletek, amelyeket a felhasználók ezen az objektumon végrehajthatn
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Activate"
msgstr "Aktiválás"
@@ -1216,6 +1216,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
@@ -1755,6 +1756,7 @@ msgstr "Hiba történt a kép feltöltése közben."
#: src/modules/ui/feedback/snack-bar-manager/hooks/useSnackBar.ts
#: src/modules/page-layout/hooks/useUpdatePageLayoutWithTabsAndWidgets.ts
#: src/modules/page-layout/hooks/useResetPageLayoutWidgetToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutTabToDefault.ts
#: src/modules/object-metadata/hooks/useUpdateOneObjectMetadataItem.ts
#: src/modules/object-metadata/hooks/useUpdateOneFieldMetadataItem.ts
@@ -1785,7 +1787,6 @@ msgstr "Már létezik ilyen nevű objektum"
#. js-lingui-id: lxentK
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
#: src/modules/ai/utils/extractErrorMessage.ts
msgid "An unexpected error occurred"
msgstr "Váratlan hiba történt"
@@ -1953,6 +1954,11 @@ msgstr "Alkalmazás"
msgid "App installed on this workspace"
msgstr "Alkalmazás telepítve ezen a munkaterületen"
#. js-lingui-id: r5g1bX
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
msgid "App registrations"
msgstr ""
#. js-lingui-id: aAIQg2
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx
msgid "Appearance"
@@ -3183,7 +3189,6 @@ msgstr ""
#. js-lingui-id: yz7wBu
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close"
msgstr "Bezár"
@@ -3194,7 +3199,6 @@ msgid "Close banner"
msgstr "Banner bezárása"
#. js-lingui-id: saip/v
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close side panel"
msgstr "Oldalsó panel bezárása"
@@ -4952,6 +4956,11 @@ msgstr "Fejlesztő"
msgid "Developers links"
msgstr "Fejlesztői hivatkozások"
#. js-lingui-id: E/QGRL
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Disabled"
msgstr ""
#. js-lingui-id: Xm/s+u
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelsGeneral.tsx
msgid "Display"
@@ -4988,8 +4997,8 @@ msgid "Display text on multiple lines"
msgstr "Szöveg megjelenítése több sorban"
#. js-lingui-id: vU/Hht
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
msgid "Distribution"
msgstr "Terjesztés"
@@ -5594,6 +5603,11 @@ msgstr "Üres Postafiók"
msgid "Empty Object"
msgstr "Üres objektum"
#. js-lingui-id: 7A0K1Y
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Empty tab"
msgstr ""
#. js-lingui-id: q11Dk2
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Enable bypass options"
@@ -7113,8 +7127,8 @@ msgstr "Mérőműszer diagram"
#. js-lingui-id: Weq9zb
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroupsForDisplay.ts
@@ -7168,11 +7182,6 @@ msgstr "Maximalizálja munkaterületét csapatának meghívásával."
msgid "Get your subscription"
msgstr "Szerezze meg előfizetését"
#. js-lingui-id: 2GT3Hf
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Global"
msgstr "Globális"
#. js-lingui-id: sr0UJD
#: src/pages/settings/security/event-logs/SettingsEventLogs.tsx
msgid "Go Back"
@@ -9270,7 +9279,6 @@ msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "More"
msgstr "Több"
@@ -9655,6 +9663,20 @@ msgstr "Új SSO-Konfiguráció"
msgid "New SSO provider"
msgstr "Új SSO szolgáltató"
#. js-lingui-id: 3YvS+c
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "New tab"
msgstr ""
#. js-lingui-id: Db+TX4
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
msgid "New Tab"
msgstr ""
#. js-lingui-id: wl18ST
#: src/modules/activities/tasks/components/TaskGroups.tsx
msgid "New task"
@@ -10349,6 +10371,11 @@ msgstr "Megjegyzés"
msgid "Notes"
msgstr "Jegyzetek"
#. js-lingui-id: DYCPYF
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "Nothing to see"
msgstr ""
#. js-lingui-id: YwzE9K
#: src/utils/date-utils.ts
#: src/utils/date-utils.ts
@@ -10414,7 +10441,7 @@ msgid "Numbered list"
msgstr ""
#. js-lingui-id: b/j06W
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "OAuth"
msgstr "OAuth"
@@ -10694,7 +10721,6 @@ msgid "Open Outlook"
msgstr "Outlook megnyitása"
#. js-lingui-id: bY2Xkv
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Open side panel"
msgstr "Oldalsó panel megnyitása"
@@ -10785,6 +10811,7 @@ msgstr "Rendszerezés"
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
@@ -11697,11 +11724,6 @@ msgstr "Felvétel címkéje"
msgid "Record Page"
msgstr "Felvételi oldal"
#. js-lingui-id: dSCufP
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Record Selection"
msgstr "Bejegyzések kiválasztása"
#. js-lingui-id: NxW0+c
#: src/modules/side-panel/pages/page-layout/utils/getPageLayoutPageTitle.ts
msgid "Record Table Settings"
@@ -12026,6 +12048,8 @@ msgstr "E-mail újraküldése"
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset"
msgstr "Visszaállítás"
@@ -12035,6 +12059,11 @@ msgstr "Visszaállítás"
msgid "Reset 2FA"
msgstr "2FA visszaállítása"
#. js-lingui-id: kw0Yv1
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset all overrides on this layout to return it to the app default"
msgstr ""
#. js-lingui-id: YdI8A2
#: src/modules/command-menu-item/edit/components/CommandMenuItemOptionsDropdown.tsx
msgid "Reset label to default"
@@ -12047,6 +12076,8 @@ msgstr ""
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/fields/forms/address/components/SettingsDataModelFieldAddressForm.tsx
#: src/modules/command-menu-item/edit/components/SidePanelCommandMenuItemEditPage.tsx
msgid "Reset to default"
@@ -12312,6 +12343,11 @@ msgstr "{formattedName} futtatása"
msgid "Running function"
msgstr "Függvény fut"
#. js-lingui-id: SoR81K
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
msgid "Running workflows on all records is not yet supported. Please select records manually."
msgstr ""
#. js-lingui-id: LTC198
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Running..."
@@ -12395,11 +12431,6 @@ msgstr "SDK"
msgid "Search"
msgstr "Keresés"
#. js-lingui-id: aOQ/Fi
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Search ''{sidePanelSearch}'' with..."
msgstr "Keresés a következővel: ''{sidePanelSearch}''..."
#. js-lingui-id: g2dQp/
#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelPermissionMeValueSelect.tsx
msgid "Search 1 {fieldTypeLabelLowercase} field"
@@ -14233,6 +14264,11 @@ msgstr "Ez a fiók csatlakoztatva van, de még nincs engedélyünk arra, hogy az
msgid "This action can return up to {maxRecordsFormatted} records."
msgstr ""
#. js-lingui-id: 2xOCJW
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "This action cannot be undone."
msgstr ""
#. js-lingui-id: Ox1hE7
#: src/modules/settings/profile/components/DeleteAccount.tsx
msgid ""
@@ -14341,6 +14377,11 @@ msgstr "Ezt a kulcsot a törzs bevitelén keresztül kell beállítani"
msgid "This model will be removed from the provider. You can re-add it later."
msgstr "Ez a modell eltávolításra kerül a szolgáltatóból. Később újra hozzáadhatja."
#. js-lingui-id: NCA55L
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "This page has no content"
msgstr ""
#. js-lingui-id: R/PuIn
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
msgid "This provider doesn't have a native SDK yet — it will use OpenAI-compatible mode. Need native support? Reach out to us."
@@ -15085,7 +15126,7 @@ msgstr ""
#: src/modules/ui/field/display/components/ActorDisplay.tsx
#: src/modules/side-panel/components/SidePanelContextChip.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/page-layout/components/PageLayoutTabsRenderer.tsx
#: src/modules/page-layout/hooks/usePageLayoutAddTabStrategy.ts
#: src/modules/object-record/record-title-cell/components/RecordTitleFullNameFieldDisplay.tsx
#: src/modules/object-record/record-title-cell/components/RecordTitleCellTextFieldDisplay.tsx
#: src/modules/object-record/components/RecordChip.tsx
@@ -16416,10 +16457,10 @@ msgstr "Az Enterprise funkciók le lesznek tiltva"
msgid "Your enterprise features will remain active until {cancelAtDate}."
msgstr "Az Enterprise funkciók {cancelAtDate} időpontig maradnak aktívak."
#. js-lingui-id: 69Siss
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
msgstr "Az Enterprise kulcs formátuma elavult. Az Enterprise funkciók megtartásához aktiváljon egy új kulcsot."
#. js-lingui-id: 5TsUUL
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
msgstr ""
#. js-lingui-id: NTpA4U
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
+70 -29
View File
@@ -790,7 +790,7 @@ msgstr "Azioni che gli utenti possono eseguire su questo oggetto"
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Activate"
msgstr "Attiva"
@@ -1216,6 +1216,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
@@ -1755,6 +1756,7 @@ msgstr "Si è verificato un errore durante il caricamento dell'immagine."
#: src/modules/ui/feedback/snack-bar-manager/hooks/useSnackBar.ts
#: src/modules/page-layout/hooks/useUpdatePageLayoutWithTabsAndWidgets.ts
#: src/modules/page-layout/hooks/useResetPageLayoutWidgetToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutTabToDefault.ts
#: src/modules/object-metadata/hooks/useUpdateOneObjectMetadataItem.ts
#: src/modules/object-metadata/hooks/useUpdateOneFieldMetadataItem.ts
@@ -1785,7 +1787,6 @@ msgstr "Esiste già un oggetto con questo nome"
#. js-lingui-id: lxentK
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
#: src/modules/ai/utils/extractErrorMessage.ts
msgid "An unexpected error occurred"
msgstr "Si è verificato un errore imprevisto"
@@ -1953,6 +1954,11 @@ msgstr "App"
msgid "App installed on this workspace"
msgstr "App installata su questo spazio di lavoro"
#. js-lingui-id: r5g1bX
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
msgid "App registrations"
msgstr ""
#. js-lingui-id: aAIQg2
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx
msgid "Appearance"
@@ -3183,7 +3189,6 @@ msgstr "Gli appunti richiedono una connessione sicura (HTTPS). Accedi a questa a
#. js-lingui-id: yz7wBu
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close"
msgstr "Chiudi"
@@ -3194,7 +3199,6 @@ msgid "Close banner"
msgstr "Chiudi banner"
#. js-lingui-id: saip/v
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close side panel"
msgstr "Chiudi il pannello laterale"
@@ -4952,6 +4956,11 @@ msgstr "Sviluppatore"
msgid "Developers links"
msgstr "Link per sviluppatori"
#. js-lingui-id: E/QGRL
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Disabled"
msgstr ""
#. js-lingui-id: Xm/s+u
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelsGeneral.tsx
msgid "Display"
@@ -4988,8 +4997,8 @@ msgid "Display text on multiple lines"
msgstr "Mostra testo su più righe"
#. js-lingui-id: vU/Hht
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
msgid "Distribution"
msgstr "Distribuzione"
@@ -5594,6 +5603,11 @@ msgstr "Posta in arrivo vuota"
msgid "Empty Object"
msgstr "Oggetto vuoto"
#. js-lingui-id: 7A0K1Y
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Empty tab"
msgstr ""
#. js-lingui-id: q11Dk2
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Enable bypass options"
@@ -7113,8 +7127,8 @@ msgstr "Grafico a Indicatore"
#. js-lingui-id: Weq9zb
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroupsForDisplay.ts
@@ -7168,11 +7182,6 @@ msgstr "Sfrutta al massimo il tuo spazio di lavoro invitando il tuo team."
msgid "Get your subscription"
msgstr "Ottieni il tuo abbonamento"
#. js-lingui-id: 2GT3Hf
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Global"
msgstr "Globale"
#. js-lingui-id: sr0UJD
#: src/pages/settings/security/event-logs/SettingsEventLogs.tsx
msgid "Go Back"
@@ -9270,7 +9279,6 @@ msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "More"
msgstr "Altro"
@@ -9655,6 +9663,20 @@ msgstr "Nuova configurazione SSO"
msgid "New SSO provider"
msgstr "Nuovo provider SSO"
#. js-lingui-id: 3YvS+c
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "New tab"
msgstr ""
#. js-lingui-id: Db+TX4
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
msgid "New Tab"
msgstr ""
#. js-lingui-id: wl18ST
#: src/modules/activities/tasks/components/TaskGroups.tsx
msgid "New task"
@@ -10349,6 +10371,11 @@ msgstr "Nota"
msgid "Notes"
msgstr "Note"
#. js-lingui-id: DYCPYF
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "Nothing to see"
msgstr ""
#. js-lingui-id: YwzE9K
#: src/utils/date-utils.ts
#: src/utils/date-utils.ts
@@ -10414,7 +10441,7 @@ msgid "Numbered list"
msgstr ""
#. js-lingui-id: b/j06W
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "OAuth"
msgstr "OAuth"
@@ -10694,7 +10721,6 @@ msgid "Open Outlook"
msgstr "Aprire Outlook"
#. js-lingui-id: bY2Xkv
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Open side panel"
msgstr "Apri il pannello laterale"
@@ -10785,6 +10811,7 @@ msgstr "Organizza"
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
@@ -11697,11 +11724,6 @@ msgstr "Etichetta del record"
msgid "Record Page"
msgstr "Pagina del record"
#. js-lingui-id: dSCufP
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Record Selection"
msgstr "Selezione record"
#. js-lingui-id: NxW0+c
#: src/modules/side-panel/pages/page-layout/utils/getPageLayoutPageTitle.ts
msgid "Record Table Settings"
@@ -12026,6 +12048,8 @@ msgstr "Rinvia email"
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset"
msgstr "Reimposta"
@@ -12035,6 +12059,11 @@ msgstr "Reimposta"
msgid "Reset 2FA"
msgstr "Reimposta 2FA"
#. js-lingui-id: kw0Yv1
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset all overrides on this layout to return it to the app default"
msgstr ""
#. js-lingui-id: YdI8A2
#: src/modules/command-menu-item/edit/components/CommandMenuItemOptionsDropdown.tsx
msgid "Reset label to default"
@@ -12047,6 +12076,8 @@ msgstr ""
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/fields/forms/address/components/SettingsDataModelFieldAddressForm.tsx
#: src/modules/command-menu-item/edit/components/SidePanelCommandMenuItemEditPage.tsx
msgid "Reset to default"
@@ -12312,6 +12343,11 @@ msgstr "Esecuzione di {formattedName}"
msgid "Running function"
msgstr "Funzione in esecuzione"
#. js-lingui-id: SoR81K
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
msgid "Running workflows on all records is not yet supported. Please select records manually."
msgstr ""
#. js-lingui-id: LTC198
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Running..."
@@ -12395,11 +12431,6 @@ msgstr "SDK"
msgid "Search"
msgstr "Cerca"
#. js-lingui-id: aOQ/Fi
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Search ''{sidePanelSearch}'' with..."
msgstr "Cerca ''{sidePanelSearch}'' con..."
#. js-lingui-id: g2dQp/
#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelPermissionMeValueSelect.tsx
msgid "Search 1 {fieldTypeLabelLowercase} field"
@@ -14233,6 +14264,11 @@ msgstr "Questo account è collegato, ma non abbiamo ancora l'autorizzazione a cr
msgid "This action can return up to {maxRecordsFormatted} records."
msgstr ""
#. js-lingui-id: 2xOCJW
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "This action cannot be undone."
msgstr ""
#. js-lingui-id: Ox1hE7
#: src/modules/settings/profile/components/DeleteAccount.tsx
msgid ""
@@ -14343,6 +14379,11 @@ msgstr "Questa chiave dovrebbe essere impostata tramite il corpo della richiesta
msgid "This model will be removed from the provider. You can re-add it later."
msgstr "Questo modello verrà rimosso dal provider. Potrai aggiungerlo nuovamente in seguito."
#. js-lingui-id: NCA55L
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "This page has no content"
msgstr ""
#. js-lingui-id: R/PuIn
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
msgid "This provider doesn't have a native SDK yet — it will use OpenAI-compatible mode. Need native support? Reach out to us."
@@ -15087,7 +15128,7 @@ msgstr ""
#: src/modules/ui/field/display/components/ActorDisplay.tsx
#: src/modules/side-panel/components/SidePanelContextChip.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/page-layout/components/PageLayoutTabsRenderer.tsx
#: src/modules/page-layout/hooks/usePageLayoutAddTabStrategy.ts
#: src/modules/object-record/record-title-cell/components/RecordTitleFullNameFieldDisplay.tsx
#: src/modules/object-record/record-title-cell/components/RecordTitleCellTextFieldDisplay.tsx
#: src/modules/object-record/components/RecordChip.tsx
@@ -16418,10 +16459,10 @@ msgstr "Le tue funzionalità Enterprise verranno disabilitate"
msgid "Your enterprise features will remain active until {cancelAtDate}."
msgstr "Le tue funzionalità Enterprise rimarranno attive fino al {cancelAtDate}."
#. js-lingui-id: 69Siss
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
msgstr "Il formato della tua chiave Enterprise è deprecato. Attiva una nuova chiave per mantenere le funzionalità Enterprise."
#. js-lingui-id: 5TsUUL
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
msgstr ""
#. js-lingui-id: NTpA4U
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
+70 -29
View File
@@ -790,7 +790,7 @@ msgstr "このオブジェクトにユーザーが行えるアクション"
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Activate"
msgstr "有効化"
@@ -1216,6 +1216,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
@@ -1755,6 +1756,7 @@ msgstr "画像のアップロード中にエラーが発生しました。"
#: src/modules/ui/feedback/snack-bar-manager/hooks/useSnackBar.ts
#: src/modules/page-layout/hooks/useUpdatePageLayoutWithTabsAndWidgets.ts
#: src/modules/page-layout/hooks/useResetPageLayoutWidgetToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutTabToDefault.ts
#: src/modules/object-metadata/hooks/useUpdateOneObjectMetadataItem.ts
#: src/modules/object-metadata/hooks/useUpdateOneFieldMetadataItem.ts
@@ -1785,7 +1787,6 @@ msgstr "この名前のオブジェクトはすでに存在します。"
#. js-lingui-id: lxentK
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
#: src/modules/ai/utils/extractErrorMessage.ts
msgid "An unexpected error occurred"
msgstr "予期しないエラーが発生しました"
@@ -1953,6 +1954,11 @@ msgstr "アプリ"
msgid "App installed on this workspace"
msgstr "このワークスペースにインストールされているアプリ"
#. js-lingui-id: r5g1bX
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
msgid "App registrations"
msgstr ""
#. js-lingui-id: aAIQg2
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx
msgid "Appearance"
@@ -3183,7 +3189,6 @@ msgstr "クリップボードの使用にはセキュアな接続 (HTTPS) が必
#. js-lingui-id: yz7wBu
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close"
msgstr "閉じる"
@@ -3194,7 +3199,6 @@ msgid "Close banner"
msgstr "バナーを閉じる"
#. js-lingui-id: saip/v
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close side panel"
msgstr "サイドパネルを閉じる"
@@ -4952,6 +4956,11 @@ msgstr "開発者"
msgid "Developers links"
msgstr "開発者向けリンク"
#. js-lingui-id: E/QGRL
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Disabled"
msgstr ""
#. js-lingui-id: Xm/s+u
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelsGeneral.tsx
msgid "Display"
@@ -4988,8 +4997,8 @@ msgid "Display text on multiple lines"
msgstr "複数行でテキストを表示"
#. js-lingui-id: vU/Hht
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
msgid "Distribution"
msgstr "配布"
@@ -5594,6 +5603,11 @@ msgstr "受信トレイを空にする"
msgid "Empty Object"
msgstr "空のオブジェクト"
#. js-lingui-id: 7A0K1Y
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Empty tab"
msgstr ""
#. js-lingui-id: q11Dk2
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Enable bypass options"
@@ -7113,8 +7127,8 @@ msgstr "ゲージチャート"
#. js-lingui-id: Weq9zb
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroupsForDisplay.ts
@@ -7168,11 +7182,6 @@ msgstr "チームを招待して、ワークスペースを最大限に活用し
msgid "Get your subscription"
msgstr "サブスクリプションを取得"
#. js-lingui-id: 2GT3Hf
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Global"
msgstr "グローバル"
#. js-lingui-id: sr0UJD
#: src/pages/settings/security/event-logs/SettingsEventLogs.tsx
msgid "Go Back"
@@ -9270,7 +9279,6 @@ msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "More"
msgstr "もっと"
@@ -9655,6 +9663,20 @@ msgstr "新しいSSO構成"
msgid "New SSO provider"
msgstr "新しいSSOプロバイダー"
#. js-lingui-id: 3YvS+c
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "New tab"
msgstr ""
#. js-lingui-id: Db+TX4
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
msgid "New Tab"
msgstr ""
#. js-lingui-id: wl18ST
#: src/modules/activities/tasks/components/TaskGroups.tsx
msgid "New task"
@@ -10349,6 +10371,11 @@ msgstr "ノート"
msgid "Notes"
msgstr "ノート"
#. js-lingui-id: DYCPYF
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "Nothing to see"
msgstr ""
#. js-lingui-id: YwzE9K
#: src/utils/date-utils.ts
#: src/utils/date-utils.ts
@@ -10414,7 +10441,7 @@ msgid "Numbered list"
msgstr ""
#. js-lingui-id: b/j06W
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "OAuth"
msgstr "OAuth"
@@ -10694,7 +10721,6 @@ msgid "Open Outlook"
msgstr "Outlookで開く"
#. js-lingui-id: bY2Xkv
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Open side panel"
msgstr "サイドパネルを開く"
@@ -10785,6 +10811,7 @@ msgstr "整理"
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
@@ -11697,11 +11724,6 @@ msgstr "レコードラベル"
msgid "Record Page"
msgstr "レコードページ"
#. js-lingui-id: dSCufP
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Record Selection"
msgstr "レコード選択"
#. js-lingui-id: NxW0+c
#: src/modules/side-panel/pages/page-layout/utils/getPageLayoutPageTitle.ts
msgid "Record Table Settings"
@@ -12026,6 +12048,8 @@ msgstr "メールを再送信"
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset"
msgstr "リセット"
@@ -12035,6 +12059,11 @@ msgstr "リセット"
msgid "Reset 2FA"
msgstr "2FAをリセット"
#. js-lingui-id: kw0Yv1
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset all overrides on this layout to return it to the app default"
msgstr ""
#. js-lingui-id: YdI8A2
#: src/modules/command-menu-item/edit/components/CommandMenuItemOptionsDropdown.tsx
msgid "Reset label to default"
@@ -12047,6 +12076,8 @@ msgstr ""
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/fields/forms/address/components/SettingsDataModelFieldAddressForm.tsx
#: src/modules/command-menu-item/edit/components/SidePanelCommandMenuItemEditPage.tsx
msgid "Reset to default"
@@ -12312,6 +12343,11 @@ msgstr "{formattedName} を実行中"
msgid "Running function"
msgstr "関数を実行中"
#. js-lingui-id: SoR81K
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
msgid "Running workflows on all records is not yet supported. Please select records manually."
msgstr ""
#. js-lingui-id: LTC198
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Running..."
@@ -12395,11 +12431,6 @@ msgstr "SDK"
msgid "Search"
msgstr "検索"
#. js-lingui-id: aOQ/Fi
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Search ''{sidePanelSearch}'' with..."
msgstr "''{sidePanelSearch}''で検索..."
#. js-lingui-id: g2dQp/
#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelPermissionMeValueSelect.tsx
msgid "Search 1 {fieldTypeLabelLowercase} field"
@@ -14233,6 +14264,11 @@ msgstr "このアカウントは接続されていますが、あなたに代わ
msgid "This action can return up to {maxRecordsFormatted} records."
msgstr ""
#. js-lingui-id: 2xOCJW
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "This action cannot be undone."
msgstr ""
#. js-lingui-id: Ox1hE7
#: src/modules/settings/profile/components/DeleteAccount.tsx
msgid ""
@@ -14341,6 +14377,11 @@ msgstr "このキーはボディ入力で設定する必要があります"
msgid "This model will be removed from the provider. You can re-add it later."
msgstr "このモデルはプロバイダーから削除されます。後で再度追加できます。"
#. js-lingui-id: NCA55L
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "This page has no content"
msgstr ""
#. js-lingui-id: R/PuIn
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
msgid "This provider doesn't have a native SDK yet — it will use OpenAI-compatible mode. Need native support? Reach out to us."
@@ -15085,7 +15126,7 @@ msgstr ""
#: src/modules/ui/field/display/components/ActorDisplay.tsx
#: src/modules/side-panel/components/SidePanelContextChip.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/page-layout/components/PageLayoutTabsRenderer.tsx
#: src/modules/page-layout/hooks/usePageLayoutAddTabStrategy.ts
#: src/modules/object-record/record-title-cell/components/RecordTitleFullNameFieldDisplay.tsx
#: src/modules/object-record/record-title-cell/components/RecordTitleCellTextFieldDisplay.tsx
#: src/modules/object-record/components/RecordChip.tsx
@@ -16416,10 +16457,10 @@ msgstr "Enterprise 機能は無効になります"
msgid "Your enterprise features will remain active until {cancelAtDate}."
msgstr "Enterprise 機能は {cancelAtDate} まで有効のままです。"
#. js-lingui-id: 69Siss
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
msgstr "Enterprise キーの形式は非推奨です。Enterprise 機能を維持するには、新しいキーを有効化してください。"
#. js-lingui-id: 5TsUUL
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
msgstr ""
#. js-lingui-id: NTpA4U
#: src/pages/settings/enterprise/SettingsEnterprise.tsx
+70 -29
View File
@@ -790,7 +790,7 @@ msgstr "사용자가 이 객체에서 수행할 수 있는 작업"
#: src/modules/settings/data-model/objects/components/SettingsObjectInactiveMenuDropDown.tsx
#: src/modules/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown.tsx
#: src/modules/settings/components/SettingsEnterpriseFeatureGateCard.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Activate"
msgstr "활성화"
@@ -1216,6 +1216,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminNewAiModel.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
@@ -1755,6 +1756,7 @@ msgstr "사진을 업로드하는 중 오류가 발생했습니다."
#: src/modules/ui/feedback/snack-bar-manager/hooks/useSnackBar.ts
#: src/modules/page-layout/hooks/useUpdatePageLayoutWithTabsAndWidgets.ts
#: src/modules/page-layout/hooks/useResetPageLayoutWidgetToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutToDefault.ts
#: src/modules/page-layout/hooks/useResetPageLayoutTabToDefault.ts
#: src/modules/object-metadata/hooks/useUpdateOneObjectMetadataItem.ts
#: src/modules/object-metadata/hooks/useUpdateOneFieldMetadataItem.ts
@@ -1785,7 +1787,6 @@ msgstr "이 이름을 가진 객체가 이미 존재합니다"
#. js-lingui-id: lxentK
#: src/modules/settings/playground/components/PlaygroundSetupForm.tsx
#: src/modules/ai/utils/extractErrorMessage.ts
msgid "An unexpected error occurred"
msgstr "예상치 못한 오류가 발생했습니다"
@@ -1953,6 +1954,11 @@ msgstr "앱"
msgid "App installed on this workspace"
msgstr "이 작업공간에 설치된 앱"
#. js-lingui-id: r5g1bX
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
msgid "App registrations"
msgstr ""
#. js-lingui-id: aAIQg2
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx
msgid "Appearance"
@@ -3183,7 +3189,6 @@ msgstr "클립보드는 보안 연결(HTTPS)이 필요합니다. 복사 기능
#. js-lingui-id: yz7wBu
#: src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close"
msgstr "닫기"
@@ -3194,7 +3199,6 @@ msgid "Close banner"
msgstr "배너 닫기"
#. js-lingui-id: saip/v
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Close side panel"
msgstr "사이드 패널 닫기"
@@ -4952,6 +4956,11 @@ msgstr "개발자"
msgid "Developers links"
msgstr "개발자 링크"
#. js-lingui-id: E/QGRL
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Disabled"
msgstr ""
#. js-lingui-id: Xm/s+u
#: src/modules/settings/accounts/components/SettingsAccountsCalendarChannelsGeneral.tsx
msgid "Display"
@@ -4988,8 +4997,8 @@ msgid "Display text on multiple lines"
msgstr "여러 줄에 텍스트 표시"
#. js-lingui-id: vU/Hht
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationDistributionTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
msgid "Distribution"
msgstr "배포"
@@ -5594,6 +5603,11 @@ msgstr "받은 편지함 비우기"
msgid "Empty Object"
msgstr "빈 객체"
#. js-lingui-id: 7A0K1Y
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "Empty tab"
msgstr ""
#. js-lingui-id: q11Dk2
#: src/modules/settings/roles/role-permissions/permission-flags/hooks/useSettingsRolePermissionFlagConfig.ts
msgid "Enable bypass options"
@@ -7113,8 +7127,8 @@ msgstr "게이지 차트"
#. js-lingui-id: Weq9zb
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/SettingsWorkspace.tsx
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/tabs/SettingsApplicationRegistrationGeneralTab.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroupsForDisplay.ts
@@ -7168,11 +7182,6 @@ msgstr "팀을 초대하여 워크스페이스를 최대한 활용하세요."
msgid "Get your subscription"
msgstr "구독 신청"
#. js-lingui-id: 2GT3Hf
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Global"
msgstr "글로벌"
#. js-lingui-id: sr0UJD
#: src/pages/settings/security/event-logs/SettingsEventLogs.tsx
msgid "Go Back"
@@ -9270,7 +9279,6 @@ msgstr ""
#. js-lingui-id: 2FYpfJ
#: src/pages/settings/ai/SettingsAI.tsx
#: src/modules/ui/layout/tab-list/components/TabMoreButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "More"
msgstr "더보기"
@@ -9655,6 +9663,20 @@ msgstr "새 SSO 구성"
msgid "New SSO provider"
msgstr "새 SSO 공급자"
#. js-lingui-id: 3YvS+c
#: src/modules/page-layout/components/PageLayoutTabListNewTabDropdownContent.tsx
msgid "New tab"
msgstr ""
#. js-lingui-id: Db+TX4
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
#: src/modules/page-layout/components/PageLayoutTabList.tsx
msgid "New Tab"
msgstr ""
#. js-lingui-id: wl18ST
#: src/modules/activities/tasks/components/TaskGroups.tsx
msgid "New task"
@@ -10349,6 +10371,11 @@ msgstr "노트"
msgid "Notes"
msgstr "노트"
#. js-lingui-id: DYCPYF
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "Nothing to see"
msgstr ""
#. js-lingui-id: YwzE9K
#: src/utils/date-utils.ts
#: src/utils/date-utils.ts
@@ -10414,7 +10441,7 @@ msgid "Numbered list"
msgstr ""
#. js-lingui-id: b/j06W
#: src/pages/settings/applications/SettingsApplicationRegistrationDetails.tsx
#: src/pages/settings/applications/components/SettingsApplicationRegistrationContent.tsx
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "OAuth"
msgstr "OAuth"
@@ -10694,7 +10721,6 @@ msgid "Open Outlook"
msgstr "Outlook 열기"
#. js-lingui-id: bY2Xkv
#: src/modules/ui/layout/page-header/components/PageHeaderToggleSidePanelButton.tsx
#: src/modules/side-panel/components/SidePanelToggleButton.tsx
msgid "Open side panel"
msgstr "사이드 패널 열기"
@@ -10785,6 +10811,7 @@ msgstr "정리"
#: src/pages/settings/admin-panel/SettingsAdminUserDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminIndicatorHealthStatus.tsx
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdminAiProviderDetail.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
@@ -11697,11 +11724,6 @@ msgstr "레코드 레이블"
msgid "Record Page"
msgstr "레코드 페이지"
#. js-lingui-id: dSCufP
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Record Selection"
msgstr "레코드 선택"
#. js-lingui-id: NxW0+c
#: src/modules/side-panel/pages/page-layout/utils/getPageLayoutPageTitle.ts
msgid "Record Table Settings"
@@ -12026,6 +12048,8 @@ msgstr "이메일 다시 보내기"
#: src/modules/side-panel/pages/page-layout/components/WidgetSettingsManageSection.tsx
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset"
msgstr "초기화"
@@ -12035,6 +12059,11 @@ msgstr "초기화"
msgid "Reset 2FA"
msgstr "이중 인증 재설정"
#. js-lingui-id: kw0Yv1
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "Reset all overrides on this layout to return it to the app default"
msgstr ""
#. js-lingui-id: YdI8A2
#: src/modules/command-menu-item/edit/components/CommandMenuItemOptionsDropdown.tsx
msgid "Reset label to default"
@@ -12047,6 +12076,8 @@ msgstr ""
#: src/modules/side-panel/pages/page-layout/components/RegularTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/side-panel/pages/page-layout/components/CanvasTabSettingsContent.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
#: src/modules/settings/data-model/fields/forms/address/components/SettingsDataModelFieldAddressForm.tsx
#: src/modules/command-menu-item/edit/components/SidePanelCommandMenuItemEditPage.tsx
msgid "Reset to default"
@@ -12312,6 +12343,11 @@ msgstr "{formattedName} 실행 중"
msgid "Running function"
msgstr "함수 실행 중"
#. js-lingui-id: SoR81K
#: src/modules/command-menu-item/engine-command/hooks/useEnrichHeadlessCommandContextApiWithWorkflowVersionTriggerInformation.ts
msgid "Running workflows on all records is not yet supported. Please select records manually."
msgstr ""
#. js-lingui-id: LTC198
#: src/modules/ai/components/CodeExecutionDisplay.tsx
msgid "Running..."
@@ -12395,11 +12431,6 @@ msgstr "SDK"
msgid "Search"
msgstr "검색"
#. js-lingui-id: aOQ/Fi
#: src/modules/side-panel/pages/root/components/SidePanelRootPage.tsx
msgid "Search ''{sidePanelSearch}'' with..."
msgstr "''{sidePanelSearch}''을(를) 다음에서 검색..."
#. js-lingui-id: g2dQp/
#: src/modules/settings/roles/role-permissions/object-level-permissions/record-level-permissions/components/SettingsRolePermissionsObjectLevelRecordLevelPermissionMeValueSelect.tsx
msgid "Search 1 {fieldTypeLabelLowercase} field"
@@ -14233,6 +14264,11 @@ msgstr "이 계정은 연결되어 있지만 아직 귀하를 대신해 이메
msgid "This action can return up to {maxRecordsFormatted} records."
msgstr ""
#. js-lingui-id: 2xOCJW
#: src/modules/settings/data-model/object-details/components/tabs/ObjectLayout.tsx
msgid "This action cannot be undone."
msgstr ""
#. js-lingui-id: Ox1hE7
#: src/modules/settings/profile/components/DeleteAccount.tsx
msgid ""
@@ -14341,6 +14377,11 @@ msgstr "이 키는 본문 입력을 통해 설정해야 합니다"
msgid "This model will be removed from the provider. You can re-add it later."
msgstr "이 모델은 공급자에서 제거됩니다. 나중에 다시 추가할 수 있습니다."
#. js-lingui-id: NCA55L
#: src/modules/page-layout/widgets/components/StandaloneWidgetPlaceholder.tsx
msgid "This page has no content"
msgstr ""
#. js-lingui-id: R/PuIn
#: src/pages/settings/admin-panel/SettingsAdminNewAiProvider.tsx
msgid "This provider doesn't have a native SDK yet — it will use OpenAI-compatible mode. Need native support? Reach out to us."
@@ -15085,7 +15126,7 @@ msgstr ""
#: src/modules/ui/field/display/components/ActorDisplay.tsx
#: src/modules/side-panel/components/SidePanelContextChip.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
#: src/modules/page-layout/components/PageLayoutTabsRenderer.tsx
#: src/modules/page-layout/hooks/usePageLayoutAddTabStrategy.ts
#: src/modules/object-record/record-title-cell/components/RecordTitleFullNameFieldDisplay.tsx
#: src/modules/object-record/record-title-cell/components/RecordTitleCellTextFieldDisplay.tsx
#: src/modules/object-record/components/RecordChip.tsx
@@ -16416,10 +16457,10 @@ msgstr "엔터프라이즈 기능이 비활성화됩니다"
msgid "Your enterprise features will remain active until {cancelAtDate}."
msgstr "엔터프라이즈 기능은 {cancelAtDate}까지 계속 활성화됩니다."
#. js-lingui-id: 69Siss
#: src/modules/information-banner/components/enterprise/InformationBannerLegacyEnterpriseKey.tsx
msgid "Your enterprise key format is deprecated. Please activate a new key to keep enterprise features."
msgstr "엔터프라이즈 키 형식이 더 이상 사용되지 않습니다. 엔터프라이즈 기능을 유지하려면 새 키를 활성화하세요."
#. js-lingui-id: 5TsUUL
#: src/modules/information-banner/components/enterprise/InformationBannerInvalidEnterpriseKey.tsx
msgid "Your enterprise key is no longer valid. Activate a new key to continue using enterprise features."
msgstr ""
#. js-lingui-id: NTpA4U
#: src/pages/settings/enterprise/SettingsEnterprise.tsx

Some files were not shown because too many files have changed in this diff Show More