Compare commits

...
Author SHA1 Message Date
Sonarly Claude Code c856e01e43 LogicFunction GraphQL schema missing builtHandlerPath field
https://sonarly.com/issue/4132?type=bug

The builtHandlerPath field was removed from the LogicFunction GraphQL DTO during a refactoring, but older frontend clients (v1.18.0) still query for it, causing a GraphQL validation error on the /metadata endpoint.

Fix: Re-add the builtHandlerPath field to the LogicFunctionDTO GraphQL ObjectType and include it in the flat-to-DTO mapping function. The field already exists in the LogicFunctionEntity database column, so the data is available. This restores backward compatibility so that older frontend clients querying builtHandlerPath will receive a valid response instead of a GraphQL validation error. The fix involves two changes:
1. Add builtHandlerPath as a @Field() decorated property to LogicFunctionDTO in logic-function.dto.ts
2. Map builtHandlerPath from flatLogicFunction in from-flat-logic-function-to-logic-function-dto.util.ts
2026-02-20 15:10:19 +00:00
Raphaël BosiandGitHub 7da8450075 [FRONT COMPONENTS] Headless components (#18096)
## Description

- Add `isHeadless` field to `FrontComponent` entity so front components
can run without rendering UI in the command menu
- Introduce headless front component mounting logic:
`HeadlessFrontComponentMountRoot` at the application root,
`useMountHeadlessFrontComponent`, and `useUnmountHeadlessFrontComponent`
hooks to mount/unmount headless components
- Expand the SDK with new action components (`Action`, `ActionLink`,
`ActionOpenSidePanelPage`) and host communication functions
(`openSidePanelPage`, `unmountFrontComponent`)
- Move `CommandMenuPages` type to twenty-shared so the SDK can reference
it for side panel navigation

## Video QA



https://github.com/user-attachments/assets/4f9e3bb1-fcd1-42be-b3f4-a97e80c2add2
2026-02-20 14:14:42 +00:00
d444648cc0 i18n - translations (#18127)
Created by Github action

---------

Co-authored-by: github-actions <[email protected]>
2026-02-20 14:41:58 +01:00
ec57d3fe0f Fix flaky 2FA encryption test for AES-256-CBC wrong-key behavior (#18126)
## Summary

- Fixes a flaky test in `simple-secret-encryption.util.spec.ts` that
fails ~1 in 256 runs
- AES-256-CBC doesn't guarantee wrong-key decryption throws — PKCS7
padding validation is probabilistic. When padding accidentally looks
valid, decryption silently returns garbage instead of throwing.
- Changed the test to verify the correct security property: wrong-key
decryption must never return the original secret (both throw and garbage
are acceptable)
- Audited both production `decryptSecret` call sites in
`two-factor-authentication.service.ts` — they always use the correct
key, so end users are not affected

## Test plan

- [x] Test passes 5/5 consecutive runs locally
- [x] Lint passes


Made with [Cursor](https://cursor.com)

Co-authored-by: Cursor <[email protected]>
2026-02-20 14:41:31 +01:00
Baptiste DevessierandGitHub 00209f7e2c Wire fields widget to backend + basic edition (#17965)
Closes https://github.com/twentyhq/core-team-issues/issues/2215
Closes https://github.com/twentyhq/core-team-issues/issues/2216
Closes https://github.com/twentyhq/core-team-issues/issues/2218

## Fields widget edition demo


https://github.com/user-attachments/assets/08626d70-8fcb-4ae2-9222-10ef57e75f90

## Dashboards still work


https://github.com/user-attachments/assets/aa9a9c45-a0a2-481e-b132-bc52254778da
2026-02-20 13:18:00 +00:00
b107020ad3 Fix search edge case with permissions (#18123)
Fix E2E tests

---------

Co-authored-by: Cursor <[email protected]>
2026-02-20 14:08:20 +01:00
9f3f2e21d8 i18n - docs translations (#18122)
Created by Github action

Co-authored-by: github-actions <[email protected]>
2026-02-20 13:51:43 +01:00
21472da38f i18n - translations (#18120)
Created by Github action

---------

Co-authored-by: github-actions <[email protected]>
2026-02-20 13:51:34 +01:00
Paul RastoinandGitHub bf1e0d0811 Typecheck main sdk (#18124) 2026-02-20 13:47:57 +01:00
Abdullah.andGitHub 917a36821a fix: hover appearing on not shared for junction relations (#18058)
Hovering over "Not Shared" in junction relations shows the placeholder
text.

<img width="1039" height="862" alt="image"
src="https://github.com/user-attachments/assets/a9523f51-c417-41b0-9926-d154c9601fd8"
/>

<br />
<br />

This PR fixes it.

<img width="1040" height="860" alt="image"
src="https://github.com/user-attachments/assets/09d5fecf-1faa-449d-86d9-a105464d31c3"
/>
2026-02-20 13:16:49 +01:00
66da296799 Unify MCP into single endpoint with lazy tool discovery (#18113)
## Summary

- Consolidates the MCP server from two endpoints (`/mcp` +
`/mcp/metadata`) into a **single `POST /mcp`** endpoint exposing five
high-level tools: `get_tool_catalog`, `learn_tools`, `execute_tool`,
`load_skills`, and `search_help_center`
- Fixes **DATABASE_CRUD tools not accessible via API key auth** by
removing an unnecessary `userId`/`userWorkspaceId` guard in
`DatabaseToolProvider` and threading `ApiKeyWorkspaceAuthContext`
through the tool context chain
- Improves tool descriptions with **STEP 1/2/3 workflow guidance** so AI
clients follow the correct discovery flow (catalog → learn → execute)
instead of guessing tool names
- Simplifies the **frontend AI settings** by removing the schema picker
dropdown (no more "Core Schema" vs "Metadata Schema" choice)

## Changes

### Backend
- **Deleted**: `mcp-metadata.controller.ts`, `mcp-metadata.service.ts`
(merged into core)
- **New**: `get-tool-catalog.tool.ts` — browsable, categorized tool
discovery
- **Fixed**: `DatabaseToolProvider.generateDescriptors` — removed guard
that blocked API key access to CRUD tools
- **Fixed**: `ToolContext` type + `ToolRegistryService` — `authContext`
now flows through so API key CRUD execution works end-to-end
- **Updated**: `McpProtocolService` — builds
`ApiKeyWorkspaceAuthContext` for API key requests
- **Updated**: All MCP tool descriptions with explicit step numbering

### Frontend
- **Simplified**: `SettingsAIMCP.tsx` — removed schema selector
dropdown, shows single MCP config

## Test plan
- [x] All 19 MCP unit tests pass (controller + protocol service)
- [x] Server and frontend lint clean
- [x] Server and frontend typecheck pass
- [x] Live-tested on localhost:3000 with API key: `get_tool_catalog`
returns 236 tools including 196 DATABASE_CRUD tools
- [x] Live-tested `execute_tool` with `find_companies` via API key —
returns real data
- [x] Tested MCP connection from Cursor IDE via project-level
`.cursor/mcp.json`

Made with [Cursor](https://cursor.com)

---------

Co-authored-by: Cursor <[email protected]>
2026-02-20 13:09:54 +01:00
3bc887e12e Add default relation to standard object on custom object in manifest (#18033)
add default relation fields when creating an object from an application

---------

Co-authored-by: prastoin <[email protected]>
2026-02-20 11:49:06 +01:00
Thomas TrompetteandGitHub d060c843d1 Remove sse feature flag (#18114)
As title
2026-02-20 11:46:03 +01:00
Paul RastoinandGitHub 175df59c21 Support Skill in manifest (#18092)
# Introduction
Support skill in manifest, pre-requisite for the twenty standard app
migration
2026-02-20 11:45:42 +01:00
6ad581d178 Fix global search for CJK and non-tokenizable text (#18030)
## Summary

Fixes #12962

- Adds a two-pass ILIKE fallback to the global search service
(`search.service.ts`)
- **Fast path**: runs the tsvector query first (uses GIN index,
sub-millisecond)
- **Fallback**: only if tsvector returns fewer results than the limit,
runs an ILIKE query on `searchVector::text` to catch cases where
PostgreSQL's `simple` text search config fails to tokenize (continuous
CJK text, etc.)
- Zero performance impact for the common case (Latin text where tsvector
works)
- Also adds `escapeForIlike` utility to properly escape `%`, `_`, `\` in
user input

### Why tsvector fails for CJK

PostgreSQL's `simple` config treats continuous CJK text as a single
lexeme:
- `to_tsvector('simple', '示例商业线索')` → `'示例商业线索':1`
- Searching `商业:*` only prefix-matches from the start, so it misses `商业`
in the middle

The ILIKE fallback catches these substring matches when the tsvector
path can't.

### What this fixes

- Global search (command menu / sidebar)
- Relation picker (single and multi-object)
- Morph relation picker

All three use `search.service.ts` under the hood.

Co-authored-by: mykh-hailo (original direction in #18021)

## Test plan

- [ ] Search `示例` with records `示例商业线索` and `示例-商业-线索` → both should
appear
- [ ] Search `商业` → both should appear (previously only the hyphenated
one did)
- [ ] Search for Latin text (e.g. `john`) → same performance, results
unchanged
- [ ] Relation picker search with CJK text → results appear
- [ ] Search input with special chars like `%` or `_` → no SQL
injection, results correct


Made with [Cursor](https://cursor.com)

---------

Co-authored-by: mykh-hailo <[email protected]>
Co-authored-by: Cursor <[email protected]>
2026-02-20 11:02:09 +01:00
neo773andGitHub 712b1553bd Fix participant matching failing due to updating all columns instead of only changed fields (#18105)
The updateMany in matchParticipants was spreading the entire participant
object into the SET clause, which included generated columns
(searchVector) and composite field columns (createdBySource) that can't
be written to. Narrowed the update to only set personId and
workspaceMemberId.
```
[1] query failed: UPDATE "workspace_3ixj3i1a5avy16ptijtb3lae3"."calendarEventParticipant" SET "id" = $1, "createdAt" = $2, "updatedAt" = $3, "deletedAt" = $4, "createdBySource" = $5, "createdByWorkspaceMemberId" = $6, "createdByName" = $7, "createdByContext" = $8, "updatedBySource" = $9, "updatedByWorkspaceMemberId" = $10, "updatedByName" = $11, "updatedByContext" = $12, "position" = $13, "searchVector" = $14, "handle" = $15, "displayName" = $16, "isOrganizer" = $17, "responseStatus" = $18, "calendarEventId" = $19, "personId" = $20, "workspaceMemberId" = $21 WHERE "id" = $22 RETURNING * -- PARAMETERS: ["f1526103-451a-429f-9743-3a81c3a3e3aa","2026-02-19T22:23:32.354Z","2026-02-19T22:23:32.354Z",null,"MANUAL",null,"System",null,"MANUAL",null,"System",null,0,"'[email protected]':1","[email protected]","",false,"NEEDS_ACTION","fb1892a8-6daf-435b-a43b-e8fe8693eb99","60bf9e82-f1b7-4bed-a1af-7039fb9c32f5",null,"f1526103-451a-429f-9743-3a81c3a3e3aa"]
[1] error: error: column "searchVector" can only be updated to DEFAULT
[1] Exception Captured
[1]   undefined
[1]   [
[1]     PostgresException [Error]: Data validation error.
[1]         at computeTwentyORMException (/Users/huzef/Documents/bounties/twenty/packages/twenty-server/dist/engine/twenty-orm/error-handling/compute-twenty-orm-exception.js:35:19)
[1]         at WorkspaceUpdateQueryBuilder.executeMany (/Users/huzef/Documents/bounties/twenty/packages/twenty-server/dist/engine/twenty-orm/repository/workspace-update-query-builder.js:269:82)
[1]         at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
[1]         at async WorkspaceRepository.updateMany (/Users/huzef/Documents/bounties/twenty/packages/twenty-server/dist/engine/twenty-orm/repository/workspace.repository.js:234:25)
[1]         at async MatchParticipantService.matchParticipants (/Users/huzef/Documents/bounties/twenty/packages/twenty-server/dist/modules/match-participant/match-participant.service.js:93:13)
[1]         at async /Users/huzef/Documents/bounties/twenty/packages/twenty-server/dist/modules/match-participant/match-participant.service.js:160:13
[1]         at async MatchParticipantService.matchParticipantsForPeople (/Users/huzef/Documents/bounties/twenty/packages/twenty-server/dist/modules/match-participant/match-participant.service.js:130:9)
[1]         at async CalendarEventParticipantMatchParticipantJob.handle (/Users/huzef/Documents/bounties/twenty/packages/twenty-server/dist/modules/calendar/calendar-event-participant-manager/jobs/calendar-event-participant-match-participant.job.js:45:13)
[1]         at async MessageQueueExplorer.invokeProcessMethods (/Users/huzef/Documents/bounties/twenty/packages/twenty-server/dist/engine/core-modules/message-queue/message-queue.explorer.js:113:17)
[1]         at async MessageQueueExplorer.handleProcessor (/Users/huzef/Documents/bounties/twenty/packages/twenty-server/dist/engine/core-modules/message-queue/message-queue.explorer.js:104:13) {
[1]       code: '428C9'
[1]     }
[1]   ]
```
2026-02-20 10:25:10 +01:00
sonarly[bot]GitHubSonarly Claude Codeclaude[bot] <41898282+claude[bot]@users.noreply.github.com>Etienne
cc1145c701 Fix: Person avatar upload fails with unknown field error (#18109)
## Automated fix for [bug None](https://sonarly.com/issue/None?type=bug)

**Severity:** `critical`

### Summary
When uploading a person avatar with the new FILES field migration
enabled, the optimistic record validation in
computeOptimisticRecordFromInput throws because the avatarFile field may
not be recognized in the person object metadata, crashing the upload
flow.

### User Impact
Users with the IS_FILES_FIELD_MIGRATED feature flag enabled cannot
upload or change a person's avatar photo. The upload operation throws an
unhandled error, preventing the avatar update from completing.

### Root Cause
The usePersonAvatarUpload hook passes avatarFile as a field in
updateOneRecordInput when calling updateOneRecord. This input goes
through computeOptimisticRecordFromInput, which validates that every
field in the record input exists in objectMetadataItem.fields. The
avatarFile field (type FILES) was recently added as a standard field on
the person object, but may not yet be present in the frontend's cached
object metadata for all workspaces (e.g., workspaces where the metadata
has not been synced after the migration, or SSE events arriving before
metadata refresh). When avatarFile is not found in the metadata fields
array, the validation throws. The useUpdateOneRecord hook supports an
optimisticRecord parameter that bypasses this validation entirely, but
usePersonAvatarUpload did not provide it.

Introduced by Etienne in commit d0c1841f0f on 2026-02-11, which added
the avatar file migration and upload logic but did not supply an
optimisticRecord to bypass the strict field validation in
computeOptimisticRecordFromInput.

**Introduced by:** Etienne on 2026-02-11 in commit
[`d0c1841`](https://github.com/twentyhq/twenty/commit/d0c1841f0f8a6a9069bbe2e9cafacf4ff6137f82)

### Suggested Fix
Pass an explicit optimisticRecord parameter when calling updateOneRecord
from usePersonAvatarUpload. The useUpdateOneRecord hook uses
optimisticRecord via nullish coalescing (optimisticRecord ??
computeOptimisticRecordFromInput(...)), so providing it bypasses the
strict field validation in computeOptimisticRecordFromInput entirely.
The avatarFile value is extracted into a shared variable to avoid
duplication between updateOneRecordInput and optimisticRecord.

---
*Generated by [Sonarly](https://sonarly.com)*

---------

Co-authored-by: Sonarly Claude Code <[email protected]>
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Etienne <[email protected]>
2026-02-20 08:27:53 +00:00
Félix MalfaitGitHubCursorclaude[bot] <41898282+claude[bot]@users.noreply.github.com>
726b1373d9 fix: convert metered tier upTo from internal to display credits in listPlans (#18108)
## Summary
- The `listPlans` GraphQL query was returning metered tier `upTo` values
in internal credit units (1000x the display value), causing "Credits by
period" and "Credit Plan" dropdowns to show "50M" instead of "50k"
- Applied the existing `INTERNAL_CREDITS_PER_DISPLAY_CREDIT` (1000)
divisor in `formatBillingDatabasePriceToMeteredPriceDTO`, matching the
conversion already used in `getMeteredProductsUsage` resolver
- Updated frontend mock data to reflect the corrected display-unit
values

## Test plan
- [x] Unit tests pass for `format-database-product-to-graphql-dto.util`
- [x] Unit tests pass for `metered-credit.service` and
`billing-credit-rollover.service`
- [ ] Verify billing page shows correct credit amounts (50k, not 50M)
for "Credits by period" and "Credit Plan"


Made with [Cursor](https://cursor.com)

---------

Co-authored-by: Cursor <[email protected]>
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
2026-02-20 09:44:11 +01:00
783e57f5d8 i18n - translations (#18100)
Created by Github action

---------

Co-authored-by: github-actions <[email protected]>
2026-02-19 21:14:57 +01:00
163254baef fix: laggy edition of FormNumberFieldInput (#18011)
### What this PR do ?

Stops the delay fields from updating the workflow on every keystroke by
keeping values locally and saving them on blur, which fixes the cached
relation error

Fixed #15709

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2026-02-19 17:16:25 +00:00
aaa6511007 feat: added workspace member filter for actor fields (#16628)
Closes #16619

This PR adds support for filtering ACTOR fields by `Workspace Member`
subfield, enabling users to filter records by who created them with a
`Me` option.

I replicated the same UX and code structure as the Relation field filter
for consistency.

Each filter selection triggers a server-side GraphQL call. But there is
client-side filtering in `isRecordMatchingFilter.ts` which instantly
filters already-loaded records while the server is fetching new results.
I replicated this behaviour from how `FULL_NAME` and other composite
fields handle filtering.


UX decision that were taken by me (Let me know if changes are needed) : 
- The filter shows comma separated selected workspace member names until
3 members are selected. After that it shows [no of selected members]
workspace members.

<img width="643" height="283" alt="Screenshot 2025-12-17 at 8 01 23 PM"
src="https://github.com/user-attachments/assets/18d524f4-979b-4d92-ad64-aa7b63be7897"
/>
<img width="774" height="309" alt="Screenshot 2025-12-17 at 8 01 33 PM"
src="https://github.com/user-attachments/assets/779f374f-1501-48f9-afa2-a78628e067b1"
/>
<img width="737" height="397" alt="Screenshot 2025-12-17 at 8 01 40 PM"
src="https://github.com/user-attachments/assets/4e8b963e-8a0f-467d-91ae-48bca4e1d842"
/>
<img width="697" height="334" alt="Screenshot 2025-12-17 at 8 01 53 PM"
src="https://github.com/user-attachments/assets/c9a0e4bb-48b4-486b-a4f9-d7c49ff3852c"
/>
<img width="684" height="343" alt="Screenshot 2025-12-17 at 8 02 04 PM"
src="https://github.com/user-attachments/assets/d5c45eba-06a3-40fc-b9d0-d585dc8bc136"
/>

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2026-02-19 16:56:40 +00:00
WeikoandGitHub 2a670520b9 Add page layout backfill command (#18095)
## Context
Command to backfill record page layouts and related entities for legacy
workspaces.

## Test
Set SHOULD_SEED_STANDARD_RECORD_PAGE_LAYOUTS=false, reset DB then run
the command and compare with Set
SHOULD_SEED_STANDARD_RECORD_PAGE_LAYOUTS=true on a different workspace
2026-02-19 16:24:20 +00:00
Charles BochetandGitHub 10bd005021 Rework types for logic function (#18074)
## Summary

- **Consolidate logic function services**: Remove
`LogicFunctionMetadataService` and consolidate all logic function CRUD
operations into `LogicFunctionFromSourceService`, with a new
`LogicFunctionFromSourceHelperService` for shared validation/migration
logic
- **Introduce typed conversion utils following the skill pattern**: Add
`fromCreateLogicFunctionFromSourceInputToUniversalFlatLogicFunctionToCreate`
and `fromUpdateLogicFunctionFromSourceInputToFlatLogicFunctionToUpdate`
that convert DTO inputs directly to flat entities
(`UniversalFlatLogicFunction` / `FlatLogicFunction`), replacing the
previous intermediate `UpdateLogicFunctionMetadataParams` indirection
- **Simplify `CodeStepBuildService`**: Remove ~100 lines of manual
duplication logic by delegating to
`LogicFunctionFromSourceService.duplicateOneWithSource`
- **Remove completed 1-17 migration**: Delete
`MigrateWorkflowCodeStepsCommand` and associated utils that migrated
workflow code steps from serverless functions to logic functions
2026-02-19 17:25:08 +01:00
0e25aeb5be chore: upgrade @swc/core to 1.15.11 and align SWC ecosystem (#18088)
## Summary

- Upgrades `@swc/core` from 1.13.3 to **1.15.11** (swc_core v56), which
introduces CBOR-based plugin serialization replacing rkyv, eliminating
strict version-matching between SWC core and Wasm plugins
- Upgrades `@lingui/swc-plugin` from ^5.6.0 to **^5.11.0** (swc_core
50.2.3, built with `--cfg=swc_ast_unknown` for cross-version
compatibility)
- Upgrades `@swc/plugin-emotion` from 10.0.4 to **14.6.0** (swc_core 53,
also with backward-compat feature)
- Upgrades companion packages: `@swc-node/register` 1.8.0 → 1.11.1,
`@swc/helpers` ~0.5.2 → ~0.5.18, `@vitejs/plugin-react-swc` 3.11.0 →
4.2.3

### Why this is safe now

Starting from `@swc/core v1.15.0`, SWC replaced the rkyv serialization
scheme with CBOR (a self-describing format) and added `Unknown` AST enum
variants. Plugins built with `swc_core >= 47` and
`--cfg=swc_ast_unknown` are now forward-compatible across `@swc/core`
versions. Both `@lingui/[email protected].1+` and
`@swc/[email protected]+` have this support, meaning the old
version-matching nightmare between Lingui and SWC is largely solved.

Reference: https://github.com/lingui/swc-plugin/issues/179

## Test plan

- [x] `yarn install` resolves without errors
- [x] `npx nx build twenty-shared` succeeds
- [x] `npx nx build twenty-ui` succeeds (validates
@swc/[email protected])
- [x] `npx nx typecheck twenty-front` succeeds
- [x] `npx nx build twenty-front` succeeds (validates vite + swc +
lingui pipeline)
- [x] `npx nx build twenty-emails` succeeds (validates lingui plugin)
- [x] Frontend jest tests pass (validates @swc/jest +
@lingui/swc-plugin)
- [x] Server jest tests pass (validates server-side SWC + lingui)

Made with [Cursor](https://cursor.com)

---------

Co-authored-by: Cursor <[email protected]>
2026-02-19 15:27:56 +00:00
BugIsGodandGitHub e051cce24f Fix: add a new style to the target text box (#18065)
### Approach
I add some new rules for the style of the target text box. (Fix: #13229
)
<img width="842" height="545" alt="target class"
src="https://github.com/user-attachments/assets/7cd0a615-392a-493b-831f-77ddb93de5fc"
/>


**This is what it looks like now.**
<img width="320" height="224" alt="image"
src="https://github.com/user-attachments/assets/26514102-e684-49ce-915d-43e5677520a5"
/>
2026-02-19 13:59:11 +00:00
Raphaël BosiandGitHub bd03073b6d [FRONT COMPONENTS] Declare command menu items in front components (#18047)
## Description

- Adds support for declaring command menu items directly within
`defineFrontComponent` via an optional command config property
- Introduces a new `CommandMenuItemManifest` type in twenty-shared and
wires it through the manifest build pipeline

## Example Of usage

```tsx
import { defineFrontComponent } from "twenty-sdk";

const TestAction = () => {
  return <div>Test Action</div>;
};

export default defineFrontComponent({
  universalIdentifier: "6c289461-0007-4a62-a99f-69e5c11a4ce7",
  name: "test-action",
  description: "Test Action",
  component: TestAction,
  command: {
    universalIdentifier: "c07df864-495f-46f3-9f5b-9d3ce2589e9b",
    label: "Run My Action",
    icon: "IconBolt",
    isPinned: false,
  },
});

```

## Video QA


https://github.com/user-attachments/assets/f910fc6a-44a9-45d1-87c5-f0ce64bb3878
2026-02-19 15:23:46 +01:00
EtienneandGitHub b3d8f8813f Remove non positive integer constraint on Nav Menu Item 2/2 (#18090)
Follow up https://github.com/twentyhq/twenty/pull/18081
2026-02-19 15:17:25 +01:00
WeikoandGitHub 37d9828458 Fix google compose scope not gated by feature flag (#18093)
## Context
New google api scope has been introduced in
https://github.com/twentyhq/twenty/pull/17793 without being gated behind
a feature flag

Microsoft is using pre-existing Mail.ReadWrite scope there is nothing to
gate

## Before
<img width="553" height="445" alt="Screenshot 2026-02-19 at 14 57 58"
src="https://github.com/user-attachments/assets/59a4f76b-d38d-492f-b013-b6cad4091a7f"
/>


## After
<img width="535" height="392" alt="Screenshot 2026-02-19 at 14 58 44"
src="https://github.com/user-attachments/assets/0337bf15-ec30-4549-bb9d-571a982dffd8"
/>
2026-02-19 15:16:54 +01:00
Thomas TrompetteGitHubgreptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
e16b6d6485 Create LLMS.md on create-twenty-app (#18091)
Managed to create a many to many app with minimal instructions. File
will need to be enriched with more pitfalls.

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-02-19 14:51:31 +01:00
Paul RastoinandGitHub 9626c7ce02 Twenty standard app static options id (#18089)
# Introduction
While preparing the twenty-standard as code migration to twenty-app
through sdk I've faced permanent field enum update as the id was
generated dynamically at each twenty standard app construction
Making them deterministic in order to avoid having this noise

Won't backfill this on existing workspace as it's not critical and that
we will rework the options in the future
2026-02-19 13:19:09 +00:00
martmullandGitHub 754de411fe Factorize and add public-assets/*path endpoint (#18080)
as title
2026-02-19 14:00:52 +01:00
Charles BochetandGitHub 530f74e28c Migrate more to Jotai (#18087)
Continue jotai migration
2026-02-19 13:50:21 +01:00
Paul RastoinandGitHub 5a46cf7bd3 Refactor message backfill command (#18078)
# Introduction
Atomically create the field and object to be created
And avoid synchronizing unrelated non up to date object and fields 
Followup https://github.com/twentyhq/twenty/pull/17398
2026-02-19 12:18:42 +00:00
7b10202c69 i18n - translations (#18086)
Created by Github action

---------

Co-authored-by: github-actions <[email protected]>
2026-02-19 13:17:01 +01:00
EtienneandGitHub 9e54a8082c Remove non positive integer constraint on Nav Menu Item (#18081)
To fit with position typed field logic + Ease favorite to nav menu item
migration (which have negative and float position)
2026-02-19 11:24:14 +00:00
Charles BochetandGitHub 1a13258302 Keep migrating to jotai (#18064)
And we continue!
2026-02-19 12:10:02 +01:00
Abdullah.andGitHub c0ea049ad7 fix: remove the error message for test failure in ci-front (#18076)
Introduced an error message on twenty-front CI earlier to try and inform
the user that test failure could be a coverage issue if no individual
test was failing. However, it led to the assumption that it must be
coverage failure in all cases even when it was test failure leading to
the CI being red.

This PR reverts the change.
2026-02-19 11:57:01 +01:00
b33f86fbf5 i18n - translations (#18079)
Created by Github action

---------

Co-authored-by: github-actions <[email protected]>
2026-02-19 11:56:21 +01:00
Paul RastoinandGitHub 88424611ec Refactor and standardize isSystem field and object (#17992)
# Introduction

## Centralize system field definitions
- Extract a single `PARTIAL_SYSTEM_FLAT_FIELD_METADATAS` constant as the
source of truth for all 8 system fields (`id`, `createdAt`, `updatedAt`,
`deletedAt`, `createdBy`, `updatedBy`, `position`, `searchVector`),
eliminating duplication across custom object and standard app field
builders
- Refactor `buildDefaultFlatFieldMetadatasForCustomObject` to use the
shared constant via a new `buildObjectSystemFlatFieldMetadatas` helper

## Mark system fields as `isSystem: true`
- Fields `id`, `createdAt`, `updatedAt`, `deletedAt`, `createdBy`,
`updatedBy`, `position`, `searchVector` are now properly flagged as
system fields across all standard objects and custom object creation
- Standard app field builders for all ~30 standard objects updated to
set `isSystem: true` on `createdAt`, `updatedAt`, `deletedAt`,
`createdBy`, `updatedBy`
- System-only standard objects (blocklist, calendar channels, message
threads, etc.) now also include `createdBy`, `updatedBy`, `position`,
`searchVector` field definitions that were previously missing

## Validate system fields on object creation
- New transversal validation (`crossEntityTransversalValidation`) runs
after all atomic entity validations in the build orchestrator, ensuring
all 8 system fields are present with correct `type` and `isSystem: true`
when an object is created
- New `buildUniversalFlatObjectFieldByNameAndJoinColumnMaps` utility to
resolve field names to universal identifiers for a given object
- New exception codes: `MISSING_SYSTEM_FIELD` and `INVALID_SYSTEM_FIELD`
on `ObjectMetadataExceptionCode`

## Protect system fields and objects from mutation
- Field validators now block update/delete of `isSystem` fields by
non-system callers (`FIELD_MUTATION_NOT_ALLOWED`)
- Object validators now block update/delete of `isSystem` objects by
non-system callers
- `POSITION` and `TS_VECTOR` field type validators replaced: instead of
rejecting creation outright, they now validate that the field is named
correctly (`position` / `searchVector`) and has `isSystem: true`

## Distinguish `isSystemBuild` from `isCallerTwentyStandardApp`
- New `isCallerTwentyStandardApp` utility checks whether the caller's
`applicationUniversalIdentifier` matches the twenty standard app
- Name-sync logic (`isFlatFieldMetadataNameSyncedWithLabel`,
`areFlatObjectMetadataNamesSyncedWithLabels`) refactored to use
`isCallerTwentyStandardApp` for custom suffix decisions, keeping
`isSystemBuild` for mutation permission checks
- `WorkspaceMigrationBuilderOptions` type updated to include
`applicationUniversalIdentifier`

## Adapt frontend filtering
- New `HIDDEN_SYSTEM_FIELD_NAMES` constant (`id`, `position`,
`searchVector`) and `isHiddenSystemField` utility to only hide truly
internal fields while keeping user-facing system fields (`createdAt`,
`updatedAt`, `deletedAt`, `createdBy`, `updatedBy`) visible in the UI
- ~20 frontend files updated to replace `!field.isSystem` checks with
`!isHiddenSystemField(field)` across record index, settings, data model,
charts, workflows, spreadsheet import, aggregations, and role
permissions

## Add 1.19 upgrade commands
- **`backfill-system-fields-is-system`**: Raw SQL command to set
`isSystem = true` on existing workspace fields matching system field
names, and fix `position` field type from `NUMBER` to `POSITION` for
`favorite`/`favoriteFolder` objects. Includes proper cache invalidation.
- **`add-missing-system-fields-to-standard-objects`**: Codegen'd
workspace migration to create missing `position`, `searchVector`,
`createdBy`, `updatedBy` fields on standard objects that didn't
previously have them. Runs via `WorkspaceMigrationRunnerService` in a
single transaction with idempotency check. **Known limitation**: assumes
all standard objects exist and are valid in the target workspace.

## Add `universalIdentifier` for system fields in standard object
constants
- `standard-object.constant.ts` updated to include `universalIdentifier`
for `createdBy`, `updatedBy`, `position`, and `searchVector` across all
standard objects
- `fieldManifestType.ts` updated to support the new field manifest shape

## System relation
Completely removed and backfilled all `isSystem` relation to be false
false
As we won't require an object to have any relation system fields

## Add integration tests
- New test suite `failing-sync-application-object-system-fields`
covering: missing system fields, wrong field types (`id` as TEXT,
`createdAt` as TEXT, `position` as TEXT), system field deletion
attempts, and system field update attempts
- New test utilities: `buildDefaultObjectManifest` (builds an object
manifest with all 8 system fields) and `setupApplicationForSync`
(centralizes application setup)
- Existing successful sync test updated to verify system fields are
created with correct properties

## Next step
Make the builder scope the compared entity to be the currently built app
+ nor twenty standard app
2026-02-19 10:13:50 +00:00
082400f751 Add objectRecordCounts query to /metadata endpoint (#18054)
## Summary

- Adds an `objectRecordCounts` query on the `/metadata` GraphQL endpoint
that returns approximate record counts for all objects in the workspace
- Uses PostgreSQL's `pg_class.reltuples` catalog stats — a single
instant query instead of N `COUNT(*)` table scans
- Replaces the previous `CombinedFindManyRecords` approach which hit the
server's 20 root resolver limit and silently showed 0 for all counts on
the settings Data Model page

### Server
- `ObjectRecordCountDTO` — GraphQL type with `objectNamePlural` and
`totalCount`
- `ObjectRecordCountService` — reads `pg_class` catalog for the
workspace schema
- Query added to `ObjectMetadataResolver` with `@MetadataResolver()` +
`NoPermissionGuard`

### Frontend
- `OBJECT_RECORD_COUNTS` query added to
`object-metadata/graphql/queries.ts`
- `useCombinedGetTotalCount` simplified to a zero-argument hook using
the new query
- `SettingsObjectTable` simplified to a single hook call

---------

Co-authored-by: Cursor <[email protected]>
2026-02-19 09:02:31 +00:00
EtienneandGitHub a14b0ab6ca FILES field - Attachment name display fix (#18073)
with new 'file' FILES field on attachment, UI should display attachment
name from file field value.
Issue with API users updating only 'file' FILES field (and not name
field anymore)
2026-02-19 10:04:05 +01:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
6e29f66ce8 Bump @emotion/is-prop-valid from 1.3.0 to 1.4.0 (#18068)
Bumps [@emotion/is-prop-valid](https://github.com/emotion-js/emotion)
from 1.3.0 to 1.4.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/emotion-js/emotion/releases"><code>@​emotion/is-prop-valid</code>'s
releases</a>.</em></p>
<blockquote>
<h2><code>@​emotion/is-prop-valid</code><a
href="https://github.com/1"><code>@​1</code></a>.4.0</h2>
<h3>Minor Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/emotion-js/emotion/pull/3306">#3306</a>
<a
href="https://github.com/emotion-js/emotion/commit/dfae1cbd98d3ebe449ce322b38cbf4a7fbfbfe96"><code>dfae1cb</code></a>
Thanks <a
href="https://github.com/EnzoAlbornoz"><code>@​EnzoAlbornoz</code></a>!
- Adds <code>popover</code>, <code>popoverTarget</code> and
<code>popoverTargetAction</code> to the list of allowed props.</li>
</ul>
<h2><code>@​emotion/is-prop-valid</code><a
href="https://github.com/1"><code>@​1</code></a>.3.1</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/emotion-js/emotion/pull/3093">#3093</a>
<a
href="https://github.com/emotion-js/emotion/commit/532ff57cafd8ba04f3b624074556ea47ec76fc9a"><code>532ff57</code></a>
Thanks <a href="https://github.com/codejet"><code>@​codejet</code></a>,
<a href="https://github.com/DustinBrett"><code>@​DustinBrett</code></a>!
- Adds <code>fetchpriority</code> and <code>fetchPriority</code> to the
list of allowed props.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/emotion-js/emotion/commit/38db311adf024fe8a24b57c687824c47abbd0957"><code>38db311</code></a>
Version Packages (<a
href="https://redirect.github.com/emotion-js/emotion/issues/3347">#3347</a>)</li>
<li><a
href="https://github.com/emotion-js/emotion/commit/dfae1cbd98d3ebe449ce322b38cbf4a7fbfbfe96"><code>dfae1cb</code></a>
Adds <code>popover</code>, <code>popoverTarget</code> and
<code>popoverTargetAction</code> to the list of allo...</li>
<li><a
href="https://github.com/emotion-js/emotion/commit/49229553967b6050c92d9602eb577bdc48167e91"><code>4922955</code></a>
Version Packages (<a
href="https://redirect.github.com/emotion-js/emotion/issues/3335">#3335</a>)</li>
<li><a
href="https://github.com/emotion-js/emotion/commit/0facbe47bd9099ae4ed22dc201822d910ac3dec5"><code>0facbe4</code></a>
Renamed default-exported variable in <code>@emotion/styled</code> to aid
inferred import...</li>
<li><a
href="https://github.com/emotion-js/emotion/commit/cce67ec6b2fc94261028b4f4778aae8c3d6c5fd6"><code>cce67ec</code></a>
Bump parcel (<a
href="https://redirect.github.com/emotion-js/emotion/issues/3258">#3258</a>)</li>
<li><a
href="https://github.com/emotion-js/emotion/commit/3c19ce5997f73960679e546af47801205631dfde"><code>3c19ce5</code></a>
Version Packages (<a
href="https://redirect.github.com/emotion-js/emotion/issues/3280">#3280</a>)</li>
<li><a
href="https://github.com/emotion-js/emotion/commit/a19d019bd418ebc3b9cba0e58f58b36ac2862a42"><code>a19d019</code></a>
Convert <code>@emotion/styled</code>'s source code to TypeScript (<a
href="https://redirect.github.com/emotion-js/emotion/issues/3284">#3284</a>)</li>
<li><a
href="https://github.com/emotion-js/emotion/commit/5974e33fcb5e7aee177408684ac6fe8b38b3e353"><code>5974e33</code></a>
Fix JSX namespace <a
href="https://github.com/ts-ignores"><code>@​ts-ignores</code></a> (<a
href="https://redirect.github.com/emotion-js/emotion/issues/3282">#3282</a>)</li>
<li><a
href="https://github.com/emotion-js/emotion/commit/fc4d7bd744c205f55513dcd4e4e5134198c219de"><code>fc4d7bd</code></a>
Convert <code>@emotion/react</code>'s source code to TypeScript (<a
href="https://redirect.github.com/emotion-js/emotion/issues/3281">#3281</a>)</li>
<li><a
href="https://github.com/emotion-js/emotion/commit/8dc1a6dd19d2dc9ce435ef0aff85ccf5647f5d2e"><code>8dc1a6d</code></a>
Convert <code>@emotion/cache</code>'s source code to TypeScript (<a
href="https://redirect.github.com/emotion-js/emotion/issues/3277">#3277</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/emotion-js/emotion/compare/@emotion/[email protected]...@emotion/[email protected]">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@emotion/is-prop-valid&package-manager=npm_and_yarn&previous-version=1.3.0&new-version=1.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-19 08:10:11 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
9bcc2fc5d9 Bump eslint-config-next from 14.2.33 to 14.2.35 (#18069)
Bumps
[eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next)
from 14.2.33 to 14.2.35.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vercel/next.js/commit/7b940d9ce96faddb9f92ff40f5e35c34ace04eb2"><code>7b940d9</code></a>
v14.2.35</li>
<li><a
href="https://github.com/vercel/next.js/commit/f3073688ce18878a674fdb9954da68e9d626a930"><code>f307368</code></a>
v14.2.34</li>
<li>See full diff in <a
href="https://github.com/vercel/next.js/commits/v14.2.35/packages/eslint-config-next">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=eslint-config-next&package-manager=npm_and_yarn&previous-version=14.2.33&new-version=14.2.35)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-19 08:09:59 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
01e203a70b Bump @xyflow/react from 12.4.2 to 12.10.0 (#18070)
Bumps
[@xyflow/react](https://github.com/xyflow/xyflow/tree/HEAD/packages/react)
from 12.4.2 to 12.10.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/xyflow/xyflow/releases"><code>@​xyflow/react</code>'s
releases</a>.</em></p>
<blockquote>
<h2><code>@​xyflow/react</code><a
href="https://github.com/12"><code>@​12</code></a>.10.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5637">#5637</a> <a
href="https://github.com/xyflow/xyflow/commit/0c7261a6dc94f1aa58333a6aebcaca8ced9b5ad2"><code>0c7261a6d</code></a>
Thanks <a href="https://github.com/moklick"><code>@​moklick</code></a>!
- Add <code>zIndexMode</code> to control how z-index is calculated for
nodes and edges</p>
</li>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5484">#5484</a> <a
href="https://github.com/xyflow/xyflow/commit/a523919d6789995e9d0f3dd29b0b47fc3b8d8439"><code>a523919d6</code></a>
Thanks <a
href="https://github.com/peterkogo"><code>@​peterkogo</code></a>! - Add
<code>experimental_useOnNodesChangeMiddleware</code> hook</p>
</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5629">#5629</a> <a
href="https://github.com/xyflow/xyflow/commit/9030fab2df8285fdfb649bda6e1e885dfd228d45"><code>9030fab2d</code></a>
Thanks <a
href="https://github.com/AlaricBaraou"><code>@​AlaricBaraou</code></a>!
- Prevent unnecessary re-render in <code>FlowRenderer</code></p>
</li>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5592">#5592</a> <a
href="https://github.com/xyflow/xyflow/commit/38dbf41c464550cc803b946a4ad1f46982385a03"><code>38dbf41c4</code></a>
Thanks <a
href="https://github.com/svilen-ivanov-kubit"><code>@​svilen-ivanov-kubit</code></a>!
- Always create a new measured object in apply changes.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5635">#5635</a> <a
href="https://github.com/xyflow/xyflow/commit/2d7fa40e2684a0fcdd4eca7800ccf2c34338e549"><code>2d7fa40e2</code></a>
Thanks <a
href="https://github.com/tornado-softwares"><code>@​tornado-softwares</code></a>!
- Update an ongoing connection when user moves node with keyboard.</p>
</li>
<li>
<p>Updated dependencies [<a
href="https://github.com/xyflow/xyflow/commit/0c7261a6dc94f1aa58333a6aebcaca8ced9b5ad2"><code>0c7261a6d</code></a>,
<a
href="https://github.com/xyflow/xyflow/commit/8598b6bc2a9d052b12d5215706382da0aa84827b"><code>8598b6bc2</code></a>,
<a
href="https://github.com/xyflow/xyflow/commit/2d7fa40e2684a0fcdd4eca7800ccf2c34338e549"><code>2d7fa40e2</code></a>]:</p>
<ul>
<li><code>@​xyflow/system</code><a
href="https://github.com/0"><code>@​0</code></a>.0.74</li>
</ul>
</li>
</ul>
<h2><code>@​xyflow/react</code><a
href="https://github.com/12"><code>@​12</code></a>.9.3</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5621">#5621</a> <a
href="https://github.com/xyflow/xyflow/commit/c1304dba7a20bb8d74c7aceb23cd80b56e4c0482"><code>c1304dba7</code></a>
Thanks <a href="https://github.com/moklick"><code>@​moklick</code></a>!
- Set <code>paneClickDistance</code> default value to
<code>1</code>.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5578">#5578</a> <a
href="https://github.com/xyflow/xyflow/commit/00bcb9f5f45f49814b9ac19b3f55cfe069ee3773"><code>00bcb9f5f</code></a>
Thanks <a
href="https://github.com/peterkogo"><code>@​peterkogo</code></a>! - Pass
current pointer position to connection</p>
</li>
<li>
<p>Updated dependencies [<a
href="https://github.com/xyflow/xyflow/commit/00bcb9f5f45f49814b9ac19b3f55cfe069ee3773"><code>00bcb9f5f</code></a>]:</p>
<ul>
<li><code>@​xyflow/system</code><a
href="https://github.com/0"><code>@​0</code></a>.0.73</li>
</ul>
</li>
</ul>
<h2><code>@​xyflow/react</code><a
href="https://github.com/12"><code>@​12</code></a>.9.2</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/xyflow/xyflow/pull/5593">#5593</a> <a
href="https://github.com/xyflow/xyflow/commit/a8ee089d7689d9a58113690c8e90e1c1e109602a"><code>a8ee089d7</code></a>
Thanks <a href="https://github.com/moklick"><code>@​moklick</code></a>!
- Reset selection box when user selects a node</li>
</ul>
<h2><code>@​xyflow/react</code><a
href="https://github.com/12"><code>@​12</code></a>.9.1</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5572">#5572</a> <a
href="https://github.com/xyflow/xyflow/commit/5ec0cac7fad21109b74839969c0818f88ddc87d9"><code>5ec0cac7f</code></a>
Thanks <a
href="https://github.com/peterkogo"><code>@​peterkogo</code></a>! - Fix
onPaneClick events being suppressed when selectionOnDrag=true</p>
</li>
<li>
<p>Updated dependencies [<a
href="https://github.com/xyflow/xyflow/commit/5ec0cac7fad21109b74839969c0818f88ddc87d9"><code>5ec0cac7f</code></a>]:</p>
<ul>
<li><code>@​xyflow/system</code><a
href="https://github.com/0"><code>@​0</code></a>.0.72</li>
</ul>
</li>
</ul>
<h2><code>@​xyflow/react</code><a
href="https://github.com/12"><code>@​12</code></a>.9.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5544">#5544</a> <a
href="https://github.com/xyflow/xyflow/commit/c17b49f4c16167da3f791430163edd592159d27d"><code>c17b49f4c</code></a>
Thanks <a
href="https://github.com/0x0f0f0f"><code>@​0x0f0f0f</code></a>! - Add
<code>EdgeToolbar</code> component</p>
</li>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5550">#5550</a> <a
href="https://github.com/xyflow/xyflow/commit/6ffb9f7901c32f5b335aee2517f41bf87f274f32"><code>6ffb9f790</code></a>
Thanks <a
href="https://github.com/peterkogo"><code>@​peterkogo</code></a>! -
Prevent child nodes of different parents from overlapping</p>
</li>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5551">#5551</a> <a
href="https://github.com/xyflow/xyflow/commit/6bb64b3ed60f26c9ea8bc01c8d62fb9bf74cd634"><code>6bb64b3ed</code></a>
Thanks <a href="https://github.com/moklick"><code>@​moklick</code></a>!
- Allow to start a selection above a node</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/xyflow/xyflow/blob/main/packages/react/CHANGELOG.md"><code>@​xyflow/react</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>12.10.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5637">#5637</a> <a
href="https://github.com/xyflow/xyflow/commit/0c7261a6dc94f1aa58333a6aebcaca8ced9b5ad2"><code>0c7261a6d</code></a>
Thanks <a href="https://github.com/moklick"><code>@​moklick</code></a>!
- Add <code>zIndexMode</code> to control how z-index is calculated for
nodes and edges</p>
</li>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5484">#5484</a> <a
href="https://github.com/xyflow/xyflow/commit/a523919d6789995e9d0f3dd29b0b47fc3b8d8439"><code>a523919d6</code></a>
Thanks <a
href="https://github.com/peterkogo"><code>@​peterkogo</code></a>! - Add
<code>experimental_useOnNodesChangeMiddleware</code> hook</p>
</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5629">#5629</a> <a
href="https://github.com/xyflow/xyflow/commit/9030fab2df8285fdfb649bda6e1e885dfd228d45"><code>9030fab2d</code></a>
Thanks <a
href="https://github.com/AlaricBaraou"><code>@​AlaricBaraou</code></a>!
- Prevent unnecessary re-render in <code>FlowRenderer</code></p>
</li>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5592">#5592</a> <a
href="https://github.com/xyflow/xyflow/commit/38dbf41c464550cc803b946a4ad1f46982385a03"><code>38dbf41c4</code></a>
Thanks <a
href="https://github.com/svilen-ivanov-kubit"><code>@​svilen-ivanov-kubit</code></a>!
- Always create a new measured object in apply changes.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5635">#5635</a> <a
href="https://github.com/xyflow/xyflow/commit/2d7fa40e2684a0fcdd4eca7800ccf2c34338e549"><code>2d7fa40e2</code></a>
Thanks <a
href="https://github.com/tornado-softwares"><code>@​tornado-softwares</code></a>!
- Update an ongoing connection when user moves node with keyboard.</p>
</li>
<li>
<p>Updated dependencies [<a
href="https://github.com/xyflow/xyflow/commit/0c7261a6dc94f1aa58333a6aebcaca8ced9b5ad2"><code>0c7261a6d</code></a>,
<a
href="https://github.com/xyflow/xyflow/commit/8598b6bc2a9d052b12d5215706382da0aa84827b"><code>8598b6bc2</code></a>,
<a
href="https://github.com/xyflow/xyflow/commit/2d7fa40e2684a0fcdd4eca7800ccf2c34338e549"><code>2d7fa40e2</code></a>]:</p>
<ul>
<li><code>@​xyflow/system</code><a
href="https://github.com/0"><code>@​0</code></a>.0.74</li>
</ul>
</li>
</ul>
<h2>12.9.3</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5621">#5621</a> <a
href="https://github.com/xyflow/xyflow/commit/c1304dba7a20bb8d74c7aceb23cd80b56e4c0482"><code>c1304dba7</code></a>
Thanks <a href="https://github.com/moklick"><code>@​moklick</code></a>!
- Set <code>paneClickDistance</code> default value to
<code>1</code>.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5578">#5578</a> <a
href="https://github.com/xyflow/xyflow/commit/00bcb9f5f45f49814b9ac19b3f55cfe069ee3773"><code>00bcb9f5f</code></a>
Thanks <a
href="https://github.com/peterkogo"><code>@​peterkogo</code></a>! - Pass
current pointer position to connection</p>
</li>
<li>
<p>Updated dependencies [<a
href="https://github.com/xyflow/xyflow/commit/00bcb9f5f45f49814b9ac19b3f55cfe069ee3773"><code>00bcb9f5f</code></a>]:</p>
<ul>
<li><code>@​xyflow/system</code><a
href="https://github.com/0"><code>@​0</code></a>.0.73</li>
</ul>
</li>
</ul>
<h2>12.9.2</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/xyflow/xyflow/pull/5593">#5593</a> <a
href="https://github.com/xyflow/xyflow/commit/a8ee089d7689d9a58113690c8e90e1c1e109602a"><code>a8ee089d7</code></a>
Thanks <a href="https://github.com/moklick"><code>@​moklick</code></a>!
- Reset selection box when user selects a node</li>
</ul>
<h2>12.9.1</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/xyflow/xyflow/pull/5572">#5572</a> <a
href="https://github.com/xyflow/xyflow/commit/5ec0cac7fad21109b74839969c0818f88ddc87d9"><code>5ec0cac7f</code></a>
Thanks <a
href="https://github.com/peterkogo"><code>@​peterkogo</code></a>! - Fix
onPaneClick events being suppressed when selectionOnDrag=true</p>
</li>
<li>
<p>Updated dependencies [<a
href="https://github.com/xyflow/xyflow/commit/5ec0cac7fad21109b74839969c0818f88ddc87d9"><code>5ec0cac7f</code></a>]:</p>
<ul>
<li><code>@​xyflow/system</code><a
href="https://github.com/0"><code>@​0</code></a>.0.72</li>
</ul>
</li>
</ul>
<h2>12.9.0</h2>
<h3>Minor Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/xyflow/xyflow/pull/5544">#5544</a> <a
href="https://github.com/xyflow/xyflow/commit/c17b49f4c16167da3f791430163edd592159d27d"><code>c17b49f4c</code></a>
Thanks <a
href="https://github.com/0x0f0f0f"><code>@​0x0f0f0f</code></a>! - Add
<code>EdgeToolbar</code> component</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/xyflow/xyflow/commit/c0ed3c33a3498877ab2a5755299ff84ee659782e"><code>c0ed3c3</code></a>
chore(packages): bump</li>
<li><a
href="https://github.com/xyflow/xyflow/commit/83a312b2e1691a44223536653689f8f99f0d5b24"><code>83a312b</code></a>
chore(zIndexMode): use basic as default</li>
<li><a
href="https://github.com/xyflow/xyflow/commit/14fd41b1f153406f1a21a61bf98ea07ad8275ec6"><code>14fd41b</code></a>
change default back to elevateEdgesOnSelect=false and
zIndexMode=basic</li>
<li><a
href="https://github.com/xyflow/xyflow/commit/3680a6a0e623e19d1f983515273f11bdd355ec86"><code>3680a6a</code></a>
Merge branch 'main' into feat/zindexmode</li>
<li><a
href="https://github.com/xyflow/xyflow/commit/a523919d6789995e9d0f3dd29b0b47fc3b8d8439"><code>a523919</code></a>
chore(middleware): cleanup</li>
<li><a
href="https://github.com/xyflow/xyflow/commit/e4e3605d62c8c710fe7ddb2ec3929af0a7962a6b"><code>e4e3605</code></a>
Merge branch 'main' into middlewares</li>
<li><a
href="https://github.com/xyflow/xyflow/commit/2c05b3224a13e896dfb9a0c93f3af7bb592afc45"><code>2c05b32</code></a>
Merge branch 'feat/zindexmode' of github.com:xyflow/xyflow into
feat/zindexmode</li>
<li><a
href="https://github.com/xyflow/xyflow/commit/ddbb9280f6242794187205a207e993e2c721c244"><code>ddbb928</code></a>
chore(examples): add zindexmode</li>
<li><a
href="https://github.com/xyflow/xyflow/commit/9faca3357d5db68fdad6c96de06fd66dd1d0ba64"><code>9faca33</code></a>
Merge branch 'main' into feat/zindexmode</li>
<li><a
href="https://github.com/xyflow/xyflow/commit/4eb42952f01b947c9d36c25e6b30b7bd98224632"><code>4eb4295</code></a>
feat(svelte): add zIndexMode</li>
<li>Additional commits viewable in <a
href="https://github.com/xyflow/xyflow/commits/@xyflow/[email protected]/packages/react">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@xyflow/react&package-manager=npm_and_yarn&previous-version=12.4.2&new-version=12.10.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-19 08:09:48 +00:00
db9636bd9e i18n - docs translations (#18067)
Created by Github action

Co-authored-by: github-actions <[email protected]>
2026-02-19 02:07:09 +01:00
958 changed files with 26243 additions and 11205 deletions
-8
View File
@@ -202,14 +202,6 @@ jobs:
with:
tag: scope:frontend
tasks: ${{ matrix.task }}
- name: Check for coverage threshold failure
if: always() && steps.run-task.outcome == 'failure' && matrix.task == 'test'
shell: bash
run: |
echo "::error::The test task failed. If no individual test is failing, this is likely a coverage threshold not being met."
echo ""
echo "To debug locally, run: npx nx run twenty-front:test:ci"
exit 1
- name: Save ${{ matrix.task }} cache
uses: ./.github/actions/save-cache
with:
+207
View File
@@ -0,0 +1,207 @@
# Bug #4132:
## CRITICAL: Working Directory
Your working directory is `/work/worktrees/twentyhq-twenty-wt-3023`. This is your primary repository (`twentyhq/twenty`).
All edits MUST be performed within this directory.
## Sentry Error Details (TOON format)
Error information from Sentry (TOON = compact CSV-like format for lists):
```
event_info:
title: Cannot query field 'builtHandlerPath' on type 'LogicFunction'. Did you mean 'sourceHandlerPath'?: Cannot query field 'builtHandlerPath' on type 'LogicFunction'. Did you mean 'sourceHandlerPath'?
type: error
platform: javascript
culprit: /welcome
release: {'id': 1678867630; 'version': 'v1.18.0'; 'status': 'open'; 'shortVersion': 'v1.18.0'; 'versionInfo': {'package': None; 'version': {'raw': 'v1.18.0'}; 'description': 'v1.18.0'; 'buildHash': None}; 'ref...
user:
geo: country_code=AR, city=Buenos Aires, region=Argentina
exceptions[1]{type,value,mechanism}:
Cannot query field 'builtHandlerPath' on type 'Log...,Cannot query field 'builtHandlerPath' on type 'LogicFunction'. Did you mean 'sourceHandlerPath'?,handled=True
stack_frames[5]:
[+] /assets/index-DWghFydJ.js:3032:6887
fn: ? (module: assets/index-DWghFydJ)
3033: Copyright (c) 2018 Jed Watson.
3034: Licensed under the MIT License (MIT), see
3035: http://jedwatson.github.io/classnames
3036: ... ansition-show-delay"));G.current=setTimeout(()=>{he(!1),_e(null),U?.()},fn+25)}},[ve]);const tt=fn=>{ye(je=>iwe(je,fn)?je:fn)},Z=(fn=h)=>{ty ...
3037: ... ow:!0,place:"bottom",positionStrategy:"absolute",delay:u4.mediumDelay,isOpen:!0,children:n?Fe(GFn,{children:h}):h})}),document.body)]})};/**
[+] /assets/index-DWghFydJ.js:5838:15848
fn: TRo (module: assets/index-DWghFydJ)
5839: mutation AddQueryToEventStream($input: AddQuerySubscriptionInput!) {
5840: addQueryToEventStream(input: $input)
5841: }
5842: `,MKn=Ee`
5843: mutation RemoveQueryFromEventStream(
[+] /assets/index-DWghFydJ.js:5838:15130
fn: Object.bJn [as withScope] (module: assets/index-DWghFydJ)
5839: mutation AddQueryToEventStream($input: AddQuerySubscriptionInput!) {
5840: addQueryToEventStream(input: $input)
5841: }
5842: `,MKn=Ee`
5843: mutation RemoveQueryFromEventStream(
[+] /assets/index-DWghFydJ.js:5838:14523
fn: yJn.withScope (module: assets/index-DWghFydJ)
5839: mutation AddQueryToEventStream($input: AddQuerySubscriptionInput!) {
5840: addQueryToEventStream(input: $input)
5841: }
5842: `,MKn=Ee`
5843: mutation RemoveQueryFromEventStream(
[+] /assets/index-DWghFydJ.js:3032:6901
fn: ? (module: assets/index-DWghFydJ)
3033: Copyright (c) 2018 Jed Watson.
3034: Licensed under the MIT License (MIT), see
3035: http://jedwatson.github.io/classnames
3036: ... delay"));G.current=setTimeout(()=>{he(!1),_e(null),U?.()},fn+25)}},[ve]);const tt=fn=>{ye(je=>iwe(je,fn)?je:fn)},Z=(fn=h)=>{ty(ge),Pe?on(!0) ...
3037: ... ow:!0,place:"bottom",positionStrategy:"absolute",delay:u4.mediumDelay,isOpen:!0,children:n?Fe(GFn,{children:h}):h})}),document.body)]})};/**
request:
url: https://ventixsolutions.twenty.com/welcome
contexts:
browser: browser=Chrome 143.0.0; name=Chrome; version=143.0.0
device: family=Mac; model=Mac; brand=Apple
os: os=Mac OS X >=10.15.7; name=Mac OS X; version=>=10.15.7
breadcrumbs_fetch[10]{ts,method,url,status}:
14:52:28,POST,https://ventixsolutions.twenty.com/graphql,200
14:52:28,POST,https://ventixsolutions.twenty.com/metadata,200
14:52:29,POST,https://ventixsolutions.twenty.com/graphql,200
14:52:29,POST,https://ventixsolutions.twenty.com/graphql,200
14:52:29,POST,https://ventixsolutions.twenty.com/graphql,200
14:52:29,POST,https://ventixsolutions.twenty.com/metadata,200
14:52:29,POST,https://ventixsolutions.twenty.com/graphql,200
14:52:30,POST,https://ventixsolutions.twenty.com/graphql,200
14:52:30,POST,https://ventixsolutions.twenty.com/graphql,200
14:52:30,POST,https://ventixsolutions.twenty.com/metadata,200
breadcrumbs_console[38]{ts,level,msg}:
14:52:28,i,UNAUTHENTICATED; triggering token renewal
14:52:28,i,UNAUTHENTICATED; triggering token renewal
14:52:28,i,UNAUTHENTICATED; triggering token renewal
14:52:29,d,%cCannot query field "renewToken" on type "Mutation". color: #F51818; font-weight: lighter
14:52:29,d,%cUnknown type "AuthTokenPair". color: #F51818; font-weight: lighter
14:52:29,d,%cUnknown type "AuthToken". color: #F51818; font-weight: lighter
14:52:29,d,HEADERS:
14:52:29,d,VARIABLES [object Object]
14:52:29,d,QUERY mutation RenewToken($appToken: String!) { renewToken(appToken: $appToken) { tokens { ...
14:52:29,d,ERRORS [object Object];[object Object];[object Object]
14:52:29,i,Failed to renew token; triggering unauthenticated error from handleTokenRenewal
14:52:29,i,onUnauthenticatedError; resetting state
14:52:29,w,Uncompiled message detected! Message: > Open command menu That means you use raw catalog or your c...
14:52:29,d,%cCannot query field "renewToken" on type "Mutation". color: #F51818; font-weight: lighter
14:52:29,d,%cUnknown type "AuthTokenPair". color: #F51818; font-weight: lighter
14:52:29,d,%cUnknown type "AuthToken". color: #F51818; font-weight: lighter
14:52:29,d,HEADERS:
14:52:29,d,VARIABLES [object Object]
14:52:29,d,QUERY mutation RenewToken($appToken: String!) { renewToken(appToken: $appToken) { tokens { ...
14:52:29,d,ERRORS [object Object];[object Object];[object Object]
14:52:29,i,Failed to renew token; triggering unauthenticated error from handleTokenRenewal
14:52:29,i,onUnauthenticatedError; resetting state
14:52:29,i,tokenPair is undefined
14:52:29,d,%cCannot query field "renewToken" on type "Mutation". color: #F51818; font-weight: lighter
14:52:29,d,%cUnknown type "AuthTokenPair". color: #F51818; font-weight: lighter
14:52:29,d,%cUnknown type "AuthToken". color: #F51818; font-weight: lighter
14:52:29,d,HEADERS:
14:52:29,d,VARIABLES [object Object]
14:52:29,d,QUERY mutation RenewToken($appToken: String!) { renewToken(appToken: $appToken) { tokens { ...
14:52:29,d,ERRORS [object Object];[object Object];[object Object]
14:52:29,i,Failed to renew token; triggering unauthenticated error from handleTokenRenewal
14:52:29,i,onUnauthenticatedError; resetting state
14:52:29,i,tokenPair is undefined
14:52:29,d,HEADERS:
14:52:29,d,VARIABLES [object Object]
14:52:29,d,QUERY mutation RenewToken($appToken: String!) { renewToken(appToken: $appToken) { tokens { ...
14:52:29,d,RESULT [object Object]
14:52:29,i,setTokenPair from handleTokenRenewal
breadcrumbs_navigation[1]{ts,from,to}:
14:52:29,/objects/facturas?viewId=dc4c104d-0791-441e-be86-22c08d80a3d...,/welcome
breadcrumbs_sentry.transaction[1]{ts,type,level,msg}:
14:52:29,default,i,cafc56b1b423479f843c7d948352fdf3
```
## Severity Assessment
After analyzing the bug, determine severity independently based on your analysis:
- **critical**: User CANNOT complete a critical task. Crashes, core feature broken, data loss risk.
- **medium**: User CAN complete tasks but degraded experience. Non-critical feature broken, workaround exists.
- **low**: User unlikely to notice. Cosmetic, rare edge case, transient error that auto-recovers.
Your severity assessment in the output JSON is the FINAL severity that will be used.
## STRICT GIT RULES (violations = failed run)
- You are already on the correct fix branch — do NOT run `git checkout`, `git switch`, or `git merge`
- **NEVER run `git merge`** — merging other branches (feature branches, main, etc.) is FORBIDDEN
- **NEVER run `git checkout` on a different branch** — stay on your current branch at all times
- **NEVER run `git rebase`** — rebasing is not needed and can corrupt the worktree
- If the code you need to fix is not on this branch, fix the code that IS on this branch
or report that the fix cannot be applied — do NOT merge or pull in other branches
- **NEVER run `git add`, `git commit`, or `git push`** — the system handles all git write operations automatically after your analysis
- Only allowed git commands: `git blame`, `git log`, `git diff`, `git show` (read-only)
## Your Task (in this order)
1. **Find the Root Cause**
- Locate the exact file and line where the bug originates
- Understand why this error occurs
2. **Git Blame Analysis**
- Use `git blame` to find the commit that introduced this bug
- Note the commit SHA, author, and date
3. **Fix the Bug**
- Implement a **minimal, targeted fix** — only change what's necessary to resolve this specific error
- **NEVER modify shared/generic utilities, base classes, or ORM internals** to work around a missing field or feature.
Instead, fix the specific code paths that trigger the error (e.g. add a guard/try-catch in the caller).
Changing a generic utility to silently skip errors is ALWAYS wrong — it masks future bugs.
- Do NOT refactor surrounding code, add new features, or make unrelated improvements
- Do NOT build new components, screens, or functionality — only fix the reported error
- Add appropriate error handling if needed
- Do NOT run any git write commands (`git add`, `git commit`, `git push`) — the system handles committing and pushing automatically after your analysis
4. **Output Structured Analysis**
At the end of your response, output a JSON block between these markers:
```
SONARLY_ANALYSIS_START
{
"title": "User-focused title (max 60 chars)",
"severity": "critical|medium|low",
"summary": "1-2 sentence summary of the bug",
"user_impact": "Who was impacted and how they were impacted",
"evidence": { // Each code item: file (relative path from repo root), line (integer), snippet (faulty code, max ~10 lines). Multiple items for multiple files. {} if no evidence.
"code": [
{"file": "src/checkout/process.py", "line": 42, "snippet": "def process_order(order_id):\n orders = db.query(\"SELECT * FROM orders\") # missing WHERE clause"}
]
},
"root_cause": {
"explanation": "Root cause explanation. Use plain text only — NO bold, italic, or code backticks. When listing multiple points, use a numbered list (1. 2. 3.) with each item on its own line. Include who introduced it (git blame author), when (date), and why.",
"blame": {
"commit_sha": "abc123def (the full commit SHA from git blame, or null if unknown)",
"author": "Author Name (from git blame output, or null if unknown)",
"date": "2026-01-15 (date from git blame, or null if unknown)",
"commit_url": "https://github.com/{owner}/{repo}/commit/{sha} (build from git remote get-url origin + sha, strip any access token, or null)",
"explanation": "Brief explanation of when/who introduced the bug (e.g. Added in commit abc123 by John on Jan 15)"
}
},
"suggested_fix": {
"explanation": "What the fix does and why it solves the problem. Use plain text only — NO bold, italic, or code backticks. When listing multiple steps, use a numbered list (1. 2. 3.) with each item on its own line.",
"files_changed": ["path/to/file.py", "path/to/other.py (list of file paths you created or modified in the fix)"]
}
}
SONARLY_ANALYSIS_END
```
CRITICAL: The JSON block is the ONLY part of your response shown to the user.
Everything outside the SONARLY_ANALYSIS markers is discarded. Put ALL investigation details,
evidence (code snippets and log lines), and findings INSIDE the JSON fields,
especially root_cause.explanation, and summary. Do NOT write a separate investigation summary before the JSON.
IMPORTANT: The JSON between SONARLY_ANALYSIS_START and SONARLY_ANALYSIS_END must be valid JSON.
## Critical: ALWAYS output the analysis JSON
You MUST output SONARLY_ANALYSIS_START...SONARLY_ANALYSIS_END even if you could not find the code or fix the bug.
If you cannot locate the relevant code or create a fix,
explain what you found in the `root_cause.explanation` field.
A run without the analysis JSON is a FAILED run — never end without it.
Don't ask any questions to the user
+4 -4
View File
@@ -91,10 +91,10 @@
"@storybook/react-vite": "^10.1.11",
"@storybook/test-runner": "^0.24.2",
"@stylistic/eslint-plugin": "^1.5.0",
"@swc-node/register": "1.8.0",
"@swc-node/register": "1.11.1",
"@swc/cli": "^0.3.12",
"@swc/core": "1.13.3",
"@swc/helpers": "~0.5.2",
"@swc/core": "1.15.11",
"@swc/helpers": "~0.5.18",
"@swc/jest": "^0.2.39",
"@testing-library/dom": "^10.4.0",
"@testing-library/jest-dom": "^6.6.3",
@@ -137,7 +137,7 @@
"@typescript-eslint/parser": "^8.39.0",
"@typescript-eslint/utils": "^8.39.0",
"@typescript/native-preview": "^7.0.0-dev.20260116.1",
"@vitejs/plugin-react-swc": "3.11.0",
"@vitejs/plugin-react-swc": "4.2.3",
"@vitest/browser-playwright": "^4.0.18",
"@vitest/coverage-istanbul": "^4.0.18",
"@vitest/coverage-v8": "^4.0.18",
+3 -1
View File
@@ -89,6 +89,7 @@ In interactive mode, you can pick from:
- **Example front component** — a React UI component (`front-components/hello-world.tsx`)
- **Example view** — a saved view for the example object (`views/example-view.ts`)
- **Example navigation menu item** — a sidebar link (`navigation-menu-items/example-navigation-menu-item.ts`)
- **Example skill** — an AI agent skill definition (`skills/example-skill.ts`)
## What gets scaffolded
@@ -106,11 +107,12 @@ In interactive mode, you can pick from:
- `front-components/hello-world.tsx` — Example front component
- `views/example-view.ts` — Example saved view for the example object
- `navigation-menu-items/example-navigation-menu-item.ts` — Example sidebar navigation link
- `skills/example-skill.ts` — Example AI agent skill definition
## Next steps
- Run `yarn twenty help` to see all available commands.
- Use `yarn twenty auth:login` to authenticate with your Twenty workspace.
- Explore the generated project and add your first entity with `yarn twenty entity:add` (logic functions, front components, objects, roles, views, navigation menu items).
- Explore the generated project and add your first entity with `yarn twenty entity:add` (logic functions, front components, objects, roles, views, navigation menu items, skills).
- Use `yarn twenty app:dev` while you iterate — it watches, builds, and syncs changes to your workspace in real time.
- Types are autogenerated by `yarn twenty app:dev` and stored in `node_modules/twenty-sdk/generated`.
@@ -0,0 +1,9 @@
## Base documentation
- Documentation: https://docs.twenty.com/developers/extend/capabilities/apps
- Rich app example: https://github.com/twentyhq/twenty/tree/main/packages/twenty-sdk/src/cli/__tests__/apps/rich-app
## 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.
@@ -36,6 +36,10 @@ yarn twenty function:execute # Execute a function with JSON payload
yarn twenty app:uninstall # Uninstall app from workspace
```
## LLMs instructions
Main docs and pitfalls are available in LLMS.md file.
## Learn More
To learn more about Twenty applications, take a look at the following resources:
@@ -114,6 +114,7 @@ export class CreateAppCommand {
includeExampleFrontComponent: false,
includeExampleView: false,
includeExampleNavigationMenuItem: false,
includeExampleSkill: false,
};
}
@@ -125,6 +126,7 @@ export class CreateAppCommand {
includeExampleFrontComponent: true,
includeExampleView: true,
includeExampleNavigationMenuItem: true,
includeExampleSkill: true,
};
}
@@ -164,6 +166,11 @@ export class CreateAppCommand {
value: 'navigationMenuItem',
checked: true,
},
{
name: 'Example skill (AI agent skill definition)',
value: 'skill',
checked: true,
},
],
},
]);
@@ -189,6 +196,7 @@ export class CreateAppCommand {
includeExampleView: includeView,
includeExampleNavigationMenuItem:
selectedExamples.includes('navigationMenuItem'),
includeExampleSkill: selectedExamples.includes('skill'),
};
}
@@ -7,4 +7,5 @@ export type ExampleOptions = {
includeExampleFrontComponent: boolean;
includeExampleView: boolean;
includeExampleNavigationMenuItem: boolean;
includeExampleSkill: boolean;
};
@@ -1,8 +1,9 @@
import * as fs from 'fs-extra';
import { join } from 'path';
import { tmpdir } from 'os';
import { copyBaseApplicationProject } from '@/utils/app-template';
import { type ExampleOptions } from '@/types/scaffolding-options';
import { GENERATED_DIR } from 'twenty-shared/application';
import { copyBaseApplicationProject } from '@/utils/app-template';
import * as fs from 'fs-extra';
import { tmpdir } from 'os';
import { join } from 'path';
// Mock fs-extra's copy function to skip copying base template (not available during tests)
jest.mock('fs-extra', () => {
@@ -23,11 +24,13 @@ const ALL_EXAMPLES: ExampleOptions = {
includeExampleFrontComponent: true,
includeExampleView: true,
includeExampleNavigationMenuItem: true,
includeExampleSkill: true,
};
const NO_EXAMPLES: ExampleOptions = {
includeExampleObject: false,
includeExampleField: false,
includeExampleSkill: false,
includeExampleLogicFunction: false,
includeExampleFrontComponent: false,
includeExampleView: false,
@@ -109,7 +112,7 @@ describe('copyBaseApplicationProject', () => {
const gitignoreContent = await fs.readFile(gitignorePath, 'utf8');
expect(gitignoreContent).toContain('/node_modules');
expect(gitignoreContent).toContain('generated');
expect(gitignoreContent).toContain(GENERATED_DIR);
});
it('should create yarn.lock file', async () => {
@@ -437,6 +440,7 @@ describe('copyBaseApplicationProject', () => {
exampleOptions: {
includeExampleObject: false,
includeExampleField: false,
includeExampleSkill: false,
includeExampleLogicFunction: false,
includeExampleFrontComponent: true,
includeExampleView: false,
@@ -472,6 +476,7 @@ describe('copyBaseApplicationProject', () => {
appDirectory: testAppDirectory,
exampleOptions: {
includeExampleObject: false,
includeExampleSkill: false,
includeExampleField: false,
includeExampleLogicFunction: true,
includeExampleFrontComponent: false,
@@ -89,6 +89,14 @@ export const copyBaseApplicationProject = async ({
});
}
if (exampleOptions.includeExampleSkill) {
await createExampleSkill({
appDirectory: sourceFolderPath,
fileFolder: 'skills',
fileName: 'example-skill.ts',
});
}
await createDefaultPostInstallFunction({
appDirectory: sourceFolderPath,
fileFolder: 'logic-functions',
@@ -424,6 +432,36 @@ export default defineNavigationMenuItem({
await fs.writeFile(join(appDirectory, fileFolder ?? '', fileName), content);
};
const createExampleSkill = async ({
appDirectory,
fileFolder,
fileName,
}: {
appDirectory: string;
fileFolder?: string;
fileName: string;
}) => {
const universalIdentifier = v4();
const content = `import { defineSkill } from 'twenty-sdk';
export const EXAMPLE_SKILL_UNIVERSAL_IDENTIFIER =
'${universalIdentifier}';
export default defineSkill({
universalIdentifier: EXAMPLE_SKILL_UNIVERSAL_IDENTIFIER,
name: 'example-skill',
label: 'Example Skill',
description: 'A sample skill for your application',
icon: 'IconBrain',
content: 'Add your skill instructions here. Skills provide context and capabilities to AI agents.',
});
`;
await fs.ensureDir(join(appDirectory, fileFolder ?? ''));
await fs.writeFile(join(appDirectory, fileFolder ?? '', fileName), content);
};
const createApplicationConfig = async ({
displayName,
description,
@@ -14,6 +14,7 @@ Apps let you build and manage Twenty customizations **as code**. Instead of conf
**What you can do today:**
- Define custom objects and fields as code (managed data model)
- Build logic functions with custom triggers
- Define skills for AI agents
- Deploy the same app across multiple workspaces
## Prerequisites
@@ -44,7 +45,7 @@ yarn twenty app:dev
The scaffolder supports three modes for controlling which example files are included:
```bash filename="Terminal"
# Default (exhaustive): all examples (object, field, logic function, front component, view, navigation menu item)
# Default (exhaustive): all examples (object, field, logic function, front component, view, navigation menu item, skill)
npx create-twenty-app@latest my-app
# Minimal: only core files (application-config.ts and default-role.ts)
@@ -117,8 +118,10 @@ my-twenty-app/
│ └── hello-world.tsx # Example front component
├── views/
│ └── example-view.ts # Example saved view definition
── navigation-menu-items/
└── example-navigation-menu-item.ts # Example sidebar navigation link
── navigation-menu-items/
└── example-navigation-menu-item.ts # Example sidebar navigation link
└── skills/
└── example-skill.ts # Example AI agent skill definition
```
With `--minimal`, only the core files are created (`application-config.ts`, `roles/default-role.ts`, and `logic-functions/post-install.ts`). With `--interactive`, you choose which example files to include.
@@ -147,6 +150,7 @@ The SDK detects entities by parsing your TypeScript files for **`export default
| `defineField()` | Field extensions for existing objects |
| `defineView()` | Saved view definitions |
| `defineNavigationMenuItem()` | Navigation menu item definitions |
| `defineSkill()` | AI agent skill definitions |
<Note>
**File naming is flexible.** Entity detection is AST-based — the SDK scans your source files for the `export default define<Entity>({...})` pattern. You can organize your files and folders however you like. Grouping by entity type (e.g., `logic-functions/`, `roles/`) is just a convention for code organization, not a requirement.
@@ -167,7 +171,7 @@ export default defineObject({
Later commands will add more files and folders:
- `yarn twenty app:dev` will auto-generate a typed API client in `node_modules/twenty-sdk/generated` (typed Twenty client + workspace types).
- `yarn twenty entity:add` will add entity definition files under `src/` for your custom objects, functions, front components, or roles.
- `yarn twenty entity:add` will add entity definition files under `src/` for your custom objects, functions, front components, roles, skills, and more.
## Authentication
@@ -220,6 +224,7 @@ The SDK provides helper functions for defining your app entities. As described i
| `defineField()` | Extend existing objects with additional fields |
| `defineView()` | Define saved views for objects |
| `defineNavigationMenuItem()` | Define sidebar navigation links |
| `defineSkill()` | Define AI agent skills |
These functions validate your configuration at build time and provide IDE autocompletion and type safety.
@@ -729,6 +734,40 @@ You can create new front components in two ways:
- **Scaffolded**: Run `yarn twenty entity:add` and choose the option to add a new front component.
- **Manual**: Create a new `*.front-component.tsx` file and use `defineFrontComponent()`.
### Skills
Skills define reusable instructions and capabilities that AI agents can use within your workspace. Use `defineSkill()` to define skills with built-in validation:
```typescript
// src/skills/example-skill.ts
import { defineSkill } from 'twenty-sdk';
export default defineSkill({
universalIdentifier: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
name: 'sales-outreach',
label: 'Sales Outreach',
description: 'Guides the AI agent through a structured sales outreach process',
icon: 'IconBrain',
content: `You are a sales outreach assistant. When reaching out to a prospect:
1. Research the company and recent news
2. Identify the prospect's role and likely pain points
3. Draft a personalized message referencing specific details
4. Keep the tone professional but conversational`,
});
```
Key points:
- `name` is a unique identifier string for the skill (kebab-case recommended).
- `label` is the human-readable display name shown in the UI.
- `content` contains the skill instructions — this is the text the AI agent uses.
- `icon` (optional) sets the icon displayed in the UI.
- `description` (optional) provides additional context about the skill's purpose.
You can create new skills in two ways:
- **Scaffolded**: Run `yarn twenty entity:add` and choose the option to add a new skill.
- **Manual**: Create a new file and use `defineSkill()`, following the same pattern.
### Generated typed client
The typed client is auto-generated by `yarn twenty app:dev` and stored in `node_modules/twenty-sdk/generated` based on your workspace schema. Use it in your functions:
@@ -15,6 +15,7 @@ description: أنشئ وأدِر تخصيصات Twenty على هيئة كود.
* عرِّف كائنات وحقولًا مخصصة على شكل كود (نموذج بيانات مُدار)
* أنشئ وظائف منطقية مع مشغلات مخصصة
* حدد المهارات لوكلاء الذكاء الاصطناعي
* انشر التطبيق نفسه عبر مساحات عمل متعددة
## المتطلبات الأساسية
@@ -45,13 +46,13 @@ yarn twenty app:dev
يدعم المُنشئ ثلاثة أوضاع للتحكم في ملفات الأمثلة التي سيتم تضمينها:
```bash filename="Terminal"
# الافتراضي (شامل): جميع الأمثلة (كائن، حقل، دالة منطقية، مكوّن الواجهة الأمامية، عرض، عنصر قائمة التنقل)
# Default (exhaustive): all examples (object, field, logic function, front component, view, navigation menu item, skill)
npx create-twenty-app@latest my-app
# الأدنى: الملفات الأساسية فقط (application-config.ts و default-role.ts)
# Minimal: only core files (application-config.ts and default-role.ts)
npx create-twenty-app@latest my-app --minimal
# التفاعلي: اختر الأمثلة التي تريد تضمينها
# Interactive: select which examples to include
npx create-twenty-app@latest my-app --interactive
```
@@ -102,24 +103,26 @@ my-twenty-app/
eslint.config.mjs
tsconfig.json
README.md
public/ # مجلد الأصول العامة (صور، خطوط، إلخ)
public/ # Public assets folder (images, fonts, etc.)
src/
├── application-config.ts # مطلوب - إعدادات التطبيق الرئيسية
├── application-config.ts # Required - main application configuration
├── roles/
│ └── default-role.ts # الدور الافتراضي للدوال المنطقية
│ └── default-role.ts # Default role for logic functions
├── objects/
│ └── example-object.ts # تعريف كائن مخصص — مثال
│ └── example-object.ts # Example custom object definition
├── fields/
│ └── example-field.ts # تعريف حقل مستقل — مثال
│ └── example-field.ts # Example standalone field definition
├── logic-functions/
│ ├── hello-world.ts # دالة منطقية — مثال
│ └── post-install.ts # دالة منطقية لما بعد التثبيت
│ ├── hello-world.ts # Example logic function
│ └── post-install.ts # Post-install logic function
├── front-components/
│ └── hello-world.tsx # مكوّن واجهة أمامية — مثال
│ └── hello-world.tsx # Example front component
├── views/
│ └── example-view.ts # تعريف عرض محفوظ — مثال
── navigation-menu-items/
└── example-navigation-menu-item.ts # رابط تنقّل في الشريط الجانبي — مثال
│ └── example-view.ts # Example saved view definition
── navigation-menu-items/
└── example-navigation-menu-item.ts # Example sidebar navigation link
└── skills/
└── example-skill.ts # Example AI agent skill definition
```
مع `--minimal`، سيتم إنشاء الملفات الأساسية فقط (`application-config.ts` و`roles/default-role.ts` و`logic-functions/post-install.ts`). مع `--interactive`، تختار ملفات الأمثلة التي تريد تضمينها.
@@ -148,6 +151,7 @@ my-twenty-app/
| `defineField()` | امتدادات الحقول للكائنات الموجودة |
| `defineView()` | تعريفات العروض المحفوظة |
| `defineNavigationMenuItem()` | تعريفات عناصر قائمة التنقل |
| `defineSkill()` | AI agent skill definitions |
<Note>
**تسمية الملفات مرنة.** يعتمد اكتشاف الكيانات على بنية الشجرة المجردة (AST) — إذ يقوم SDK بفحص ملفات المصدر لديك بحثًا عن النمط `export default define<Entity>({...})`. يمكنك تنظيم ملفاتك ومجلداتك كيفما تشاء. التجميع حسب نوع الكيان (مثلًا، `logic-functions/` و`roles/`) هو مجرد عرف لتنظيم الشيفرة، وليس مطلبًا إلزاميًا.
@@ -169,7 +173,7 @@ export default defineObject({
ستضيف الأوامر اللاحقة مزيدًا من الملفات والمجلدات:
* `yarn twenty app:dev` سيولّد تلقائيًا عميل API مضبوط الأنواع في `node_modules/twenty-sdk/generated` (عميل Twenty مضبوط الأنواع + أنواع مساحة العمل).
* `yarn twenty entity:add` سيضيف ملفات تعريف الكيانات تحت `src/` لكائناتك المخصصة أو الوظائف أو المكونات الواجهية أو الأدوار.
* `yarn twenty entity:add` will add entity definition files under `src/` for your custom objects, functions, front components, roles, skills, and more.
## المصادقة
@@ -222,6 +226,7 @@ yarn twenty auth:status
| `defineField()` | وسّع الكائنات الموجودة بحقول إضافية |
| `defineView()` | تعريف العروض المحفوظة للكائنات |
| `defineNavigationMenuItem()` | تعريف روابط التنقل في الشريط الجانبي |
| `defineSkill()` | Define AI agent skills |
تتحقق هذه الدوال من تكوينك وقت البناء وتوفّر إكمالًا تلقائيًا في بيئة التطوير وأمان الأنواع.
@@ -741,6 +746,41 @@ export default defineFrontComponent({
* **مُنشأ بالقالب**: شغّل `yarn twenty entity:add` واختر خيار إضافة مكوّن أمامي جديد.
* **يدوي**: أنشئ ملفًا جديدًا `*.front-component.tsx` واستخدم `defineFrontComponent()`.
### المهارات
Skills define reusable instructions and capabilities that AI agents can use within your workspace. Use `defineSkill()` to define skills with built-in validation:
```typescript
// src/skills/example-skill.ts
import { defineSkill } from 'twenty-sdk';
export default defineSkill({
universalIdentifier: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
name: 'sales-outreach',
label: 'Sales Outreach',
description: 'Guides the AI agent through a structured sales outreach process',
icon: 'IconBrain',
content: `You are a sales outreach assistant. When reaching out to a prospect:
1. Research the company and recent news
2. Identify the prospect's role and likely pain points
3. Draft a personalized message referencing specific details
4. Keep the tone professional but conversational`,
});
```
النقاط الرئيسية:
* `name` is a unique identifier string for the skill (kebab-case recommended).
* `label` is the human-readable display name shown in the UI.
* `content` contains the skill instructions — this is the text the AI agent uses.
* `icon` (optional) sets the icon displayed in the UI.
* `description` (optional) provides additional context about the skill's purpose.
You can create new skills in two ways:
* **Scaffolded**: Run `yarn twenty entity:add` and choose the option to add a new skill.
* **Manual**: Create a new file and use `defineSkill()`, following the same pattern.
### عميل مُولَّد مضبوط الأنواع
يُولَّد العميل مضبوط الأنواع تلقائيًا بواسطة `yarn twenty app:dev` ويُخزَّن في `node_modules/twenty-sdk/generated` استنادًا إلى مخطط مساحة العمل لديك. استخدمه في وظائفك:
@@ -15,6 +15,7 @@ Aplikace vám umožňují vytvářet a spravovat přizpůsobení Twenty **jako k
* Definujte vlastní objekty a pole jako kód (spravovaný datový model)
* Vytvářejte logické funkce s vlastními spouštěči
* Definujte dovednosti agentů AI
* Nasazujte stejnou aplikaci do více pracovních prostorů
## Předpoklady
@@ -45,13 +46,13 @@ yarn twenty app:dev
Nástroj pro generování kostry podporuje tři režimy pro řízení toho, které ukázkové soubory jsou zahrnuty:
```bash filename="Terminal"
# Výchozí (úplný): všechny příklady (objekt, pole, logic funkce, front-endová komponenta, zobrazení, položka navigační nabídky)
# Default (exhaustive): all examples (object, field, logic function, front component, view, navigation menu item, skill)
npx create-twenty-app@latest my-app
# Minimální: pouze základní soubory (application-config.ts a default-role.ts)
# Minimal: only core files (application-config.ts and default-role.ts)
npx create-twenty-app@latest my-app --minimal
# Interaktivní: vyberte, které příklady zahrnout
# Interactive: select which examples to include
npx create-twenty-app@latest my-app --interactive
```
@@ -102,24 +103,26 @@ my-twenty-app/
eslint.config.mjs
tsconfig.json
README.md
public/ # Složka s veřejnými prostředky (obrázky, písma apod.)
public/ # Public assets folder (images, fonts, etc.)
src/
├── application-config.ts # Povinné hlavní konfigurace aplikace
├── application-config.ts # Required - main application configuration
├── roles/
│ └── default-role.ts # Výchozí role pro logic funkce
│ └── default-role.ts # Default role for logic functions
├── objects/
│ └── example-object.ts # Ukázková definice vlastního objektu
│ └── example-object.ts # Example custom object definition
├── fields/
│ └── example-field.ts # Ukázková samostatná definice pole
│ └── example-field.ts # Example standalone field definition
├── logic-functions/
│ ├── hello-world.ts # Ukázková logic funkce
│ └── post-install.ts # Postinstalační logic funkce
│ ├── hello-world.ts # Example logic function
│ └── post-install.ts # Post-install logic function
├── front-components/
│ └── hello-world.tsx # Ukázková front-endová komponenta
│ └── hello-world.tsx # Example front component
├── views/
│ └── example-view.ts # Ukázková definice uloženého zobrazení
── navigation-menu-items/
└── example-navigation-menu-item.ts # Ukázkový odkaz postranní navigace
│ └── example-view.ts # Example saved view definition
── navigation-menu-items/
└── example-navigation-menu-item.ts # Example sidebar navigation link
└── skills/
└── example-skill.ts # Example AI agent skill definition
```
S volbou `--minimal` se vytvoří pouze základní soubory (`application-config.ts`, `roles/default-role.ts` a `logic-functions/post-install.ts`). S volbou `--interactive` si vyberete, které ukázkové soubory chcete zahrnout.
@@ -148,6 +151,7 @@ SDK detekuje entity analýzou vašich souborů TypeScript a hledá volání **`e
| `defineField()` | Rozšíření polí u existujících objektů |
| `defineView()` | Definice uložených zobrazení |
| `defineNavigationMenuItem()` | Definice položek navigační nabídky |
| `defineSkill()` | AI agent skill definitions |
<Note>
**Pojmenování souborů je flexibilní.** Detekce entit je založená na AST — SDK prochází vaše zdrojové soubory a hledá vzor `export default define<Entity>({...})`. Soubory a složky můžete organizovat, jak chcete. Seskupování podle typu entity (např. `logic-functions/`, `roles/`) je pouze konvence pro organizaci kódu, nikoli požadavek.
@@ -169,7 +173,7 @@ export default defineObject({
Pozdější příkazy přidají další soubory a složky:
* `yarn twenty app:dev` automaticky vygeneruje typovaného klienta API v `node_modules/twenty-sdk/generated` (typovaný klient Twenty + typy pracovního prostoru).
* `yarn twenty entity:add` přidá soubory s definicemi entit do `src/` pro vaše vlastní objekty, funkce, frontové komponenty nebo role.
* `yarn twenty entity:add` will add entity definition files under `src/` for your custom objects, functions, front components, roles, skills, and more.
## Ověření
@@ -222,6 +226,7 @@ SDK poskytuje pomocné funkce pro definování entit vaší aplikace. Jak je pop
| `defineField()` | Rozšiřte existující objekty o další pole |
| `defineView()` | Definujte uložená zobrazení pro objekty |
| `defineNavigationMenuItem()` | Definujte odkazy postranní navigace |
| `defineSkill()` | Define AI agent skills |
Tyto funkce validují vaši konfiguraci v době sestavení a poskytují automatické doplňování v IDE a typovou bezpečnost.
@@ -741,6 +746,41 @@ Nové frontendové komponenty můžete vytvořit dvěma způsoby:
* **Vygenerované**: Spusťte `yarn twenty entity:add` a zvolte možnost přidat novou frontendovou komponentu.
* **Ruční**: Vytvořte nový soubor `*.front-component.tsx` a použijte `defineFrontComponent()`.
### Dovednosti
Skills define reusable instructions and capabilities that AI agents can use within your workspace. Use `defineSkill()` to define skills with built-in validation:
```typescript
// src/skills/example-skill.ts
import { defineSkill } from 'twenty-sdk';
export default defineSkill({
universalIdentifier: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
name: 'sales-outreach',
label: 'Sales Outreach',
description: 'Guides the AI agent through a structured sales outreach process',
icon: 'IconBrain',
content: `You are a sales outreach assistant. When reaching out to a prospect:
1. Research the company and recent news
2. Identify the prospect's role and likely pain points
3. Draft a personalized message referencing specific details
4. Keep the tone professional but conversational`,
});
```
Hlavní body:
* `name` is a unique identifier string for the skill (kebab-case recommended).
* `label` is the human-readable display name shown in the UI.
* `content` contains the skill instructions — this is the text the AI agent uses.
* `icon` (optional) sets the icon displayed in the UI.
* `description` (optional) provides additional context about the skill's purpose.
You can create new skills in two ways:
* **Scaffolded**: Run `yarn twenty entity:add` and choose the option to add a new skill.
* **Manual**: Create a new file and use `defineSkill()`, following the same pattern.
### Generovaný typovaný klient
Typovaný klient je automaticky generován pomocí `yarn twenty app:dev` a ukládá se do `node_modules/twenty-sdk/generated` podle schématu vašeho pracovního prostoru. Použijte jej ve svých funkcích:
@@ -15,6 +15,7 @@ Mit Apps können Sie Twenty-Anpassungen **als Code** erstellen und verwalten. An
* Benutzerdefinierte Objekte und Felder als Code definieren (verwaltetes Datenmodell)
* Logikfunktionen mit benutzerdefinierten Triggern erstellen
* Fähigkeiten für KI-Agenten definieren
* Dieselbe App in mehreren Workspaces bereitstellen
## Voraussetzungen
@@ -45,13 +46,13 @@ yarn twenty app:dev
Das Scaffolding-Tool unterstützt drei Modi, um zu steuern, welche Beispieldateien enthalten sind:
```bash filename="Terminal"
# Standard (umfassend): alle Beispiele (Objekt, Feld, Logikfunktion, Frontend-Komponente, View, Navigationsmenüeintrag)
# Default (exhaustive): all examples (object, field, logic function, front component, view, navigation menu item, skill)
npx create-twenty-app@latest my-app
# Minimal: nur Kerndateien (application-config.ts und default-role.ts)
# Minimal: only core files (application-config.ts and default-role.ts)
npx create-twenty-app@latest my-app --minimal
# Interaktiv: wähle aus, welche Beispiele enthalten sein sollen
# Interactive: select which examples to include
npx create-twenty-app@latest my-app --interactive
```
@@ -102,24 +103,26 @@ my-twenty-app/
eslint.config.mjs
tsconfig.json
README.md
public/ # Ordner für öffentliche Assets (Bilder, Schriftarten usw.)
public/ # Public assets folder (images, fonts, etc.)
src/
application-config.ts # Erforderlich  Hauptkonfiguration der Anwendung
roles/
 default-role.ts # Standardrolle für Logikfunktionen
objects/
 example-object.ts # Beispiel für eine benutzerdefinierte Objektdefinition
fields/
 example-field.ts # Beispiel für eine eigenständige Felddefinition
logic-functions/
 hello-world.ts # Beispiel für eine Logikfunktion
 post-install.ts # Post-Installations-Logikfunktion
front-components/
 hello-world.tsx # Beispiel für eine Frontend-Komponente
views/
 example-view.ts # Beispiel für eine gespeicherte View-Definition
navigation-menu-items/
example-navigation-menu-item.ts # Beispiel für einen Navigationslink in der Seitenleiste
├── application-config.ts # Required - main application configuration
├── roles/
│ └── default-role.ts # Default role for logic functions
├── objects/
│ └── example-object.ts # Example custom object definition
├── fields/
│ └── example-field.ts # Example standalone field definition
├── logic-functions/
│ ├── hello-world.ts # Example logic function
│ └── post-install.ts # Post-install logic function
├── front-components/
│ └── hello-world.tsx # Example front component
├── views/
│ └── example-view.ts # Example saved view definition
├── navigation-menu-items/
└── example-navigation-menu-item.ts # Example sidebar navigation link
└── skills/
└── example-skill.ts # Example AI agent skill definition
```
Mit `--minimal` werden nur die Kerndateien erstellt (`application-config.ts`, `roles/default-role.ts` und `logic-functions/post-install.ts`). Mit `--interactive` wählst du aus, welche Beispieldateien enthalten sein sollen.
@@ -148,6 +151,7 @@ Das SDK erkennt Entitäten, indem es Ihre TypeScript-Dateien nach Aufrufen von *
| `defineField()` | Felderweiterungen für bestehende Objekte |
| `defineView()` | Gespeicherte View-Definitionen |
| `defineNavigationMenuItem()` | Definitionen von Navigationsmenüeinträgen |
| `defineSkill()` | AI agent skill definitions |
<Note>
**Dateibenennung ist flexibel.** Die Entitätserkennung ist AST-basiert — das SDK durchsucht Ihre Quelldateien nach dem Muster `export default define<Entity>({...})`. Sie können Ihre Dateien und Ordner nach Belieben organisieren. Die Gruppierung nach Entitätstyp (z. B. `logic-functions/`, `roles/`) ist lediglich eine Konvention zur Codeorganisation, keine Voraussetzung.
@@ -169,7 +173,7 @@ export default defineObject({
Spätere Befehle fügen weitere Dateien und Ordner hinzu:
* `yarn twenty app:dev` generiert automatisch einen typisierten API-Client in `node_modules/twenty-sdk/generated` (typisierter Twenty-Client + Arbeitsbereichs-Typen).
* `yarn twenty entity:add` fügt unter `src/` Entitätsdefinitionsdateien für benutzerdefinierte Objekte, Funktionen, Frontend-Komponenten oder Rollen hinzu.
* `yarn twenty entity:add` will add entity definition files under `src/` for your custom objects, functions, front components, roles, skills, and more.
## Authentifizierung
@@ -222,6 +226,7 @@ Das SDK stellt Hilfsfunktionen bereit, um die Entitäten Ihrer App zu definieren
| `defineField()` | Bestehende Objekte mit zusätzlichen Feldern erweitern |
| `defineView()` | Gespeicherte Views für Objekte definieren |
| `defineNavigationMenuItem()` | Seitenleisten-Navigationslinks definieren |
| `defineSkill()` | Define AI agent skills |
Diese Funktionen validieren Ihre Konfiguration zur Build-Zeit und bieten IDE-Autovervollständigung sowie Typsicherheit.
@@ -741,6 +746,41 @@ Sie können neue Frontend-Komponenten auf zwei Arten erstellen:
* **Generiert**: Führen Sie `yarn twenty entity:add` aus und wählen Sie die Option zum Hinzufügen einer neuen Frontend-Komponente.
* **Manuell**: Erstellen Sie eine neue `*.front-component.tsx`-Datei und verwenden Sie `defineFrontComponent()`.
### Fähigkeiten
Skills define reusable instructions and capabilities that AI agents can use within your workspace. Use `defineSkill()` to define skills with built-in validation:
```typescript
// src/skills/example-skill.ts
import { defineSkill } from 'twenty-sdk';
export default defineSkill({
universalIdentifier: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
name: 'sales-outreach',
label: 'Sales Outreach',
description: 'Guides the AI agent through a structured sales outreach process',
icon: 'IconBrain',
content: `You are a sales outreach assistant. When reaching out to a prospect:
1. Research the company and recent news
2. Identify the prospect's role and likely pain points
3. Draft a personalized message referencing specific details
4. Keep the tone professional but conversational`,
});
```
Hauptpunkte:
* `name` is a unique identifier string for the skill (kebab-case recommended).
* `label` is the human-readable display name shown in the UI.
* `content` contains the skill instructions — this is the text the AI agent uses.
* `icon` (optional) sets the icon displayed in the UI.
* `description` (optional) provides additional context about the skill's purpose.
You can create new skills in two ways:
* **Scaffolded**: Run `yarn twenty entity:add` and choose the option to add a new skill.
* **Manual**: Create a new file and use `defineSkill()`, following the same pattern.
### Generierter typisierter Client
Der typisierte Client wird von `yarn twenty app:dev` automatisch generiert und basierend auf Ihrem Arbeitsbereichs-Schema in `node_modules/twenty-sdk/generated` gespeichert. Verwenden Sie ihn in Ihren Funktionen:
@@ -15,6 +15,7 @@ Le app ti consentono di creare e gestire le personalizzazioni di Twenty **come c
* Definisci oggetti e campi personalizzati come codice (modello dati gestito)
* Crea funzioni logiche con trigger personalizzati
* Definire le abilità per gli agenti IA
* Distribuisci la stessa app su più spazi di lavoro
## Prerequisiti
@@ -45,13 +46,13 @@ yarn twenty app:dev
Lo strumento di scaffolding supporta tre modalità per controllare quali file di esempio vengono inclusi:
```bash filename="Terminal"
# Predefinita (esaustiva): tutti gli esempi (oggetto, campo, funzione logica, componente front-end, vista, voce del menu di navigazione)
# Default (exhaustive): all examples (object, field, logic function, front component, view, navigation menu item, skill)
npx create-twenty-app@latest my-app
# Minimale: solo i file principali (application-config.ts e default-role.ts)
# Minimal: only core files (application-config.ts and default-role.ts)
npx create-twenty-app@latest my-app --minimal
# Interattiva: seleziona quali esempi includere
# Interactive: select which examples to include
npx create-twenty-app@latest my-app --interactive
```
@@ -102,24 +103,26 @@ my-twenty-app/
eslint.config.mjs
tsconfig.json
README.md
public/ # Cartella delle risorse pubbliche (immagini, font, ecc.)
public/ # Public assets folder (images, fonts, etc.)
src/
├── application-config.ts # Obbligatorio - configurazione principale dell'applicazione
├── application-config.ts # Required - main application configuration
├── roles/
│ └── default-role.ts # Ruolo predefinito per le funzioni logiche
│ └── default-role.ts # Default role for logic functions
├── objects/
│ └── example-object.ts # Definizione di oggetto personalizzato di esempio
│ └── example-object.ts # Example custom object definition
├── fields/
│ └── example-field.ts # Definizione di campo autonomo di esempio
│ └── example-field.ts # Example standalone field definition
├── logic-functions/
│ ├── hello-world.ts # Funzione logica di esempio
│ └── post-install.ts # Funzione logica post-installazione
│ ├── hello-world.ts # Example logic function
│ └── post-install.ts # Post-install logic function
├── front-components/
│ └── hello-world.tsx # Componente front-end di esempio
│ └── hello-world.tsx # Example front component
├── views/
│ └── example-view.ts # Definizione di vista salvata di esempio
── navigation-menu-items/
└── example-navigation-menu-item.ts # Link di navigazione della barra laterale di esempio
│ └── example-view.ts # Example saved view definition
── navigation-menu-items/
└── example-navigation-menu-item.ts # Example sidebar navigation link
└── skills/
└── example-skill.ts # Example AI agent skill definition
```
Con `--minimal`, vengono creati solo i file principali (`application-config.ts`, `roles/default-role.ts` e `logic-functions/post-install.ts`). Con `--interactive`, scegli quali file di esempio includere.
@@ -148,6 +151,7 @@ L'SDK rileva le entità analizzando i tuoi file TypeScript alla ricerca di chiam
| `defineField()` | Estensioni di campo per oggetti esistenti |
| `defineView()` | Definizioni di viste salvate |
| `defineNavigationMenuItem()` | Definizioni delle voci del menu di navigazione |
| `defineSkill()` | AI agent skill definitions |
<Note>
**La denominazione dei file è flessibile.** Il rilevamento delle entità è basato sull'AST — l'SDK esegue la scansione dei file sorgente alla ricerca del pattern `export default define<Entity>({...})`. Puoi organizzare file e cartelle come preferisci. Raggruppare per tipo di entità (ad es., `logic-functions/`, `roles/`) è solo una convenzione per l'organizzazione del codice, non un requisito.
@@ -169,7 +173,7 @@ export default defineObject({
Comandi successivi aggiungeranno altri file e cartelle:
* `yarn twenty app:dev` genererà automaticamente un client API tipizzato in `node_modules/twenty-sdk/generated` (client Twenty tipizzato + tipi dell'area di lavoro).
* `yarn twenty entity:add` aggiungerà file di definizione delle entità sotto `src/` per i tuoi oggetti, funzioni, componenti front-end o ruoli personalizzati.
* `yarn twenty entity:add` will add entity definition files under `src/` for your custom objects, functions, front components, roles, skills, and more.
## Autenticazione
@@ -222,6 +226,7 @@ L'SDK fornisce funzioni helper per definire le entità della tua app. Come descr
| `defineField()` | Estendi gli oggetti esistenti con campi aggiuntivi |
| `defineView()` | Definisce viste salvate per gli oggetti |
| `defineNavigationMenuItem()` | Definisce i link di navigazione della barra laterale |
| `defineSkill()` | Define AI agent skills |
Queste funzioni convalidano la configurazione in fase di build e offrono il completamento automatico nell'IDE e la sicurezza dei tipi.
@@ -741,6 +746,41 @@ Puoi creare nuovi componenti front-end in due modi:
* **Generata dallo scaffolder**: Esegui `yarn twenty entity:add` e scegli l'opzione per aggiungere un nuovo componente front-end.
* **Manuale**: Crea un nuovo file `*.front-component.tsx` e usa `defineFrontComponent()`.
### Abilità
Skills define reusable instructions and capabilities that AI agents can use within your workspace. Use `defineSkill()` to define skills with built-in validation:
```typescript
// src/skills/example-skill.ts
import { defineSkill } from 'twenty-sdk';
export default defineSkill({
universalIdentifier: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
name: 'sales-outreach',
label: 'Sales Outreach',
description: 'Guides the AI agent through a structured sales outreach process',
icon: 'IconBrain',
content: `You are a sales outreach assistant. When reaching out to a prospect:
1. Research the company and recent news
2. Identify the prospect's role and likely pain points
3. Draft a personalized message referencing specific details
4. Keep the tone professional but conversational`,
});
```
Punti chiave:
* `name` is a unique identifier string for the skill (kebab-case recommended).
* `label` is the human-readable display name shown in the UI.
* `content` contains the skill instructions — this is the text the AI agent uses.
* `icon` (optional) sets the icon displayed in the UI.
* `description` (optional) provides additional context about the skill's purpose.
You can create new skills in two ways:
* **Scaffolded**: Run `yarn twenty entity:add` and choose the option to add a new skill.
* **Manual**: Create a new file and use `defineSkill()`, following the same pattern.
### Client tipizzato generato
Il client tipizzato è generato automaticamente da `yarn twenty app:dev` e salvato in `node_modules/twenty-sdk/generated` in base allo schema della tua area di lavoro. Usalo nelle tue funzioni:
@@ -15,6 +15,7 @@ Os aplicativos permitem criar e gerenciar personalizações do Twenty **como có
* Defina objetos e campos personalizados como código (modelo de dados gerenciado)
* Crie funções de lógica com gatilhos personalizados
* Definir habilidades para agentes de IA
* Implemente o mesmo aplicativo em vários espaços de trabalho
## Pré-requisitos
@@ -45,13 +46,13 @@ yarn twenty app:dev
O gerador de estrutura oferece suporte a três modos para controlar quais arquivos de exemplo são incluídos:
```bash filename="Terminal"
# Padrão (exhaustivo): todos os exemplos (objeto, campo, função de lógica, componente de front-end, visualização, item do menu de navegação)
# Default (exhaustive): all examples (object, field, logic function, front component, view, navigation menu item, skill)
npx create-twenty-app@latest my-app
# Mínimo: apenas arquivos principais (application-config.ts e default-role.ts)
# Minimal: only core files (application-config.ts and default-role.ts)
npx create-twenty-app@latest my-app --minimal
# Interativo: selecione quais exemplos incluir
# Interactive: select which examples to include
npx create-twenty-app@latest my-app --interactive
```
@@ -102,24 +103,26 @@ my-twenty-app/
eslint.config.mjs
tsconfig.json
README.md
public/ # Pasta de recursos públicos (imagens, fontes, etc.)
public/ # Public assets folder (images, fonts, etc.)
src/
├── application-config.ts # Obrigatório - configuração principal da aplicação
├── application-config.ts # Required - main application configuration
├── roles/
│ └── default-role.ts # Papel padrão para funções de lógica
│ └── default-role.ts # Default role for logic functions
├── objects/
│ └── example-object.ts # Exemplo de definição de objeto personalizado
│ └── example-object.ts # Example custom object definition
├── fields/
│ └── example-field.ts # Exemplo de definição de campo independente
│ └── example-field.ts # Example standalone field definition
├── logic-functions/
│ ├── hello-world.ts # Exemplo de função de lógica
│ └── post-install.ts # Função de lógica de pós-instalação
│ ├── hello-world.ts # Example logic function
│ └── post-install.ts # Post-install logic function
├── front-components/
│ └── hello-world.tsx # Exemplo de componente de front-end
│ └── hello-world.tsx # Example front component
├── views/
│ └── example-view.ts # Exemplo de definição de visualização salva
── navigation-menu-items/
└── example-navigation-menu-item.ts # Exemplo de link de navegação da barra lateral
│ └── example-view.ts # Example saved view definition
── navigation-menu-items/
└── example-navigation-menu-item.ts # Example sidebar navigation link
└── skills/
└── example-skill.ts # Example AI agent skill definition
```
Com `--minimal`, apenas os arquivos principais são criados (`application-config.ts`, `roles/default-role.ts` e `logic-functions/post-install.ts`). Com `--interactive`, você escolhe quais arquivos de exemplo incluir.
@@ -148,6 +151,7 @@ O SDK detecta entidades analisando seus arquivos TypeScript em busca de chamadas
| `defineField()` | Extensões de campos para objetos existentes |
| `defineView()` | Definições de visualizações salvas |
| `defineNavigationMenuItem()` | Definições de itens do menu de navegação |
| `defineSkill()` | AI agent skill definitions |
<Note>
**A nomeação de arquivos é flexível.** A detecção de entidades é baseada em AST — o SDK varre seus arquivos fonte em busca do padrão `export default define<Entity>({...})`. Você pode organizar seus arquivos e pastas como quiser. Agrupar por tipo de entidade (por exemplo, `logic-functions/`, `roles/`) é apenas uma convenção para organização do código, não um requisito.
@@ -169,7 +173,7 @@ export default defineObject({
Comandos posteriores adicionarão mais arquivos e pastas:
* `yarn twenty app:dev` vai gerar automaticamente um cliente de API tipado em `node_modules/twenty-sdk/generated` (cliente Twenty tipado + tipos do espaço de trabalho).
* `yarn twenty entity:add` adicionará arquivos de definição de entidade em `src/` para seus objetos, funções, componentes de front-end ou papéis personalizados.
* `yarn twenty entity:add` will add entity definition files under `src/` for your custom objects, functions, front components, roles, skills, and more.
## Autenticação
@@ -222,6 +226,7 @@ O SDK fornece funções utilitárias para definir as entidades do seu app. Confo
| `defineField()` | Estender objetos existentes com campos adicionais |
| `defineView()` | Define visualizações salvas para objetos |
| `defineNavigationMenuItem()` | Define links de navegação da barra lateral |
| `defineSkill()` | Define AI agent skills |
Essas funções validam sua configuração em tempo de compilação e oferecem autocompletar na IDE e segurança de tipos.
@@ -741,6 +746,41 @@ Você pode criar novos componentes de front-end de duas formas:
* **Gerado automaticamente**: Execute `yarn twenty entity:add` e escolha a opção para adicionar um novo componente de front-end.
* **Manual**: Crie um novo arquivo `*.front-component.tsx` e use `defineFrontComponent()`.
### Habilidades
Skills define reusable instructions and capabilities that AI agents can use within your workspace. Use `defineSkill()` to define skills with built-in validation:
```typescript
// src/skills/example-skill.ts
import { defineSkill } from 'twenty-sdk';
export default defineSkill({
universalIdentifier: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
name: 'sales-outreach',
label: 'Sales Outreach',
description: 'Guides the AI agent through a structured sales outreach process',
icon: 'IconBrain',
content: `You are a sales outreach assistant. When reaching out to a prospect:
1. Research the company and recent news
2. Identify the prospect's role and likely pain points
3. Draft a personalized message referencing specific details
4. Keep the tone professional but conversational`,
});
```
Pontos-chave:
* `name` is a unique identifier string for the skill (kebab-case recommended).
* `label` is the human-readable display name shown in the UI.
* `content` contains the skill instructions — this is the text the AI agent uses.
* `icon` (optional) sets the icon displayed in the UI.
* `description` (optional) provides additional context about the skill's purpose.
You can create new skills in two ways:
* **Scaffolded**: Run `yarn twenty entity:add` and choose the option to add a new skill.
* **Manual**: Create a new file and use `defineSkill()`, following the same pattern.
### Cliente tipado gerado
O cliente tipado é gerado automaticamente pelo `yarn twenty app:dev` e armazenado em `node_modules/twenty-sdk/generated` com base no esquema do seu espaço de trabalho. Use-o em suas funções:
@@ -15,6 +15,7 @@ Aplicațiile vă permit să construiți și să gestionați personalizările Twe
* Definiți obiecte și câmpuri personalizate sub formă de cod (model de date gestionat)
* Creați funcții de logică cu declanșatoare personalizate
* Definiți abilități pentru agenți de IA
* Implementați aceeași aplicație în mai multe spații de lucru
## Cerințe
@@ -45,7 +46,7 @@ yarn twenty app:dev
Generatorul de schelet acceptă trei moduri pentru a controla ce fișiere de exemplu sunt incluse:
```bash filename="Terminal"
# Implicit (exhaustiv): toate exemplele (obiect, câmp, funcție logică, componentă de interfață, vizualizare, element de meniu de navigare)
# Implicit (exhaustiv): toate exemplele (obiect, câmp, funcție logică, componentă de interfață, vizualizare, element de meniu de navigare, abilitate)
npx create-twenty-app@latest my-app
# Minimal: doar fișierele de bază (application-config.ts și default-role.ts)
@@ -118,8 +119,10 @@ my-twenty-app/
│ └── hello-world.tsx # Exemplu de componentă de interfață
├── views/
│ └── example-view.ts # Exemplu de definiție a unei vizualizări salvate
── navigation-menu-items/
└── example-navigation-menu-item.ts # Exemplu de link de navigare în bara laterală
── navigation-menu-items/
└── example-navigation-menu-item.ts # Exemplu de link de navigare în bara laterală
└── skills/
└── example-skill.ts # Exemplu de definiție a unei abilități a agentului AI
```
Cu `--minimal`, sunt create doar fișierele de bază (`application-config.ts`, `roles/default-role.ts` și `logic-functions/post-install.ts`). Cu `--interactive`, alegi ce fișiere de exemplu să incluzi.
@@ -148,6 +151,7 @@ SDK-ul detectează entitățile analizând fișierele TypeScript pentru apeluri
| `defineField()` | Extensii de câmp pentru obiectele existente |
| `defineView()` | Definiții pentru vizualizări salvate |
| `defineNavigationMenuItem()` | Definiții pentru elemente de meniu de navigare |
| `defineSkill()` | Definiții ale abilităților agentului AI |
<Note>
**Denumirea fișierelor este flexibilă.** Detectarea entităților se bazează pe AST — SDK-ul scanează fișierele sursă pentru tiparul `export default define<Entity>({...})`. Puteți organiza fișierele și folderele cum doriți. Gruparea după tipul de entitate (de exemplu, `logic-functions/`, `roles/`) este doar o convenție pentru organizarea codului, nu o cerință.
@@ -169,7 +173,7 @@ export default defineObject({
Comenzile ulterioare vor adăuga mai multe fișiere și foldere:
* `yarn twenty app:dev` va genera automat un client API tipizat în `node_modules/twenty-sdk/generated` (client Twenty tipizat + tipuri ale spațiului de lucru).
* `yarn twenty entity:add` va adăuga fișiere de definire a entităților în `src/` pentru obiectele, funcțiile, componentele front-end sau rolurile personalizate.
* `yarn twenty entity:add` va adăuga fișiere de definire a entităților în `src/` pentru obiectele, funcțiile, componentele front-end, rolurile, abilitățile și altele.
## Autentificare
@@ -222,6 +226,7 @@ SDK-ul oferă funcții ajutătoare pentru definirea entităților aplicației. D
| `defineField()` | Extindeți obiectele existente cu câmpuri suplimentare |
| `defineView()` | Definește vizualizări salvate pentru obiecte |
| `defineNavigationMenuItem()` | Definește linkuri de navigare în bara laterală |
| `defineSkill()` | Definiți abilități pentru agentul AI |
Aceste funcții validează configurația în timpul build-ului și oferă completare automată în IDE și siguranța tipurilor.
@@ -741,6 +746,41 @@ Puteți crea componente Front noi în două moduri:
* **Generat**: Rulați `yarn twenty entity:add` și alegeți opțiunea de a adăuga o componentă frontend nouă.
* **Manual**: Creați un fișier nou `*.front-component.tsx` și folosiți `defineFrontComponent()`.
### Abilități
Abilitățile definesc instrucțiuni și capabilități reutilizabile pe care agenții AI le pot folosi în spațiul dvs. de lucru. Folosiți `defineSkill()` pentru a defini abilități cu validare încorporată:
```typescript
// src/skills/example-skill.ts
import { defineSkill } from 'twenty-sdk';
export default defineSkill({
universalIdentifier: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
name: 'sales-outreach',
label: 'Abordare de vânzări',
description: 'Ghidează agentul AI printr-un proces structurat de abordare de vânzări',
icon: 'IconBrain',
content: `Ești un asistent pentru abordare de vânzări. Când contactezi un potențial client:
1. Cercetează compania și noutățile recente
2. Identifică rolul potențialului client și probabilele puncte sensibile
3. Redactează un mesaj personalizat care face referire la detalii specifice
4. Păstrează un ton profesionist, dar conversațional`,
});
```
Puncte cheie:
* `name` este un șir identificator unic pentru abilitate (se recomandă kebab-case).
* `label` este numele lizibil afișat în interfața cu utilizatorul (UI).
* `content` conține instrucțiunile abilității — acesta este textul pe care agentul AI îl folosește.
* `icon` (opțional) setează pictograma afișată în UI.
* `description` (opțional) oferă context suplimentar despre scopul abilității.
Puteți crea abilități noi în două moduri:
* **Generat**: Rulați `yarn twenty entity:add` și alegeți opțiunea de a adăuga o abilitate nouă.
* **Manual**: Creați un fișier nou și folosiți `defineSkill()`, urmând același model.
### Client tipizat generat
Clientul tipizat este generat automat de `yarn twenty app:dev` și stocat în `node_modules/twenty-sdk/generated`, pe baza schemei spațiului tău de lucru. Folosiți-l în funcțiile dvs.:
@@ -15,6 +15,7 @@ description: Создавайте и управляйте настройками
* Определяйте пользовательские объекты и поля в виде кода (управляемая модель данных)
* Создавайте логические функции с пользовательскими триггерами
* Определите навыки для ИИ-агентов
* Развёртывайте одно и то же приложение в нескольких рабочих пространствах
## Требования
@@ -45,13 +46,13 @@ yarn twenty app:dev
Генератор каркаса поддерживает три режима для управления тем, какие примерные файлы включаются:
```bash filename="Terminal"
# По умолчанию (полный набор): все примеры (объект, поле, логическая функция, фронтенд-компонент, представление, пункт меню навигации)
# Default (exhaustive): all examples (object, field, logic function, front component, view, navigation menu item, skill)
npx create-twenty-app@latest my-app
# Минимальный: только основные файлы (application-config.ts и default-role.ts)
# Minimal: only core files (application-config.ts and default-role.ts)
npx create-twenty-app@latest my-app --minimal
# Интерактивный: выбрать, какие примеры включить
# Interactive: select which examples to include
npx create-twenty-app@latest my-app --interactive
```
@@ -102,24 +103,26 @@ my-twenty-app/
eslint.config.mjs
tsconfig.json
README.md
public/ # Папка публичных ресурсов (изображения, шрифты и т. д.)
public/ # Public assets folder (images, fonts, etc.)
src/
├── application-config.ts # Обязательный — основная конфигурация приложения
├── application-config.ts # Required - main application configuration
├── roles/
│ └── default-role.ts # Роль по умолчанию для логических функций
│ └── default-role.ts # Default role for logic functions
├── objects/
│ └── example-object.ts # Пример определения пользовательского объекта
│ └── example-object.ts # Example custom object definition
├── fields/
│ └── example-field.ts # Пример определения отдельного поля
│ └── example-field.ts # Example standalone field definition
├── logic-functions/
│ ├── hello-world.ts # Пример логической функции
│ └── post-install.ts # Постустановочная логическая функция
│ ├── hello-world.ts # Example logic function
│ └── post-install.ts # Post-install logic function
├── front-components/
│ └── hello-world.tsx # Пример фронтенд-компонента
│ └── hello-world.tsx # Example front component
├── views/
│ └── example-view.ts # Пример определения сохранённого представления
── navigation-menu-items/
└── example-navigation-menu-item.ts # Пример ссылки боковой панели навигации
│ └── example-view.ts # Example saved view definition
── navigation-menu-items/
└── example-navigation-menu-item.ts # Example sidebar navigation link
└── skills/
└── example-skill.ts # Example AI agent skill definition
```
С `--minimal` создаются только основные файлы (`application-config.ts`, `roles/default-role.ts` и `logic-functions/post-install.ts`). С `--interactive` вы выбираете, какие примерные файлы включить.
@@ -148,6 +151,7 @@ SDK обнаруживает сущности, разбирая ваши фай
| `defineField()` | Расширения полей для существующих объектов |
| `defineView()` | Определения сохранённых представлений |
| `defineNavigationMenuItem()` | Определения пунктов меню навигации |
| `defineSkill()` | AI agent skill definitions |
<Note>
**Имена файлов заданы гибко.** Обнаружение сущностей основано на AST — SDK сканирует ваши исходные файлы в поисках шаблона `export default define<Entity>({...})`. Вы можете организовывать файлы и папки как угодно. Группировка по типу сущности (например, `logic-functions/`, `roles/`) — это лишь соглашение для организации кода, а не требование.
@@ -169,7 +173,7 @@ export default defineObject({
Позднее команды добавят больше файлов и папок:
* `yarn twenty app:dev` автоматически сгенерирует типизированный клиент API в `node_modules/twenty-sdk/generated` (типизированный клиент Twenty + типы рабочего пространства).
* `yarn twenty entity:add` добавит файлы определений сущностей в `src/` для ваших пользовательских объектов, функций, фронтенд-компонентов или ролей.
* `yarn twenty entity:add` will add entity definition files under `src/` for your custom objects, functions, front components, roles, skills, and more.
## Аутентификация
@@ -222,6 +226,7 @@ SDK предоставляет вспомогательные функции д
| `defineField()` | Расширение существующих объектов дополнительными полями |
| `defineView()` | Определяйте сохранённые представления для объектов |
| `defineNavigationMenuItem()` | Определяйте ссылки боковой панели навигации |
| `defineSkill()` | Define AI agent skills |
Эти функции проверяют вашу конфигурацию на этапе сборки и обеспечивают автодополнение в IDE и безопасность типов.
@@ -741,6 +746,41 @@ export default defineFrontComponent({
* **Сгенерировано**: Запустите `yarn twenty entity:add` и выберите опцию добавления нового фронтенд-компонента.
* **Вручную**: Создайте новый файл `*.front-component.tsx` и используйте `defineFrontComponent()`.
### Навыки
Skills define reusable instructions and capabilities that AI agents can use within your workspace. Use `defineSkill()` to define skills with built-in validation:
```typescript
// src/skills/example-skill.ts
import { defineSkill } from 'twenty-sdk';
export default defineSkill({
universalIdentifier: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
name: 'sales-outreach',
label: 'Sales Outreach',
description: 'Guides the AI agent through a structured sales outreach process',
icon: 'IconBrain',
content: `You are a sales outreach assistant. When reaching out to a prospect:
1. Research the company and recent news
2. Identify the prospect's role and likely pain points
3. Draft a personalized message referencing specific details
4. Keep the tone professional but conversational`,
});
```
Основные моменты:
* `name` is a unique identifier string for the skill (kebab-case recommended).
* `label` is the human-readable display name shown in the UI.
* `content` contains the skill instructions — this is the text the AI agent uses.
* `icon` (optional) sets the icon displayed in the UI.
* `description` (optional) provides additional context about the skill's purpose.
You can create new skills in two ways:
* **Scaffolded**: Run `yarn twenty entity:add` and choose the option to add a new skill.
* **Manual**: Create a new file and use `defineSkill()`, following the same pattern.
### Сгенерированный типизированный клиент
Типизированный клиент автоматически генерируется с помощью `yarn twenty app:dev` и сохраняется в `node_modules/twenty-sdk/generated` на основе схемы вашего рабочего пространства. Используйте его в своих функциях:
@@ -15,6 +15,7 @@ Uygulamalar, Twenty özelleştirmelerini **kod olarak** oluşturup yönetmenizi
* Özel nesneleri ve alanları kod olarak tanımlayın (yönetilen veri modeli)
* Özel tetikleyicilerle mantık fonksiyonları oluşturun
* Yapay zekâ ajanları için becerileri tanımlayın
* Aynı uygulamayı birden çok çalışma alanına dağıtın
## Ön Gereksinimler
@@ -45,7 +46,7 @@ yarn twenty app:dev
İskelet oluşturucu, hangi örnek dosyaların dahil edileceğini kontrol etmek için üç modu destekler:
```bash filename="Terminal"
# Default (exhaustive): all examples (object, field, logic function, front component, view, navigation menu item)
# Default (exhaustive): all examples (object, field, logic function, front component, view, navigation menu item, skill)
npx create-twenty-app@latest my-app
# Minimal: only core files (application-config.ts and default-role.ts)
@@ -118,8 +119,10 @@ my-twenty-app/
│ └── hello-world.tsx # Example front component
├── views/
│ └── example-view.ts # Example saved view definition
── navigation-menu-items/
└── example-navigation-menu-item.ts # Example sidebar navigation link
── navigation-menu-items/
└── example-navigation-menu-item.ts # Example sidebar navigation link
└── skills/
└── example-skill.ts # Example AI agent skill definition
```
`--minimal` ile yalnızca çekirdek dosyalar oluşturulur (`application-config.ts`, `roles/default-role.ts` ve `logic-functions/post-install.ts`). `--interactive` ile hangi örnek dosyaların dahil edileceğini siz seçersiniz.
@@ -148,6 +151,7 @@ SDK, TypeScript dosyalarınızı **`export default define<Entity>({...})`** ça
| `defineField()` | Mevcut nesneler için alan genişletmeleri |
| `defineView()` | Kaydedilmiş görünüm tanımları |
| `defineNavigationMenuItem()` | Gezinme menüsü öğesi tanımları |
| `defineSkill()` | AI agent skill definitions |
<Note>
**Dosya adlandırma esnektir.** Varlık algılama AST tabanlıdır — SDK, kaynak dosyalarınızı `export default define<Entity>({...})` desenini bulmak için tarar. Dosyalarınızı ve klasörlerinizi dilediğiniz gibi düzenleyebilirsiniz. Varlık türüne göre gruplama (örn. `logic-functions/`, `roles/`) bir gereklilik değil, yalnızca kod organizasyonu için bir gelenektir.
@@ -169,7 +173,7 @@ export default defineObject({
İlerideki komutlar daha fazla dosya ve klasör ekleyecektir:
* `yarn twenty app:dev`, `node_modules/twenty-sdk/generated` içinde tipli bir API istemcisini otomatik olarak oluşturur (tipli Twenty istemcisi + çalışma alanı türleri).
* `yarn twenty entity:add`, özel nesneleriniz, fonksiyonlarınız, ön bileşenleriniz veya rolleriniz için `src/` altında varlık tanım dosyaları ekler.
* `yarn twenty entity:add` will add entity definition files under `src/` for your custom objects, functions, front components, roles, skills, and more.
## Kimlik Doğrulama
@@ -222,6 +226,7 @@ SDK, uygulama varlıklarınızı tanımlamak için yardımcı fonksiyonlar sağl
| `defineField()` | Mevcut nesneleri ek alanlarla genişletin |
| `defineView()` | Nesneler için kaydedilmiş görünümler tanımlayın |
| `defineNavigationMenuItem()` | Kenar çubuğu gezinme bağlantılarını tanımlayın |
| `defineSkill()` | Define AI agent skills |
Bu fonksiyonlar, derleme zamanında yapılandırmanızı doğrular ve IDE otomatik tamamlama ile tür güvenliği sağlar.
@@ -741,6 +746,41 @@ Yeni ön uç bileşenlerini iki şekilde oluşturabilirsiniz:
* **Şablondan**: `yarn twenty entity:add` çalıştırın ve yeni bir ön uç bileşeni ekleme seçeneğini seçin.
* **Manuel**: Yeni bir `*.front-component.tsx` dosyası oluşturun ve `defineFrontComponent()` kullanın.
### Beceriler
Skills define reusable instructions and capabilities that AI agents can use within your workspace. Use `defineSkill()` to define skills with built-in validation:
```typescript
// src/skills/example-skill.ts
import { defineSkill } from 'twenty-sdk';
export default defineSkill({
universalIdentifier: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
name: 'sales-outreach',
label: 'Sales Outreach',
description: 'Guides the AI agent through a structured sales outreach process',
icon: 'IconBrain',
content: `You are a sales outreach assistant. When reaching out to a prospect:
1. Research the company and recent news
2. Identify the prospect's role and likely pain points
3. Draft a personalized message referencing specific details
4. Keep the tone professional but conversational`,
});
```
Önemli noktalar:
* `name` is a unique identifier string for the skill (kebab-case recommended).
* `label` is the human-readable display name shown in the UI.
* `content` contains the skill instructions — this is the text the AI agent uses.
* `icon` (optional) sets the icon displayed in the UI.
* `description` (optional) provides additional context about the skill's purpose.
You can create new skills in two ways:
* **Scaffolded**: Run `yarn twenty entity:add` and choose the option to add a new skill.
* **Manual**: Create a new file and use `defineSkill()`, following the same pattern.
### Oluşturulmuş türlendirilmiş istemci
Tipli istemci, `yarn twenty app:dev` tarafından otomatik olarak oluşturulur ve çalışma alanı şemanıza göre `node_modules/twenty-sdk/generated` içine kaydedilir. Fonksiyonlarınızda kullanın:
@@ -15,6 +15,7 @@ description: 以代码的形式构建并管理 Twenty 自定义项。
* 以代码定义自定义对象和字段(受管理的数据模型)
* 构建带有自定义触发器的逻辑函数
* 为 AI 智能体定义技能
* 将同一个应用部署到多个工作空间
## 先决条件
@@ -45,7 +46,7 @@ yarn twenty app:dev
The scaffolder supports three modes for controlling which example files are included:
```bash filename="Terminal"
# Default (exhaustive): all examples (object, field, logic function, front component, view, navigation menu item)
# Default (exhaustive): all examples (object, field, logic function, front component, view, navigation menu item, skill)
npx create-twenty-app@latest my-app
# Minimal: only core files (application-config.ts and default-role.ts)
@@ -118,8 +119,10 @@ my-twenty-app/
│ └── hello-world.tsx # Example front component
├── views/
│ └── example-view.ts # Example saved view definition
── navigation-menu-items/
└── example-navigation-menu-item.ts # Example sidebar navigation link
── navigation-menu-items/
└── example-navigation-menu-item.ts # Example sidebar navigation link
└── skills/
└── example-skill.ts # Example AI agent skill definition
```
With `--minimal`, only the core files are created (`application-config.ts`, `roles/default-role.ts`, and `logic-functions/post-install.ts`). With `--interactive`, you choose which example files to include.
@@ -148,6 +151,7 @@ With `--minimal`, only the core files are created (`application-config.ts`, `rol
| `defineField()` | 现有对象的字段扩展 |
| `defineView()` | Saved view definitions |
| `defineNavigationMenuItem()` | Navigation menu item definitions |
| `defineSkill()` | AI agent skill definitions |
<Note>
**文件命名是灵活的。** 实体检测基于 AST — SDK 会扫描你的源文件以查找 `export default define<Entity>({...})` 模式。 你可以按照自己的喜好组织文件和文件夹。 按实体类型分组(例如 `logic-functions/`、`roles/`)只是代码组织的一种约定,并非必需。
@@ -169,7 +173,7 @@ export default defineObject({
后续命令将添加更多文件和文件夹:
* `yarn twenty app:dev` 将在 `node_modules/twenty-sdk/generated` 中自动生成一个类型化的 API 客户端(类型化的 Twenty 客户端 + 工作区类型)。
* `yarn twenty entity:add` 会在 `src/` 下为你的自定义对象、函数、前端组件或角色添加实体定义文件。
* `yarn twenty entity:add` will add entity definition files under `src/` for your custom objects, functions, front components, roles, skills, and more.
## 身份验证
@@ -222,6 +226,7 @@ twenty-sdk 提供你在应用中使用的类型化构件和辅助函数。 以
| `defineField()` | 为现有对象扩展额外字段 |
| `defineView()` | Define saved views for objects |
| `defineNavigationMenuItem()` | Define sidebar navigation links |
| `defineSkill()` | Define AI agent skills |
这些函数会在构建时校验你的配置,并提供 IDE 自动补全和类型安全。
@@ -497,7 +502,7 @@ export default defineLogicFunction({
安装后函数是在你的应用安装到工作区后自动运行的逻辑函数。 这对于一次性设置任务很有用,例如填充默认数据、创建初始记录或配置工作区设置。
When you scaffold a new app with `create-twenty-app`, a post-install function is generated for you at `src/logic-functions/post-install.ts`:
当你使用 `create-twenty-app` 脚手架创建一个新应用时,会在 `src/logic-functions/post-install.ts` 为你生成一个安装后函数:
```typescript
// src/logic-functions/post-install.ts
@@ -518,7 +523,7 @@ export default defineLogicFunction({
});
```
The function is wired into your app by referencing its universal identifier in `application-config.ts`:
通过在 `application-config.ts` 中引用其通用标识符,可将该函数接入你的应用:
```typescript
import { POST_INSTALL_UNIVERSAL_IDENTIFIER } from 'src/logic-functions/post-install';
@@ -741,6 +746,41 @@ export default defineFrontComponent({
* **脚手架生成**:运行 `yarn twenty entity:add` 并选择添加新前端组件的选项。
* **手动**:创建一个新的 `*.front-component.tsx` 文件,并使用 `defineFrontComponent()`。
### 技能
Skills define reusable instructions and capabilities that AI agents can use within your workspace. Use `defineSkill()` to define skills with built-in validation:
```typescript
// src/skills/example-skill.ts
import { defineSkill } from 'twenty-sdk';
export default defineSkill({
universalIdentifier: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
name: 'sales-outreach',
label: 'Sales Outreach',
description: 'Guides the AI agent through a structured sales outreach process',
icon: 'IconBrain',
content: `You are a sales outreach assistant. When reaching out to a prospect:
1. Research the company and recent news
2. Identify the prospect's role and likely pain points
3. Draft a personalized message referencing specific details
4. Keep the tone professional but conversational`,
});
```
关键点:
* `name` is a unique identifier string for the skill (kebab-case recommended).
* `label` is the human-readable display name shown in the UI.
* `content` contains the skill instructions — this is the text the AI agent uses.
* `icon` (optional) sets the icon displayed in the UI.
* `description` (optional) provides additional context about the skill's purpose.
You can create new skills in two ways:
* **Scaffolded**: Run `yarn twenty entity:add` and choose the option to add a new skill.
* **Manual**: Create a new file and use `defineSkill()`, following the same pattern.
### 生成的类型化客户端
类型化客户端由 `yarn twenty app:dev` 自动生成,并基于你的工作区架构存放在 `node_modules/twenty-sdk/generated`。 在你的函数中使用它:
+1 -1
View File
@@ -19,7 +19,7 @@
},
"devDependencies": {
"@lingui/cli": "^5.1.2",
"@lingui/swc-plugin": "^5.6.0",
"@lingui/swc-plugin": "^5.11.0",
"@lingui/vite-plugin": "^5.1.2",
"@react-email/preview-server": "5.1.0",
"@tiptap/core": "^3.4.2",
+1 -1
View File
@@ -120,7 +120,7 @@
},
"devDependencies": {
"@lingui/cli": "^5.1.2",
"@lingui/swc-plugin": "^5.6.0",
"@lingui/swc-plugin": "^5.11.0",
"@lingui/vite-plugin": "^5.1.2",
"@playwright/test": "^1.56.1",
"@tiptap/suggestion": "3.4.2",
File diff suppressed because one or more lines are too long
+22 -22
View File
@@ -311,6 +311,11 @@ msgstr "{morphRelationCount} Objekte"
msgid "{num, selectordinal, one {{num}st} two {{num}nd} few {{num}rd} other {{num}th}}"
msgstr "{num, selectordinal, one {{num}ste} other {{num}de}}"
#. js-lingui-id: fTSz8d
#: src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownActorSelect.tsx
msgid "{numberOfSelectedItems} workspace members"
msgstr ""
#. js-lingui-id: 7kYa/u
#: src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts
msgid "{objectLabelPlural} ({totalCount})"
@@ -770,6 +775,11 @@ msgstr "Voeg \"{trimmedName}\" by opsies"
msgid "Add a {objectLabelSingular}"
msgstr "Voeg 'n {objectLabelSingular} by"
#. js-lingui-id: 7W8nJr
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Add a Group"
msgstr ""
#. js-lingui-id: CZDwqQ
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Add a new company we're in touch with (e.g. name, website, industry). Details: "
@@ -786,11 +796,6 @@ msgstr "Voeg 'n nodus by"
msgid "Add a record"
msgstr ""
#. js-lingui-id: r8W+9y
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationSectionEditor.tsx
msgid "Add a Section"
msgstr ""
#. js-lingui-id: eMc2xs
#: src/modules/workflow/workflow-diagram/components/WorkflowDiagramCreateStepElement.tsx
msgid "Add a step"
@@ -1512,6 +1517,9 @@ msgstr "'n Fout het voorgekom tydens die oplaai van die prent."
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
@@ -3243,11 +3251,6 @@ msgstr "Kern"
msgid "Core Objects"
msgstr ""
#. js-lingui-id: cfa2VJ
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Core Schema"
msgstr "Kernskema"
#. js-lingui-id: I99Miw
#: src/modules/billing/components/SettingsBillingCreditsSection.tsx
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
@@ -6283,7 +6286,9 @@ msgstr ""
#: src/pages/settings/SettingsWorkspace.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetEditorGroupsData.ts
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
msgid "General"
msgstr "Algemeen"
@@ -7007,11 +7012,6 @@ msgstr "Instruksies vir KI"
msgid "Integrations - Settings"
msgstr "Integrasies - Instellings"
#. js-lingui-id: ntgzzG
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Interact with your workspace data"
msgstr "Interaksie met jou werkspasie-data"
#. js-lingui-id: jyjroS
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Interval switching has been cancelled."
@@ -8125,11 +8125,6 @@ msgstr "Metadata"
msgid "Metadata file generation failed"
msgstr "Metadataleêr generasie het misluk"
#. js-lingui-id: 0BF9eC
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Metadata Schema"
msgstr "Metadataskema"
#. js-lingui-id: onCJJ6
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Metered tier switching has been cancelled."
@@ -8522,6 +8517,11 @@ msgstr "Nuwe Veld"
msgid "New folder"
msgstr ""
#. js-lingui-id: 93KA8w
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationEditor.tsx
msgid "New Group"
msgstr ""
#. js-lingui-id: o8MyXb
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "New key"
@@ -9568,7 +9568,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/command-menu/pages/navigation-menu-item/components/CommandMenuNewSidebarItemMainMenu.tsx
msgid "Other"
msgstr "Ander"
+22 -22
View File
@@ -311,6 +311,11 @@ msgstr "{morphRelationCount, plural, zero {لا كائنات} one {كائن وا
msgid "{num, selectordinal, one {{num}st} two {{num}nd} few {{num}rd} other {{num}th}}"
msgstr ""
#. js-lingui-id: fTSz8d
#: src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownActorSelect.tsx
msgid "{numberOfSelectedItems} workspace members"
msgstr ""
#. js-lingui-id: 7kYa/u
#: src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts
msgid "{objectLabelPlural} ({totalCount})"
@@ -770,6 +775,11 @@ msgstr "أضف \"{trimmedName}\" إلى الخيارات"
msgid "Add a {objectLabelSingular}"
msgstr "أضف {objectLabelSingular}"
#. js-lingui-id: 7W8nJr
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Add a Group"
msgstr ""
#. js-lingui-id: CZDwqQ
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Add a new company we're in touch with (e.g. name, website, industry). Details: "
@@ -786,11 +796,6 @@ msgstr "إضافة عقدة"
msgid "Add a record"
msgstr ""
#. js-lingui-id: r8W+9y
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationSectionEditor.tsx
msgid "Add a Section"
msgstr ""
#. js-lingui-id: eMc2xs
#: src/modules/workflow/workflow-diagram/components/WorkflowDiagramCreateStepElement.tsx
msgid "Add a step"
@@ -1512,6 +1517,9 @@ msgstr "حدث خطأ أثناء تحميل الصورة."
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
@@ -3243,11 +3251,6 @@ msgstr "النواة"
msgid "Core Objects"
msgstr ""
#. js-lingui-id: cfa2VJ
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Core Schema"
msgstr "المخطط الأساسي"
#. js-lingui-id: I99Miw
#: src/modules/billing/components/SettingsBillingCreditsSection.tsx
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
@@ -6283,7 +6286,9 @@ msgstr "الرسم البياني القياسي"
#: src/pages/settings/SettingsWorkspace.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetEditorGroupsData.ts
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
msgid "General"
msgstr "عام"
@@ -7007,11 +7012,6 @@ msgstr "تعليمات إلى الذكاء الاصطناعي"
msgid "Integrations - Settings"
msgstr "التكاملات - إعدادات"
#. js-lingui-id: ntgzzG
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Interact with your workspace data"
msgstr "تفاعل مع بيانات مساحة العمل الخاصة بك"
#. js-lingui-id: jyjroS
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Interval switching has been cancelled."
@@ -8125,11 +8125,6 @@ msgstr "البيانات الوصفية"
msgid "Metadata file generation failed"
msgstr "فشل في توليد ملف البيانات الوصفية"
#. js-lingui-id: 0BF9eC
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Metadata Schema"
msgstr "مخطط البيانات الوصفية"
#. js-lingui-id: onCJJ6
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Metered tier switching has been cancelled."
@@ -8522,6 +8517,11 @@ msgstr "حقل جديد"
msgid "New folder"
msgstr ""
#. js-lingui-id: 93KA8w
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationEditor.tsx
msgid "New Group"
msgstr ""
#. js-lingui-id: o8MyXb
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "New key"
@@ -9568,7 +9568,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/command-menu/pages/navigation-menu-item/components/CommandMenuNewSidebarItemMainMenu.tsx
msgid "Other"
msgstr "أخرى"
+22 -22
View File
@@ -311,6 +311,11 @@ msgstr "{morphRelationCount} objectes"
msgid "{num, selectordinal, one {{num}st} two {{num}nd} few {{num}rd} other {{num}th}}"
msgstr "{num, selectordinal, one {{num}r} other {{num}è}}"
#. js-lingui-id: fTSz8d
#: src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownActorSelect.tsx
msgid "{numberOfSelectedItems} workspace members"
msgstr ""
#. js-lingui-id: 7kYa/u
#: src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts
msgid "{objectLabelPlural} ({totalCount})"
@@ -770,6 +775,11 @@ msgstr "Afegeix \"{trimmedName}\" a les opcions"
msgid "Add a {objectLabelSingular}"
msgstr "Afegeix un {objectLabelSingular}"
#. js-lingui-id: 7W8nJr
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Add a Group"
msgstr ""
#. js-lingui-id: CZDwqQ
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Add a new company we're in touch with (e.g. name, website, industry). Details: "
@@ -786,11 +796,6 @@ msgstr "Afegeix un node"
msgid "Add a record"
msgstr ""
#. js-lingui-id: r8W+9y
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationSectionEditor.tsx
msgid "Add a Section"
msgstr ""
#. js-lingui-id: eMc2xs
#: src/modules/workflow/workflow-diagram/components/WorkflowDiagramCreateStepElement.tsx
msgid "Add a step"
@@ -1512,6 +1517,9 @@ msgstr "S'ha produït un error en carregar la imatge."
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
@@ -3243,11 +3251,6 @@ msgstr "Nucli"
msgid "Core Objects"
msgstr ""
#. js-lingui-id: cfa2VJ
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Core Schema"
msgstr "Esquema del nucli"
#. js-lingui-id: I99Miw
#: src/modules/billing/components/SettingsBillingCreditsSection.tsx
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
@@ -6283,7 +6286,9 @@ msgstr "Gràfic de mesurador"
#: src/pages/settings/SettingsWorkspace.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetEditorGroupsData.ts
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
msgid "General"
msgstr "General"
@@ -7007,11 +7012,6 @@ msgstr "Instruccions per a la IA"
msgid "Integrations - Settings"
msgstr "Integracions - Configuració"
#. js-lingui-id: ntgzzG
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Interact with your workspace data"
msgstr "Interactua amb les dades del teu espai de treball"
#. js-lingui-id: jyjroS
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Interval switching has been cancelled."
@@ -8125,11 +8125,6 @@ msgstr "Metadades"
msgid "Metadata file generation failed"
msgstr "Error en la generació del fitxer de metadades"
#. js-lingui-id: 0BF9eC
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Metadata Schema"
msgstr "Esquema de metadades"
#. js-lingui-id: onCJJ6
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Metered tier switching has been cancelled."
@@ -8522,6 +8517,11 @@ msgstr "Nou camp"
msgid "New folder"
msgstr ""
#. js-lingui-id: 93KA8w
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationEditor.tsx
msgid "New Group"
msgstr ""
#. js-lingui-id: o8MyXb
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "New key"
@@ -9568,7 +9568,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/command-menu/pages/navigation-menu-item/components/CommandMenuNewSidebarItemMainMenu.tsx
msgid "Other"
msgstr "Altres"
+22 -22
View File
@@ -311,6 +311,11 @@ msgstr "{morphRelationCount} objektů"
msgid "{num, selectordinal, one {{num}st} two {{num}nd} few {{num}rd} other {{num}th}}"
msgstr "{num, selectordinal, one {{num}.} few {{num}.} many {{num}.} other {{num}.}}"
#. js-lingui-id: fTSz8d
#: src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownActorSelect.tsx
msgid "{numberOfSelectedItems} workspace members"
msgstr ""
#. js-lingui-id: 7kYa/u
#: src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts
msgid "{objectLabelPlural} ({totalCount})"
@@ -770,6 +775,11 @@ msgstr "Přidat \"{trimmedName}\" do možností"
msgid "Add a {objectLabelSingular}"
msgstr "Přidat {objectLabelSingular}"
#. js-lingui-id: 7W8nJr
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Add a Group"
msgstr ""
#. js-lingui-id: CZDwqQ
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Add a new company we're in touch with (e.g. name, website, industry). Details: "
@@ -786,11 +796,6 @@ msgstr "Přidat uzel"
msgid "Add a record"
msgstr ""
#. js-lingui-id: r8W+9y
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationSectionEditor.tsx
msgid "Add a Section"
msgstr ""
#. js-lingui-id: eMc2xs
#: src/modules/workflow/workflow-diagram/components/WorkflowDiagramCreateStepElement.tsx
msgid "Add a step"
@@ -1512,6 +1517,9 @@ msgstr "Při nahrávání obrázku došlo k chybě."
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
@@ -3243,11 +3251,6 @@ msgstr "Jádro"
msgid "Core Objects"
msgstr ""
#. js-lingui-id: cfa2VJ
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Core Schema"
msgstr "Základní schéma"
#. js-lingui-id: I99Miw
#: src/modules/billing/components/SettingsBillingCreditsSection.tsx
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
@@ -6283,7 +6286,9 @@ msgstr "Ukazatelový graf"
#: src/pages/settings/SettingsWorkspace.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetEditorGroupsData.ts
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
msgid "General"
msgstr "Obecné"
@@ -7007,11 +7012,6 @@ msgstr "Pokyny pro AI"
msgid "Integrations - Settings"
msgstr "Integrace - Nastavení"
#. js-lingui-id: ntgzzG
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Interact with your workspace data"
msgstr "Interakce s daty vašeho pracovního prostoru"
#. js-lingui-id: jyjroS
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Interval switching has been cancelled."
@@ -8125,11 +8125,6 @@ msgstr "Metadata"
msgid "Metadata file generation failed"
msgstr "Generování souboru metadat selhalo"
#. js-lingui-id: 0BF9eC
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Metadata Schema"
msgstr "Schéma metadat"
#. js-lingui-id: onCJJ6
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Metered tier switching has been cancelled."
@@ -8522,6 +8517,11 @@ msgstr "Nové pole"
msgid "New folder"
msgstr ""
#. js-lingui-id: 93KA8w
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationEditor.tsx
msgid "New Group"
msgstr ""
#. js-lingui-id: o8MyXb
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "New key"
@@ -9568,7 +9568,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/command-menu/pages/navigation-menu-item/components/CommandMenuNewSidebarItemMainMenu.tsx
msgid "Other"
msgstr "Ostatní"
+22 -22
View File
@@ -311,6 +311,11 @@ msgstr "{morphRelationCount} objekter"
msgid "{num, selectordinal, one {{num}st} two {{num}nd} few {{num}rd} other {{num}th}}"
msgstr "{num, selectordinal, one {{num}ste} other {{num}te}}"
#. js-lingui-id: fTSz8d
#: src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownActorSelect.tsx
msgid "{numberOfSelectedItems} workspace members"
msgstr ""
#. js-lingui-id: 7kYa/u
#: src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts
msgid "{objectLabelPlural} ({totalCount})"
@@ -770,6 +775,11 @@ msgstr "Tilføj \"{trimmedName}\" til muligheder"
msgid "Add a {objectLabelSingular}"
msgstr "Tilføj {objectLabelSingular}"
#. js-lingui-id: 7W8nJr
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Add a Group"
msgstr ""
#. js-lingui-id: CZDwqQ
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Add a new company we're in touch with (e.g. name, website, industry). Details: "
@@ -786,11 +796,6 @@ msgstr "Tilføj en node"
msgid "Add a record"
msgstr ""
#. js-lingui-id: r8W+9y
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationSectionEditor.tsx
msgid "Add a Section"
msgstr ""
#. js-lingui-id: eMc2xs
#: src/modules/workflow/workflow-diagram/components/WorkflowDiagramCreateStepElement.tsx
msgid "Add a step"
@@ -1512,6 +1517,9 @@ msgstr "Der opstod en fejl under upload af billedet."
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
@@ -3243,11 +3251,6 @@ msgstr "Kerne"
msgid "Core Objects"
msgstr ""
#. js-lingui-id: cfa2VJ
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Core Schema"
msgstr "Kerneskema"
#. js-lingui-id: I99Miw
#: src/modules/billing/components/SettingsBillingCreditsSection.tsx
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
@@ -6283,7 +6286,9 @@ msgstr "Målediagram"
#: src/pages/settings/SettingsWorkspace.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetEditorGroupsData.ts
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
msgid "General"
msgstr "Generelt"
@@ -7007,11 +7012,6 @@ msgstr "Instruktioner til AI"
msgid "Integrations - Settings"
msgstr "Integrationer - Indstillinger"
#. js-lingui-id: ntgzzG
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Interact with your workspace data"
msgstr "Interagér med dine arbejdspladsdata"
#. js-lingui-id: jyjroS
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Interval switching has been cancelled."
@@ -8125,11 +8125,6 @@ msgstr "Metadata"
msgid "Metadata file generation failed"
msgstr "Generering af metadatafil mislykkedes"
#. js-lingui-id: 0BF9eC
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Metadata Schema"
msgstr "Metadata-skema"
#. js-lingui-id: onCJJ6
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Metered tier switching has been cancelled."
@@ -8522,6 +8517,11 @@ msgstr "Nyt felt"
msgid "New folder"
msgstr ""
#. js-lingui-id: 93KA8w
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationEditor.tsx
msgid "New Group"
msgstr ""
#. js-lingui-id: o8MyXb
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "New key"
@@ -9568,7 +9568,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/command-menu/pages/navigation-menu-item/components/CommandMenuNewSidebarItemMainMenu.tsx
msgid "Other"
msgstr "Andet"
+22 -22
View File
@@ -311,6 +311,11 @@ msgstr "{morphRelationCount} Objekte"
msgid "{num, selectordinal, one {{num}st} two {{num}nd} few {{num}rd} other {{num}th}}"
msgstr "{num, selectordinal, one {{num}.} other {{num}.}}"
#. js-lingui-id: fTSz8d
#: src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownActorSelect.tsx
msgid "{numberOfSelectedItems} workspace members"
msgstr ""
#. js-lingui-id: 7kYa/u
#: src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts
msgid "{objectLabelPlural} ({totalCount})"
@@ -770,6 +775,11 @@ msgstr "\"{trimmedName}\" zu den Optionen hinzufügen"
msgid "Add a {objectLabelSingular}"
msgstr "Ein {objectLabelSingular} hinzufügen"
#. js-lingui-id: 7W8nJr
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Add a Group"
msgstr ""
#. js-lingui-id: CZDwqQ
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Add a new company we're in touch with (e.g. name, website, industry). Details: "
@@ -786,11 +796,6 @@ msgstr "Knoten hinzufügen"
msgid "Add a record"
msgstr ""
#. js-lingui-id: r8W+9y
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationSectionEditor.tsx
msgid "Add a Section"
msgstr ""
#. js-lingui-id: eMc2xs
#: src/modules/workflow/workflow-diagram/components/WorkflowDiagramCreateStepElement.tsx
msgid "Add a step"
@@ -1512,6 +1517,9 @@ msgstr "Beim Hochladen des Bildes ist ein Fehler aufgetreten."
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
@@ -3243,11 +3251,6 @@ msgstr "Kern"
msgid "Core Objects"
msgstr ""
#. js-lingui-id: cfa2VJ
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Core Schema"
msgstr "Kernschema"
#. js-lingui-id: I99Miw
#: src/modules/billing/components/SettingsBillingCreditsSection.tsx
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
@@ -6283,7 +6286,9 @@ msgstr ""
#: src/pages/settings/SettingsWorkspace.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetEditorGroupsData.ts
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
msgid "General"
msgstr "Allgemein"
@@ -7007,11 +7012,6 @@ msgstr "Anweisungen für die KI"
msgid "Integrations - Settings"
msgstr "Integrationen - Einstellungen"
#. js-lingui-id: ntgzzG
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Interact with your workspace data"
msgstr "Interagieren Sie mit Ihren Arbeitsbereichsdaten"
#. js-lingui-id: jyjroS
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Interval switching has been cancelled."
@@ -8125,11 +8125,6 @@ msgstr "Metadaten"
msgid "Metadata file generation failed"
msgstr "Generierung der Metadatendatei fehlgeschlagen"
#. js-lingui-id: 0BF9eC
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Metadata Schema"
msgstr "Metadaten-Schema"
#. js-lingui-id: onCJJ6
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Metered tier switching has been cancelled."
@@ -8522,6 +8517,11 @@ msgstr "Neues Feld"
msgid "New folder"
msgstr ""
#. js-lingui-id: 93KA8w
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationEditor.tsx
msgid "New Group"
msgstr ""
#. js-lingui-id: o8MyXb
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "New key"
@@ -9568,7 +9568,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/command-menu/pages/navigation-menu-item/components/CommandMenuNewSidebarItemMainMenu.tsx
msgid "Other"
msgstr "Andere"
+22 -22
View File
@@ -311,6 +311,11 @@ msgstr "{morphRelationCount} Αντικείμενα"
msgid "{num, selectordinal, one {{num}st} two {{num}nd} few {{num}rd} other {{num}th}}"
msgstr "{num, selectordinal, one {{num}η} other {{num}η}}"
#. js-lingui-id: fTSz8d
#: src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownActorSelect.tsx
msgid "{numberOfSelectedItems} workspace members"
msgstr ""
#. js-lingui-id: 7kYa/u
#: src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts
msgid "{objectLabelPlural} ({totalCount})"
@@ -770,6 +775,11 @@ msgstr "Προσθήκη \"{trimmedName}\" στις επιλογές"
msgid "Add a {objectLabelSingular}"
msgstr "Προσθήκη {objectLabelSingular}"
#. js-lingui-id: 7W8nJr
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Add a Group"
msgstr ""
#. js-lingui-id: CZDwqQ
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Add a new company we're in touch with (e.g. name, website, industry). Details: "
@@ -786,11 +796,6 @@ msgstr "Προσθήκη κόμβου"
msgid "Add a record"
msgstr ""
#. js-lingui-id: r8W+9y
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationSectionEditor.tsx
msgid "Add a Section"
msgstr ""
#. js-lingui-id: eMc2xs
#: src/modules/workflow/workflow-diagram/components/WorkflowDiagramCreateStepElement.tsx
msgid "Add a step"
@@ -1512,6 +1517,9 @@ msgstr "Παρουσιάστηκε σφάλμα κατά τη μεταφόρτω
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
@@ -3243,11 +3251,6 @@ msgstr "Πυρήνας"
msgid "Core Objects"
msgstr ""
#. js-lingui-id: cfa2VJ
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Core Schema"
msgstr "Βασικό σχήμα"
#. js-lingui-id: I99Miw
#: src/modules/billing/components/SettingsBillingCreditsSection.tsx
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
@@ -6283,7 +6286,9 @@ msgstr "Διάγραμμα δείκτη"
#: src/pages/settings/SettingsWorkspace.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetEditorGroupsData.ts
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
msgid "General"
msgstr "Γενικά"
@@ -7007,11 +7012,6 @@ msgstr "Οδηγίες για το AI"
msgid "Integrations - Settings"
msgstr "Ενσωματώσεις - Ρυθμίσεις"
#. js-lingui-id: ntgzzG
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Interact with your workspace data"
msgstr "Αλληλεπιδράστε με τα δεδομένα του χώρου εργασίας σας"
#. js-lingui-id: jyjroS
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Interval switching has been cancelled."
@@ -8125,11 +8125,6 @@ msgstr "Μεταδεδομένα"
msgid "Metadata file generation failed"
msgstr "Αποτυχία δημιουργίας αρχείου μεταδεδομένων"
#. js-lingui-id: 0BF9eC
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Metadata Schema"
msgstr "Σχήμα μεταδεδομένων"
#. js-lingui-id: onCJJ6
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Metered tier switching has been cancelled."
@@ -8522,6 +8517,11 @@ msgstr "Νέο Πεδίο"
msgid "New folder"
msgstr ""
#. js-lingui-id: 93KA8w
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationEditor.tsx
msgid "New Group"
msgstr ""
#. js-lingui-id: o8MyXb
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "New key"
@@ -9568,7 +9568,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/command-menu/pages/navigation-menu-item/components/CommandMenuNewSidebarItemMainMenu.tsx
msgid "Other"
msgstr "Άλλο"
+22 -22
View File
@@ -306,6 +306,11 @@ msgstr "{morphRelationCount} Objects"
msgid "{num, selectordinal, one {{num}st} two {{num}nd} few {{num}rd} other {{num}th}}"
msgstr "{num, selectordinal, one {{num}st} two {{num}nd} few {{num}rd} other {{num}th}}"
#. js-lingui-id: fTSz8d
#: src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownActorSelect.tsx
msgid "{numberOfSelectedItems} workspace members"
msgstr "{numberOfSelectedItems} workspace members"
#. js-lingui-id: 7kYa/u
#: src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts
msgid "{objectLabelPlural} ({totalCount})"
@@ -765,6 +770,11 @@ msgstr "Add \"{trimmedName}\" to options"
msgid "Add a {objectLabelSingular}"
msgstr "Add a {objectLabelSingular}"
#. js-lingui-id: 7W8nJr
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Add a Group"
msgstr "Add a Group"
#. js-lingui-id: CZDwqQ
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Add a new company we're in touch with (e.g. name, website, industry). Details: "
@@ -781,11 +791,6 @@ msgstr "Add a node"
msgid "Add a record"
msgstr "Add a record"
#. js-lingui-id: r8W+9y
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationSectionEditor.tsx
msgid "Add a Section"
msgstr "Add a Section"
#. js-lingui-id: eMc2xs
#: src/modules/workflow/workflow-diagram/components/WorkflowDiagramCreateStepElement.tsx
msgid "Add a step"
@@ -1507,6 +1512,9 @@ msgstr "An error occurred while uploading the picture."
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
@@ -3238,11 +3246,6 @@ msgstr "Core"
msgid "Core Objects"
msgstr "Core Objects"
#. js-lingui-id: cfa2VJ
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Core Schema"
msgstr "Core Schema"
#. js-lingui-id: I99Miw
#: src/modules/billing/components/SettingsBillingCreditsSection.tsx
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
@@ -6278,7 +6281,9 @@ msgstr "Gauge Chart"
#: src/pages/settings/SettingsWorkspace.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetEditorGroupsData.ts
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
msgid "General"
msgstr "General"
@@ -7002,11 +7007,6 @@ msgstr "Instructions for AI"
msgid "Integrations - Settings"
msgstr "Integrations - Settings"
#. js-lingui-id: ntgzzG
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Interact with your workspace data"
msgstr "Interact with your workspace data"
#. js-lingui-id: jyjroS
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Interval switching has been cancelled."
@@ -8120,11 +8120,6 @@ msgstr "Metadata"
msgid "Metadata file generation failed"
msgstr "Metadata file generation failed"
#. js-lingui-id: 0BF9eC
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Metadata Schema"
msgstr "Metadata Schema"
#. js-lingui-id: onCJJ6
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Metered tier switching has been cancelled."
@@ -8517,6 +8512,11 @@ msgstr "New Field"
msgid "New folder"
msgstr "New folder"
#. js-lingui-id: 93KA8w
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationEditor.tsx
msgid "New Group"
msgstr "New Group"
#. js-lingui-id: o8MyXb
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "New key"
@@ -9563,7 +9563,7 @@ msgstr "Organize"
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/command-menu/pages/navigation-menu-item/components/CommandMenuNewSidebarItemMainMenu.tsx
msgid "Other"
msgstr "Other"
+22 -22
View File
@@ -311,6 +311,11 @@ msgstr "{morphRelationCount} objetos"
msgid "{num, selectordinal, one {{num}st} two {{num}nd} few {{num}rd} other {{num}th}}"
msgstr "{num, selectordinal, one {{num}º} other {{num}.º}}"
#. js-lingui-id: fTSz8d
#: src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownActorSelect.tsx
msgid "{numberOfSelectedItems} workspace members"
msgstr ""
#. js-lingui-id: 7kYa/u
#: src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts
msgid "{objectLabelPlural} ({totalCount})"
@@ -770,6 +775,11 @@ msgstr "Agregar \"{trimmedName}\" a las opciones"
msgid "Add a {objectLabelSingular}"
msgstr "Agregar un {objectLabelSingular}"
#. js-lingui-id: 7W8nJr
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Add a Group"
msgstr ""
#. js-lingui-id: CZDwqQ
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Add a new company we're in touch with (e.g. name, website, industry). Details: "
@@ -786,11 +796,6 @@ msgstr "Añadir un nodo"
msgid "Add a record"
msgstr ""
#. js-lingui-id: r8W+9y
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationSectionEditor.tsx
msgid "Add a Section"
msgstr ""
#. js-lingui-id: eMc2xs
#: src/modules/workflow/workflow-diagram/components/WorkflowDiagramCreateStepElement.tsx
msgid "Add a step"
@@ -1512,6 +1517,9 @@ msgstr "Se produjo un error al subir la imagen."
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
@@ -3243,11 +3251,6 @@ msgstr "Núcleo"
msgid "Core Objects"
msgstr ""
#. js-lingui-id: cfa2VJ
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Core Schema"
msgstr "Esquema principal"
#. js-lingui-id: I99Miw
#: src/modules/billing/components/SettingsBillingCreditsSection.tsx
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
@@ -6283,7 +6286,9 @@ msgstr "Gráfico de Medidor"
#: src/pages/settings/SettingsWorkspace.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetEditorGroupsData.ts
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
msgid "General"
msgstr "General"
@@ -7007,11 +7012,6 @@ msgstr "Instrucciones para la IA"
msgid "Integrations - Settings"
msgstr "Integraciones - Ajustes"
#. js-lingui-id: ntgzzG
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Interact with your workspace data"
msgstr "Interactúe con los datos de su espacio de trabajo"
#. js-lingui-id: jyjroS
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Interval switching has been cancelled."
@@ -8125,11 +8125,6 @@ msgstr "Metadatos"
msgid "Metadata file generation failed"
msgstr "Fallo en la generación del archivo de metadatos"
#. js-lingui-id: 0BF9eC
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Metadata Schema"
msgstr "Esquema de metadatos"
#. js-lingui-id: onCJJ6
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Metered tier switching has been cancelled."
@@ -8522,6 +8517,11 @@ msgstr "Nuevo Campo"
msgid "New folder"
msgstr ""
#. js-lingui-id: 93KA8w
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationEditor.tsx
msgid "New Group"
msgstr ""
#. js-lingui-id: o8MyXb
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "New key"
@@ -9568,7 +9568,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/command-menu/pages/navigation-menu-item/components/CommandMenuNewSidebarItemMainMenu.tsx
msgid "Other"
msgstr "Otros"
+22 -22
View File
@@ -311,6 +311,11 @@ msgstr "{morphRelationCount} objektia"
msgid "{num, selectordinal, one {{num}st} two {{num}nd} few {{num}rd} other {{num}th}}"
msgstr "{num, selectordinal, one {{num}.} other {{num}.}}"
#. js-lingui-id: fTSz8d
#: src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownActorSelect.tsx
msgid "{numberOfSelectedItems} workspace members"
msgstr ""
#. js-lingui-id: 7kYa/u
#: src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts
msgid "{objectLabelPlural} ({totalCount})"
@@ -770,6 +775,11 @@ msgstr "Lisää \"{trimmedName}\" valintoihin"
msgid "Add a {objectLabelSingular}"
msgstr "Lisää {objectLabelSingular}"
#. js-lingui-id: 7W8nJr
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Add a Group"
msgstr ""
#. js-lingui-id: CZDwqQ
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Add a new company we're in touch with (e.g. name, website, industry). Details: "
@@ -786,11 +796,6 @@ msgstr "Lisää solmu"
msgid "Add a record"
msgstr ""
#. js-lingui-id: r8W+9y
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationSectionEditor.tsx
msgid "Add a Section"
msgstr ""
#. js-lingui-id: eMc2xs
#: src/modules/workflow/workflow-diagram/components/WorkflowDiagramCreateStepElement.tsx
msgid "Add a step"
@@ -1512,6 +1517,9 @@ msgstr "Kuvaa ladattaessa tapahtui virhe."
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
@@ -3243,11 +3251,6 @@ msgstr "Ydin"
msgid "Core Objects"
msgstr ""
#. js-lingui-id: cfa2VJ
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Core Schema"
msgstr "Ydinskeema"
#. js-lingui-id: I99Miw
#: src/modules/billing/components/SettingsBillingCreditsSection.tsx
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
@@ -6283,7 +6286,9 @@ msgstr "Mittarikaavio"
#: src/pages/settings/SettingsWorkspace.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetEditorGroupsData.ts
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
msgid "General"
msgstr "Yleiset"
@@ -7007,11 +7012,6 @@ msgstr "Ohjeet tekoälylle"
msgid "Integrations - Settings"
msgstr "Integraatiot - Asetukset"
#. js-lingui-id: ntgzzG
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Interact with your workspace data"
msgstr "Vuorovaikuta työtilasi tietojen kanssa"
#. js-lingui-id: jyjroS
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Interval switching has been cancelled."
@@ -8125,11 +8125,6 @@ msgstr "Metatiedot"
msgid "Metadata file generation failed"
msgstr "Metatiedostotiedoston luonti epäonnistui"
#. js-lingui-id: 0BF9eC
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Metadata Schema"
msgstr "Metatietoskeema"
#. js-lingui-id: onCJJ6
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Metered tier switching has been cancelled."
@@ -8522,6 +8517,11 @@ msgstr "Uusi kenttä"
msgid "New folder"
msgstr ""
#. js-lingui-id: 93KA8w
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationEditor.tsx
msgid "New Group"
msgstr ""
#. js-lingui-id: o8MyXb
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "New key"
@@ -9568,7 +9568,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/command-menu/pages/navigation-menu-item/components/CommandMenuNewSidebarItemMainMenu.tsx
msgid "Other"
msgstr "Muu"
+22 -22
View File
@@ -311,6 +311,11 @@ msgstr "{morphRelationCount} objets"
msgid "{num, selectordinal, one {{num}st} two {{num}nd} few {{num}rd} other {{num}th}}"
msgstr "{num, selectordinal, one {{num}er} other {{num}e}}"
#. js-lingui-id: fTSz8d
#: src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownActorSelect.tsx
msgid "{numberOfSelectedItems} workspace members"
msgstr ""
#. js-lingui-id: 7kYa/u
#: src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts
msgid "{objectLabelPlural} ({totalCount})"
@@ -770,6 +775,11 @@ msgstr "Ajouter \"{trimmedName}\" aux options"
msgid "Add a {objectLabelSingular}"
msgstr "Ajouter un {objectLabelSingular}"
#. js-lingui-id: 7W8nJr
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Add a Group"
msgstr ""
#. js-lingui-id: CZDwqQ
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Add a new company we're in touch with (e.g. name, website, industry). Details: "
@@ -786,11 +796,6 @@ msgstr "Ajouter un nœud"
msgid "Add a record"
msgstr ""
#. js-lingui-id: r8W+9y
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationSectionEditor.tsx
msgid "Add a Section"
msgstr ""
#. js-lingui-id: eMc2xs
#: src/modules/workflow/workflow-diagram/components/WorkflowDiagramCreateStepElement.tsx
msgid "Add a step"
@@ -1512,6 +1517,9 @@ msgstr "Une erreur s'est produite lors du téléversement de l'image."
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
@@ -3243,11 +3251,6 @@ msgstr "Noyau"
msgid "Core Objects"
msgstr ""
#. js-lingui-id: cfa2VJ
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Core Schema"
msgstr "Schéma principal"
#. js-lingui-id: I99Miw
#: src/modules/billing/components/SettingsBillingCreditsSection.tsx
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
@@ -6283,7 +6286,9 @@ msgstr ""
#: src/pages/settings/SettingsWorkspace.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetEditorGroupsData.ts
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
msgid "General"
msgstr "Général"
@@ -7007,11 +7012,6 @@ msgstr "Instructions pour l'IA"
msgid "Integrations - Settings"
msgstr "Intégrations - Paramètres"
#. js-lingui-id: ntgzzG
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Interact with your workspace data"
msgstr "Interagissez avec les données de votre espace de travail"
#. js-lingui-id: jyjroS
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Interval switching has been cancelled."
@@ -8125,11 +8125,6 @@ msgstr "Métadonnées"
msgid "Metadata file generation failed"
msgstr "Échec de la génération du fichier des métadonnées"
#. js-lingui-id: 0BF9eC
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Metadata Schema"
msgstr "Schéma des métadonnées"
#. js-lingui-id: onCJJ6
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Metered tier switching has been cancelled."
@@ -8522,6 +8517,11 @@ msgstr "Nouveau champ"
msgid "New folder"
msgstr ""
#. js-lingui-id: 93KA8w
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationEditor.tsx
msgid "New Group"
msgstr ""
#. js-lingui-id: o8MyXb
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "New key"
@@ -9568,7 +9568,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/command-menu/pages/navigation-menu-item/components/CommandMenuNewSidebarItemMainMenu.tsx
msgid "Other"
msgstr "Autres"
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
+22 -22
View File
@@ -311,6 +311,11 @@ msgstr "{morphRelationCount} אובייקטים"
msgid "{num, selectordinal, one {{num}st} two {{num}nd} few {{num}rd} other {{num}th}}"
msgstr "{num, selectordinal, one {{num} ראשון} two {{num} שני} many {{num} ־ות} other {{num} ־ות}}"
#. js-lingui-id: fTSz8d
#: src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownActorSelect.tsx
msgid "{numberOfSelectedItems} workspace members"
msgstr ""
#. js-lingui-id: 7kYa/u
#: src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts
msgid "{objectLabelPlural} ({totalCount})"
@@ -770,6 +775,11 @@ msgstr "הוסף \"{trimmedName}\" לאפשרויות"
msgid "Add a {objectLabelSingular}"
msgstr "הוסף {objectLabelSingular}"
#. js-lingui-id: 7W8nJr
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Add a Group"
msgstr ""
#. js-lingui-id: CZDwqQ
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Add a new company we're in touch with (e.g. name, website, industry). Details: "
@@ -786,11 +796,6 @@ msgstr "הוסף צומת"
msgid "Add a record"
msgstr ""
#. js-lingui-id: r8W+9y
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationSectionEditor.tsx
msgid "Add a Section"
msgstr ""
#. js-lingui-id: eMc2xs
#: src/modules/workflow/workflow-diagram/components/WorkflowDiagramCreateStepElement.tsx
msgid "Add a step"
@@ -1512,6 +1517,9 @@ msgstr "אירעה שגיאה בעת העלאת התמונה."
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
@@ -3243,11 +3251,6 @@ msgstr "ליבה"
msgid "Core Objects"
msgstr ""
#. js-lingui-id: cfa2VJ
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Core Schema"
msgstr "סכימת ליבה"
#. js-lingui-id: I99Miw
#: src/modules/billing/components/SettingsBillingCreditsSection.tsx
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
@@ -6283,7 +6286,9 @@ msgstr "תרשים מד"
#: src/pages/settings/SettingsWorkspace.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetEditorGroupsData.ts
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
msgid "General"
msgstr "כללי"
@@ -7007,11 +7012,6 @@ msgstr "הוראות לבינה מלאכותית"
msgid "Integrations - Settings"
msgstr "אינטגרציות - הגדרות"
#. js-lingui-id: ntgzzG
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Interact with your workspace data"
msgstr "אינטראקציה עם נתוני סביבת העבודה שלך"
#. js-lingui-id: jyjroS
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Interval switching has been cancelled."
@@ -8125,11 +8125,6 @@ msgstr "מטא-נתונים"
msgid "Metadata file generation failed"
msgstr "יצירת קובץ מטא נתונים נכשלה"
#. js-lingui-id: 0BF9eC
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Metadata Schema"
msgstr "סכימת מטא-נתונים"
#. js-lingui-id: onCJJ6
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Metered tier switching has been cancelled."
@@ -8522,6 +8517,11 @@ msgstr "שדה חדש"
msgid "New folder"
msgstr ""
#. js-lingui-id: 93KA8w
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationEditor.tsx
msgid "New Group"
msgstr ""
#. js-lingui-id: o8MyXb
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "New key"
@@ -9568,7 +9568,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/command-menu/pages/navigation-menu-item/components/CommandMenuNewSidebarItemMainMenu.tsx
msgid "Other"
msgstr "אחר"
+22 -22
View File
@@ -311,6 +311,11 @@ msgstr "{morphRelationCount} objektum"
msgid "{num, selectordinal, one {{num}st} two {{num}nd} few {{num}rd} other {{num}th}}"
msgstr "{num, selectordinal, one {{num}-ik} other {{num}-ik}}"
#. js-lingui-id: fTSz8d
#: src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownActorSelect.tsx
msgid "{numberOfSelectedItems} workspace members"
msgstr ""
#. js-lingui-id: 7kYa/u
#: src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts
msgid "{objectLabelPlural} ({totalCount})"
@@ -770,6 +775,11 @@ msgstr "\"{trimmedName}\" hozzáadása az opciókhoz"
msgid "Add a {objectLabelSingular}"
msgstr "Új {objectLabelSingular} hozzáadása"
#. js-lingui-id: 7W8nJr
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Add a Group"
msgstr ""
#. js-lingui-id: CZDwqQ
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Add a new company we're in touch with (e.g. name, website, industry). Details: "
@@ -786,11 +796,6 @@ msgstr "Csomópont hozzáadása"
msgid "Add a record"
msgstr ""
#. js-lingui-id: r8W+9y
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationSectionEditor.tsx
msgid "Add a Section"
msgstr ""
#. js-lingui-id: eMc2xs
#: src/modules/workflow/workflow-diagram/components/WorkflowDiagramCreateStepElement.tsx
msgid "Add a step"
@@ -1512,6 +1517,9 @@ msgstr "Hiba történt a kép feltöltése közben."
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
@@ -3243,11 +3251,6 @@ msgstr "Mag"
msgid "Core Objects"
msgstr ""
#. js-lingui-id: cfa2VJ
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Core Schema"
msgstr "Alap séma"
#. js-lingui-id: I99Miw
#: src/modules/billing/components/SettingsBillingCreditsSection.tsx
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
@@ -6283,7 +6286,9 @@ msgstr "Mérőműszer diagram"
#: src/pages/settings/SettingsWorkspace.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetEditorGroupsData.ts
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
msgid "General"
msgstr "Általános"
@@ -7007,11 +7012,6 @@ msgstr "Utasítások az AI-nak"
msgid "Integrations - Settings"
msgstr "Integrációk - Beállítások"
#. js-lingui-id: ntgzzG
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Interact with your workspace data"
msgstr "Lépjen kapcsolatba a munkaterület adatával"
#. js-lingui-id: jyjroS
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Interval switching has been cancelled."
@@ -8125,11 +8125,6 @@ msgstr "Metaadatok"
msgid "Metadata file generation failed"
msgstr "Metadat fájl generálása sikertelen"
#. js-lingui-id: 0BF9eC
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Metadata Schema"
msgstr "Metaadatséma"
#. js-lingui-id: onCJJ6
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Metered tier switching has been cancelled."
@@ -8522,6 +8517,11 @@ msgstr "Új mező"
msgid "New folder"
msgstr ""
#. js-lingui-id: 93KA8w
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationEditor.tsx
msgid "New Group"
msgstr ""
#. js-lingui-id: o8MyXb
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "New key"
@@ -9568,7 +9568,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/command-menu/pages/navigation-menu-item/components/CommandMenuNewSidebarItemMainMenu.tsx
msgid "Other"
msgstr "Egyéb"
+22 -22
View File
@@ -311,6 +311,11 @@ msgstr "{morphRelationCount} oggetti"
msgid "{num, selectordinal, one {{num}st} two {{num}nd} few {{num}rd} other {{num}th}}"
msgstr ""
#. js-lingui-id: fTSz8d
#: src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownActorSelect.tsx
msgid "{numberOfSelectedItems} workspace members"
msgstr ""
#. js-lingui-id: 7kYa/u
#: src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts
msgid "{objectLabelPlural} ({totalCount})"
@@ -770,6 +775,11 @@ msgstr "Aggiungi \"{trimmedName}\" alle opzioni"
msgid "Add a {objectLabelSingular}"
msgstr "Aggiungi {objectLabelSingular}"
#. js-lingui-id: 7W8nJr
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Add a Group"
msgstr ""
#. js-lingui-id: CZDwqQ
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Add a new company we're in touch with (e.g. name, website, industry). Details: "
@@ -786,11 +796,6 @@ msgstr "Aggiungi un nodo"
msgid "Add a record"
msgstr ""
#. js-lingui-id: r8W+9y
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationSectionEditor.tsx
msgid "Add a Section"
msgstr ""
#. js-lingui-id: eMc2xs
#: src/modules/workflow/workflow-diagram/components/WorkflowDiagramCreateStepElement.tsx
msgid "Add a step"
@@ -1512,6 +1517,9 @@ msgstr "Si è verificato un errore durante il caricamento dell'immagine."
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
@@ -3243,11 +3251,6 @@ msgstr "Core"
msgid "Core Objects"
msgstr ""
#. js-lingui-id: cfa2VJ
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Core Schema"
msgstr "Schema principale"
#. js-lingui-id: I99Miw
#: src/modules/billing/components/SettingsBillingCreditsSection.tsx
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
@@ -6283,7 +6286,9 @@ msgstr "Grafico a Indicatore"
#: src/pages/settings/SettingsWorkspace.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetEditorGroupsData.ts
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
msgid "General"
msgstr "Generale"
@@ -7007,11 +7012,6 @@ msgstr "Istruzioni per l'AI"
msgid "Integrations - Settings"
msgstr "Integrazioni - Impostazioni"
#. js-lingui-id: ntgzzG
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Interact with your workspace data"
msgstr "Interagisci con i dati del tuo spazio di lavoro"
#. js-lingui-id: jyjroS
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Interval switching has been cancelled."
@@ -8125,11 +8125,6 @@ msgstr "Metadati"
msgid "Metadata file generation failed"
msgstr "Generazione del file di metadata fallita"
#. js-lingui-id: 0BF9eC
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Metadata Schema"
msgstr "Schema dei metadati"
#. js-lingui-id: onCJJ6
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Metered tier switching has been cancelled."
@@ -8522,6 +8517,11 @@ msgstr "Nuovo Campo"
msgid "New folder"
msgstr ""
#. js-lingui-id: 93KA8w
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationEditor.tsx
msgid "New Group"
msgstr ""
#. js-lingui-id: o8MyXb
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "New key"
@@ -9568,7 +9568,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/command-menu/pages/navigation-menu-item/components/CommandMenuNewSidebarItemMainMenu.tsx
msgid "Other"
msgstr "Altro"
+22 -22
View File
@@ -311,6 +311,11 @@ msgstr "{morphRelationCount} 個のオブジェクト"
msgid "{num, selectordinal, one {{num}st} two {{num}nd} few {{num}rd} other {{num}th}}"
msgstr "{num, selectordinal, other {{num}番目}}"
#. js-lingui-id: fTSz8d
#: src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownActorSelect.tsx
msgid "{numberOfSelectedItems} workspace members"
msgstr ""
#. js-lingui-id: 7kYa/u
#: src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts
msgid "{objectLabelPlural} ({totalCount})"
@@ -770,6 +775,11 @@ msgstr "「{trimmedName}」をオプションに追加"
msgid "Add a {objectLabelSingular}"
msgstr "{objectLabelSingular} を追加"
#. js-lingui-id: 7W8nJr
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Add a Group"
msgstr ""
#. js-lingui-id: CZDwqQ
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Add a new company we're in touch with (e.g. name, website, industry). Details: "
@@ -786,11 +796,6 @@ msgstr "ノードを追加する"
msgid "Add a record"
msgstr ""
#. js-lingui-id: r8W+9y
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationSectionEditor.tsx
msgid "Add a Section"
msgstr ""
#. js-lingui-id: eMc2xs
#: src/modules/workflow/workflow-diagram/components/WorkflowDiagramCreateStepElement.tsx
msgid "Add a step"
@@ -1512,6 +1517,9 @@ msgstr "画像のアップロード中にエラーが発生しました。"
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
@@ -3243,11 +3251,6 @@ msgstr "コア"
msgid "Core Objects"
msgstr ""
#. js-lingui-id: cfa2VJ
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Core Schema"
msgstr "コアスキーマ"
#. js-lingui-id: I99Miw
#: src/modules/billing/components/SettingsBillingCreditsSection.tsx
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
@@ -6283,7 +6286,9 @@ msgstr "ゲージチャート"
#: src/pages/settings/SettingsWorkspace.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetEditorGroupsData.ts
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
msgid "General"
msgstr "一般"
@@ -7007,11 +7012,6 @@ msgstr "AIのための指示"
msgid "Integrations - Settings"
msgstr "統合 - 設定"
#. js-lingui-id: ntgzzG
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Interact with your workspace data"
msgstr "ワークスペースデータとのインタラクション"
#. js-lingui-id: jyjroS
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Interval switching has been cancelled."
@@ -8125,11 +8125,6 @@ msgstr "メタデータ"
msgid "Metadata file generation failed"
msgstr "メタデータファイルの生成に失敗しました"
#. js-lingui-id: 0BF9eC
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Metadata Schema"
msgstr "メタデータスキーマ"
#. js-lingui-id: onCJJ6
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Metered tier switching has been cancelled."
@@ -8522,6 +8517,11 @@ msgstr "新規フィールド"
msgid "New folder"
msgstr ""
#. js-lingui-id: 93KA8w
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationEditor.tsx
msgid "New Group"
msgstr ""
#. js-lingui-id: o8MyXb
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "New key"
@@ -9568,7 +9568,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/command-menu/pages/navigation-menu-item/components/CommandMenuNewSidebarItemMainMenu.tsx
msgid "Other"
msgstr "その他"
+22 -22
View File
@@ -311,6 +311,11 @@ msgstr "객체 {morphRelationCount}개"
msgid "{num, selectordinal, one {{num}st} two {{num}nd} few {{num}rd} other {{num}th}}"
msgstr "{num, selectordinal, other {{num}번째}}"
#. js-lingui-id: fTSz8d
#: src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownActorSelect.tsx
msgid "{numberOfSelectedItems} workspace members"
msgstr ""
#. js-lingui-id: 7kYa/u
#: src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts
msgid "{objectLabelPlural} ({totalCount})"
@@ -770,6 +775,11 @@ msgstr "\"{trimmedName}\"을 옵션에 추가하기"
msgid "Add a {objectLabelSingular}"
msgstr "{objectLabelSingular} 추가"
#. js-lingui-id: 7W8nJr
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Add a Group"
msgstr ""
#. js-lingui-id: CZDwqQ
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Add a new company we're in touch with (e.g. name, website, industry). Details: "
@@ -786,11 +796,6 @@ msgstr "노드 추가"
msgid "Add a record"
msgstr ""
#. js-lingui-id: r8W+9y
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationSectionEditor.tsx
msgid "Add a Section"
msgstr ""
#. js-lingui-id: eMc2xs
#: src/modules/workflow/workflow-diagram/components/WorkflowDiagramCreateStepElement.tsx
msgid "Add a step"
@@ -1512,6 +1517,9 @@ msgstr "사진을 업로드하는 중 오류가 발생했습니다."
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
@@ -3243,11 +3251,6 @@ msgstr "코어"
msgid "Core Objects"
msgstr ""
#. js-lingui-id: cfa2VJ
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Core Schema"
msgstr "코어 스키마"
#. js-lingui-id: I99Miw
#: src/modules/billing/components/SettingsBillingCreditsSection.tsx
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
@@ -6283,7 +6286,9 @@ msgstr "게이지 차트"
#: src/pages/settings/SettingsWorkspace.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetEditorGroupsData.ts
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
msgid "General"
msgstr "일반"
@@ -7007,11 +7012,6 @@ msgstr "AI 사용 지침"
msgid "Integrations - Settings"
msgstr "통합 - 설정"
#. js-lingui-id: ntgzzG
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Interact with your workspace data"
msgstr "작업 공간 데이터와 상호 작용"
#. js-lingui-id: jyjroS
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Interval switching has been cancelled."
@@ -8125,11 +8125,6 @@ msgstr "메타데이터"
msgid "Metadata file generation failed"
msgstr "메타데이터 파일 생성 실패"
#. js-lingui-id: 0BF9eC
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Metadata Schema"
msgstr "메타데이터 스키마"
#. js-lingui-id: onCJJ6
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Metered tier switching has been cancelled."
@@ -8522,6 +8517,11 @@ msgstr "새 필드"
msgid "New folder"
msgstr ""
#. js-lingui-id: 93KA8w
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationEditor.tsx
msgid "New Group"
msgstr ""
#. js-lingui-id: o8MyXb
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "New key"
@@ -9568,7 +9568,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/command-menu/pages/navigation-menu-item/components/CommandMenuNewSidebarItemMainMenu.tsx
msgid "Other"
msgstr "기타"
+22 -22
View File
@@ -311,6 +311,11 @@ msgstr "{morphRelationCount} objecten"
msgid "{num, selectordinal, one {{num}st} two {{num}nd} few {{num}rd} other {{num}th}}"
msgstr "{num, selectordinal, one {{num}e} other {{num}e}}"
#. js-lingui-id: fTSz8d
#: src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownActorSelect.tsx
msgid "{numberOfSelectedItems} workspace members"
msgstr ""
#. js-lingui-id: 7kYa/u
#: src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts
msgid "{objectLabelPlural} ({totalCount})"
@@ -770,6 +775,11 @@ msgstr "Voeg \"{trimmedName}\" toe aan opties"
msgid "Add a {objectLabelSingular}"
msgstr "Voeg een {objectLabelSingular} toe"
#. js-lingui-id: 7W8nJr
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Add a Group"
msgstr ""
#. js-lingui-id: CZDwqQ
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Add a new company we're in touch with (e.g. name, website, industry). Details: "
@@ -786,11 +796,6 @@ msgstr "Voeg een knooppunt toe"
msgid "Add a record"
msgstr ""
#. js-lingui-id: r8W+9y
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationSectionEditor.tsx
msgid "Add a Section"
msgstr ""
#. js-lingui-id: eMc2xs
#: src/modules/workflow/workflow-diagram/components/WorkflowDiagramCreateStepElement.tsx
msgid "Add a step"
@@ -1512,6 +1517,9 @@ msgstr "Er is een fout opgetreden bij het uploaden van de afbeelding."
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
@@ -3243,11 +3251,6 @@ msgstr "Kern"
msgid "Core Objects"
msgstr ""
#. js-lingui-id: cfa2VJ
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Core Schema"
msgstr "Kernschema"
#. js-lingui-id: I99Miw
#: src/modules/billing/components/SettingsBillingCreditsSection.tsx
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
@@ -6283,7 +6286,9 @@ msgstr ""
#: src/pages/settings/SettingsWorkspace.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetEditorGroupsData.ts
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
msgid "General"
msgstr "Algemeen"
@@ -7007,11 +7012,6 @@ msgstr "Instructies voor AI"
msgid "Integrations - Settings"
msgstr "Integraties - Instellingen"
#. js-lingui-id: ntgzzG
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Interact with your workspace data"
msgstr "Interageer met uw werkruimtegegevens"
#. js-lingui-id: jyjroS
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Interval switching has been cancelled."
@@ -8125,11 +8125,6 @@ msgstr "Metadata"
msgid "Metadata file generation failed"
msgstr "Metadatabestandsgeneratie mislukt"
#. js-lingui-id: 0BF9eC
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Metadata Schema"
msgstr "Metadataschema"
#. js-lingui-id: onCJJ6
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Metered tier switching has been cancelled."
@@ -8522,6 +8517,11 @@ msgstr "Nieuw veld"
msgid "New folder"
msgstr ""
#. js-lingui-id: 93KA8w
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationEditor.tsx
msgid "New Group"
msgstr ""
#. js-lingui-id: o8MyXb
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "New key"
@@ -9568,7 +9568,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/command-menu/pages/navigation-menu-item/components/CommandMenuNewSidebarItemMainMenu.tsx
msgid "Other"
msgstr "Overige"
+22 -22
View File
@@ -311,6 +311,11 @@ msgstr "{morphRelationCount} objekter"
msgid "{num, selectordinal, one {{num}st} two {{num}nd} few {{num}rd} other {{num}th}}"
msgstr "{num, selectordinal, one {{num}.} other {{num}.}}"
#. js-lingui-id: fTSz8d
#: src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownActorSelect.tsx
msgid "{numberOfSelectedItems} workspace members"
msgstr ""
#. js-lingui-id: 7kYa/u
#: src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts
msgid "{objectLabelPlural} ({totalCount})"
@@ -770,6 +775,11 @@ msgstr "Legg til \"{trimmedName}\" i valg"
msgid "Add a {objectLabelSingular}"
msgstr "Legg til {objectLabelSingular}"
#. js-lingui-id: 7W8nJr
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Add a Group"
msgstr ""
#. js-lingui-id: CZDwqQ
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Add a new company we're in touch with (e.g. name, website, industry). Details: "
@@ -786,11 +796,6 @@ msgstr "Legg til node"
msgid "Add a record"
msgstr ""
#. js-lingui-id: r8W+9y
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationSectionEditor.tsx
msgid "Add a Section"
msgstr ""
#. js-lingui-id: eMc2xs
#: src/modules/workflow/workflow-diagram/components/WorkflowDiagramCreateStepElement.tsx
msgid "Add a step"
@@ -1512,6 +1517,9 @@ msgstr "Det oppstod en feil under opplasting av bildet."
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
@@ -3243,11 +3251,6 @@ msgstr "Kjerne"
msgid "Core Objects"
msgstr ""
#. js-lingui-id: cfa2VJ
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Core Schema"
msgstr "Kjernesjema"
#. js-lingui-id: I99Miw
#: src/modules/billing/components/SettingsBillingCreditsSection.tsx
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
@@ -6283,7 +6286,9 @@ msgstr "Målediagram"
#: src/pages/settings/SettingsWorkspace.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetEditorGroupsData.ts
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
msgid "General"
msgstr "Generelt"
@@ -7007,11 +7012,6 @@ msgstr "Instruksjoner for AI"
msgid "Integrations - Settings"
msgstr "Integrasjoner - Innstillinger"
#. js-lingui-id: ntgzzG
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Interact with your workspace data"
msgstr "Samhandle med dataene i arbeidsområdet ditt"
#. js-lingui-id: jyjroS
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Interval switching has been cancelled."
@@ -8125,11 +8125,6 @@ msgstr "Metadata"
msgid "Metadata file generation failed"
msgstr "Generering av metadatafil mislyktes"
#. js-lingui-id: 0BF9eC
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Metadata Schema"
msgstr "Metadataskjema"
#. js-lingui-id: onCJJ6
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Metered tier switching has been cancelled."
@@ -8522,6 +8517,11 @@ msgstr "Nytt felt"
msgid "New folder"
msgstr ""
#. js-lingui-id: 93KA8w
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationEditor.tsx
msgid "New Group"
msgstr ""
#. js-lingui-id: o8MyXb
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "New key"
@@ -9568,7 +9568,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/command-menu/pages/navigation-menu-item/components/CommandMenuNewSidebarItemMainMenu.tsx
msgid "Other"
msgstr "Annen"
+22 -22
View File
@@ -311,6 +311,11 @@ msgstr "{morphRelationCount, plural, one {# obiekt} few {# obiekty} many {# obie
msgid "{num, selectordinal, one {{num}st} two {{num}nd} few {{num}rd} other {{num}th}}"
msgstr "{num, selectordinal, one {{num}sz} two {{num}gi} few {{num}ci} other {{num}ty}}"
#. js-lingui-id: fTSz8d
#: src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownActorSelect.tsx
msgid "{numberOfSelectedItems} workspace members"
msgstr ""
#. js-lingui-id: 7kYa/u
#: src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts
msgid "{objectLabelPlural} ({totalCount})"
@@ -770,6 +775,11 @@ msgstr "Dodaj \"{trimmedName}\" do opcji"
msgid "Add a {objectLabelSingular}"
msgstr "Dodaj {objectLabelSingular}"
#. js-lingui-id: 7W8nJr
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Add a Group"
msgstr ""
#. js-lingui-id: CZDwqQ
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Add a new company we're in touch with (e.g. name, website, industry). Details: "
@@ -786,11 +796,6 @@ msgstr "Dodaj węzeł"
msgid "Add a record"
msgstr ""
#. js-lingui-id: r8W+9y
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationSectionEditor.tsx
msgid "Add a Section"
msgstr ""
#. js-lingui-id: eMc2xs
#: src/modules/workflow/workflow-diagram/components/WorkflowDiagramCreateStepElement.tsx
msgid "Add a step"
@@ -1512,6 +1517,9 @@ msgstr "Wystąpił błąd podczas przesyłania zdjęcia."
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
@@ -3243,11 +3251,6 @@ msgstr "Trzon"
msgid "Core Objects"
msgstr ""
#. js-lingui-id: cfa2VJ
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Core Schema"
msgstr "Główny schemat"
#. js-lingui-id: I99Miw
#: src/modules/billing/components/SettingsBillingCreditsSection.tsx
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
@@ -6283,7 +6286,9 @@ msgstr ""
#: src/pages/settings/SettingsWorkspace.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetEditorGroupsData.ts
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
msgid "General"
msgstr "Ogólne"
@@ -7007,11 +7012,6 @@ msgstr "Instrukcje dla AI"
msgid "Integrations - Settings"
msgstr "Integracje - Ustawienia"
#. js-lingui-id: ntgzzG
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Interact with your workspace data"
msgstr "Wejdź w interakcję z danymi w swoim miejscu pracy"
#. js-lingui-id: jyjroS
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Interval switching has been cancelled."
@@ -8125,11 +8125,6 @@ msgstr "Metadane"
msgid "Metadata file generation failed"
msgstr "Generowanie pliku metadanych nie powiodło się"
#. js-lingui-id: 0BF9eC
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Metadata Schema"
msgstr "Schemat metadanych"
#. js-lingui-id: onCJJ6
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Metered tier switching has been cancelled."
@@ -8522,6 +8517,11 @@ msgstr "Nowe pole"
msgid "New folder"
msgstr ""
#. js-lingui-id: 93KA8w
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationEditor.tsx
msgid "New Group"
msgstr ""
#. js-lingui-id: o8MyXb
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "New key"
@@ -9568,7 +9568,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/command-menu/pages/navigation-menu-item/components/CommandMenuNewSidebarItemMainMenu.tsx
msgid "Other"
msgstr "Inne"
+22 -22
View File
@@ -306,6 +306,11 @@ msgstr ""
msgid "{num, selectordinal, one {{num}st} two {{num}nd} few {{num}rd} other {{num}th}}"
msgstr ""
#. js-lingui-id: fTSz8d
#: src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownActorSelect.tsx
msgid "{numberOfSelectedItems} workspace members"
msgstr ""
#. js-lingui-id: 7kYa/u
#: src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts
msgid "{objectLabelPlural} ({totalCount})"
@@ -765,6 +770,11 @@ msgstr ""
msgid "Add a {objectLabelSingular}"
msgstr ""
#. js-lingui-id: 7W8nJr
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Add a Group"
msgstr ""
#. js-lingui-id: CZDwqQ
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Add a new company we're in touch with (e.g. name, website, industry). Details: "
@@ -781,11 +791,6 @@ msgstr ""
msgid "Add a record"
msgstr ""
#. js-lingui-id: r8W+9y
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationSectionEditor.tsx
msgid "Add a Section"
msgstr ""
#. js-lingui-id: eMc2xs
#: src/modules/workflow/workflow-diagram/components/WorkflowDiagramCreateStepElement.tsx
msgid "Add a step"
@@ -1507,6 +1512,9 @@ msgstr ""
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
@@ -3238,11 +3246,6 @@ msgstr ""
msgid "Core Objects"
msgstr ""
#. js-lingui-id: cfa2VJ
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Core Schema"
msgstr ""
#. js-lingui-id: I99Miw
#: src/modules/billing/components/SettingsBillingCreditsSection.tsx
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
@@ -6278,7 +6281,9 @@ msgstr ""
#: src/pages/settings/SettingsWorkspace.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetEditorGroupsData.ts
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
msgid "General"
msgstr ""
@@ -7002,11 +7007,6 @@ msgstr ""
msgid "Integrations - Settings"
msgstr ""
#. js-lingui-id: ntgzzG
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Interact with your workspace data"
msgstr ""
#. js-lingui-id: jyjroS
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Interval switching has been cancelled."
@@ -8120,11 +8120,6 @@ msgstr ""
msgid "Metadata file generation failed"
msgstr ""
#. js-lingui-id: 0BF9eC
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Metadata Schema"
msgstr ""
#. js-lingui-id: onCJJ6
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Metered tier switching has been cancelled."
@@ -8517,6 +8512,11 @@ msgstr ""
msgid "New folder"
msgstr ""
#. js-lingui-id: 93KA8w
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationEditor.tsx
msgid "New Group"
msgstr ""
#. js-lingui-id: o8MyXb
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "New key"
@@ -9563,7 +9563,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/command-menu/pages/navigation-menu-item/components/CommandMenuNewSidebarItemMainMenu.tsx
msgid "Other"
msgstr ""
+22 -22
View File
@@ -311,6 +311,11 @@ msgstr "{morphRelationCount} objetos"
msgid "{num, selectordinal, one {{num}st} two {{num}nd} few {{num}rd} other {{num}th}}"
msgstr "{num, selectordinal, one {{num}º} other {{num}º}}"
#. js-lingui-id: fTSz8d
#: src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownActorSelect.tsx
msgid "{numberOfSelectedItems} workspace members"
msgstr ""
#. js-lingui-id: 7kYa/u
#: src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts
msgid "{objectLabelPlural} ({totalCount})"
@@ -770,6 +775,11 @@ msgstr "Adicionar \"{trimmedName}\" às opções"
msgid "Add a {objectLabelSingular}"
msgstr "Adicionar um {objectLabelSingular}"
#. js-lingui-id: 7W8nJr
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Add a Group"
msgstr ""
#. js-lingui-id: CZDwqQ
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Add a new company we're in touch with (e.g. name, website, industry). Details: "
@@ -786,11 +796,6 @@ msgstr "Adicionar nó"
msgid "Add a record"
msgstr ""
#. js-lingui-id: r8W+9y
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationSectionEditor.tsx
msgid "Add a Section"
msgstr ""
#. js-lingui-id: eMc2xs
#: src/modules/workflow/workflow-diagram/components/WorkflowDiagramCreateStepElement.tsx
msgid "Add a step"
@@ -1512,6 +1517,9 @@ msgstr "Ocorreu um erro ao carregar a imagem."
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
@@ -3243,11 +3251,6 @@ msgstr "Núcleo"
msgid "Core Objects"
msgstr ""
#. js-lingui-id: cfa2VJ
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Core Schema"
msgstr "Esquema principal"
#. js-lingui-id: I99Miw
#: src/modules/billing/components/SettingsBillingCreditsSection.tsx
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
@@ -6283,7 +6286,9 @@ msgstr "Gráfico de Medidor"
#: src/pages/settings/SettingsWorkspace.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetEditorGroupsData.ts
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
msgid "General"
msgstr "Geral"
@@ -7007,11 +7012,6 @@ msgstr "Instruções para IA"
msgid "Integrations - Settings"
msgstr "Integrações - Configurações"
#. js-lingui-id: ntgzzG
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Interact with your workspace data"
msgstr "Interagir com os dados do seu espaço de trabalho"
#. js-lingui-id: jyjroS
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Interval switching has been cancelled."
@@ -8125,11 +8125,6 @@ msgstr "Metadados"
msgid "Metadata file generation failed"
msgstr "Falha na geração do arquivo de metadados"
#. js-lingui-id: 0BF9eC
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Metadata Schema"
msgstr "Esquema de metadados"
#. js-lingui-id: onCJJ6
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Metered tier switching has been cancelled."
@@ -8522,6 +8517,11 @@ msgstr "Novo campo"
msgid "New folder"
msgstr ""
#. js-lingui-id: 93KA8w
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationEditor.tsx
msgid "New Group"
msgstr ""
#. js-lingui-id: o8MyXb
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "New key"
@@ -9568,7 +9568,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/command-menu/pages/navigation-menu-item/components/CommandMenuNewSidebarItemMainMenu.tsx
msgid "Other"
msgstr "Outros"
+22 -22
View File
@@ -311,6 +311,11 @@ msgstr "{morphRelationCount} Objetos"
msgid "{num, selectordinal, one {{num}st} two {{num}nd} few {{num}rd} other {{num}th}}"
msgstr "{num, selectordinal, one {{num}º} other {{num}º}}"
#. js-lingui-id: fTSz8d
#: src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownActorSelect.tsx
msgid "{numberOfSelectedItems} workspace members"
msgstr ""
#. js-lingui-id: 7kYa/u
#: src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts
msgid "{objectLabelPlural} ({totalCount})"
@@ -770,6 +775,11 @@ msgstr "Adicionar \"{trimmedName}\" às opções"
msgid "Add a {objectLabelSingular}"
msgstr "Adicionar um {objectLabelSingular}"
#. js-lingui-id: 7W8nJr
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Add a Group"
msgstr ""
#. js-lingui-id: CZDwqQ
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Add a new company we're in touch with (e.g. name, website, industry). Details: "
@@ -786,11 +796,6 @@ msgstr "Adicionar nó"
msgid "Add a record"
msgstr ""
#. js-lingui-id: r8W+9y
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationSectionEditor.tsx
msgid "Add a Section"
msgstr ""
#. js-lingui-id: eMc2xs
#: src/modules/workflow/workflow-diagram/components/WorkflowDiagramCreateStepElement.tsx
msgid "Add a step"
@@ -1512,6 +1517,9 @@ msgstr "Ocorreu um erro ao carregar a imagem."
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
@@ -3243,11 +3251,6 @@ msgstr "Núcleo"
msgid "Core Objects"
msgstr ""
#. js-lingui-id: cfa2VJ
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Core Schema"
msgstr "Esquema Principal"
#. js-lingui-id: I99Miw
#: src/modules/billing/components/SettingsBillingCreditsSection.tsx
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
@@ -6283,7 +6286,9 @@ msgstr ""
#: src/pages/settings/SettingsWorkspace.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetEditorGroupsData.ts
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
msgid "General"
msgstr "Geral"
@@ -7007,11 +7012,6 @@ msgstr "Instruções para AI"
msgid "Integrations - Settings"
msgstr "Integrações - Configurações"
#. js-lingui-id: ntgzzG
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Interact with your workspace data"
msgstr "Interaja com os dados do seu espaço de trabalho"
#. js-lingui-id: jyjroS
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Interval switching has been cancelled."
@@ -8125,11 +8125,6 @@ msgstr "Metadados"
msgid "Metadata file generation failed"
msgstr "Falha na geração do arquivo de metadados"
#. js-lingui-id: 0BF9eC
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Metadata Schema"
msgstr "Esquema de Metadados"
#. js-lingui-id: onCJJ6
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Metered tier switching has been cancelled."
@@ -8522,6 +8517,11 @@ msgstr "Novo Campo"
msgid "New folder"
msgstr ""
#. js-lingui-id: 93KA8w
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationEditor.tsx
msgid "New Group"
msgstr ""
#. js-lingui-id: o8MyXb
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "New key"
@@ -9568,7 +9568,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/command-menu/pages/navigation-menu-item/components/CommandMenuNewSidebarItemMainMenu.tsx
msgid "Other"
msgstr "Outros"
+22 -22
View File
@@ -311,6 +311,11 @@ msgstr "{morphRelationCount} obiecte"
msgid "{num, selectordinal, one {{num}st} two {{num}nd} few {{num}rd} other {{num}th}}"
msgstr "{num, selectordinal, one {{num}st} few {{num}nd} few {{num}rd} other {{num}th}}"
#. js-lingui-id: fTSz8d
#: src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownActorSelect.tsx
msgid "{numberOfSelectedItems} workspace members"
msgstr ""
#. js-lingui-id: 7kYa/u
#: src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts
msgid "{objectLabelPlural} ({totalCount})"
@@ -770,6 +775,11 @@ msgstr "Adaugă \"{trimmedName}\" la opțiuni"
msgid "Add a {objectLabelSingular}"
msgstr "Adaugă un {objectLabelSingular}"
#. js-lingui-id: 7W8nJr
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Add a Group"
msgstr ""
#. js-lingui-id: CZDwqQ
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Add a new company we're in touch with (e.g. name, website, industry). Details: "
@@ -786,11 +796,6 @@ msgstr "Adaugă nod"
msgid "Add a record"
msgstr ""
#. js-lingui-id: r8W+9y
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationSectionEditor.tsx
msgid "Add a Section"
msgstr ""
#. js-lingui-id: eMc2xs
#: src/modules/workflow/workflow-diagram/components/WorkflowDiagramCreateStepElement.tsx
msgid "Add a step"
@@ -1512,6 +1517,9 @@ msgstr "A apărut o eroare la încărcarea imaginii."
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
@@ -3243,11 +3251,6 @@ msgstr "Nucleu"
msgid "Core Objects"
msgstr ""
#. js-lingui-id: cfa2VJ
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Core Schema"
msgstr "Schemă de bază"
#. js-lingui-id: I99Miw
#: src/modules/billing/components/SettingsBillingCreditsSection.tsx
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
@@ -6283,7 +6286,9 @@ msgstr "Grafic tip ceas"
#: src/pages/settings/SettingsWorkspace.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetEditorGroupsData.ts
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
msgid "General"
msgstr "General"
@@ -7007,11 +7012,6 @@ msgstr "Instrucțiuni pentru AI"
msgid "Integrations - Settings"
msgstr "Integrări - Setări"
#. js-lingui-id: ntgzzG
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Interact with your workspace data"
msgstr "Interacţionează cu datele workspace-ului tău"
#. js-lingui-id: jyjroS
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Interval switching has been cancelled."
@@ -8125,11 +8125,6 @@ msgstr "Metadata"
msgid "Metadata file generation failed"
msgstr "Generarea fișierului de metadate a eșuat"
#. js-lingui-id: 0BF9eC
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Metadata Schema"
msgstr "Schemă de metadate"
#. js-lingui-id: onCJJ6
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Metered tier switching has been cancelled."
@@ -8522,6 +8517,11 @@ msgstr "Câmp nou"
msgid "New folder"
msgstr ""
#. js-lingui-id: 93KA8w
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationEditor.tsx
msgid "New Group"
msgstr ""
#. js-lingui-id: o8MyXb
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "New key"
@@ -9568,7 +9568,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/command-menu/pages/navigation-menu-item/components/CommandMenuNewSidebarItemMainMenu.tsx
msgid "Other"
msgstr "Altul"
Binary file not shown.
+22 -22
View File
@@ -311,6 +311,11 @@ msgstr "{morphRelationCount} објеката"
msgid "{num, selectordinal, one {{num}st} two {{num}nd} few {{num}rd} other {{num}th}}"
msgstr "{num, selectordinal, one {{num}ст} few {{num}нд} other {{num}ти}}"
#. js-lingui-id: fTSz8d
#: src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownActorSelect.tsx
msgid "{numberOfSelectedItems} workspace members"
msgstr ""
#. js-lingui-id: 7kYa/u
#: src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts
msgid "{objectLabelPlural} ({totalCount})"
@@ -770,6 +775,11 @@ msgstr "Додај \"{trimmedName}\" у опције"
msgid "Add a {objectLabelSingular}"
msgstr "Додај {objectLabelSingular}"
#. js-lingui-id: 7W8nJr
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Add a Group"
msgstr ""
#. js-lingui-id: CZDwqQ
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Add a new company we're in touch with (e.g. name, website, industry). Details: "
@@ -786,11 +796,6 @@ msgstr "Додај чвор"
msgid "Add a record"
msgstr ""
#. js-lingui-id: r8W+9y
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationSectionEditor.tsx
msgid "Add a Section"
msgstr ""
#. js-lingui-id: eMc2xs
#: src/modules/workflow/workflow-diagram/components/WorkflowDiagramCreateStepElement.tsx
msgid "Add a step"
@@ -1512,6 +1517,9 @@ msgstr "Дошло је до грешке приликом отпремања с
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
@@ -3243,11 +3251,6 @@ msgstr "Језгро"
msgid "Core Objects"
msgstr ""
#. js-lingui-id: cfa2VJ
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Core Schema"
msgstr "Основна шема"
#. js-lingui-id: I99Miw
#: src/modules/billing/components/SettingsBillingCreditsSection.tsx
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
@@ -6283,7 +6286,9 @@ msgstr ""
#: src/pages/settings/SettingsWorkspace.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetEditorGroupsData.ts
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
msgid "General"
msgstr "Опште"
@@ -7007,11 +7012,6 @@ msgstr "Упутства за AI"
msgid "Integrations - Settings"
msgstr "Интеграције - Подешавања"
#. js-lingui-id: ntgzzG
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Interact with your workspace data"
msgstr "Интеракција са подацима ваше радне површине"
#. js-lingui-id: jyjroS
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Interval switching has been cancelled."
@@ -8125,11 +8125,6 @@ msgstr "Метаподаци"
msgid "Metadata file generation failed"
msgstr "Генерисање датотеке метаподатака није успело"
#. js-lingui-id: 0BF9eC
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Metadata Schema"
msgstr "Шема метаподатака"
#. js-lingui-id: onCJJ6
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Metered tier switching has been cancelled."
@@ -8522,6 +8517,11 @@ msgstr "Ново поље"
msgid "New folder"
msgstr ""
#. js-lingui-id: 93KA8w
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationEditor.tsx
msgid "New Group"
msgstr ""
#. js-lingui-id: o8MyXb
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "New key"
@@ -9568,7 +9568,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/command-menu/pages/navigation-menu-item/components/CommandMenuNewSidebarItemMainMenu.tsx
msgid "Other"
msgstr "Остало"
+22 -22
View File
@@ -311,6 +311,11 @@ msgstr "{morphRelationCount} objekt"
msgid "{num, selectordinal, one {{num}st} two {{num}nd} few {{num}rd} other {{num}th}}"
msgstr "{num, selectordinal, one {{num}:a} other {{num}e}}"
#. js-lingui-id: fTSz8d
#: src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownActorSelect.tsx
msgid "{numberOfSelectedItems} workspace members"
msgstr ""
#. js-lingui-id: 7kYa/u
#: src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts
msgid "{objectLabelPlural} ({totalCount})"
@@ -770,6 +775,11 @@ msgstr "Lägg till \"{trimmedName}\" i alternativ"
msgid "Add a {objectLabelSingular}"
msgstr "Lägg till {objectLabelSingular}"
#. js-lingui-id: 7W8nJr
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Add a Group"
msgstr ""
#. js-lingui-id: CZDwqQ
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Add a new company we're in touch with (e.g. name, website, industry). Details: "
@@ -786,11 +796,6 @@ msgstr "Lägg till en nod"
msgid "Add a record"
msgstr ""
#. js-lingui-id: r8W+9y
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationSectionEditor.tsx
msgid "Add a Section"
msgstr ""
#. js-lingui-id: eMc2xs
#: src/modules/workflow/workflow-diagram/components/WorkflowDiagramCreateStepElement.tsx
msgid "Add a step"
@@ -1512,6 +1517,9 @@ msgstr "Ett fel uppstod när bilden laddades upp."
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
@@ -3243,11 +3251,6 @@ msgstr "Kärna"
msgid "Core Objects"
msgstr ""
#. js-lingui-id: cfa2VJ
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Core Schema"
msgstr "Kärnschema"
#. js-lingui-id: I99Miw
#: src/modules/billing/components/SettingsBillingCreditsSection.tsx
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
@@ -6283,7 +6286,9 @@ msgstr "Mätardiagram"
#: src/pages/settings/SettingsWorkspace.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetEditorGroupsData.ts
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
msgid "General"
msgstr "Allmänt"
@@ -7007,11 +7012,6 @@ msgstr "Instruktioner för AI"
msgid "Integrations - Settings"
msgstr "Integrationer - Inställningar"
#. js-lingui-id: ntgzzG
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Interact with your workspace data"
msgstr "Interagera med dina arbetsytedata"
#. js-lingui-id: jyjroS
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Interval switching has been cancelled."
@@ -8125,11 +8125,6 @@ msgstr "Metadata"
msgid "Metadata file generation failed"
msgstr "Generering av metadatafilen misslyckades"
#. js-lingui-id: 0BF9eC
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Metadata Schema"
msgstr "Metadataschema"
#. js-lingui-id: onCJJ6
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Metered tier switching has been cancelled."
@@ -8524,6 +8519,11 @@ msgstr "Nytt fält"
msgid "New folder"
msgstr ""
#. js-lingui-id: 93KA8w
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationEditor.tsx
msgid "New Group"
msgstr ""
#. js-lingui-id: o8MyXb
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "New key"
@@ -9570,7 +9570,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/command-menu/pages/navigation-menu-item/components/CommandMenuNewSidebarItemMainMenu.tsx
msgid "Other"
msgstr "Annat"
+22 -22
View File
@@ -311,6 +311,11 @@ msgstr "{morphRelationCount} Nesne"
msgid "{num, selectordinal, one {{num}st} two {{num}nd} few {{num}rd} other {{num}th}}"
msgstr "{num, selectordinal, one {{num}'inci} other {{num}'inci}}"
#. js-lingui-id: fTSz8d
#: src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownActorSelect.tsx
msgid "{numberOfSelectedItems} workspace members"
msgstr ""
#. js-lingui-id: 7kYa/u
#: src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts
msgid "{objectLabelPlural} ({totalCount})"
@@ -770,6 +775,11 @@ msgstr "\"{trimmedName}\" seçeneğe ekle"
msgid "Add a {objectLabelSingular}"
msgstr "Bir {objectLabelSingular} ekle"
#. js-lingui-id: 7W8nJr
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Add a Group"
msgstr ""
#. js-lingui-id: CZDwqQ
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Add a new company we're in touch with (e.g. name, website, industry). Details: "
@@ -786,11 +796,6 @@ msgstr "Bir düğüm ekle"
msgid "Add a record"
msgstr ""
#. js-lingui-id: r8W+9y
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationSectionEditor.tsx
msgid "Add a Section"
msgstr ""
#. js-lingui-id: eMc2xs
#: src/modules/workflow/workflow-diagram/components/WorkflowDiagramCreateStepElement.tsx
msgid "Add a step"
@@ -1512,6 +1517,9 @@ msgstr "Resim yüklenirken bir hata oluştu."
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
@@ -3243,11 +3251,6 @@ msgstr "Çekirdek"
msgid "Core Objects"
msgstr ""
#. js-lingui-id: cfa2VJ
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Core Schema"
msgstr "Çekirdek Şema"
#. js-lingui-id: I99Miw
#: src/modules/billing/components/SettingsBillingCreditsSection.tsx
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
@@ -6283,7 +6286,9 @@ msgstr "Gösterge Grafiği"
#: src/pages/settings/SettingsWorkspace.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetEditorGroupsData.ts
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
msgid "General"
msgstr "Genel"
@@ -7007,11 +7012,6 @@ msgstr "AI için Talimatlar"
msgid "Integrations - Settings"
msgstr "Entegrasyonlar - Ayarlar"
#. js-lingui-id: ntgzzG
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Interact with your workspace data"
msgstr "Çalışma alanı verileriyle etkileşim kurma"
#. js-lingui-id: jyjroS
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Interval switching has been cancelled."
@@ -8125,11 +8125,6 @@ msgstr "Meta veri"
msgid "Metadata file generation failed"
msgstr "Metadata dosyası oluşturulamadı"
#. js-lingui-id: 0BF9eC
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Metadata Schema"
msgstr "Meta Veri Şeması"
#. js-lingui-id: onCJJ6
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Metered tier switching has been cancelled."
@@ -8522,6 +8517,11 @@ msgstr "Yeni Alan"
msgid "New folder"
msgstr ""
#. js-lingui-id: 93KA8w
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationEditor.tsx
msgid "New Group"
msgstr ""
#. js-lingui-id: o8MyXb
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "New key"
@@ -9568,7 +9568,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/command-menu/pages/navigation-menu-item/components/CommandMenuNewSidebarItemMainMenu.tsx
msgid "Other"
msgstr "Diğer"
+22 -22
View File
@@ -311,6 +311,11 @@ msgstr "{morphRelationCount} об’єктів"
msgid "{num, selectordinal, one {{num}st} two {{num}nd} few {{num}rd} other {{num}th}}"
msgstr "{num, selectordinal, one {{num}-й} few {{num}-й} many {{num}-й} other {{num}-й}}"
#. js-lingui-id: fTSz8d
#: src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownActorSelect.tsx
msgid "{numberOfSelectedItems} workspace members"
msgstr ""
#. js-lingui-id: 7kYa/u
#: src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts
msgid "{objectLabelPlural} ({totalCount})"
@@ -770,6 +775,11 @@ msgstr "Додати \"{trimmedName}\" до параметрів"
msgid "Add a {objectLabelSingular}"
msgstr "Додати {objectLabelSingular}"
#. js-lingui-id: 7W8nJr
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Add a Group"
msgstr ""
#. js-lingui-id: CZDwqQ
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Add a new company we're in touch with (e.g. name, website, industry). Details: "
@@ -786,11 +796,6 @@ msgstr "Додати вузол"
msgid "Add a record"
msgstr ""
#. js-lingui-id: r8W+9y
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationSectionEditor.tsx
msgid "Add a Section"
msgstr ""
#. js-lingui-id: eMc2xs
#: src/modules/workflow/workflow-diagram/components/WorkflowDiagramCreateStepElement.tsx
msgid "Add a step"
@@ -1512,6 +1517,9 @@ msgstr "Під час завантаження зображення сталас
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
@@ -3243,11 +3251,6 @@ msgstr "Ядро"
msgid "Core Objects"
msgstr ""
#. js-lingui-id: cfa2VJ
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Core Schema"
msgstr "Основна схема"
#. js-lingui-id: I99Miw
#: src/modules/billing/components/SettingsBillingCreditsSection.tsx
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
@@ -6283,7 +6286,9 @@ msgstr ""
#: src/pages/settings/SettingsWorkspace.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetEditorGroupsData.ts
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
msgid "General"
msgstr "Загальні"
@@ -7007,11 +7012,6 @@ msgstr "Інструкції для AI"
msgid "Integrations - Settings"
msgstr "Інтеграції - Налаштування"
#. js-lingui-id: ntgzzG
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Interact with your workspace data"
msgstr "Взаємодія з даними вашого робочого простору"
#. js-lingui-id: jyjroS
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Interval switching has been cancelled."
@@ -8125,11 +8125,6 @@ msgstr "Метадані"
msgid "Metadata file generation failed"
msgstr "Не вдалося згенерувати файл метаданих"
#. js-lingui-id: 0BF9eC
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Metadata Schema"
msgstr "Схема метаданих"
#. js-lingui-id: onCJJ6
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Metered tier switching has been cancelled."
@@ -8522,6 +8517,11 @@ msgstr "Нове поле"
msgid "New folder"
msgstr ""
#. js-lingui-id: 93KA8w
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationEditor.tsx
msgid "New Group"
msgstr ""
#. js-lingui-id: o8MyXb
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "New key"
@@ -9568,7 +9568,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/command-menu/pages/navigation-menu-item/components/CommandMenuNewSidebarItemMainMenu.tsx
msgid "Other"
msgstr "Інший"
+22 -22
View File
@@ -311,6 +311,11 @@ msgstr "{morphRelationCount} Đối tượng"
msgid "{num, selectordinal, one {{num}st} two {{num}nd} few {{num}rd} other {{num}th}}"
msgstr "{num, selectordinal, other {{num}}}"
#. js-lingui-id: fTSz8d
#: src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownActorSelect.tsx
msgid "{numberOfSelectedItems} workspace members"
msgstr ""
#. js-lingui-id: 7kYa/u
#: src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts
msgid "{objectLabelPlural} ({totalCount})"
@@ -770,6 +775,11 @@ msgstr "Thêm \"{trimmedName}\" vào các tùy chọn"
msgid "Add a {objectLabelSingular}"
msgstr "Thêm {objectLabelSingular}"
#. js-lingui-id: 7W8nJr
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Add a Group"
msgstr ""
#. js-lingui-id: CZDwqQ
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Add a new company we're in touch with (e.g. name, website, industry). Details: "
@@ -786,11 +796,6 @@ msgstr "Thêm nút"
msgid "Add a record"
msgstr ""
#. js-lingui-id: r8W+9y
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationSectionEditor.tsx
msgid "Add a Section"
msgstr ""
#. js-lingui-id: eMc2xs
#: src/modules/workflow/workflow-diagram/components/WorkflowDiagramCreateStepElement.tsx
msgid "Add a step"
@@ -1512,6 +1517,9 @@ msgstr "Đã xảy ra lỗi khi tải lên ảnh."
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
@@ -3243,11 +3251,6 @@ msgstr "Lõi"
msgid "Core Objects"
msgstr ""
#. js-lingui-id: cfa2VJ
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Core Schema"
msgstr "Lược đồ lõi"
#. js-lingui-id: I99Miw
#: src/modules/billing/components/SettingsBillingCreditsSection.tsx
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
@@ -6283,7 +6286,9 @@ msgstr "Biểu đồ đo lường"
#: src/pages/settings/SettingsWorkspace.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetEditorGroupsData.ts
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
msgid "General"
msgstr "\\"
@@ -7007,11 +7012,6 @@ msgstr "Hướng dẫn cho AI"
msgid "Integrations - Settings"
msgstr "Cài đặt - Tích hợp"
#. js-lingui-id: ntgzzG
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Interact with your workspace data"
msgstr "Tương tác với dữ liệu không gian làm việc của bạn"
#. js-lingui-id: jyjroS
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Interval switching has been cancelled."
@@ -8125,11 +8125,6 @@ msgstr "Siêu dữ liệu"
msgid "Metadata file generation failed"
msgstr "Tạo tập tin Metadata thất bại"
#. js-lingui-id: 0BF9eC
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Metadata Schema"
msgstr "Lược đồ siêu dữ liệu"
#. js-lingui-id: onCJJ6
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Metered tier switching has been cancelled."
@@ -8522,6 +8517,11 @@ msgstr "Trường mới"
msgid "New folder"
msgstr ""
#. js-lingui-id: 93KA8w
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationEditor.tsx
msgid "New Group"
msgstr ""
#. js-lingui-id: o8MyXb
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "New key"
@@ -9568,7 +9568,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/command-menu/pages/navigation-menu-item/components/CommandMenuNewSidebarItemMainMenu.tsx
msgid "Other"
msgstr "Khác"
+22 -22
View File
@@ -311,6 +311,11 @@ msgstr "{morphRelationCount} 个对象"
msgid "{num, selectordinal, one {{num}st} two {{num}nd} few {{num}rd} other {{num}th}}"
msgstr "{num, selectordinal, other {{num}th}}"
#. js-lingui-id: fTSz8d
#: src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownActorSelect.tsx
msgid "{numberOfSelectedItems} workspace members"
msgstr ""
#. js-lingui-id: 7kYa/u
#: src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts
msgid "{objectLabelPlural} ({totalCount})"
@@ -770,6 +775,11 @@ msgstr "将 \"{trimmedName}\" 添加到选项中"
msgid "Add a {objectLabelSingular}"
msgstr "添加一个 {objectLabelSingular}"
#. js-lingui-id: 7W8nJr
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Add a Group"
msgstr ""
#. js-lingui-id: CZDwqQ
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Add a new company we're in touch with (e.g. name, website, industry). Details: "
@@ -786,11 +796,6 @@ msgstr "添加节点"
msgid "Add a record"
msgstr ""
#. js-lingui-id: r8W+9y
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationSectionEditor.tsx
msgid "Add a Section"
msgstr ""
#. js-lingui-id: eMc2xs
#: src/modules/workflow/workflow-diagram/components/WorkflowDiagramCreateStepElement.tsx
msgid "Add a step"
@@ -1512,6 +1517,9 @@ msgstr "上传图片时发生错误。"
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
@@ -3243,11 +3251,6 @@ msgstr "核心"
msgid "Core Objects"
msgstr ""
#. js-lingui-id: cfa2VJ
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Core Schema"
msgstr "核心架构"
#. js-lingui-id: I99Miw
#: src/modules/billing/components/SettingsBillingCreditsSection.tsx
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
@@ -6283,7 +6286,9 @@ msgstr "仪表图"
#: src/pages/settings/SettingsWorkspace.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetEditorGroupsData.ts
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
msgid "General"
msgstr "常规"
@@ -7007,11 +7012,6 @@ msgstr "AI 指令"
msgid "Integrations - Settings"
msgstr "集成 - 设置"
#. js-lingui-id: ntgzzG
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Interact with your workspace data"
msgstr "与您的工作区数据互动"
#. js-lingui-id: jyjroS
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Interval switching has been cancelled."
@@ -8125,11 +8125,6 @@ msgstr "元数据"
msgid "Metadata file generation failed"
msgstr "元数据文件生成失败"
#. js-lingui-id: 0BF9eC
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Metadata Schema"
msgstr "元数据架构"
#. js-lingui-id: onCJJ6
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Metered tier switching has been cancelled."
@@ -8522,6 +8517,11 @@ msgstr "新字段"
msgid "New folder"
msgstr ""
#. js-lingui-id: 93KA8w
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationEditor.tsx
msgid "New Group"
msgstr ""
#. js-lingui-id: o8MyXb
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "New key"
@@ -9568,7 +9568,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/command-menu/pages/navigation-menu-item/components/CommandMenuNewSidebarItemMainMenu.tsx
msgid "Other"
msgstr "其他"
+22 -22
View File
@@ -311,6 +311,11 @@ msgstr "{morphRelationCount} 個物件"
msgid "{num, selectordinal, one {{num}st} two {{num}nd} few {{num}rd} other {{num}th}}"
msgstr "{num, selectordinal, other {{num} 第}}"
#. js-lingui-id: fTSz8d
#: src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownActorSelect.tsx
msgid "{numberOfSelectedItems} workspace members"
msgstr ""
#. js-lingui-id: 7kYa/u
#: src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts
msgid "{objectLabelPlural} ({totalCount})"
@@ -770,6 +775,11 @@ msgstr "將 \"{trimmedName}\" 添加到選項中"
msgid "Add a {objectLabelSingular}"
msgstr "新增一個 {objectLabelSingular}"
#. js-lingui-id: 7W8nJr
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationGroupEditor.tsx
msgid "Add a Group"
msgstr ""
#. js-lingui-id: CZDwqQ
#: src/modules/ai/components/suggested-prompts/default-suggested-prompts.ts
msgid "Add a new company we're in touch with (e.g. name, website, industry). Details: "
@@ -786,11 +796,6 @@ msgstr "添加節點"
msgid "Add a record"
msgstr ""
#. js-lingui-id: r8W+9y
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationSectionEditor.tsx
msgid "Add a Section"
msgstr ""
#. js-lingui-id: eMc2xs
#: src/modules/workflow/workflow-diagram/components/WorkflowDiagramCreateStepElement.tsx
msgid "Add a step"
@@ -1512,6 +1517,9 @@ msgstr "上傳圖片時發生錯誤。"
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFilterAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldGroupAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
#: src/modules/views/hooks/internal/usePerformViewFieldAPIPersist.ts
@@ -3243,11 +3251,6 @@ msgstr "核心"
msgid "Core Objects"
msgstr ""
#. js-lingui-id: cfa2VJ
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Core Schema"
msgstr "核心結構描述"
#. js-lingui-id: I99Miw
#: src/modules/billing/components/SettingsBillingCreditsSection.tsx
#: src/modules/ai/components/internal/AIChatContextUsageButton.tsx
@@ -6283,7 +6286,9 @@ msgstr "儀表圖"
#: src/pages/settings/SettingsWorkspace.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/settings/admin-panel/components/SettingsAdminContent.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetEditorGroupsData.ts
#: src/modules/keyboard-shortcut-menu/components/KeyboardShortcutMenuOpenContent.tsx
msgid "General"
msgstr "常規"
@@ -7007,11 +7012,6 @@ msgstr "AI 指示"
msgid "Integrations - Settings"
msgstr "整合 - 設定"
#. js-lingui-id: ntgzzG
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Interact with your workspace data"
msgstr "與您的工作空間數據互動"
#. js-lingui-id: jyjroS
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Interval switching has been cancelled."
@@ -8125,11 +8125,6 @@ msgstr "元數據"
msgid "Metadata file generation failed"
msgstr "元數據文件生成失敗"
#. js-lingui-id: 0BF9eC
#: src/pages/settings/ai/components/SettingsAIMCP.tsx
msgid "Metadata Schema"
msgstr "中繼資料結構描述"
#. js-lingui-id: onCJJ6
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
msgid "Metered tier switching has been cancelled."
@@ -8522,6 +8517,11 @@ msgstr "新字段"
msgid "New folder"
msgstr ""
#. js-lingui-id: 93KA8w
#: src/modules/page-layout/widgets/fields/components/FieldsConfigurationEditor.tsx
msgid "New Group"
msgstr ""
#. js-lingui-id: o8MyXb
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx
msgid "New key"
@@ -9568,7 +9568,7 @@ msgstr ""
#: src/pages/settings/admin-panel/SettingsAdminConfigVariableDetails.tsx
#: src/pages/settings/admin-panel/SettingsAdmin.tsx
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
#: src/modules/page-layout/hooks/useTemporaryFieldsConfiguration.ts
#: src/modules/page-layout/widgets/fields/hooks/useFieldsWidgetGroups.ts
#: src/modules/command-menu/pages/navigation-menu-item/components/CommandMenuNewSidebarItemMainMenu.tsx
msgid "Other"
msgstr "其他"
@@ -8,7 +8,7 @@ import { useCloseActionMenu } from '@/action-menu/hooks/useCloseActionMenu';
import { ConfirmationModal } from '@/ui/layout/modal/components/ConfirmationModal';
import { useModal } from '@/ui/layout/modal/hooks/useModal';
import { isModalOpenedComponentState } from '@/ui/layout/modal/states/isModalOpenedComponentState';
import { useRecoilComponentValue } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValue';
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/jotai/hooks/useRecoilComponentValueV2';
import { type ButtonAccent } from 'twenty-ui/input';
export type ActionModalProps = {
@@ -49,7 +49,7 @@ export const ActionModal = ({
const modalId = `${actionConfig?.key}-action-modal-${actionMenuType}`;
const isModalOpened = useRecoilComponentValue(
const isModalOpened = useRecoilComponentValueV2(
isModalOpenedComponentState,
modalId,
);
@@ -2,11 +2,11 @@ import { ActionDisplay } from '@/action-menu/actions/display/components/ActionDi
import { ActionConfigContext } from '@/action-menu/contexts/ActionConfigContext';
import { useNavigateCommandMenu } from '@/command-menu/hooks/useNavigateCommandMenu';
import { commandMenuSearchState } from '@/command-menu/states/commandMenuSearchState';
import { type CommandMenuPages } from '@/command-menu/types/CommandMenuPages';
import { type MessageDescriptor } from '@lingui/core';
import { t } from '@lingui/core/macro';
import { useContext } from 'react';
import { useSetRecoilState } from 'recoil';
import { type CommandMenuPages } from 'twenty-shared/types';
import { type IconComponent } from 'twenty-ui/display';
export const ActionOpenSidePanelPage = ({
@@ -2,9 +2,9 @@ import { type ActionDisplayProps } from '@/action-menu/actions/display/component
import { getActionLabel } from '@/action-menu/utils/getActionLabel';
import { SelectableListItem } from '@/ui/layout/selectable-list/components/SelectableListItem';
import { SelectableListComponentInstanceContext } from '@/ui/layout/selectable-list/states/contexts/SelectableListComponentInstanceContext';
import { isSelectedItemIdComponentFamilySelector } from '@/ui/layout/selectable-list/states/selectors/isSelectedItemIdComponentFamilySelector';
import { isSelectedItemIdComponentFamilyState } from '@/ui/layout/selectable-list/states/isSelectedItemIdComponentFamilyState';
import { useAvailableComponentInstanceIdOrThrow } from '@/ui/utilities/state/component-state/hooks/useAvailableComponentInstanceIdOrThrow';
import { useRecoilComponentFamilyValue } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentFamilyValue';
import { useRecoilComponentFamilyValueV2 } from '@/ui/utilities/state/jotai/hooks/useRecoilComponentFamilyValueV2';
import { useNavigate } from 'react-router-dom';
import { isDefined } from 'twenty-shared/utils';
import { MenuItem } from 'twenty-ui/navigation';
@@ -31,8 +31,8 @@ export const ActionDropdownItem = ({
SelectableListComponentInstanceContext,
);
const isSelected = useRecoilComponentFamilyValue(
isSelectedItemIdComponentFamilySelector,
const isSelected = useRecoilComponentFamilyValueV2(
isSelectedItemIdComponentFamilyState,
action.key,
selectableListInstanceId,
);
@@ -1,5 +1,4 @@
import { Action } from '@/action-menu/actions/components/Action';
import { useSelectedRecordIdOrThrow } from '@/action-menu/actions/record-actions/single-record/hooks/useSelectedRecordIdOrThrow';
import { useCommandMenu } from '@/command-menu/hooks/useCommandMenu';
import { useContextStoreObjectMetadataItemOrThrow } from '@/context-store/hooks/useContextStoreObjectMetadataItemOrThrow';
import { useRecordPageLayoutIdFromRecordStoreOrThrow } from '@/page-layout/hooks/useRecordPageLayoutIdFromRecordStoreOrThrow';
@@ -7,12 +6,9 @@ import { useResetDraftPageLayoutToPersistedPageLayout } from '@/page-layout/hook
import { useSetIsPageLayoutInEditMode } from '@/page-layout/hooks/useSetIsPageLayoutInEditMode';
export const CancelRecordPageLayoutSingleRecordAction = () => {
const recordId = useSelectedRecordIdOrThrow();
const { objectMetadataItem } = useContextStoreObjectMetadataItemOrThrow();
const { pageLayoutId } = useRecordPageLayoutIdFromRecordStoreOrThrow({
id: recordId,
targetObjectNameSingular: objectMetadataItem.nameSingular,
});
@@ -1,17 +1,13 @@
import { Action } from '@/action-menu/actions/components/Action';
import { useSelectedRecordIdOrThrow } from '@/action-menu/actions/record-actions/single-record/hooks/useSelectedRecordIdOrThrow';
import { useContextStoreObjectMetadataItemOrThrow } from '@/context-store/hooks/useContextStoreObjectMetadataItemOrThrow';
import { useRecordPageLayoutIdFromRecordStoreOrThrow } from '@/page-layout/hooks/useRecordPageLayoutIdFromRecordStoreOrThrow';
import { useSetIsPageLayoutInEditMode } from '@/page-layout/hooks/useSetIsPageLayoutInEditMode';
import { useResetLocationHash } from 'twenty-ui/utilities';
export const EditRecordPageLayoutSingleRecordAction = () => {
const recordId = useSelectedRecordIdOrThrow();
const { objectMetadataItem } = useContextStoreObjectMetadataItemOrThrow();
const { pageLayoutId } = useRecordPageLayoutIdFromRecordStoreOrThrow({
id: recordId,
targetObjectNameSingular: objectMetadataItem.nameSingular,
});
@@ -1,22 +1,22 @@
import { Action } from '@/action-menu/actions/components/Action';
import { useSelectedRecordIdOrThrow } from '@/action-menu/actions/record-actions/single-record/hooks/useSelectedRecordIdOrThrow';
import { useCommandMenu } from '@/command-menu/hooks/useCommandMenu';
import { useContextStoreObjectMetadataItemOrThrow } from '@/context-store/hooks/useContextStoreObjectMetadataItemOrThrow';
import { useRecordPageLayoutIdFromRecordStoreOrThrow } from '@/page-layout/hooks/useRecordPageLayoutIdFromRecordStoreOrThrow';
import { useSaveFieldsWidgetGroups } from '@/page-layout/hooks/useSaveFieldsWidgetGroups';
import { useSavePageLayout } from '@/page-layout/hooks/useSavePageLayout';
import { useSetIsPageLayoutInEditMode } from '@/page-layout/hooks/useSetIsPageLayoutInEditMode';
export const SaveRecordPageLayoutSingleRecordAction = () => {
const recordId = useSelectedRecordIdOrThrow();
const { objectMetadataItem } = useContextStoreObjectMetadataItemOrThrow();
const { pageLayoutId } = useRecordPageLayoutIdFromRecordStoreOrThrow({
id: recordId,
targetObjectNameSingular: objectMetadataItem.nameSingular,
});
const { savePageLayout } = useSavePageLayout(pageLayoutId);
const { saveFieldsWidgetGroups } = useSaveFieldsWidgetGroups({
pageLayoutId,
});
const { setIsPageLayoutInEditMode } =
useSetIsPageLayoutInEditMode(pageLayoutId);
@@ -27,6 +27,8 @@ export const SaveRecordPageLayoutSingleRecordAction = () => {
const result = await savePageLayout();
if (result.status === 'successful') {
await saveFieldsWidgetGroups();
closeCommandMenu();
setIsPageLayoutInEditMode(false);
}
@@ -4,8 +4,8 @@ import { type ActionConfig } from '@/action-menu/actions/types/ActionConfig';
import { ActionScope } from '@/action-menu/actions/types/ActionScope';
import { ActionType } from '@/action-menu/actions/types/ActionType';
import { ActionViewType } from '@/action-menu/actions/types/ActionViewType';
import { CommandMenuPages } from '@/command-menu/types/CommandMenuPages';
import { msg } from '@lingui/core/macro';
import { CommandMenuPages } from 'twenty-shared/types';
import { IconHistory, IconSearch, IconSparkles } from 'twenty-ui/display';
export const RECORD_AGNOSTIC_ACTIONS_CONFIG: Record<string, ActionConfig> = {
@@ -218,10 +218,11 @@ describe('useRelatedRecordActions', () => {
expect(result.current['create-related-company'].position).toBe(19);
});
it('should filter out system fields', () => {
it('should filter out hidden system fields', () => {
const fields = [
{
type: 'RELATION',
name: 'position',
relation: {
type: 'ONE_TO_MANY',
targetObjectMetadata: {
@@ -6,6 +6,7 @@ import { ActionViewType } from '@/action-menu/actions/types/ActionViewType';
import { useObjectMetadataItems } from '@/object-metadata/hooks/useObjectMetadataItems';
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
import { type ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
import { isHiddenSystemField } from '@/object-metadata/utils/isHiddenSystemField';
import { isRecordReadOnly } from '@/object-record/read-only/utils/isRecordReadOnly';
import { msg } from '@lingui/core/macro';
import React from 'react';
@@ -35,7 +36,7 @@ export const useRelatedRecordActions = ({
(field) =>
field.type === 'RELATION' &&
field.relation?.type === 'ONE_TO_MANY' &&
!field.isSystem,
!isHiddenSystemField(field),
);
let currentPosition = startPosition;
@@ -16,6 +16,7 @@ import { SelectableListItem } from '@/ui/layout/selectable-list/components/Selec
import { selectedItemIdComponentState } from '@/ui/layout/selectable-list/states/selectedItemIdComponentState';
import { useAvailableComponentInstanceIdOrThrow } from '@/ui/utilities/state/component-state/hooks/useAvailableComponentInstanceIdOrThrow';
import { useRecoilComponentValue } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValue';
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/jotai/hooks/useRecoilComponentValueV2';
import styled from '@emotion/styled';
import { useLingui } from '@lingui/react/macro';
import { useContext } from 'react';
@@ -61,7 +62,7 @@ export const RecordIndexActionMenuDropdown = () => {
'more-actions',
];
const selectedItemId = useRecoilComponentValue(
const selectedItemId = useRecoilComponentValueV2(
selectedItemIdComponentState,
dropdownId,
);
@@ -15,8 +15,8 @@ import { useHotkeysOnFocusedElement } from '@/ui/utilities/hotkey/hooks/useHotke
import { useAvailableComponentInstanceIdOrThrow } from '@/ui/utilities/state/component-state/hooks/useAvailableComponentInstanceIdOrThrow';
import { useComponentInstanceStateContext } from '@/ui/utilities/state/component-state/hooks/useComponentInstanceStateContext';
import { useRecoilComponentCallbackState } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentCallbackState';
import { useRecoilComponentValue } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValue';
import { useSetRecoilComponentState } from '@/ui/utilities/state/component-state/hooks/useSetRecoilComponentState';
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/jotai/hooks/useRecoilComponentValueV2';
import { useSetRecoilComponentStateV2 } from '@/ui/utilities/state/jotai/hooks/useSetRecoilComponentStateV2';
import { t } from '@lingui/core/macro';
import { useRecoilCallback, useRecoilValue } from 'recoil';
import { AppPath } from 'twenty-shared/types';
@@ -49,7 +49,7 @@ export const RecordShowRightDrawerOpenRecordButton = ({
targetObjectId: recordId,
});
const activeTabIdInRightDrawer = useRecoilComponentValue(
const activeTabIdInRightDrawer = useRecoilComponentValueV2(
activeTabIdComponentState,
tabListComponentId,
);
@@ -58,7 +58,7 @@ export const RecordShowRightDrawerOpenRecordButton = ({
targetObjectId: recordId,
});
const setActiveTabIdInRecordPage = useSetRecoilComponentState(
const setActiveTabIdInRecordPage = useSetRecoilComponentStateV2(
activeTabIdComponentState,
tabListComponentIdInRecordPage,
);
@@ -22,8 +22,8 @@ import { useHasPermissionFlag } from '@/settings/roles/hooks/useHasPermissionFla
import { IconCalendar, OverflowingTextWithTooltip } from 'twenty-ui/display';
import { isNavigationModifierPressed } from 'twenty-ui/utilities';
import {
PermissionFlagType,
FeatureFlagKey,
PermissionFlagType,
} from '~/generated-metadata/graphql';
import { formatToHumanReadableDate } from '~/utils/date-utils';
import { getFileNameAndExtension } from '~/utils/file/getFileNameAndExtension';
@@ -96,7 +96,11 @@ export const AttachmentRow = ({
);
const { name: originalFileName, extension: attachmentFileExtension } =
getFileNameAndExtension(attachment.name);
getFileNameAndExtension(
isFilesFieldMigrated
? (attachment.file?.[0]?.label as string)
: attachment.name,
);
const [attachmentFileName, setAttachmentFileName] =
useState(originalFileName);
@@ -206,7 +210,9 @@ export const AttachmentRow = ({
target="_blank"
rel="noopener noreferrer"
>
<OverflowingTextWithTooltip text={attachment.name} />
<OverflowingTextWithTooltip
text={`${attachmentFileName}${attachmentFileExtension}`}
/>
</StyledLink>
</StyledLinkContainer>
)}
@@ -9,7 +9,7 @@ import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadata
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
import { useObjectPermissionsForObject } from '@/object-record/hooks/useObjectPermissionsForObject';
import { activeTabIdComponentState } from '@/ui/layout/tab-list/states/activeTabIdComponentState';
import { useRecoilComponentValue } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValue';
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/jotai/hooks/useRecoilComponentValueV2';
import { t } from '@lingui/core/macro';
import groupBy from 'lodash.groupby';
import { IconPlus } from 'twenty-ui/display';
@@ -55,7 +55,7 @@ export const TaskGroups = ({ targetableObject }: TaskGroupsProps) => {
activityObjectNameSingular: CoreObjectNameSingular.Task,
});
const activeTabId = useRecoilComponentValue(activeTabIdComponentState);
const activeTabId = useRecoilComponentValueV2(activeTabIdComponentState);
const isLoading =
(activeTabId !== 'done' && tasksLoading) ||
@@ -26,7 +26,7 @@ import { isThinkingStepPartActive } from '@/ai/utils/isThinkingStepPartActive';
import { type ThinkingStepPart } from '@/ai/utils/thinkingStepPart';
import { TabList } from '@/ui/layout/tab-list/components/TabList';
import { activeTabIdComponentState } from '@/ui/layout/tab-list/states/activeTabIdComponentState';
import { useRecoilComponentValue } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValue';
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/jotai/hooks/useRecoilComponentValueV2';
import { useCopyToClipboard } from '~/hooks/useCopyToClipboard';
const StyledContainer = styled.div`
@@ -277,7 +277,7 @@ const ThinkingToolStepRow = ({
? unwrappedResult.data.result
: unwrappedOutput;
const toolTabListComponentInstanceId = `ai-thinking-tool-tabs-${part.toolCallId ?? rawToolName}-${rowIndex}`;
const activeToolTabId = useRecoilComponentValue(
const activeToolTabId = useRecoilComponentValueV2(
activeTabIdComponentState,
toolTabListComponentInstanceId,
);
@@ -1,7 +1,7 @@
import { AI_CHAT_SCROLL_WRAPPER_ID } from '@/ai/constants/AiChatScrollWrapperId';
import { useScrollWrapperHTMLElement } from '@/ui/utilities/scroll/hooks/useScrollWrapperHTMLElement';
import { scrollWrapperScrollBottomComponentState } from '@/ui/utilities/scroll/states/scrollWrapperScrollBottomComponentState';
import { useRecoilComponentValue } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValue';
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/jotai/hooks/useRecoilComponentValueV2';
import { isDefined } from 'twenty-shared/utils';
const SCROLL_BOTTOM_THRESHOLD_PX = 10;
@@ -11,7 +11,7 @@ export const useAgentChatScrollToBottom = () => {
AI_CHAT_SCROLL_WRAPPER_ID,
);
const scrollBottom = useRecoilComponentValue(
const scrollBottom = useRecoilComponentValueV2(
scrollWrapperScrollBottomComponentState,
AI_CHAT_SCROLL_WRAPPER_ID,
);

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